[시즌1].Lecture 11_2 - Convolutional Neural Networks_ConvNet Max pooling 과 Full Network

* 이 글은 홍콩과기대 김성훈 교수님의 무료 동영상 강좌 "모두를 위한 머신러닝과 딥러닝 강의"를 보고 요점을 정리한 글 입니다.

 

Pooling Layer

Pooling Layer에서 Pooling은 다른 말로 Sampling이라고 부를 수도 있습니다. Layer의 이름에서 알 수 있듯이 Pooling Layer에서는 여러 Depth를 가지고 있는 Feature Map의 각각의 Depth마다 Resize(Sampling)을 해준 뒤 다시 합쳐주는 작업을 하게 됩니다.

 

Pooling Layer에서도 Convolution Layer처럼 Filter를 사용합니다. Filter의 크기와 Stride를 정해주면 그것을 사용해서 Sampling을 해주게 되는데 여기서 주로 사용되는 방법이 바로 Max Pooling이라고 불리는 방법입니다. 

 

Max Pooling은 설정한 Filter의 크기만큼의 범위에서 가장 큰 값을 반환하는 방법을 말합니다. 왼쪽 그림은 Filter의 크기를 2 x 2로 설정하고 Stride 또한 2로 설정해준 뒤 Max Pooling을 한 그림 입니다. Filter의 크기와 같은 범위에서 가장 큰 값을 반환해 준뒤 Stride 값인 2만큼 움직여서 같은 과정을 반복해줍니다. Pooling에는 Max Pooling 이외에도 평균값을 반환하는 Average Pooling 등이 있습니다.

 

Fully Connected Layer(FC Layer)

여러번의 Convolution Layer와 Pooling Layer를 거친 후 생성된 결과를 일반적인 Neural Network를 거쳐서 Classification을 해주는 layer를 Fully Connected Layer라고 합니다

 

Fully Connected layer의 결과로 맨 처음 Convolutional Neural Network에 입력한 이미지가 무엇인지를 분류한 결과가 나오게 됩니다.