๐ ๋
ผ๋ฌธ review
ImageNet Classification with Deep Convolutional Neural Networks ๋ ผ๋ฌธ ๋ฆฌ๋ทฐ ๋ฐ ์ ๋ฆฌ
ใ
ใ
ใ
ใ
2023. 4. 24. 00:33
728x90
๋ฅ๋ฌ๋์ ๊ธฐ์ด ๋ ผ๋ฌธ์ด๋ผ๊ณ ํ ์ ์๋ ImageNet Classification with Deep Convolutional Neural Networks (AlexNet) ๋ฅผ ๋ฆฌ๋ทฐํด ๋ณด๋ ค๊ณ ํ๋ค.
Link : https://proceedings.neurips.cc/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf
0. Abstract
- ImageNet LSVRC-2010 ๋ํ์์ 120๋ง ๊ฐ์ ๊ณ ํด์๋ ์ด๋ฏธ์ง๋ฅผ 1000๊ฐ์ ๋ค๋ฅธ ํด๋์ค๋ก ๋ถ๋ฅํ๊ธฐ ์ํด ๋๊ท๋ชจ์ ์ฌ์ธต ์ปจ๋ณผ๋ฃจ์ ์ ๊ฒฝ๋ง์ ํ๋ จ์ํด
- top1, top5 ์ค๋ฅ์จ์ ๊ฐ๊ฐ 37.5%, 17.0%์ ์ค๋ฅ์จ์ ๋ฌ์ฑํจ (์ด์ ๋ณด๋ค ์๋นํ ๋ฐ์ )
- ๋งค์ฐ ํจ์จ์ ์ธ GPU ์ฌ์ฉ
- ์ค๋ฒ ํผํ ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์๋ก์ด ๋ฐฉ๋ฒ์ธ ‘dropout’ ๊ธฐ๋ฒ ์ฌ์ฉ
- 5๊ฐ์ convoloution layer์ 3๊ฐ์ fully connected layer๋ฅผ ์ฌ์ฉํจ
1. Introduction
- ์ด์ ๊น์ง์ ๋ฐ์ดํฐ์ ์ ์ ๋ง์ฅ ์ ๋๋ก ์๋์ ์ผ๋ก ์์๊ธฐ ๋๋ฌธ์ ๊ฐ๋จํ ์ธ์ ์์ ์ ์ ์ํํจ(MNIST ๋ฐ์ดํฐ์ ). ๊ทธ๋ฌ๋ ์ค์ ์ฌ๋ฌผ์ ์ด๋ฌํ ๋ฐ์ดํฐ์ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ํจ์ฌ ๋ง์ ๋ฐ์ดํฐ์ ์ด ํ์ํจ → ImageNet์ด๋ผ๋ 22000 ์ด์์ ์นดํ ๊ณ ๋ฆฌ์ 15๋ง์ฅ์ ๊ณ ํด์๋ ์ด๋ฏธ์ง ๋ฐ์ดํฐ์ ๋ฑ์ฅ
- ๋์ฉ๋์ ๋ฐ์ดํฐ์ ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋ ํฐ ์ฉ๋์ ๋ชจ๋ธ์ด ํ์ํจ
- CNN์ ์ฉ๋์ depth๋ breath๋ฅผ ๋ฌ๋ฆฌํ๋ฉด์ ์กฐ์ ํจ, ํจ์ฌ ์ ์ connection๊ณผ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํด ํ๋ จํ๊ธฐ ์ฝ์ง๋ง, ์ฑ๋ฅ์ด ๋์ ๊ฐ๋ฅ์ฑ ์กด์ฌ
- ์ด ๋
ผ๋ฌธ์ ๊ธฐ์ฌ
- ILSVRC-2010 ๋ฐ ILSVRC-2012 ๋ํ์ ์ฌ์ฉ๋ ImageNet ๋ฐ์ดํฐ์ ์์ ๊ฐ์ฅ ํฐ CNN์ ํ๋ จ์์ผฐ๊ณ ์ต๊ณ ์ ์ฑ๋ฅ์ ๋ฌ์ฑํจ
- Highly-optimized GPU๋ฅผ ์ด์ฉํ 2D conv์ implementation๊ณผ CNN์ ํ์ต์ํค๊ธฐ ์ํ operation์ ๊ณต๊ฐํจ
- ๊ณผ์ ํฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฌ๋ฌ ๋ฐฉ๋ฒ ์ฌ์ฉํจ
- 5๊ฐ์ conv-layer์ 3๊ฐ์ fc-layer๋ฅผ ์ฌ์ฉํ๋๋ฐ conv-layer ์ค ์ด๋ค layer๋ฅผ ์ ๊ฑฐํด๋ ์ฑ๋ฅ์ด ํ์ฐํ ๋จ์ด์ง (๋ชจ๋ ์ ์๋ฏธํ layer)
2. The Dataset
- ImageNet์ ์ฝ 22,000๊ฐ ๋ฒ์ฃผ์ ์ํ๋ 1,500๋ง ๊ฐ ์ด์์ ๋ ์ด๋ธ์ด ์ง์ ๋ ๊ณ ํด์๋ ์ด๋ฏธ์ง์ ๋ฐ์ดํฐ์
- ILSVRC๋ 1000๊ฐ์ ๋ฒ์ฃผ ๊ฐ๊ฐ์ ์ฝ 1000๊ฐ์ ์ด๋ฏธ์ง๊ฐ ์๋ ImageNet์ ๋ถ๋ถ ์งํฉ์ผ๋ก ์ด ์ฝ 120๋ง ๊ฐ์ ํ๋ จ ์ด๋ฏธ์ง, 50,000๊ฐ์ ๊ฒ์ฆ ์ด๋ฏธ์ง, 150,000๊ฐ์ ํ ์คํธ ์ด๋ฏธ์ง ๋ฐ์ดํฐ์
- ๋ ๊ฐ์ง ์ค๋ฅ์จ ์ฌ์ฉ
- top-1
- top-5 : ๊ฐ์ฅ ๊ฐ๋ฅ์ฑ์ด ๋์ 5๊ฐ์ ๋ ์ด๋ธ ์ค ์ ๋ต ๋ ์ด๋ธ์ด ์กด์ฌํ ํ๋ฅ
- ImageNet์ ๊ฐ๋ณํด์๋ ์ด๋ฏธ์ง๋ฐ์ดํฐ์ ์ผ๋ก 256 × 256์ ๊ณ ์ ํด์๋๋ก ๋ค์ด์ํ๋ง (CenterCrop)
- ๊ฐ ํฝ์ ์ Centerize ํ๋ ๊ฒ ์ธ์๋ ๋ค๋ฅธ ์ ์ฒ๋ฆฌ ๊ณผ์ ์ ์งํํ์ง ์์
3. The Architecture
5๊ฐ์ convolution layer์ 3๊ฐ์ fullt-connected layer๋ก ์ด 8๊ฐ์ layer๋ก ๊ตฌ์ฑ
3-1. ReLU Nonlinearity
- ๋ณดํต ๋ด๋ฐ์ ์ถ๋ ฅ์ tanh(x) ํจ์๋ sigmoid๋ฅผ ๊ฑฐ์นจ → ์ด๋ฌํ ํ์ฑ ํจ์๋ gradient descent ๋ฐฉ๋ฒ์ผ๋ก ํ์ตํ ๋ ํ์ต ์๋๋ฅผ ๋งค์ฐ ์ ํ์ํด
- non-saturating nonlinearity๋ก ReLU๋ฅผ ์ฌ์ฉ (tanh๋ณด๋ค ๋น ๋ฆ)
- f(x) = max(0,x)
- ์๋ ๊ทธ๋ํ๋ฅผ ํตํด tanh๋ฅผ ์ฌ์ฉํ์๋ ๋ณด๋ค ReLU๋ฅผ ์ฌ์ฉํ์ ๋ ์๋๊ฐ ํจ์ฌ ๋น ๋ฅธ ๊ฒ์ ์ ์ ์์
3-2. Training on Multi GPUs
- ํ๋์ GTX 580 GPU๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ 3GB๋ฐ์ ๋์ง ์์ ๋คํธ์ํฌ์ ํ์ต์ ์ ํ์ด ์๊ธฐ ๋๋ฌธ์ ๋ ๊ฐ์ GPU๋ฅผ ์ฌ์ฉํ์ฌ ํ์ต์ํด
- ํ์ฌ์ GPU๋ ํธ์คํธ ์์คํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฑฐ์น์ง ์๊ณ ์๋ก์ ๋ฉ๋ชจ๋ฆฌ์์ ์ง์ ์ฝ๊ณ ์ธ ์ ์๊ธฐ ๋๋ฌธ์ ๊ต์ฐจ GPU ๋ณ๋ ฌํ์ ํนํ ์ ํฉํจ
- GPU parallelization์ ์ปค๋์ ๋ฐ์ผ๋ก ๋๋์ด ๊ฐ๊ฐ ํ๋์ GPU์ ํ ๋นํ๋ ๊ฑด๋ฐ, ์ถ๊ฐ๋ก ๋ GPU ๊ฐ์ communication์ ํน์ layer์์๋ง ๋ฐ์ํ๋๋ก ํจ. ๋ฐ๋ผ์ layer 3์์๋ layer 2์ ๋ชจ๋ kernel map์ ๋ฐ์ ์ฌ ์ ์์ง๋ง layer 4๋ ๊ฐ์ GPU์ layer 3์ ์ปค๋ ๋งต์์๋ง ์ ๋ ฅ์ ๋ฐ์
- 2๊ฐ์ GPU๋ฅผ ์ฌ์ฉํ๋ฉด 1๊ฐ์ GPU๋ฅผ ์ฌ์ฉํ ๋๋ณด๋ค ๋ ์ ์ ์๊ฐ์ ์์ํจ
3.3 Local Response Normalization
- ReLU๋ ์ ๋ ฅ ์ ๊ทํ๋ฅผ ํ์๋ก ํ์ง ์์
- ํฉ์ ๋์ผํ ๊ณต๊ฐ ์์น์์ n๊ฐ์ "์ธ์ ํ" ์ปค๋ ๋งต์ ๊ฑธ์ณ ์คํ๋๋ฉฐ, N์ ๋ ์ด์ด์ ์ด ์ปค๋ ์
- ์ปค๋ ๋งต์ ์์๋ ๋ฌผ๋ก ํ๋ จ์ด ์์๋๊ธฐ ์ ์ ์์์ ์ผ๋ก ๊ฒฐ์ ๋จ
- response normalization์ lateral inhibition์ ๊ตฌํํ ํํ๋ก ๋ค๋ฅธ ์ปค๋์์ ๊ณ์ฐ๋ ์ถ๋ ฅ๊ณผ ๊ฒฝ์์ ์ผ์ผํค๋ ๊ฒ
- ์์ k, n, α, β๋ hyperparameter๋ก, k = 2, n = 5, α = 10-4, β = 0.75 ์ฌ์ฉ
- ์ ๊ทํ๋ top- 1, top- 5์ ์ค๋ฅ์จ์ ๊ฐ๊ฐ 1.4%์ 1.2% ๊ฐ์ ์ํด
3.4 Overlapping Pooling
- CNN์ Pooling layer๋ ๋์ผํ ์ปค๋ ๋งต์์ ์ธ์ ํ ๋ด๋ฐ ๊ทธ๋ฃน์ ์ถ๋ ฅ์ ์์ฝํจ
- ๋ณดํต, pooling layer๋ overlapํ์ง ์์
- pooling layer์ ์ปค๋ ์ฌ์ด์ฆ๋ฅผ z, stride๋ฅผ s๋ผ๊ณ ํ ๋, s=z์ด๋ฉด ๋ณดํต์ overlapํ์ง ์๋ pooling layer๋ก ํด์ํจ
- ๊ทธ๋ฌ๋ ๋ณธ ๋ ผ๋ฌธ์์๋ z=3, s=2๋ก ํ์ฌ overlapping pooling์ ๊ตฌ์ฑํด ๊ณผ์ ํฉ์ด ๋ ๋ฐ์ํ๊ฒ ๋จ
3.5 Overall Architecture
- CNN์ ์ ๋ฐ์ ์ธ ๊ตฌ์ฑ์ ๊ฐ์ค์น๊ฐ ์๋ 8๊ฐ์ layer๋ฅผ ํฌํจํ๋๋ฐ, ์ฒ์ 5๊ฐ๋ ์ปจconvolution-layer์ด๊ณ ๋๋จธ์ง 3๊ฐ๋ fully-connected layer๋ก ๊ตฌ์ฑ๋จ, ๋ง์ง๋ง fc layer๋ ์ํํธ๋งฅ์ค ํจ์๋ฅผ ์ฌ์ฉํด 1000๊ฐ์ ๋ ์ด๋ธ์ ๋ํ ๋ถํฌ๋ฅผ ์์ฑํจ
- 2, 4, 5 ๋ฒ์งธ conv layer์ ์ปค๋์ ๋์ผํ GPU์ ์์ฃผํ๋ ์ด์ layer์ ์ปค๋ ๋งต์๋ง ์ฐ๊ฒฐ๋จ
- 3๋ฒ์งธ conv layer๋ 2๋ฒ์งธ conv layer์ ๋ชจ๋ ์ปค๋ ๋งต์ ์ฐ๊ฒฐ
- Response-normalization layer๋ 1๋ฒ์งธ์ 2๋ฒ์งธ conv layer ๋ค์ ์์นํจ
- Max-pooling layer๋ 1,2,5๋ฒ์งธ conv layer๋ค์ ์์นํจ
- ReLU๋ ๋ชจ๋ conv layer์ fc layer๋ค์ ์์นํจ
- ๊ฐ layer
- Conv layer1: 224x224x3์ ์ ๋ ฅ ์ด๋ฏธ์ง๋ฅผ 11x11x3 ํฌ๊ธฐ์ stride๊ฐ 4์ธ 96๊ฐ์ ์ปค๋๋ก ์ถ๋ ฅ
- Conv layer2: conv layer1์ ์ถ๋ ฅ์ response-normalize, pooling์ ๊ฑฐ์น๊ณ 5x5x48 ํฌ๊ธฐ์ 256๊ฐ์ ์ปค๋๋ก ์ถ๋ ฅ
- Conv layer3: conv layer2์ ์ถ๋ ฅ์ ormalize, pooling์ 3x3x256 ํฌ๊ธฐ์ 384๊ฐ์ ์ปค๋๋ก ์ถ๋ ฅ
- Conv layer4: conv layer3์ ์ถ๋ ฅ์ 3x3x192 ํฌ๊ธฐ์ 384๊ฐ์ ์ปค๋๋ก ์ถ๋ ฅ
- Conv layer5: conv layer4์ ์ถ๋ ฅ์ 3x3x192 ํฌ๊ธฐ์ 256๊ฐ์ ์ปค๋๋ก ์ถ๋ ฅ
- FC layer1: conv layer5์ ์ถ๋ ฅ์ pooling์ ๊ฑฐ์น๊ณ 4096๊ฐ๋ก ์ถ๋ ฅ
- FC layer2: fc layer1์ ์ถ๋ ฅ์ 4096๊ฐ๋ก ์ถ๋ ฅ
- FC layer3: fc layer2์ ์ถ๋ ฅ์ 1000๊ฐ๋ก ์ถ๋ ฅ
4. Reducing Overfitting
neural network๋ 60๋ง๊ฐ์ parameter๋ฅผ ๊ฐ์ง → ๊ณผ์ ํฉ ๋ฐ์ ๊ฐ๋ฅ
4.1 Data Augmentation
- ๋ฐ์ดํฐ ๋ณํ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ์ ์๋ฅผ ์ธ์์ ์ผ๋ก ์ฆ๊ฐ ์ํด
- ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์กด์ฌํจ (๋ ๋ฐฉ๋ฒ ๋ชจ๋ ๋ณํ๋ ์ด๋ฏธ์ง๋ฅผ ๋์คํฌ์ ์ ์ฅํ ํ์ X)
- ์ด๋ฏธ์ง ๋ณํ๊ณผ ์ํ ๋ฐ์ฌ๋ฅผ ์์ฑ : 256x256 ์ด๋ฏธ์ง๋ฅผ 224x224 ํฌ๊ธฐ๋ก RandomResizedCropํ๊ณ RandomHorizontalFlip์ ์ ์ฉ → ํ๋์ ์ด๋ฏธ์ง์์ 2048์ฅ์ ์ด๋ฏธ์ง๋ฅผ ์ป์ ์ ์๊ฒ ๋จ
- RGB ์ฑ๋์ ๊ฐ๋(intensity)๋ฅผ ๋ฐ๊ฟ : pi์ γi๋ ๊ฐ๊ฐ RGB ํฝ์ ๊ฐ์ 3×3 ๊ณต๋ถ์ฐ ํ๋ ฌ์ ๊ณ ์ ๋ฒกํฐ์ ๊ณ ์ ๊ฐ์ด๋ฉฐ, αi๋ ํ๊ท ์ด 0์ด๊ณ ํ์คํธ์ฐจ๊ฐ 0.1์ธ ๊ฐ์ฐ์์์์ ์ถ์ถํ ๋๋ค ๋ณ์, ์๋ ๊ฐ์ ๊ฐ๊ฐ RGB ์ด๋ฏธ์ง ํฝ์ ์ ๋ํจ
- top- 1์ ์ค๋ฅ์จ์ 1% ์ด์ ์ค์
4.2 Dropout
- Droptout ๊ธฐ๋ฒ์ ์ฌ์ฉ์๊ฐ ์ง์ ํ ํ๋ฅ ์ ๊ทผ๊ฑฐ๋ก ํ์ฌ ํน์ ๋ด๋ฐ์ ์ ํธ๋ฅผ ์ ๋ฌํ์ง ์๋ ๋ฐฉ๋ฒ
- ํ๋ฅ 0.5์ ๊ฐ hidden neuren์ ์ถ๋ ฅ์ 0์ผ๋ก ์ค์ ํ๋ ๊ฒ์ผ๋ก ๊ตฌ์ฑ
- 0์ ์ถ๋ ฅํ ๋ด๋ฐ์ ์ญ์ ํ์ ์ฐธ์ฌํ์ง ์์
- ๋งค๋ฒ ์ ๋ ฅ์ ๋ฐ๋ผ ํ์ฑํ๋๋ ๋ด๋ฐ์ด ๋ฌ๋ผ์ง๊ณ , ์ด๋ก ์ธํด ๋ด๋ฐ ๊ฐ์ ๋ณต์กํ co-adaptation์ ์ค์ด๊ฒ ๋จ → ์ฌ๋ฌ ๋ด๋ฐ ๊ฐ์ ์กฐํฉ์์๋ ํ์คํ ํน์ง๋ง์ ํ์ตํ๊ฒ ๋จ
5. Details of learning
- ๋ฐฐ์น ํฌ๊ธฐ๊ฐ 128๊ฐ, Momentum 0.9, Weight decay: 0.0005์ธ ํ๋ฅ ์ ๊ฒฝ์ฌ ํ๊ฐ๋ฒ์ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ํ๋ จ
- Weight initialization: Gaussian distribution of μ=0, σ=0.01
- Bias initialization: 2,4,5๋ฒ์งธ conv layers, fc layers -> 1 / 1,3๋ฒ์งธ conv layers -> 0
- learning rate: 0.01
- Epochs: 90
- ์๋ ์์ ์ํด weight ๊ฐฑ์
- Bias๋ฅผ 1๋ก ์ด๊ธฐํ ํ layer๋ ReLU์ ์์๊ฐ ๋ค์ด๊ฐ๊ฒ ํ์ฌ ํ์ต์ ๊ฐ์์ํด
- learning rate๋ ๋ชจ๋ layer์ ๋ํด ๊ณตํต์ ์ผ๋ก ์ ์ฉ์ํค์ง๋ง, ํ์ฌ learning rate์์ validation error๊ฐ ๊ฐ์ ๋์ง ์๋๋ค๋ฉด ํ์ฌ learning rate์ 10์ ๋๋ ์ค → ํ์ต ์ข ๋ฃ๊น์ง 3๋ฒ ๊ฐ์
6. Results
- ์ฐ์ธก์ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๋ฉด CNN๊ตฌ์กฐ๊ฐ ๋ค๋ฅธ ๊ตฌ์กฐ์ ๋นํด ํจ์จ์ ์์ ์ ์ ์์
- ๋ถ๋ฅ๋ฅผ ์งํํ ๋ ๋ชจ๋ธ ํ๊ฐ๊ฐ ์๋ ์ฌ๋ฌ๊ฐ์ ๋ชจ๋ธ์ ํ๊ท ์ถ๋ ฅ๊ฐ์ ์ด์ฉํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๊ตฌํ๋ ๋ฐฉ์์ ์์๋ธ์ด๋ผ ํ๋ฉฐ ์์๋ธ ๋ชจ๋ธ์ ์ด์ฉํ๋ฉด ์ฑ๋ฅ์ด ํฅ์ ๋จ์ ์ข์ธก ๊ฒฐ๊ณผ์์ ํ์ธํ ์ ์์
- ์ฌ๋ฌ๊ฐ์ ์ ์ฌํ CNN์ ์ด์ฉํ์ฌ 1๊ฐ์ CNN๋ชจ๋ธ๋ง ์ฌ์ฉํ ๊ฒ ๋ณด๋ค ์ข์ ๊ฒฐ๊ณผ๋ฅผ ์ป๋ ๊ฒ์ ๋ณด์ฌ์ฃผ๋ฉฐ ์ข์ธก ๊ฒฐ๊ณผ์ค 1CNN*/7CNN*์ด๋ผ ์ ํ ๋ถ๋ถ์ ์ด ์ ๋ชจ๋ธ์ ํ์ต ๊ฐ์ค์น์ธ fine-tune์ ์ด๊ธฐ๊ฐ์ผ๋ก ์ ์ํ ๋ชจ๋ธ์ด๋ผ๋ ์๋ฏธ์ด๋ฉฐ ์ฒ์๋ถํฐ ๊ฐ์ค์น๋ฅผ ํ์ต์ํค๋๊ฒ ๋ณด๋ค ๋ ๋์ ์ฑ๋ฅ์ ๋ณด์ฌ์ค
728x90