AlexNet — NeurIPS 2012 (From Scratch Implementation)
Paper: ImageNet Classification with Deep Convolutional Neural Networks
Authors: Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton
Architecture
| Layer | Type | Filters | Kernel | Stride | Padding | Output Size |
|---|---|---|---|---|---|---|
| Conv1 | Conv → ReLU → LRN → MaxPool | 64 | 11×11 | 4 | 2 | 27×27×64 |
| Conv2 | Conv → ReLU → LRN → MaxPool | 192 | 5×5 | 1 | 2 | 13×13×192 |
| Conv3 | Conv → ReLU | 384 | 3×3 | 1 | 1 | 13×13×384 |
| Conv4 | Conv → ReLU | 256 | 3×3 | 1 | 1 | 13×13×256 |
| Conv5 | Conv → ReLU → MaxPool | 256 | 3×3 | 1 | 1 | 6×6×256 |
| FC6 | Linear → ReLU → Dropout(0.5) | — | — | — | — | 4096 |
| FC7 | Linear → ReLU → Dropout(0.5) | — | — | — | — | 4096 |
| FC8 | Linear (Softmax at inference) | — | — | — | — | 1000 |
구현 특징:
- ✅ LRN — 논문 수식 기준 alpha 보정 적용 (
5e-4) - ✅ Dropout — ReLU 뒤에 배치 (논문 순서)
- ✅ bias 초기화 — FC6/7/8
bias=1(논문 Section 5) - ✅ ImageNet 사전학습 가중치 — torchvision 제공 (Top-5 acc ≈ 79.1%)
- ⚠️ Conv1 필터: 64개 — 논문은 96개지만 사전학습 가중치 호환을 위해 타협
1 10
About This Implementation
이 앱은 PyTorch로 처음부터 직접 구현한 AlexNet에 torchvision ImageNet 사전학습 가중치를 로드합니다.
- 커스텀
LRN모듈: alpha × n 보정 적용 (k=2, n=5, α=5e-4, β=0.75) - 오버래핑 최대 풀링 (kernel=3, stride=2) — Section 3.4
- Dropout p=0.5, ReLU 뒤에 적용 — Section 3.5
- FC bias=1 초기화 — Section 5
- Conv1 필터 수(64)는 torchvision 가중치 호환을 위해 논문(96)과 다름
Paper: Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2012). NeurIPS.