반응형
Pooling, Subsampling
CNN과정에서 Convolution Layer를 계속 거치다보면 데이터의 양이 계속적으로 많아진다.
너무 많은 데이터의 양은 학습과정을 방해할 수 있기때문에 데이터의 양을 효율적으로 줄여주는 것이 필요한데,
이를 위해 feature map의 공간해상도(spatial resolution)를 축소시키는 Pooling Layer를 이용한다.
Pooling의 기법은 여러가지가 있다
가장 대표적인 Pooling으로
- Max
- Average
- Min
이 세 가지가 있다.
CNN에서는 Max pooling을 선호한다.
Max pooling이 feature의 특징을 잘 살려주기 때문이다.
pooling은 kernel과 stride 옵션이 있다
kernel은 pooling의 사이즈이고 stride는 convolution과 같이 필터가 움직이는 정도를 의미한다.
일반적으로 stride는 kernel의 사이즈와 동일하게 잡는다.
- kernel
- stride
예시
4X4 feature map => 2X2 kernel, stride = 2인 Max pooling
Pooling은 데이터의 양을 줄이는 것 이외에도
이미지의 평행 이동과 변형에 대해서 일정 수준의 불변성을 얻을 수 있다.
위의 예시에서 왼쪽의 데이터를 오른쪽으로 한 칸 이동 시키고
가장 오른쪽의 데이터는 삭제, 가장 왼쪽에 데이터를 한 줄 추가하는 평행 이동을 했다.
하지만 Max Pooling의 결과는 동일한 것을 확인할 수 있다.
반응형
'AI' 카테고리의 다른 글
Image Augmentation: ImageDataGenerator & Albumentation (0) | 2022.05.31 |
---|---|
Image segmentation: U-Net (0) | 2022.05.31 |
Computer vision에 들어가기 전 - Digital Image와 처리 (0) | 2022.04.13 |
[ML] Classification Metrics (0) | 2022.04.12 |
[ML] Model Evaluation & Regression Metrics (0) | 2022.04.08 |