22.MAX POOLING
Pooling 이란.
CNN에서 pooling이란 간단히 말하자면 특징을 뽑아내는 과정이라고 할 수 있다.
먼저 CNN의 pooling 이전의 진행 과정을 간단히 살펴보자.
CNN이라는 게 결국 이미지 속에서 여러가지 특징들을 low level(여러가지 단순한 모양의 선)부터 high level(선이 모여진 어떤 형태의 모양)까지 찾아내서 이미지를 추론하는 딥러닝과정이다.
Pooling이전의 단계를 간단하게 설명하자면,
첫번째, convolution layer에서 filter(learnable parameter)을 이용해 이미지 feature map을 계산하는 과정이 있다.
두번째, 그 계산 결과를 activation function을 이용해 nonlinearity 를 부여해주는 과정이 있다.


convolution layer filters & activation function
그 다음, convolution layer의 계산 결과(feature maps)를 pooling(sub sampling)하는 과정이다.
Max pooling
Pooling 의 종류.
1. Max Pooling : 정해진 크기 안에서 가장 큰 값만 뽑아낸다.
2. Average Pooling : 정해진 크기 안의 값들의 평균을 뽑아낸다.
그외에도 다른 pooling의 종류가 있다...
Pooling의 목적
1. input size를 줄임(Down Sampling).
: 텐서의 크기를 줄이는 역할을 한다.
2. overfitting을 조절
: input size가 줄어드는 것은 그만큼 쓸데없는 parameter의 수가 줄어드는 것이라고 생각할 수 있다. 훈련데이터에만 높은 성능을 보이는 과적합(overfitting)을 줄일 수 있다.
3. 특징을 잘 뽑아냄.
: pooling을 했을 때, 특정한 모양을 더 잘 인식할 수 있음.
4. 지역적 이동에 노이즈를 줌으로써 일반화 성능을 올려준다. maxpooling의 경우 주어진 픽셀중 큰것만 뽑기때문에 모양이 조금 달라지는 특성을 가지고 있다.