Pooling
Feature map 의 차원을 축소시키는 연산
Pooling
- Feature map 의 차원을 축소시키면서 중요한 정보는 유지한다.
- Pooling 은 일반적으로 convolution layer 사이에 배치된다.
- 네트워크의 계산 복잡도를 줄이고, over-fitting(과적합)을 방지한다.
Feature
Dimension Reduction
- 차원 축소
- Pooling 연산은 입력 특징 맵의 크기를 줄여, 이후 계산에 필요한 파라미터의 수와 연산을 감소시킨다.
Prevent Over-fitting
- 과적합 방지
- 모델의 과적합을 방지한다.
- 크기가 줄어든 특징 맵은 모델이 고수준의 추성적인 특징에 집중하도록 하며, 더 일반화된 학습을 가능하게 한다.
Get Translation Invariance
- 이동 불변성 획득
- 모델은 이미지 내의 작은 변화와 위치 이동에 덜 민감해진다.
- I.e., 이미지가 약간 이동하거나 변형되어도 동일한 특징을 추출할 수 있다.
Feature reinforcement
- 특징 보존
- 주어진 영역에서 가장 큰 값을 선택해 다음 층으로 전달
- feature map 에서 가장 큰 특징을 보존한다.
Types of models
MaxPooling
Feature map 의 최댓값을 중요한 특징으로.
Overview
from tensorflow.keras.layers import MaxPooling2D
model.add(MaxPooling2D((2,2)))
Using Example
# 모델 생성
model = Sequential()
# 컨볼루션 층 추가
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
# MaxPooling 층 추가
model.add(MaxPooling2D((2, 2)))
# 또 다른 컨볼루션 층 추가
model.add(Conv2D(64, (3, 3), activation='relu'))
...
- 위와 같이 컨볼루션 층 사이에 위치한다.
- 2x2 풀링 윈도우를 사용하여 각 차원을 절반으로 축소한다.
Parameters
매개변수
pool_size
- 풀링 윈도우 크기를 정의한다.
- 풀링 연산을 수행할 때 고려되는 각 영역의 차원
- 일반적으로 (2,2)를 사용한다.
- 이는 2x2 영역에서의 최대값을 선택
strides
- 풀링 윈도우가 입력 특징 맵을 통해 이동하는 간격이다.
- 명시적으로 설정하지 않으면, pool_size와 동일하게 적용
padding
- vaild: 패딩 적용 x
- same: 입력과 출력의 크기가 동일하도록 지정
AveragePooling
Feature map 영역의 평균값으로
Feature
Feature smoothing
- 특징 평활화
- 풀링 윈도우 내 모든 값을 평균내어 대표값을 추출한다.
- 특징 맵을 부드럽게 만들어 전체적인 특징을 더 잘 포착할 수 있도록 한다.
Leave a comment