CNN의 Layer 유형 3가지
- Convolution Layer
- Pooling Layer
- Fully Connected Layer
Stride
- Stride는 입력 이미지에서 필터를 몇 칸 씩 건너 뛰며 적용할지를 의미.
- Stride = 1, 한칸씩 건너뛰며 필터 적용
- (n,n) 이미지에 대해 p만큼 Padding한 후, (f,f) 필터로 s만큼 Stride하며 Convulution한다면,
- 출력 이미지의 크기는 ((n+2p-f)/s+1, (n+2p-f)/s+1)이 된다.
Pooling Layer
- CNN에는 Convolution layer 외 Pooling layer가 존재한다.
- 풀링은 네티워크의 복잡성과 계산 비용을 줄일 수 있다.
[풀링의 2가지 유형]
- Max Pooling
- Average Pooling
1. Max Pooling
- 입력 이미지를 필터 크기만큼의 여러 영역으로 나눈 후,
- 이미지 위에서 필터를 이동하며, 필터 영역 내에서 최대값을 뽑으며 진행된다.
- Max Pooling은 이미지에서 중요한 정보를 잡아놓는데 도움이 된다.
- 아래 그림) (4,4)이미지에 대해 (2,2) 필터로 2만큼 stride하며 Max Pooling.
2. Average Pooling
- 입력 이미지를 필터 크기만큼의 여러 영역으로 나눈 후,
- 이미지 위에서 필터를 이동하며, 필터 영역 내에서 평균값을 뽑으며 진행된다.
- Average Pooling은 이미지에서 중요한 정보와 덜 중요한 정보를 균형있게 잡아놓는데 도움이 된다.
- 아래 그림) (4,4)이미지에 대해 (2,2) 필터로 2만큼 stride하며 Average Pooling.
풀링 연산의 장점
- 잡음 처리
- 지나치게 상세한 특징 맵에서 요약 통계 추출
- 특징 맵 축소됨. ⇒ 속도 up, 메모리 효율
풀링층 특성
- 학습할 매개변수 없음.
- 특징 맵의 수가 그대로 유지됨.
- 작은 이동에 둔감하다.
출처
https://wooono.tistory.com/234