전체 CNN 구조 — 합성곱 + 풀링 + Dense
합성곱 한 층만으로는 부족. 보통 CNN은 여러 부품 결합:
📖 표준 CNN 구조 (이미지 분류 예시)
입력 이미지 (예: 224x224x3 RGB)
↓
[Conv 32 필터] → [ReLU] → [Pooling] → 출력 (112x112x32)
↓
[Conv 64 필터] → [ReLU] → [Pooling] → 출력 (56x56x64)
↓
[Conv 128 필터] → [ReLU] → [Pooling] → 출력 (28x28x128)
↓
[Flatten + Dense (MLP)] → 클래스 확률
📖 부품 설명
- Conv (Convolution): 필터 N개로 합성곱 → N개의 Feature Map
- ReLU: 음수 → 0. 비선형성 추가.
- Pooling: 작은 영역에서 최대값 (또는 평균) → 크기 줄임 + 위치 미세 변동에 강건
- Flatten + Dense: 마지막에 1D로 펴서 MLP로 최종 분류
💡 층이 깊어질수록 추상화
이게 신기한 부분 — 학습 후 보면:
- 1층 필터: 가장자리, 모서리 같은 저수준 특징
- 중간층 필터: 모양, 패턴 (눈, 코, 입 등 부품)
- 고층 필터: 얼굴 전체, 동물, 객체 같은 추상 개념
학습으로 자동 발견됨. "계층적 특징 학습"이 CNN의 또 다른 매력.
📊 바둑에 CNN을 쓸 때 (알파고 구조 미리 보기)
- 입력: 19x19x48 (48개의 채널 — 흑돌, 백돌, 빈자리, 활로, 패배 가능성, ...)
- 13층 Conv: 각 층 192 필터, 3x3 필터, ReLU
- 출력 (policy): 19x19 = 361자리에 대한 확률 분포
- 출력 (value): 한 숫자 — 흑의 승률
마지막 출력층 외에는 모두 합성곱. "바둑판 = 이미지"의 일관된 표현.