[PyTorch] Pooling

김유상·2022년 12월 22일
0

풀링의 역할: 차례대로 처리되는 데이터의 크기를 줄임으로써 모델의 전체 매개변수의 개수를 크게 줄일 수 있다.

MaxPooling, AvgPooling과 같은 풀링 방식이 있는데 결국 원하는 결과를 잘 표현하는 방식을 채택하고 사용하게 된다.
이때 풀링을 통해 데이터의 크기도 줄어들지만 더 낮은 레벨의 특성들이 부각된다. 따라서 Pooling은 더 추상적인 데이터를 구하는 과정이라고 보아도 무방하다.

왜 풀링이 필요한가?

  • 모델의 높은 정확도를 위해서는 필터 수가 많아야 하는데 이렇게 되면 결국 파라미터 수가 증가하게 되고, 오버피팅 및 추론 레이턴시에 많은 영향을 끼칠 수 있다.

풀링은 위 사진과 같이 커널의 크기에 맞추어 최대값, 평균값에 대해 이루어지며

스트라이드를 설정해서 output 데이터의 크기를 조절할 수 있다.

또한 PyTorch에서는 AdaptivePooling을 지원해서 매개변수로 output size를 전달하면 해당 크기에 맞도록 알아서 output 데이터를 반환한다.

Referenced: https://underflow101.tistory.com/41

profile
continuous programming

0개의 댓글