CNN의 작동을 이해하려면 「합성곱(convolution), 풀링(pooling), 스트라이드(stride)」 세 가지를 알아야 합니다.
이들이 모여 이미지의 의미 있는 특징을 점차 추상화해 갑니다.
합성곱은 작은 필터(예: 3×3 크기의 숫자판)를 이미지 위에 한 칸씩 옮기며, 필터와 그 자리 픽셀 값을 곱한 뒤 더하는 연산입니다.
결과는 한 숫자가 되고, 필터를 모든 위치에 적용해 모은 결과가 「특징 지도(feature map)」가 됩니다.
한 필터는 한 가지 종류의 특징(예: 가로 선, 빨간색 등)을 잡아냅니다.
풀링은 「특징 지도의 크기를 줄이는」 연산입니다.
가장 흔한 「맥스 풀링(Max Pooling)」은 「2×2 영역에서 가장 큰 값만 남기는」 방식입니다.
결과적으로 이미지가 절반 크기로 줄지만 강한 특징은 보존됩니다.
비유하자면 「세부 사항을 흐리게 만들어 큰 그림을 보게 하는 일」입니다.
스트라이드는 「필터를 한 번 옮길 때 몇 칸씩 옮길지」를 정합니다.
스트라이드 1은 한 칸씩, 2는 두 칸씩 건너뛰며 이동합니다.
스트라이드를 키우면 출력 크기가 줄어드는 효과가 있어 풀링 대신 쓰이기도 합니다.
이 세 요소의 결합으로 깊은 CNN은 「픽셀 → 모서리 → 무늬 → 부분 → 객체」의 자연스러운 위계를 만들어 냅니다.
첫 층은 가로·세로 선만 잡지만 깊은 층은 「고양이의 얼굴」 같은 의미 있는 패턴을 직접 잡아내게 됩니다.
한 줄 요약
CNN의 세 핵심 — 합성곱(필터로 특징 추출), 풀링(공간 축소·추상화), 스트라이드(필터 이동 간격) — 가 결합해 픽셀에서 의미 있는 객체까지의 위계를 자동으로 학습합니다.
더 알아볼 것
- 1×1 합성곱의 의미
- Average Pooling vs Max Pooling
- Dilated Convolution — 받아들임 영역 키우기