AlexNet은 2012년 이미지넷 챌린지(ILSVRC)에서 우승하며 CNN의 가능성을 세상에 보여준 모델이야.
입력 이미지는 (224, 224, 3) 크기의 컬러 이미지(RGB)이며, 1000개 클래스를 분류해.
📊 AlexNet 전체 구조 요약
Layer종류필터 수필터 크기Stride출력 크기 (H x W x C)
| Input |
- |
- |
- |
- |
224 × 224 × 3 |
| Conv1 |
합성곱 |
96 |
11×11 |
4 |
55 × 55 × 96 |
| MaxPool1 |
풀링 |
- |
3×3 |
2 |
27 × 27 × 96 |
| Conv2 |
합성곱 |
256 |
5×5 |
1 |
27 × 27 × 256 |
| MaxPool2 |
풀링 |
- |
3×3 |
2 |
13 × 13 × 256 |
| Conv3 |
합성곱 |
384 |
3×3 |
1 |
13 × 13 × 384 |
| Conv4 |
합성곱 |
384 |
3×3 |
1 |
13 × 13 × 384 |
| Conv5 |
합성곱 |
256 |
3×3 |
1 |
13 × 13 × 256 |
| MaxPool3 |
풀링 |
- |
3×3 |
2 |
6 × 6 × 256 |
| Flatten |
- |
- |
- |
- |
9216 (=6×6×256) |
| FC1 |
완전연결 |
- |
- |
- |
4096 |
| FC2 |
완전연결 |
- |
- |
- |
4096 |
| FC3 (Output) |
완전연결 |
- |
- |
- |
1000 (Softmax) |
🧠 주요 특징 해설
🔹 Conv1
- 큰 필터(11×11), 큰 스트라이드(4) → 계산량 빠르게 줄임
- 입력 224x224 → 출력 55x55 (채널 수 96개)
🔹 MaxPooling
- 3x3 필터, stride=2 → 공간 절반으로 줄임
🔹 깊은 Conv 층 (Conv3~5)
- 필터 크기 작음(3×3) → 여러 번 쌓아서 복잡한 패턴 학습
- 채널 수는 점점 늘어나서 풍부한 특징을 뽑음
🔹 Fully Connected (FC)
- 6×6×256 = 9216개의 노드를 일렬로 펼쳐서
- 4096 → 4096 → 1000으로 이어짐
- 마지막은 Softmax로 1000개 클래스 확률 출력
🖼️ AlexNet 이미지 크기 & 채널 변화 흐름도
[입력] → (224, 224, 3)
↓ Conv1 → (55, 55, 96)
↓ Pooling → (27, 27, 96)
↓ Conv2 → (27, 27, 256)
↓ Pooling → (13, 13, 256)
↓ Conv3 → (13, 13, 384)
↓ Conv4 → (13, 13, 384)
↓ Conv5 → (13, 13, 256)
↓ Pooling → (6, 6, 256)
↓ Flatten → (9216,)
↓ FC1 → (4096,)
↓ FC2 → (4096,)
↓ FC3 → (1000,)
🧪 추가 정보
항목설명
| 활성화 함수 |
모든 Conv 층 뒤에 ReLU |
| 정규화 |
Local Response Normalization (LRN) 사용 (Conv1, Conv2 후) |
| 드롭아웃 |
FC1, FC2 층에서 사용 → 과적합 방지 |
| 옵티마이저 |
SGD 사용 (momentum=0.9, weight decay 적용) |