본문 바로가기

학습공간/빅데이터활용실무

[7주차] Convolutional Neural Networks (CNN)

반응형

 Convolutional Neural Networks (CNN)

제일 먼저 떠오르는 것은 딥 러닝을 기반으로 이미지 처리할 때 가장 많이 사용되는 구조라는 것이다. 구체적으로 딥 러닝에서 어떤 부분이 기존 MPL (Feed-forward Neural Networks)와 다른지 공부해보도록 한다.

• Feed-forward Neural Networks (FNN)
- An FNN is a stack of fully-connected layers.
- 그림과 같이, 뉴럴 넷은 각 레이어 별 완전 연결로 구성되어 있다. 따라서, 각 레이어 별 parameter 개수도 많을 뿐만 아니라, 계산 비용도 복잡하고, 오버 피팅의 위험성도 크다. CNN 에서는 어떤 부분이 개조되어 사용되었는지 살펴보도록 한다.
Feed-forward Neural Networks

• Comparison of FNN and CNN
- Input Data : Vector (FNN) ⋯ 1-Dimension
- Input Data : Multidimensional Arrays (CNN)
- 공간의 국지성(spatial locality)을 반영하여, Input Data 형태를 변형한 것이다. (Scalar, Vector, Matrix, …)
Examples Input Data

- Main Operations: (일반 행렬곱을 사용하지 않고, 합성곱을 사용하는 신경망)
(Fully-connected Layer)Convolutional Layer (레이어의 연산이 3 단계의 구조를 가짐)
  ① Convolution: 작은 사이즈의 Kernel 이동과 함께 합성곱 연산을 수행함
  ② Detector: Activation Function (일반적으로 ReLU)
  ③ Pooling: 연산 후 나온 feature map 차원의 수를 줄이기 위해 특징 추출
Convolutional Layer

 

 Convolutional Neural Networks : 합성곱 신경망

서론에서 소개했던 Convolutional Layer 3 단계 구조에 대해서 자세하게 알아보도록 한다.

 

Convolutional Layer
① Convolution > ② Detector > ③ Pooling
• Convolutional Layer
    - 일반적으로 Fully-connected Layer 명칭으로 불리우나, CNN 에서는 명칭을 조금 달리한다.
① Convolution :
  • Convolution for 1-D Array
    1) (1-Dimension) parameter 개수는 커널에 의해서만 결정된다. {※ bias 1개도 parameter 이다.}
    2) 커널 크기가 커지거나, 커널 스탭 크기가 커지면 output size 는 작아진다.


  • Properties
    1) Sparse Interactions - Inputs and outputs are not fully connected but have local connectivity.
      -. input 과 output 관계가 fully-connected 가 아니다. (커널 중심의 국부적 연결성)
    2) Parameter Sharing - The same kernel is used repeatedly.
      -. 새로운 파라미터를 매번 쓰지 않고, 커널을 재사용한다.
    3) Equivariance to Transition - convolution(shift(input)) = shift(convolution(input)).
      -. input 정보에 대하여 합성곱 후 이동하나, 이동 후 합성곱하나 차이가 없다.
커널의 영향만 받기 때문에 파라미터를 효율적으로 사용할 수 있다.

  ⇒ 커널 사이즈가 커지거나 레이어가 더 중첩될수록 Receptive field 역시 커지게 된다.
  
  • Convolution for 2-D Array
    1) (2-Dimension) parameter 개수는 커널에 의해서만 결정된다. {식: (FxFxD+1)*n)}
    2) 흑백 이미지에 아래와 같이 k=(2,1) 필터를 사용했다고 한다면 물체의 경계선을 취득할 수 있다.
      ※ 일반적으로 커널값은 데이터 기반으로 취득하는 파라미터로써 수동 설정은 잘 하지 않는다.
    3) (2-Dimension with 3 Channels) 컬러 이미지라면, input depth=3 은 kernel depth=3 과 일치한다.


  • Multiple Kernels and Zero Paddings of the Input
    1) Multiple Kernels - 커널 개수가 6개라면, feature map 개수도 6개가 된다.
    2) Zero Paddings - 커널 크기에 따라, output volume 줄어드는 문제를 해결한다. (input volume 과 일치)

② Detector : (Activation Function) non-linearity 부여 (주로 ReLU 사용)

③ Pooling : feature map 크기가 너무 커서 줄여주고 싶을 때, 차원의 특징을 추출하여 리사이징 할 수 있다.
EX) 2x2 max pooling 을 사용한 경우,
maxpooling

 

 Popular CNN Architectures : 인기있는 CNN 아키텍처

최근, 점점 더 깊은 구조로 변해가면서 커널의 사이즈는 작아지며 완전 연결성을 지양하고 있다. 여기에서는 몇 가지 인기있는 CNN 아키텍처에 대해서 소개하고자 한다.

 

위에서 소개된 Convolutional Layer 가 몇 개를 중첩하여 이루어져 있는가? 가 흔히 말하는 CNN 이다.

또한, 앞 장에서 소개된 Graident 기반의 최적화 방법론도 동일하게 Loss Function 정의 후 학습이 가능하며, 전반적으로 Parameter 개수가 적으면서 좋은 성능을 보인다.

Popular CNN Architectures
1. LeNet-5 : Layer 개수는 5개(2 Convolutional Layers + 3 Fully Connected Layers), Parameter 수는 6 만개이다. (대부분 Fully)
2. ILSVRC : (ImageNet Large Scale Visual Recognition Challenge) 시리즈에서는 Layer 개수가 점점 딥 하게 증가되고 있다.
3. AlexNet : 데이터 증강(Data Augmentation)과 함께, ReLU Activation function 사용이 특징, Parameter 수는 6200 만여개이다.
4. VGGNet : 19 Layers 사용으로 아주 깊은 구조이며, 커널 크기가 3x3으로 굉장히 작다. Parameter 수는 1 억 3800 만여개이다.
5. GoogLeNet (InceptionNet) : 22 Layers 사용이고 Fully-connected Layer 전혀 없다. 1x1 convolution 을 통해 feature map 개수를 크게 줄일 수 있고, Parameter 수는 4 만여개이다.
6. ResLet : 152 Layers 사용으로 더 깊은 구조이며, Vanishing Gradient 줄이기 위해 과거 값을 미래에 더해주는 Skip Connections 사용한다.
7. DenseNet : 201 Layers 사용으로 더 깊어지며, ResLet 단점을 개선하기 위해 더하지 않고 붙여버리는(Concatenation) 방식을 통해 약간 변형해서 feature 재사용이 용이하다.

 

반응형

'학습공간 > 빅데이터활용실무' 카테고리의 다른 글

[9주차] Graph Neural Networks (GNN)  (0) 2020.11.19
[8주차] Recurrent Neural Networks (RNN)  (0) 2020.11.19
[6주차] Practical Methodology  (0) 2020.11.19
[5주차] Regularization  (0) 2020.11.19
[4주차] Optimization  (0) 2020.11.19