ConvNet의 활용 예

해당 게시물은 Edwith에서 제공하는
머신러닝과 딥러닝 BASIC을 듣고 요약 정리한 글입니다.

LeNet-5

Lecun et al (1998)
손으로 쓴 32×3232 \times 32크기의 글씨 이미지를 학습
Filter로 5×55 \times 5크기의 Filter1의 크기의 Stride사용
Pooling을 진행할 때 2×22 \times 2크기와 2의 크기의 Stride사용
아직 안만듬

AlexNet

Krizhevsky et al (2012)

아직 안만듬

입력값 : 227×227×3227 \times 227 \times 3의 컬러 이미지
첫번째 Layer : CNN (96개의 11×1111 \times 11크기, Stride가 4인 Filter)
출력값의 크기: 55×55×9655 \times 55 \times 96
첫 번쨰 Layer의 Parameter : (11×11×3)×96=35K(11 \times 11 \times 3) \times 96 = 35K

두 번쨰 Layer : Pooling Layer(3×33 \times 3크기, Stride가 2인 Filter)
출력값의 크기 : 27×27×9627 \times 27 \times 96
두 번째 Layer의 Parameter : 0

AlexNet의 Full Architecture

  1. [227×227×3227 \times 227 \times 3] INPUT
  2. [55×55×9655 \times 55 \times 96] CONV1

    • 11×1111 \times 11 크기의 Filter 96개
    • Stride : 4
    • pad : 0
  3. [27×27×9627 \times 27 \times 96] MAX POOL1

    • 3×33 \times 3 크기의 Filter
    • Stride : 2
  4. [27×27×9627 \times 27 \times 96] NORM1

    • Normalization layer
  5. [27×27×25627 \times 27 \times 256] CONV2

    • 5×55 \times 5 크기의 Filter 256개
    • Stride : 1
    • pad : 2
  6. [13×13×25613 \times 13 \times 256] MAX POOL2

    • 3×33 \times 3 크기의 Filter
    • Stride : 2
  7. [13×13×25613 \times 13 \times 256] NORM2

    • Normalization layer
  8. [13×13×38413 \times 13 \times 384] CONV3

    • 3×33 \times 3 크기의 Filter 384개
    • Stride : 1
    • pad : 1
  9. [13×13×38413 \times 13 \times 384] CONV4

    • 3×33 \times 3 크기의 Filter 384개
    • Stride : 1
    • pad : 1
  10. [13×13×25613 \times 13 \times 256] CONV5

    • 3×33 \times 3 크기의 Filter 256개
    • Stride : 1
    • pad : 1
  11. [6×6×2566 \times 6 \times 256] MAX POOL3

    • 3×33 \times 3 크기의 Filter
    • Stride : 2
  12. [40964096] FC6

    • 4096 neurons
  13. [40964096] FC7

    • 4096 neurons
  14. [10001000] FC8

    • 1000 neurons (class scores)

Details

  • ReLU를 처음 사용
  • 정규화를 하는 Layer 사용
  • 0.5의 DropOut을 사용
  • 128크기의 Batch Size
  • 7개의 CNN 앙상블

GoogLeNet

Szegedy et al (2014)
Inception Moudle이라는 것을 사용했다.
아직 안만듬

ResNet

He et al (2015)
152개의 Layer에 Fastforward사용
실제 Layer는 많지만 실제 학습되는 Layer는 깊지 않다.
잘 동작하지만 왜 잘되는지는 알지 못한 상태다.

CNN for Sentence Classfiation

Yoon Kim (2014)
자연어 처리 분야에 CNN을 사용

AlphaGo

DeepMind
흔히 잘 알고있는 AlphaGo도 CNN을 사용

  • Policy Network

입력값 : [19×19×4819 \times 19 \times 48]
19×1919 \times 19는 바둑판의 크기, 48개의 Feature

CONV1 : 192 5×55 \times 5 Filters, strid 1, pad 2
CONV1의 출력값은 [19×19×19219 \times 19 \times 192]

CONV2 ~ 12 : 192 3×33 \times 3 Filters, strid 1, pad 1
CONV2 ~ 12의 출력값은 [19×19×19219 \times 19 \times 192]

CONV : 1 1×11 \times 1 Filters, strid 1, pad 0
CONV의 출력값은 [19×1919 \times 19]


Written by@Minsu Kim
Software Engineer at KakaoPay Corp.