lec5. Convolutional Neural Networks

    Convolutional Neural Networks

    ★ 1. Convolutional Layer

    ★ 2. Pooling Layer


    Convolutional Neural Networks

    전체 구조

    (Convolutional Layer - Activation Function - Pooling Layer) 반복 → Fully Connected Layer

    1. Convolutional Layer

    ① input: 32 x 32 x 3 image

    ② Filter

      - Receptive Field라고 부르기도 함

      - 이미지의 크기보다 작은 크기를 가지나, depth는 같아야 함

      - Filter는 이미지의 전체를 돌면서 내적을 수행하고 bias를 더함

    ③ Output: 2-dimensional activation map

      - 사용한 Filter의 개수에 따라 output의 depth가 결정됨

      - Filter들은 input에서 각각 다른 특징을 찾아냄

    - Spatial Dimension   

    Input size: 7x7

    Filter size: 3x3

    ⓛ Stride: 1일때, Output의 size는 5 x 5

    ② Stride: 2일때, Output의 size는 3 x 3

     

    In general,

    Input size: NxN

    Filter size: FxF

    Output size: (N-F)/Stride + 1

     

     

    - Zero Padding

    Input의 가장자리에 0을 추가시킴으로써 Filter를 통과했을 때 Output size가 유지된다. Filter의 크기에 따라 Output size 유지에 쓰이는 zero pad의 수가 다르다.

     

    Input size: 7x7

    Stride: 1

    ⓛ Filter size: 3x3, Zero pad: 1 → Output size: 7x7 

    ② Filter size: 5x5, Zero pad: 2 → Output size: 7x7

    ③ Filter size: 7x7, Zero pad: 3 → Output size: 7x7

     

     

     

     

     

    Q1. zero padding을 하면 가장자리에 상관없는 값들이 들어가는 것이 아닌가?

    A. ㅇㅇ. 인위적인 값이 들어가는 대신 크기 유지가 가능

     

    Q2. Non-square image일 때 stride 값의 가로와 세로를 다르게 설정해야 하는가?

    A. 상관없는데, 보통 같은 값을 씀

     

     

    종합해서 정리하면 다음과 같다.

     

    [Examples]

    - Input: 32x32x3

    - Filter: 5x5 size가 10개

    - Stride: 1, Pad: 2

     

    - Output volume size: (32-5+4)/1+1 = 32 → 32x32x10

    - Number of parameters in this layer

    : 5x5x3 + 1 = 76 parameters (1: bias)

      76x10 = 760개


    2. Pooling Layer

    Pooling layer에서는 Spatial size를 작게 만들어 input을 간단하게 만든다. 각각의 activation map에 독립적으로 작용한다.

     

    max pooling

    - Max Pooling

      Pooling Layer에서는 오버랩을 허용하지 않는 stride를 설정하는 것이 일반적이다. 각 filter에서 가장 큰 값만 남기는데 이미지의 부분에서 특징적인 부분을 뽑아 요약한다고 생각할 수 있다. max pooling을 하고 나서도 depth는 변하지 않는다. 가장 일반적으로 2x2 filters에 stride가 2인 max pooling을 많이 사용한다고 한다.

     

     

     

     

     

     

     

    'cs231n' 카테고리의 다른 글

    lec7. Training Neural Networks, Part 2  (0) 2021.07.27
    lec6. Training Neural Networks, Part I  (0) 2021.07.09
    lec4. Backpropagation & Neural Networks  (0) 2021.07.08
    lec3. Loss Functions & Optimization  (0) 2021.07.08
    lec2. Image Classification  (0) 2021.07.08

    댓글