Data Science/Convolutional Neural Network(CNN)

2. Basic CNN-2

HJChung 2020. 3. 14. 17:00

1. Mathematical representation of Fully connected layer

fully connected layer은 여러 개의 뉴런을 일렬로 모아둔(vectorization) 것으로 위와 같은 곱셈 연산으로 표현됩니다. 

 

2. Mathematical representation of convolutional layer

input 된 것의 channel의 개수(Cin)과 output 된 것의 channel의 개수(Cout) 만큼의 kernel이 나타나게 됩니다.

W = kernel의 크기(Kh x Kw)

Cin x Cout = kernel의 개수 -> 이를 ij로 인덱싱하여

W와 ij을 vectorization하면 Weight tensor로 만들어집니다. 

3. Stride

합성곱 연산에서 pooling 말고도 영상의 크기를 줄이는 또 다른 방법으로, 커널을 이동시키는 거리(건너뛰는)를 stride라고 합니다. 

연산량을 줄이기 위해서도 사용됩니다. 

 

주의 할 것은)

Output size = (dimension of input N - Filter size F) / Stride +1 이 asymmetric output 이 되지 않게 적절한 Stride값으로 설정해 주어야 한단는 것입니다. 

 

4. Padding

합성곱 연산 시, filter(kernel)의 크기에 따라 영상의 크기가 줄어드는 문제가 있는데, 이를 해결하기 위한 방법이 padding입니다. 

크기가 (2N+1)인 커널에 대해, 상하좌우에 N개의 Zero-Padding을 해주면 됩니다. 

 

 

 

'Data Science > Convolutional Neural Network(CNN)' 카테고리의 다른 글

5. Advanced CNN-1  (0) 2020.03.18
4. Basic CNN Implementation(v2)  (0) 2020.03.15
4. Basic CNN Implementation(v1)  (0) 2020.03.15
3. Batch Normalization  (0) 2020.03.14
1. Basic CNN-1  (0) 2020.03.14