'Convolution Layer'에 해당되는 글 1건

  1. 2019.01.12 CNN - (2) Convolution Layer

Convolution Layer

Convolution Layer는 Filter(Kernel)를 통해 Feature를 추출한다. Convolution은 Image processing에서 외곽선 검출, 블러, 선명도 조절등을 위해 사용했던 Kernel과 같은 개념이다. Convolution은 Filter(Kernel)의 값을 다양하게 조절해가며 영상이 가지고 있는 Feature를 추출하여 학습을 하는 개념이다. 


Convolution의 개념은 새로운 개념이라고 할 수는 없다. Image processing에서 외곽선을 구하거나 Blur된 영상을 얻기 위해 Kernel을 이용하는것과 같은 개념이라 할 수 있다. 



위 그림과 같이 5x5 Image에 3x3 Filter(Kernel)을 적용 했을때 결과를 보여준다. 


Image에 Filter(Kernel)을 적용하여 Convolution feature 결과를 얻을 땐, 2가지 Parameter(Stride, Padding)이 존재한다. Stride와 Padding의 크기에 따라 Output인 Convolution feature의 크기가 달라진다. 


Stride

Stride는 Image에 Filter(Kernel)적용 시, 몇칸을 이동하며 Convolution feature를 얻을지에 대한 크기 정보이다.  예를 들어 Stride가 1로 설정되면 Filter가 1칸씩 움직이며 Convolution feature를 얻게 되고, Stride가 2로 설정되면 Filter가 2칸씩 움직이며 Convolution feature를 얻게 된다. 따라서 Stride에 따라 Convolution feature의 크기가 달라지게 된다.


N x N Image에 대해 F x F Filter Stride 1 적용 시:

Convolution feature size : (N - F) / Stride + 1



Padding

5 x 5 Image에 3 x 3 Filter Stride가 1로 적용되어 있다고 가정하자. 이때 Convolution feature size는

Convolution feature size : (5 - 3) / 1 + 1 = 3


Stride가 1씩 이동함에도 불구하고, Input size(7 x 7)와 Output size(5 x 5)가 달라지게 된다. 이때 Padding값을 조절한다면 Input size와 Output size가 같게 만들 수 있다. 



위 사진과 같이 상하좌우 가상의 공간 1을 설정하여 마치 Input image의 사이즈가 7 x 7인거와 같이 동작을 한다면 Input과 같은 size의 Convolution feature를 얻을 수 있다. 


Activation Map

Activation Map은 N개의 Filter를 이용하여 얻어진 N개의 Convolution feature를 의미한다. 


예를 들어, 

Image : 5 x 5 x 3 (3은 RGB 3-Channel 의미한다)

N개의 Filter : 3 x 3 x 3 (3은 Input의 Channel과 동일)

Convolution feature size : 3

을 통해 Convolution을 수행 할 경우 3 x 3 x N 사이즈의 Activation Map을 얻게 된다. N개의 Filter(Kernel)로 추출된 특징들의 모임이라 할 수 있다. 


위 과정을 통해 하나의 Activation Map을 얻는 과정을 Convolution / Convolution Layer라고 한다. 


Convolution Layer에 대한 고찰



이전CNN - (1) Convolution Neural Network란?

다음CNN - (3) Pooling


'A.I > Deep Learning' 카테고리의 다른 글

CNN - (3) Pooling  (0) 2019.01.12
CNN - (1) Convolution Neural Network란?  (0) 2019.01.12
Posted by No names
,