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의 효과
위의 사진은 각각
filter : 3, 5, 10
stride : 3, 5, 10
으로 진행한 결과입니다.
사이즈가 커질수록 해상도는 줄어드는것을 볼 수 있습니다.
하지만 그냥 해상도만 줄어드는게 아닌
input data에서 중요한 정보 (큰 값)만을 추출하는 과정이라고 볼 수 있습니다.
즉, 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
'Deep Learning > deep learning' 카테고리의 다른 글
06_Loss Function_1_MAE,MSE,RMSE (0) | 2022.05.03 |
---|---|
05_Overfitting, Regularization (0) | 2022.04.18 |
03_Batch Nomalization 배치 정규화 (0) | 2022.04.06 |
02_Weight Initialization 가중치 초기값 설정 (0) | 2022.04.06 |
01_Optimizer 설명 및 여러 기법들 (0) | 2022.03.31 |