Pooling
Convolution network에는 주로 pooling layer가 포함된다.
Pooling은 정해진 window에서 특정 행위를 하는 layer이다.
Activation map을 재가공하는 역할을 한다.
종류
- max pooling
- 가정 : 가장 큰 값이 중요한 역할을 한다.
- 기능 : window 내에서 max 값을 뽑아서 사용한다.
- average pooling
- 가정 : 평균(통계)이 중요하다고 본다.
- 기능 : window 내의 평균을 구해서 사용한다.
Max Pooling vs Average Pooling
Max pooling과 average pooling은 가정이 다르기 때문에 문제마다 어떤 것이 좋을지는 다르다.
일반적으로 max pooling이 좀 더 선호되고 끝단으로 갈수록 average pooling이 선호되기도 한다.
Pooling vs Strided Convolution
- 공통점 : pooling은 window에서 연산을 수행하기 때문에 strided convolution처럼 resolution이 준다.
- 차이점
- strided convolution
- 파라미터가 존재하여 학습해야 한다.
- weighted average 등 좀 더 optimal한 필터를 찾을 수 있다.
- pooling
- 파라미터가 존재하지 않고 정해진 규칙에 따라 연산을 수행한다.
- 파라미터 수가 적고 학습 속도가 빠르다.
- strided convolution
Pooling vs. 일반적인 Convolution
Strided convolution으로 average pooling을 구현할 수 있다.
여러 개의 convolution을 쌓아서 max pooling과 비슷한 역할을 구현할 수 있다.
그러나 일반적인 convolution으로는 간단한 구현이 불가능하다.
'Computer Science > AL, ML' 카테고리의 다른 글
RNN : Recurrent Neural Network (0) | 2022.06.15 |
---|---|
[CNN] 다양한 CNN (0) | 2022.06.15 |
[CNN] CNN의 구조와 Notation (0) | 2022.06.06 |
[CNN] Local Connectivity & Weight Sharing (0) | 2022.06.06 |
CNN (Convolution Neural Network) (0) | 2022.06.06 |
댓글