Data Science/Convolutional Neural Network(CNN)

1. Basic CNN-1

HJChung 2020. 3. 14. 16:29

1. 합성곱 신경망의 기본 구조는 

image -> Convolutional layer/Pooling layer/Activation function 의 반복-> Flatten/Fully connected  layer -> result입니다. 

 

1) Convolutional layer란

input -> filter -> output의 기능을 하는 layer로,

일반적으로 영상의 크기는 그대로이며, 영상의 채널 수가 달라집니다. 

합성곱 계측에 의해서 추출된 output은 kernel이 움직이며 생성되므로 공간적 특징이 있으며 feature map이라고 합니다. 

 

 

 

 

2) pooling layer란

여러 화소를 종합하여 하나의 화소로 변환하는 계층입니다. 

pooling layer을 통과하면 영상의 크기가 줄어들고, 정보가 종합됩니다. 

풀링 방법은 주로 최대값과 평균값이 많이 쓰이며 용도에 맞게 사용하게 됩니다. 

classification의 경우 max pooling이 많이 쓰인다. 

 

3) Flatten란

입력된 특징 맵의 모든 화소를 나열하여 하나의 벡터로 만드는 것을 평탄화라고 합니다. 즉, convolution layer와 fully connected layer을 연결해주는 역할을 한다고 보면 됩니다. 

아무로 연산이 일어나지 않는데 이 작업이 필요한 이유는, 

convolution layer에서 추출된 영상을 fully connected layer로 넘겨주기 위해선 하나의 벡터로 만드는 것이 꼭 필요하기 때문입니다.

 

4) Fully connected layer란

 2개의 fully connected layer을 사용하여 최종 출력을 내어 줍니다. 

이 과정은 feature map을 flatten해준 것을 얕은 신경망의 input으로 사용하는 것이라고 보면 된다. 그 결과, 이 얕은 신경망에 사용된 activation function의 기능에 따라 출력 결과다 상이하게 도출됩니다. 

- 보통 multi class classification 문제에서는 Softmax함수를 activation function으로 사용합니다. 

 

2. 그러면 왜 이런 CNN basic 구조를 쓰는 것일까

1. convolutional layer/pooling layer/activation layer을 계속 반복하다보면, 영상의 크기는 작아지고 channel의 크기는 커집니다. 

이때 같은 크기의 filter사용 했을 때, 영상의 크기가 작아지면 더 넓은 영역을 cover하는 것과 같은 효과가 보이게 됩니다. 

이 개념을 이해하기 위해선 Receptive Field를 이해하는 것이 필요합니다.

 

1) Receptive Field

같은 크기의 필터여도, 풀링에 의해 작아진 feature map에 적용되면 상대적으로 원본 영상에서 차지하는 범위보다 넓어지게 됩니다. 

범위를 Receptive Field라고 합니다. 

'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
2. Basic CNN-2  (0) 2020.03.14