포스트

딥러닝 기초 (9) - 합성곱과 풀링: CNN의 기초

완전연결망으로 이미지를 다룰 때의 세 문제(파라미터 폭발·공간 구조 무시·위치 취약)에서 출발해, 합성곱의 지역 연결성과 파라미터 공유가 그것을 어떻게 푸는지, 채널과 풀링, 전형적 CNN 구조까지 정리한 딥러닝 기초 (9)편입니다.

딥러닝 기초 (9) - 합성곱과 풀링: CNN의 기초

딥러닝 기초 시리즈의 9편입니다. 전체 목차는 0편에 있습니다. 여기서부터 신경망의 구조 자체를 바꿉니다. 첫 번째는 이미지를 위해 태어난 CNN입니다.

완전연결망으로 이미지를 다루면

지금까지의 MLP는 입력을 하나의 벡터로 봤습니다. 28×28 흑백 이미지를 이 방식으로 다루려면 784개 픽셀을 한 줄로 펴야 하는데, 세 가지 문제가 생깁니다.

  1. 파라미터 폭발 — 784개 입력을 256개 뉴런에 완전연결하면 첫 층에만 784×256+256 = 200,960개의 파라미터가 필요합니다. 이미지가 조금만 커져도 감당이 안 됩니다.
  2. 공간 구조 무시 — 한 줄로 펴는 순간 “어떤 픽셀이 어떤 픽셀 옆에 있었는지”가 사라집니다. 이미지의 의미는 이웃 픽셀들의 관계에서 나오는데, 그 정보를 버리고 시작합니다.
  3. 위치에 취약 — 고양이가 왼쪽에 있을 때와 오른쪽에 있을 때가 완전히 다른 입력이 됩니다. 같은 대상을 위치마다 따로 학습해야 합니다.

CNN(합성곱 신경망)은 이 셋을 한 번에 해결합니다.

합성곱: 작은 필터를 미끄러뜨린다

합성곱의 핵심은 작은 필터(커널)를 이미지 위로 훑으며, 겹치는 국소 패치와 내적을 계산해 특징맵을 만드는 것입니다. 3×3 필터라면 이미지의 3×3 영역마다 아홉 값을 필터와 곱해 더한 값 하나를 출력하고, 이 필터를 한 칸씩 옮겨 전체를 훑습니다.

두 가지 성질이 앞의 문제를 풉니다.

  • 지역 연결성(local connectivity) — 각 출력은 입력 전체가 아니라 필터 크기만큼의 국소 영역만 봅니다. 이미지의 의미가 국소적이라는 사실과 맞습니다.
  • 파라미터 공유(weight sharing)같은 필터를 모든 위치에 사용합니다. “가장자리를 찾는 필터” 하나면 어디의 가장자리든 잡아냅니다. 위치가 바뀌어도 같은 특징을 인식하고(위치 불변성), 파라미터가 급감합니다.

파라미터 수를 비교하면 차이가 분명합니다.

파라미터 수
완전연결 784→256200,960
3×3 필터 32개 (합성곱)320

필터 하나가 3×3=9개 가중치 + 편향 1개이고, 그것을 전 위치가 공유하기 때문입니다. 출력 크기는 커널 크기 K, 스트라이드 S(몇 칸씩 이동), 패딩 P(가장자리 덧대기)로 정해지며, 입력 폭 W에 대해 (W − K + 2P)/S + 1입니다.

여러 필터와 깊이

필터 하나는 특징 하나(예: 세로 가장자리)를 잡습니다. 그래서 한 층에 여러 필터(채널)를 두어 서로 다른 특징을 동시에 뽑습니다. 층을 쌓으면 특징의 추상도가 올라갑니다 — 얕은 층은 가장자리·색 같은 저수준 특징을, 깊은 층은 그것을 조합한 눈·바퀴 같은 부분을, 최종적으로 객체 전체를 인식합니다. 이 저수준→고수준 위계가 CNN이 이미지를 잘 다루는 이유입니다.

풀링과 전형적 구조

풀링(pooling)은 특징맵을 다운샘플링합니다. 맥스 풀링은 2×2 영역마다 최댓값 하나만 남깁니다. 계산량과 크기를 줄이고, 특징이 정확히 어느 픽셀인지보다 “그 근방에 있다”로 뭉개 약한 위치 불변성을 줍니다.

이것들을 엮은 전형적인 CNN은 이런 모양입니다.

1
[합성곱 → ReLU → 풀링] × 여러 번  →  Flatten  →  완전연결  →  분류

앞부분(합성곱 스택)이 특징을 추출하고, 뒷부분(완전연결)이 그 특징으로 분류합니다.

정리

개념한 줄 요약
완전연결의 한계파라미터 폭발, 공간 구조 무시, 위치에 취약
합성곱작은 필터를 훑어 국소 특징 추출
파라미터 공유같은 필터를 전 위치에. 위치 불변 + 파라미터 급감
채널·깊이필터마다 다른 특징, 깊을수록 저수준→고수준
풀링다운샘플링으로 계산 감소 + 약한 위치 불변성

이 기본 부품으로 실제 CNN들이 어떻게 발전했는지 — LeNet에서 ResNet까지 — 가 다음 편입니다.

다음 글: 딥러닝 기초 (10) - CNN 아키텍처: LeNet에서 ResNet까지

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.