Pooling

Pooling은 Convolution layer의 결과물인 Activation Map을 입력으로 받아 크기를 줄이고, 데이터를 강조하는 역할을 수행한다. Pooling과정을 거치게 되면 Activation Map이 적절하게 크기가 줄어 들기 때문에 Sub sampling한다고 칭하기도 한다. 


Pooling의 방법으로는 대표적으로 최대값을 뽑아내는 Max pooling, 평균값을 구하는 Average pooling, 최소값을 뽑아내는 Min pooling 등이 있으며, 그 외에도 여러 Pooling기법들이 있다. 


Max pooling

Max pooling은 Activation Map을 Filter의 사이즈와 Stride값에 따라 최대값을 뽑아내는 방법이다. 

위와 같이 4 x 4 Activation map에 2 x 2 Filter (Stride 2)를 적용하여 Max pooling을 적용하면 오른쪽 2 x 2 Activation Map을 얻어 낼 수 있다. Filter의 크기에 따라 2 x 2영역에서 가장큰 값을 추출하고 다음 추출은 Stride 2만큼 Filter를 이동시켜 다음 영역에서 가장 큰 값을 추출해내는 방법이다. 


예를 들어 첫번째 영역 [1, 1, 5, 6]중 가장 큰 숫자인 6을 추출하고, Stride 2만큼 Filter를 이동시켜 [2, 4, 7, 8]에서 가장큰 숫자인 8을 추출해 낸다. 


Max pooling의 의미는 Sub-sampling을 진행하여 Activation Map의 크기를 축소 할 시, Filter의 크기 영역에 데이터중 가장 큰값이 크 해당영역을 대표하는 값이다라는 의미를 가지고 있다. 



Pooling에 대한 고찰


이전 : CNN - (2) Convolution Layer


'A.I > Deep Learning' 카테고리의 다른 글

CNN - (2) Convolution Layer  (0) 2019.01.12
CNN - (1) Convolution Neural Network란?  (0) 2019.01.12
Posted by No names
,