Pooling vs Convolution: 공간은 줄이고, 채널은 유지하는 이유

Bean·2025년 5월 19일
0

인공지능

목록 보기
37/123

1. Pooling과 채널 수 변화에 대한 이해

딥러닝에서 자주 쓰이는 Max PoolingAverage Pooling은 입력 특징 맵의 공간적 크기(Height × Width)를 줄이는 데 쓰입니다.
하지만 이 연산들은 채널 수(Channels)는 건드리지 않습니다.


1.1. 예시로 살펴보기

입력 텐서 크기: (Batch, Channels, Height, Width): (1, 64, 32, 32)

여기서 MaxPooling2D(kernel_size=2, stride=2) 를 적용하면:

  • Height, Width: 32 × 3216 × 16 (절반으로 줄어듦)
  • 채널 수 64: 그대로 유지됨
출력 텐서 크기: (1, 64, 16, 16)

1.2 정리표: 어떤 차원이 영향을 받을까?

항목영향 있음?설명
Height / Width있음Pooling을 통해 줄어듦
Channels없음그대로 유지됨

2. 그렇다면 채널 수는 어떻게 바뀌나요?

채널 수(Channels)를 바꾸는 건 Pooling이 아니라 Convolution(합성곱)입니다.


2.1. 채널 수를 바꾸는 연산들

연산 종류설명
Conv2Dout_channels 설정값에 따라 채널 수 변경
1×1 Convolution공간 정보는 유지하면서 채널만 줄이거나 늘릴 때 자주 사용
Linear (FC) Layer완전 연결층으로 차원(채널 포함) 전환 가능
BatchNorm / ReLU채널 수 유지, 값만 정규화하거나 비선형성 부여

2.2. 추가 팁: 1x1 Convolution이란?

  • 1x1 커널로 연산하면, 공간적 영역은 그대로 두고 채널 수만 바꿀 수 있음
  • 인코더/디코더 구조나 모델 경량화(예: MobileNet)에서 자주 등장

3. 마무리 요약

Pooling → 공간(H/W)만 줄인다. 채널(C)은 그대로!
Convolution → 채널(C)을 바꾼다.


profile
AI developer

0개의 댓글