๐ ๋
ผ๋ฌธ ๋ฆฌ๋ทฐ/CV
[AlexNet] ImageNet Classification with Deep Convolutional Neural Networks
2022. 7. 13. 10:55
- -
CNN์ ์์์ธ AlexNet
ImageNet Classification with Deep Convolutional Neural Networks
Abstract
- ImageNet LSVRC-2010์ test ๋ฐ์ดํฐ์ ์์ top-1 error rate: 37.5%, top-5 error rate: 17.0% ๋ฌ์ฑ
- ILSVRC-2012์์๋ top-5 test error rate 15.3% ๋ฌ์ฑ
- ์ ๊ฒฝ๋ง์ 6์ฒ๋ง ๊ฐ์ ํ๋ผ๋ฏธํฐ์ 65๋ง ๊ฐ์ ๋ด๋ฐ์ ๊ฐ์ง๊ณ ์๊ณ ,
max-pooling layer๋ฅผ ์ฌ์ฉํ 5๊ฐ์ convolutional layer์ final 1000-way softmax๋ฅผ ์ฌ์ฉํ 3๊ฐ์ fully-connected layer๋ก ๊ตฌ์ฑ - ํ์ต์ ๋น ๋ฅด๊ฒ ์งํ์ํค๊ธฐ ์ํด non-saturating ๋ด๋ฐ๊ณผ convolution ๊ฐ๋์ ๋งค์ฐ ํจ์จ์ ์ธ GPU ์ฌ์ฉ
- fully-connected layer์์ overfitting์ ์ค์ด๊ธฐ ์ํด dropout ์ฌ์ฉ
Dataset
- ILSVRC-2010์์๋ง test์ label์ด ์ฌ์ฉ ๊ฐ๋ฅํด ๋๋ถ๋ถ์ ์คํ์ ์ด ๋ฒ์ ์ผ๋ก ์ฌ์ฉ
- ILSVRC-2012์๋ ๋ชจ๋ธ์ ๋ฑ๋กํด ์ด ๋ฒ์ ์ ๋ํ ๊ฒฐ๊ณผ๋ ์์ง๋ง test์ label์ ์ฌ์ฉํ ์ ์์์
- ImageNet์์๋ ๋๊ฐ์ง error rate ์ฌ์ฉ
- 1) top-1 error rate: (์ ๋ต label) == (๊ฐ์ฅ probable ํ label)
- 2) top-5 error rate: (์ ๋ต label) in (์์ 5 probableํ label)
- error rate ์ฐธ๊ณ
- ImageNet์ ๋ค์ํ ํด์๋์ ์ด๋ฏธ์ง๋ค๋ก ์ด๋ฃจ์ด์ ธ ์์ง๋ง ๋
ผ๋ฌธ์์ ์ฌ์ฉํ ๋ชจ๋ธ์ ์ผ์ ํ input ์ฐจ์ ์๊ฐ ํ์ํด
ํด์๋๊ฐ ๊ณ ์ ๋ 256 × 256์ผ๋ก down-sample ์งํ- ์ง์ฌ๊ฐํ ์ด๋ฏธ์ง๊ฐ ์ฃผ์ด์ง๋ฉด ๋จผ์ ์งง์ ๋ณ์ ๊ธธ์ด๊ฐ 256์ด ๋๋๋ก ์ด๋ฏธ์ง์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ๋ค์,
๊ทธ ์กฐ์ ๋ ์ด๋ฏธ์ง์์ ์ค์์ 256x256 ํจ์น๋ฅผ ์๋ผ๋
- ์ง์ฌ๊ฐํ ์ด๋ฏธ์ง๊ฐ ์ฃผ์ด์ง๋ฉด ๋จผ์ ์งง์ ๋ณ์ ๊ธธ์ด๊ฐ 256์ด ๋๋๋ก ์ด๋ฏธ์ง์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ๋ค์,
- train์ ์ ๊ฐ ํฝ์ ์ mean activity๋ฅผ ๋นผ๋ ๊ฒ์ ์ ์ธํ ๋ค๋ฅธ ์ ์ฒ๋ฆฌ๋ ์งํํ์ง ์์
- ํฝ์ ์ raw RGB value๋ฅผ ๊ฐ์ง๊ณ network๋ฅผ ํ๋ จ์ํด
Architecture
5๊ฐ์ convolutional layer์ 3๊ฐ์ fully-connected layer๋ก ์ด 8๊ฐ์ layer๋ก ๊ตฌ์ฑ
ReLU Nonlinearity
- ๋ณดํต ๋ด๋ฐ์ output์ tanh๋ sigmoid๋ฅผ ๊ฑฐ์น๋๋ฐ
- tanh: $f(x) = tanh(x)$
- sigmoid: $f(x) = (1 + e^−x)^−1$
- ์ด๋ฌํ saturating nonlinearity๋ gradient descent๋ฅผ ์ฌ์ฉํ ๋ ํ์ต ์๋๊ฐ non-saturating nonlinearity๋ณด๋ค ๋งค์ฐ ๋๋ฆผ
- ๋ฐ๋ผ์ ๋
ผ๋ฌธ์์๋ non-saturating nonlinearity๋ก ReLU๋ฅผ ์ฌ์ฉ
- $f(x) = max(0, x)$
- tanh(์ ์ )๋ฅผ ์ฌ์ฉํ์ ๋๋ณด๋ค ReLU๋ฅผ ์ฌ์ฉํ์ ๋ 6๋ฐฐ ๋นจ๋ฆฌ training error rate 0.25 ๋ฌ์ฑ
-> ์๋ ด ์๋๊ฐ ๊ฐ์ ๋๋ค
Training on Multiple GPUs
- ํ๋์ GTX 580 GPU๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ 3GB์ด๊ธฐ ๋๋ฌธ์ ๋ ผ๋ฌธ์์๋ net์ 2๊ฐ์ GPU์ ๋๋ ์ ์งํ
- ๋
ผ๋ฌธ์์ ์ ์ฉํ ๋ณ๋ ฌํ ๋ฐฉ์์ ๊ธฐ๋ณธ์ ์ผ๋ก kernel(๋๋ ๋ด๋ฐ)์ ์ ๋ฐ์ ๊ฐ GPU์ ๋ฐฐ์นํ๊ณ , ์ถ๊ฐ์ ์ผ๋ก GPU๋ค๋ผ๋ฆฌ ํน์ layer์์๋ง ์ ๋ฌํ๋๋ก ํจ
- ์๋ฅผ ๋ค์ด, layer 3์ kernel๋ค์ layer 2์ ๋ชจ๋ kernel map์ผ๋ก๋ถํฐ ์ ๋ ฅ(input)์ ๋ฐ์์ค์ง๋ง, layer 4์ kernel๋ค์ ๊ฐ์ GPU์ ์๋ layer 3์ kernel map์ผ๋ก๋ถํฐ๋ง ์ ๋ ฅ ๋ฐ์
- ์ฐ๊ฒฐ ํจํด์ ์ ํํ๋ ๊ฒ์ cross-validation์ ๋ฌธ์ ์ด์ง๋ง, ์ด๋ฅผ ํตํด ์ ๋ฌ๋์ด ๊ณ์ฐ๋์ ํ์ฉ ๊ฐ๋ฅํ ๋ถ๋ถ์ด ๋ ๋๊น์ง ์ ๋ฌ๋์ ์ ๋ฐํ๊ฒ ์กฐ์ ํ ์ ์์
- ๊ทธ์ ๋ฐ๋ฅธ ์ํคํ ์ฒ๊ฐ columnar CNN์ ์ํคํ ์ฒ์ ๋ค์ ์ ์ฌํ์ง๋ง ๋ ผ๋ฌธ์ column๋ค์ ๋ ๋ฆฝ์ ์ด์ง ์๋ค๋ ์ ์ด ๋ค๋ฆ
- ํ๋์ GPU์์ ํ๋ จ๋ ๊ฐ convolutional layer์ kernel ์๊ฐ ์ ๋ฐ์ธ net์ ๋น๊ตํ์ ๋, top-1๊ณผ top-5 error rate๋ฅผ ๊ฐ๊ฐ 1.7%, 1.2% ์ค์
- 2๊ฐ์ GPU๋ฅผ ์ฌ์ฉํ net์ด ํ๋์ GPU๋ฅผ ์ฌ์ฉํ net๋ณด๋ค ํ์ต ์๊ฐ์ด ์กฐ๊ธ ๋ ์งง์์
Local Response Normalization
- ReLU๋ saturating์ ๋ฐฉ์งํ๊ธฐ ์ํ input normalization์ด ํ์ํ์ง ์๋ค๋ ์์ฑ์ ๊ฐ์ง
- ๊ทธ๋ฌ๋ ๋ ผ๋ฌธ์์๋ local normalization์ด generalization์ ๋์์ด ๋๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํจ
- $a^i_{x,y}$: (x, y) ์์น์ ์ปค๋ i kernel $i$๋ฅผ ์ ์ฉํ ๋ค์ ReLU nonlinearity (๋น์ ํ์ฑ)์ ์ ์ฉํด ๊ณ์ฐ๋ ๋ด๋ฐ์ ํ๋
- response-normalized ํ๋์ธ $b^i_{x,y}$ ๋ ์์ ์์ผ๋ก ํํ๋จ
- sum์ ๋์ผํ ๊ณต๊ฐ ์์น์ ์๋ n๊ฐ์ ์ธ์ ํ kernel map๋ค์์ ์ด๋ฃจ์ด์ง
- $N$: layer์ ์ด kernel ์
- kernel map์ ์์๋ ์์์ ์ด๋ฉฐ ํ์ต์ด ์์๋๊ธฐ ์ ์ ์ ํด์ง
- ์ด๋ฌํ ์ข
๋ฅ์ response normalization์ ์ค์ ๋ด๋ฐ์์ ๋ฐ๊ฒฌ๋๋ ์ ํ์์ ์๊ฐ์ ๋ฐ์ lateral inhibition์ ๊ตฌํํ ํํ
- ๋ค๋ฅธ kernel์ ์ฌ์ฉํด ๊ณ์ฐ๋ ๋ด๋ฐ output๋ค ๊ฐ์ ๊ฒฝ์์ ์ผ์ผํด
- ์์ $k$, $n$, $α$, $β$๋ validation์ ์ ์ฌ์ฉํด ๊ฒฐ์ ๋๋ ํ์ดํผ ํ๋ผ๋ฏธํฐ๋ก, ๋ ผ๋ฌธ์์๋ $k = 2$, $n = 5$, $α = 10^−4$ (=0.0001), $β = 0.75$ ๋ก ์ค์
- ํน์ layer๋ค์์ ReLU nonlinearity๋ฅผ ์ ์ฉํ ํ ์ด normalization์ ์ ์ฉํจ
- Response normalization์ top-1๊ณผ top-5 error rate๋ฅผ ๊ฐ๊ฐ 1.4%, 1.2% ๊ฐ์์ํด
- CIFAR-10 ๋ฐ์ดํฐ ์
์์๋ ์ด ๋ฐฉ์์ ํจ๊ณผ๋ฅผ ํ์ธํจ
- four-layer CNN์ test error rate์ด normalization์ ์ ์ฉํ์ง ์์์ ๋๋ 13%, ์ ์ฉํ์ ๋๋ 11%๋ฅผ ๋ฌ์ฑ
Overlapping Pooling
- ์ ํต์ ์ผ๋ก, pooling unit์ ๊ฒน์น์ง ์์
- pooling layer์ kernel ์ฌ์ด์ฆ๊ฐ $z$, stride๋ $s$๋ผ๊ณ ํ๋ค๋ฉด
- $s = z$ ๋ก ์ค์ -> CNN์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์ ํต์ ์ธ local pooling
- $s < z$ ๋ก ์ค์ -> overlapping pooling
- => stride๋ฅผ kernel ์ฌ์ด์ฆ์ ๊ฐ๊ฒ ์ค์ ํ๋ฉด ๋ณดํต์ local pooling, stride๋ฅผ kernel ์ฌ์ด์ฆ๋ณด๋ค ์๊ฒ ์ค์ ํ๋ฉด overlapping pooling
- ๋
ผ๋ฌธ์์๋ $s = 2$, $z = 3$์ผ๋ก ์ฌ์ฉ
- => stride = 2, kernel size = $3 × 3$
- ๋์ผํ ์ฐจ์์ output์ ์์ฑํ๋ $s = 2, z = 2$์ non-overlapping pooling๊ณผ ๋น๊ตํ์ ๋, overlapping pooling์ ์ฌ์ฉํ ๋ฐฉ์์ด top-1 error rate: 0.4%, top-5 error rate: 0.3%๋ก ๊ฐ์์ํด
- ํ์ตํ๋ ๋์ overlapping pooling์ ์ฌ์ฉํ ๋ชจ๋ธ๋ค์์ overfit์ด ๋ ๋ฐ์ํจ
Overall Architecture
- AlexNet์ ๊ตฌ์กฐ๋ ์/์๋๋ก ๊ตฌ๋ถ๋์ด ์๋๋ฐ ์ด๋ 2๊ฐ์ GPU๋ฅผ ๋ณ๋ ฌ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํจ
- ๋ง์ง๋ง fully-connected layer์ output์ 1000๊ฐ์ ํด๋์ค๋ก ๋ถ๋ฅํ๋ 1000-way softmax๋ก ์ ๋ฌ๋จ
- 2, 4, 5๋ฒ์งธ conv layer์ kernel์ ๋์ผํ GPU์ ์๋ ์ด์ layer์ kernel map์๋ง ์ฐ๊ฒฐ๋จ
- 3๋ฒ์งธ conv layer์ kernel์ 2๋ฒ์งธ layer์ ๋ชจ๋ kernel map์ ์ฐ๊ฒฐ๋จ
- fully-connected layer์ ๋ด๋ฐ์ ์ด์ layer์ ๋ชจ๋ ๋ด๋ฐ๊ณผ ์ฐ๊ฒฐ๋จ
- Local Response Normalization์ด 1๋ฒ์งธ์ 2๋ฒ์งธ conv layer์์ ์ผ์ด๋จ
- Max-pooling layer๋ Local Response Normalization์ ์ ์ฉํ๋ 1๋ฒ์งธ์ 2๋ฒ์งธ conv layer๊ณผ 5๋ฒ์งธ conv layer์์ ์ผ์ด๋จ
- ReLU non-linearity๋ ๋ชจ๋ conv layer์ fully-connected layer์ output์ ์ ์ฉ๋จ
Conv layer 1
- input image = $224×224×3$
- AlexNet์ RGB 3๊ฐ์ง ์์์ ๊ฐ์ง๋ Image๋ฅผ input์ผ๋ก ์ฌ์ฉ. ๊ทธ๋์ ์ด๋ฏธ์ง์ depth๊ฐ 3์ด๊ณ , ์ด๋ฅผ convolution ํ๊ธฐ ์ํด filter์ depth๋ 3์ด ๋จ
- kernel = 96
- kernel size = $11×11×3$
- stride = 4
Conv layer 2
- input = Local Response Normalization๊ณผ pooling์ด ์ ์ฉ๋ conv layer 1์ output
- kernel = 256
- kernel size = $5 × 5 × 48$
Conv layer 3
- input = Local Response Normalization๊ณผ pooling์ด ์ ์ฉ๋ conv layer 2์ output
- kernel = 384
- kernel size = $3 × 3 × 256$
Conv layer 4
- kernel = 384
- kernel size = $3 × 3 × 192$
Conv layer 5
- kernel = 256
- kernel size = $3 × 3 × 192$
- 3, 4, 5๋ฒ์งธ conv layer๋ pooling์ด๋ normalization ์์ด ์ฐ๊ฒฐ๋จ
fully-connected layers
- ๊ฐ๊ฐ 4096 ๊ฐ์ ๋ด๋ฐ์ ๊ฐ์ง
cf) input image = $224×224×3$ or input image = $227×227×3$
- ๋ ผ๋ฌธ์์๋ input์ด $224×224$์ผ๋ก ๋์ค๋๋ฐ ์์ ๋ ์ด๋ฏธ์ง์์๋ $227×227$์ด๋ผ๊ณ ์ค๋ช ๋์ด ์์
- ๋ ผ๋ฌธ์ ์ค์ ๋ stride์ padding์ ๊ณ ๋ คํ์ ๋, ์ฌ๋ฌ layer๋ฅผ ๊ฑฐ์ณ $13×13$์ผ๋ก ๋๋ฌํ๋ ค๋ฉด $227×227$์ด ๋ง๋ค๊ณ ํจ
- => ๋ ผ๋ฌธ์ ๊ทธ๋ฆผ์ด ์๋ชป๋ ๊ฒ
Reducing Overfitting
overfitting์ ์ค์ด๊ธฐ ์ํด Data Augmentation๊ณผ Dropout ์ฌ์ฉ
Data Augmentation
- ์ด๋ฏธ์ง ๋ฐ์ดํฐ์ ๋ํ overfitting์ ์ค์ด๋ ๊ฐ์ฅ ์ฝ๊ณ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ label-preserving transformations๋ฅผ ์ฌ์ฉํด ๋ฐ์ดํฐ์
์ ์ธ์์ ์ผ๋ก ๋๋ฆฌ๋ ๊ฒ
- label-preserving transformation
- : ์๋ณธ ๋ฐ์ดํฐ(label)์ ํน์ฑ์ ๊ทธ๋๋ก ๋ณด์กด(preserving)ํ๋ฉด์ ๋ณํ(transformation)ํ๋ ๊ฒ
- ์ํ๋ฐ์ ๊ฐ์ ๊ธฐ๋ฒ์ ์ฌ์ฉํ ๋, ์๋ฏธ๊ฐ ์์ ํ ๋ฐ๋ ์ ์๊ธฐ ๋๋ฌธ
- ๋ ผ๋ฌธ์์๋ ๋ ๊ฐ์ง ํํ์ data augmentation์ ์ฌ์ฉํ๋๋ฐ ๋ ๊ฐ์ง ๋ชจ๋ ์์ฃผ ์ ์ ๊ณ์ฐ์ผ๋ก ์๋ณธ ์ด๋ฏธ์ง์์ ๋ณํ๋ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ์ ์์ผ๋ฏ๋ก ๋ณํ๋ ์ด๋ฏธ์ง๋ฅผ ๋์คํฌ์ ์ ์ฅํ ํ์๊ฐ ์๊ฒ ํจ
- ๋ณํ๋ ์ด๋ฏธ์ง๋ค์ GPU๊ฐ ์ด๋ฏธ์ง์ ์ด์ batch์์ ํ์ตํ๋ ๋์ CPU์์ Python ์ฝ๋๋ก ์์ฑ๋๊ฒ ํจ. ๋ฐ๋ผ์ ์ด๋ฌํ data augmentation ๋ฐฉ์์ ์ฌ์ค์ ๊ณ์ฐ์ด ํ์ํ์ง ์์
1) ์ข์ฐ ๋ฐ์ (horizontal reflection)
- Training
- $256 × 256$์ ์๋ณธ ์ด๋ฏธ์ง ์ค $224 × 224$ ํฌ๊ธฐ์ ์ด๋ฏธ์ง๋ฅผ ๋ฌด์์๋ก ์ถ์ถ, ์ถ์ถ๋ ์ด๋ฏธ์ง๋ฅผ ์ข์ฐ ๋ฐ์ ์์ผ ์ด ์ถ์ถ๋ ์ด๋ฏธ์ง๋ค์ ํ์ต์ํด
- ์ด ๋ฐฉ๋ฒ์ผ๋ก 1์ฅ์ ์ด๋ฏธ์ง์์ $32 × 32 × 2 = 1024 × 2 = 2048$ ๊ฐ์ ๋ค๋ฅธ ์ด๋ฏธ์ง๋ฅผ ์ป์ ์ ์๊ฒ ๋จ
- Test
- 5๊ฐ์ $224 × 224$ ์ด๋ฏธ์ง(4๊ฐ์ ๋ชจ์๋ฆฌ์ ์ค์์์ ์ถ์ถํ ์ด๋ฏธ์ง)์ ์ด๋ค์ ๊ฐ๊ฐ ์ข์ฐ ๋ฐ์ ํ ์ด๋ฏธ์ง๋ฅผ ์ถ์ถ
- => ์ด 10๊ฐ์ ์ด๋ฏธ์ง
- ์ด๋ ๊ฒ ์ถ์ถํ 10๊ฐ์ ์ด๋ฏธ์ง์ ๋ํด softmax layer๊ฐ ๋ง๋ ์์ธก์ ํ๊ท ํํด์ ์์ธกํจ
2) ํ๋ จ ์ด๋ฏธ์ง์ RGB ์ฑ๋ ๊ฐ ๋ณ๊ฒฝ
- ์๋ ํฝ์ ๊ฐ + ์ด๋ฏธ์ง์ RGB ํฝ์ ์ ๋ํ ์ฃผ์ฑ๋ถ ๋ถ์(PCA)ํ ๊ฐ X (ํ๊ท : 0, ํ์คํธ์ฐจ: 0.1์ธ Gaussian์์ ์ถ์ถํ) ๋๋ค ๋ณ์
- ์ด ๋ฐฉ์์ ์๋ณธ ์ด๋ฏธ์ง์ ์ค์ํ ์์ฑ, ์ฆ ๋ฌผ์ฒด์ identity๊ฐ ๋น์ ๊ฐ๋์ ์์์ ๋ณํ์ ๋ณํ์ง ์๋๋ค๋ ์ ์ ๋๋ต์ ์ผ๋ก ํฌ์ฐฉํจ
- ์ด ๋ฐฉ์์ผ๋ก top-1 error rate๋ฅผ 1% ์ด์ ๊ฐ์์ํด
Dropout
- dropout: iteration ๋ง๋ค layer ๋ ธ๋ ์ค ์ผ๋ถ๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด์ ํ์ต์ ์งํํ๋ ๋ฐฉ๋ฒ
- ์ฌ๋ฌ ๊ฐ์ ๋ชจ๋ธ์ ๋ง๋๋ ๋์ , ๋ชจ๋ธ ๊ฒฐํฉ(model combination)์ ์ํ ํฌํ ํจ๊ณผ(Voting)๊ณผ ๋น์ทํ ํจ๊ณผ๋ฅผ ๋ด๊ธฐ ์ํด ํ์ต์ด ์งํ๋๋ ๋์ ๋ฌด์์๋ก ์ผ๋ถ ๋ด๋ฐ์ ์๋ตํจ
- ์๋ต๋ ๋ด๋ฐ์ ์กฐํฉ๋งํผ ์ง์ํจ์์ ์ผ๋ก ๋ค์ํ ๋ชจ๋ธ์ ํ์ต์ํค๋ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง์ด๊ธฐ ๋๋ฌธ์ ๋ชจ๋ธ ๊ฒฐํฉ์ ํจ๊ณผ๋ฅผ ๋๋ฆด ์ ์์
- ์๋ต๋ ๋ชจ๋ธ๋ค์ด ๋ชจ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ณต์ ํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ๊ฐ๊ฐ์ ๋ด๋ฐ๋ค์ด ์กด์ํ (dropout ํ์ง ์์) ํ๋ฅ ์ ๊ฐ๊ฐ์ ๊ฐ์ค์น์ ๊ณฑํด์ฃผ๋ ํํ๊ฐ ๋จ
- 1, 2๋ฒ์งธ fully-connected layer์ dropout์ ์ ์ฉ์ํด
- Dropout(0.5) -> 50%๋ง ์ฌ์ฉํ๋ค
- dropout์ ์๋ ด์ ํ์ํ iteration์ ์๋ฅผ ๋๋ต 2๋ฐฐ ์ฆ๊ฐ์ํด
Details of learning
- ํ์ต ์, batch size = 128, momentum = 0.9, weight decay = 0.0005๋ก ํ๋ฅ ์ ๊ฒฝ์ฌ ํ๊ฐ๋ฒ(SGD, stochastic gradient descent) ์ ์ฉ
- ์ฌ๊ธฐ์ weight decay(๊ฐ์ค์น ๊ฐ์)๋ ๊ทธ์ regularizer๊ฐ ์๋๋ผ ๋ชจ๋ธ์ training error๋ฅผ ์ค์
- ํ์ค ํธ์ฐจ๊ฐ 0.01์ธ zero-mean Gaussian distribution์ผ๋ก๋ถํฐ ๊ฐ layer์ ๊ฐ์ค์น๋ฅผ ์ด๊ธฐํํจ
- 2๋ฒ์งธ, 4๋ฒ์งธ, 5๋ฒ์งธ conv layer์ fully-connected hidden layer์์ ๋ด๋ฐ ํธํฅ์ ์์ 1๋ก ์ด๊ธฐํํจ
- ์ด ์ด๊ธฐํ๋ ReLU์ positive input์ ์ ๊ณตํด ํ์ต์ ์ด๊ธฐ ๋จ๊ณ๋ฅผ ๊ฐ์ํํจ
- ๋จ์์๋ layer์๋ ๋ด๋ฐ ํธํฅ์ ์์ 0์ผ๋ก ์ด๊ธฐํํจ
- ๋ ผ๋ฌธ์์๋ ๋ชจ๋ layer์ ๋ํด ๋์ผํ ํ์ต๋ฅ ์ ์ ์ฉํ๊ณ , ํ์ต ๋ด๋ด ์๋์ผ๋ก ์กฐ์ ํจ
- validation error rate๊ฐ ํ์ฌ์ ํ์ต๋ฅ ๋ก ๊ฐ์ ๋์ง ์์ ๋, 10์ผ๋ก ๋๋ ํ์ต๋ฅ ์ ์ ์ฉํจ
- ํ์ต๋ฅ ์ 0.01๋ก ์ด๊ธฐํํ๊ณ , ํ์ต ์ข ๋ฃ ์ ๊น์ง 3๋ฒ ๊ฐ์ํจ
- 120๋ง ๊ฐ์ ์ด๋ฏธ์ง train์ ์ ๋๋ต 90 cycle ๋์ ํ์ต์์ผฐ๊ณ , ์ด๋ 2๊ฐ์ NVIDIA GTX 580 3GB GPU๋ก 5~6์ผ์ด ์์๋จ
Results
- ILSVRC-2010์ test์ ์ ๋ํ ๊ฒฐ๊ณผ
- ILSVRC-2012์ val์ ๊ณผ test์ ์ ๋ํ ๊ฒฐ๊ณผ
Qualitative Evaluations
- 96๊ฐ์ kernel ์ค ์์ชฝ์ 48๊ฐ์ kernel์ GPU-1์์, ์๋์ชฝ์ kernel 48๊ฐ๋ GPU-2์์ ํ์ต๋จ
- GPU-1์์๋ ์ฃผ๋ก ์ปฌ๋ฌ์ ์๊ด ์๋ ์ ๋ณด๋ฅผ ์ถ์ถํ๊ธฐ ์ํ kernel์ด ํ์ต๋๊ณ , GPU-2์์๋ ์ฃผ๋ก ์ปฌ๋ฌ์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ์ถ์ถํ๊ธฐ ์ํ kernel์ด ํ์ต๋จ
- 8๊ฐ์ ILSVRC-2010 test ์ด๋ฏธ์ง๋ค๊ณผ ๋ชจ๋ธ์ด ์์ธกํ top-5 ๋ ์ด๋ธ์ ๋ํ๋ธ ๊ฒ
- ์ฌ๋ฐ๋ฅธ ๋ ์ด๋ธ์ด ๊ฐ ์ด๋ฏธ์ง ์๋์ ์ ํ์๊ณ , ์ฌ๋ฐ๋ฅธ ๋ ์ด๋ธ์ ํ ๋น๋ ํ๋ฅ ๋ ๋นจ๊ฐ์ ๋ง๋๋ก ํ์๋์ด์์ (top 5์ ์๋ ๊ฒฝ์ฐ)
- ์ผ์ชฝ ์๋จ์ mite(์ง๋๊ธฐ) ์ด๋ฏธ์ง์ ๊ฐ์ด ์ค์ฌ์์ ๋ฒ์ด๋ ๋ฌผ์ฒด๋ ์ ์ธ์๋ ๊ฒ์ผ๋ก ๋ํ๋จ
- grille๊ณผ cherry์ ๊ฒฝ์ฐ, ์ฌ์ง์ ์๋๋ ์ด์ ์ ๋ํ ๋ชจํธ์ฑ์ด ์กด์ฌํจ
- ํ์ง๋ง ์์ธก์ด ํ๋ฆฐ ๊ฒฝ์ฐ์๋ ๋ณด๊ธฐ์ ๋ฐ๋ผ ์์ธก์ด ๊ฐ๋ฅํ ๋ต๋ณ์ ๋ฐํํ๋ค๊ณ ๋ณผ ์ ์์
- ๋งจ ์ผ์ชฝ์ ์ฒซ๋ฒ์งธ ์นผ๋ผ์ 5๊ฐ์ ILSVRC-2010 test ์ด๋ฏธ์ง
- ๋๋จธ์ง ์นผ๋ผ๋ค์ 5๊ฐ์ test ์ด๋ฏธ์ง์ ๊ฐ๊ฐ ๊ฐ์ฅ ๋น์ทํ๋ค๊ณ ์์ธก๋๋ 6๊ฐ์ training ์ด๋ฏธ์ง
- ๊ฐ์์ง๋ ์ฝ๋ผ๋ฆฌ์ ๊ฒฝ์ฐ, ๋ค์ํ ํฌ์ฆ๋ก ๋ํ๋จ
Discussion
- ํ๋์ conv layer๋ผ๋ ์ ๊ฑฐ๋์์ ๋, ๋ชจ๋ธ์ ์ฑ๋ฅ์ด ์ ํ๋๋ค๋ ์ ์ด ์ฃผ๋ชฉํ ๋งํจ
์ฐธ๊ณ ์๋ฃ
https://learnopencv.com/understanding-alexnet/
https://oi.readthedocs.io/en/latest/computer_vision/cnn/alexnet.html
https://89douner.tistory.com/60?category=873854
https://blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=laonple&logNo=220818841217
Contents
์์คํ ๊ณต๊ฐ ๊ฐ์ฌํฉ๋๋ค :)