"풀링은 피처 맵의 크기나 차원을 줄이는 프로세스"
이를 통해 네트워크의 매개 변수 수를 줄이는 동시에 중요한 기능을 유지할 수 있다.
서브샘플링 또는 다운 샘플링이라고도 함
2개의 매개 변수(Stride, Kernel)를 이용해 Pooling을 진행하는데,
pooling의 대상인 기능 맵의 2x2 씩 묶었고 그 박스 안의 가장 큰 값을 추출해낸다.
파란색 박스는 253으로 수정해야한다.
이것이 Max pooling을 적용하는 방식이다.
일반적으로 2x2 커널과 패딩이 없는 스트라이드 2를 사용한다.
위의 설정으로 풀링을 사용하면 차원이 2배(폭과 높이) 감소한다.
풀링은 우리의 모델을 이미지의 사소한 변화와 왜곡에 강하다.
Average Pooling, Sum Pooling을 사용할수 있다.
위에 3번이 뭔소리 일까
두개의 이미지를 Max pooling 한 결과이다.
하나는 왼쪽상단 끝에 붙어있는 C와
다른하나는 한칸 밑의 C 이다.
둘다 컨볼루션 연산을 했을때에 저 C의 특징을 갖는 위치는 다르지만,
Max pooling을 진행했을때의 C의 특징의 위치가 동일해진다.
이처럼 Max Pooling은 이미지의 작은 이동(translation)에 대해 강건성을 제공한다.
특징이 약간 이동하더라도 중요한 정보는 유지된다는 뜻이다.