Max Pooling

 

Max Pooling

 

Max Pooling은 Convolution과 비슷하게 보이지만 몇가지 차이점이 있습니다.

 

 

 

  • channel이 변하지 않는다.
    • Convolution Layer는 filter의 개수에 의해 output channel의 수가 정해졌지만, Max Pooling은 없습니다.
  • 학습 가능한 parameters가 없다.
    • Convolution Layer는 filter라는 weight를 가지지만 Max Pooling은 input data 자체로 진행합니다.

 

그렇다면 Max Pooling은 왜 사용하는 건지 한번 알아보겠습니다.

 

 

 


Max Pooling의 효과

 

Max Pooling의 적용 예

위의 사진은 각각

filter : 3, 5, 10

stride : 3, 5, 10

으로 진행한 결과입니다.

 

사이즈가 커질수록 해상도는 줄어드는것을 볼 수 있습니다.

하지만 그냥 해상도만 줄어드는게 아닌

input data에서 중요한 정보 (큰 값)만을 추출하는 과정이라고 볼 수 있습니다.

 

 

즉, Convolution Layer에서는 아래의 사진과 같이

Convolution Layer

낮은 층의 필터는 저수준의 로컬한 특징을 찾아내고,

높은 층의 필터는 고수준의 더 글로벌한 특징을 찾아냅니다.

 

하지만 Max Pooling을 사용하게 되면

Down Sampling을 통하여 더 빨리 글로벌한 특징을 찾아낼 수 있게 하는 겁니다.

또한 파라미터 숫자를 줄여서 계산 비용을 줄이고, Overfitting을 억제합니다.

 

 

 


Pooling 종류

Pooling에도 종류가 있습니다.

  • Max Pooling : filter 내에서 가장 큰 값.
  • Average Pooling : filter 내의 값들의 평균.

등...

 

 

 

 

출처:

https://www.youtube.com/watch?v=rTElRLj5chU&list=PLBiQZMT3oSxXNGcmAwI7vzh2LzwcwJpxU&index=14&t=2428s

+ Recent posts