๐ถ ์ด๋ก (Abstract)
- ImageNet์์ 120๋ง๊ฐ์ ๊ณ ํด์๋ image๋ฅผ ๋์์ผ๋ก 1000๊ฐ์ ํด๋์ค๋ฅผ ๋ถ๋ฅํ๋ ๋ฌธ์ ์ ๋ํด ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ด์์
- 6000๋ง๊ฐ์ parameter์ 650,000์ฌ๊ฐ์ ๋ด๋ฐ [5๊ฐ์ CONV ์ธต(maxpool), 3๊ฐ์ FullyConnected ์ธต(๋ง์ง๋ง์ 1000๊ฐ ํด๋์ค๋ฅผ ๊ตฌ๋ถํ๋ softmax์ธต)]์ผ๋ก ๊ตฌ์ฑ
- training์ ๋นจ๋ฆฌ ํ๊ธฐ ์ํด ํฌํ๋์ง ์์(non-saturating) ๋ด๋ฐ๋ค๊ณผ ํจ๊ณผ์ ์ธ GPU๋ฅผ ์ฌ์ฉ
- overfitting์ ์ค์ด๊ธฐ(reduce)์ํด dropout(๋งค์ฐ ํจ๊ณผ์ ์ผ๋ก ์ฆ๋ช ๋ regularized method)์ ์ฌ์ฉ
- ILSVRC-2012 ๋ํ์์ 2๋ฑ์ธ 26.2%์ ๋นํด 15.3%์ error rate๋ฅผ ์ฑ์ทจํ์์
(Imagenet Large-scale Visual Recognition Challenge)
1. ์๋ก (Introduction)
- ํ์ฌ ์ฌ๋ฌผ์ธ์์์ ๊ธฐ๊ณํ์ต(machine learning)๋ฐฉ์์ ์ฌ์ฉ์ ํ์์ ์ด๋ค.
- ์ด๋ฅผ ์ํด ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ํฅ์์ ์ํค๋๋ฐ, ๋ ๋ง์ ๋ฐ์ดํฐ์ , ๊ฐ๋ ฅํ ๋ชจ๋ธ ๋ฐ ๋ ์ข์ ๊ณผ์ ํฉ์ ๋ง๋ ๊ธฐ์ ๋ฑ์ด ์๋ค.
๊ณผ๊ฑฐ, MNIST์ ๊ฐ์ ๋ฐ์ดํฐ๋ค์ ์ ์ ์์ผ๋ก๋ ๊ฐ๋ฅํ์์ง๋ง ํ์ค์์๋ ์๋นํ ๋ค์ํ๋ฉฐ(considerable variablility) ๋ฐ๋ผ์ ๋ ๋ง์ training set์ ํ์๋ก ํ๋ ๊ฒ์ ํ์๋ถ๊ฐ๊ฒฐํ ์ฌํญ์ด ๋์ด๋ฒ๋ ธ๋ค.
- ์๋ง์ ์ฌ๋ฌผ์ ๊ตฌ๋ถํ๋ ค๋ฉด ๋ง์ ํ์ต๋ฅ๋ ฅ์ ์ง๋ ์ผ ํ๋ค.
ํ์ง๋ง, ์ฌ๋ฌผ์ธ์์ ๊ฑฐ๋ํ ๋ณต์ก๋์ ๋ฌธ์ ๋ ImageNet๊ฐ์ ๊ฑฐ๋ํ dataset์์ ๋ช ์๋ ์ ์๋ค๋ ์ ์ด๋ค.
- ํ์ต๋ฅ๋ ฅ์ depth์ breadth๋ฅผ ๋ค์ํํ๋ฉด์ ์กฐ์ ํ ์ ์๋๋ฐ, feedforward neural network์ ๋น๊ตํ์ ๋, CNN์ ๋ ์ ์ ์ฐ๊ฒฐ๊ณผ parameter๋ฅผ ๊ฐ๊ธฐ์ trainํ๊ธฐ ์ฝ๊ณ ์ด๋ก ์ ์ผ๋ก ์ต์์ ํจ๊ณผ๋ฅผ ์ฝ๊ฐ์ ๋จ์ ๋ง์ผ๋ก ๋ผ ์ ์๋ค.
2. The Dataset
- ImageNet์ ์ด์ฉํ๋๋ฐ, ImageNet์ 22,000๊ฐ์ ์นดํ ๊ณ ๋ฆฌ, 1500๋ง๊ฐ์ ๋ผ๋ฒจ๋ง๋ ๊ณ ํด์๋์ ์ฌ์ง์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
- ๋ฐ๋ผ์ image๋ฅผ down-sampleํ์ฌ ํด์๋๋ฅผ 256X256์ผ๋ก ๋ง์ถฐ image๋ฅผ rescaleํ์๋ค.
- raw RGB์ pixel๋ก train์ ์งํํ์๋ค.
3. The Architecture
3.1 ReLU Nonlinearity
- Deep CNN์์ tanh unit์ ์ฌ์ฉ๋ณด๋ค ReLU์ ์ฌ์ฉ์ด ํจ์ฌ ๋น ๋ฅด๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
์ด๋ฐ ๋น ๋ฅธ ํ์ต์ ํฐ ๋ฐ์ดํฐ์ ์ ๊ฐ๋ largeํ ๋ชจ๋ธ์ ๋งค์ฐ ํ๋ฅญํ ์ํฅ์ ์ค๋ค.์ ๊ทธ๋ฆผ์ ๋ํ ์ค๋ช ์ด๋ค.
- ์ค์ : 4๊ฐ์ Conv์ธต (with relu), 6๋ฐฐ ๋ ๋น ๋ฅด๋ค.
- ์ ์ : 4๊ฐ์ Conv์ธต (with tanh)
- ReLu๋ ์ง์์ ์ธ ํ์ต์ ์งํ์ผ๋ก saturating neuron๋ณด๋ค ๋ ๋น ๋ฅด๊ฒ ํ์ตํ๋ค.
์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์ ๋ฏธ๋ฆฌ ํฌํ๋(large neural net)๋ด๋ฐ ๋ชจ๋ธ์ ๊ตณ์ด ๊ฒฝํํ ํ์๊ฐ ์์์ ์ ์ ์๋ค.
3.2 Training on Multiple GPUs
- single GTX 580 GPU ์ฝ์ด๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ 3GB์ด๊ธฐ์ ํ๋ จ๊ฐ๋ฅํ ์ ๊ฒฝ๋ง์ ์ต๋ํฌ๊ธฐ๊ฐ ์ ํ๋๋ค.
- ๋ฐ๋ผ์ 2๊ฐ์ GPU์ ์ ๊ฒฝ๋ง์ ํฉ์ด๋จ๋ฆฌ๋ GPU๋ณ๋ ฌํ(parallelization scheme)๋ฅผ ์ด์ฉํ๋ค.
- ์ด๋, 2๊ฐ์ GPU net์ด 1๊ฐ์ GPU net๋ณด๋ค ํ๋ จ์ ๋ ์ ์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ณ ์ค๋ฅ์จ๋ 1.2~1.7%์ ๋ ๊ฐ์์์ผฐ๋ค.
3.3 Local Response Normalization
- ReLU๋ ํฌํ(saturating)๋ฐฉ์ง๋ฅผ ์ํ ์ ๋ ฅ ์ ๊ทํ๋ฅผ ํ์๋ก ํ์ง ์๋ ๋ฐ๋์งํ ํน์ฑ์ ๊ฐ๋๋ค.
- ReLU๋ local ์ ๊ทํ ์ผ๋ฐํ์ ๋์์ด ๋๋ค.- ์์ ์์ ๋ค์๊ณผ ๊ฐ์ด ํด์๋๋ค.
์์ k, n, α, β๋ validation set์ ์ฌ์ฉํ์ฌ ๊ฐ์ด ๊ฒฐ์ ๋๋ hyper-parameter๋ก ๊ฐ๊ฐ k = 2, n = 5, α = 10-4, β = 0.75๋ฅผ ์ฌ์ฉํ๋ฉฐ ํน์ layer์์ ReLU์ ๋น์ ํ์ฑ์ ์ ์ฉํ ํ ์ด ์ ๊ทํ๋ฅผ ์ ์ฉํ๋ค(3.5 ์ฐธ์กฐ).
kernel i์ ์์น (x,y)๋ฅผ ์ ์ฉํด ๊ณ์ฐ๋ ๋ด๋ฐ์ activity์ด๋ค.
์ฌ๊ธฐ์ ReLU์ ๋น์ ํ์ฑ์ ์ ์ฉํ๋ค.
์ด๋, ํฉ์ ๋์ผํ ๊ณต๊ฐ์์น์์ n๊ฐ์ '์ธ์ ํ(adjecent)' kernel map์ ๊ฑธ์ณ ์คํ๋๋ค. (N์ layer์ ์ด kernel์)
kernel map์ ์์๋ training์ด ์์ํ๊ธฐ ์ ์ ์์๋ก(arbitrary) ๊ฒฐ์ ๋๋ค.
์ด๋ฐ ๋ฐ์์ ๊ทํ(response normalization)์ ์ข ๋ฅ๋ ์๊ฐ์ ๋ฐ์(inspired) ์ธก๋ฉด์ต์ (lateral inhibition)ํํ๋ฅผ ๊ตฌํ,
์ด๋ฅผ ํตํ ๋ค๋ฅธ ์ปค๋์ ์ฌ์ฉ์ผ๋ก ๊ณ์ฐ๋ ๋ด๋ฐ ์ถ๋ ฅ๊ฐ์ large activity์ ๋ํ ๊ฒฝ์(competition)์ ์์ฑํ๋ค.
Jarrett์ local contrast normalization๊ณผ ๋น์ทํ์ง๋ง mean activity๋ฅผ ๋นผ์ง(subtract)์์๊ธฐ์
์ฐ๋ฆฌ์ ์ด ์ ๊ทํ๋ฅผ 'brightness normalization'์ด๋ผ ๋ ์ฅํํ๊ฒ ๋ถ๋ฅผ ๊ฒ์ด๋ค.
3.4 Overlapping Pooling
CNN์์์ pooling layer๋ ๋์ผํ kernel map์์ '์ธ์ ํ(adjacent)' ๋ด๋ฐ ๊ทธ๋ฃน์ output์ summarizeํ๋ค.
๋ณดํธ์ ์ผ๋ก adjacent pooling์ผ๋ก ์์ฝ๋๋ฉด unit๋ค์ด ๊ฒน์น์ง ์๋๋ค.
์ฆ, pooling layer๋ ํฝ์ ๋ค ์ฌ์ด์ s๋งํผ์ ๊ฐ๊ฒฉ์ ๋ pooling unit๋ค์ grid๋ก ๊ตฌ์ฑ๋๋ฉฐ, ๊ฐ๊ฐ์ pooling unit์ ์์น๋ฅผ ์ค์ฌ์ผ๋ก ํ ํฌ๊ธฐ(zxz)์ neighbor๋ฅผ ์์ฝํ๋ค.
๋ง์ฝ ์์์์ s๋ฅผ s = z๋ก ์ค์ ํ๋ฉด CNN์์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ณดํธ์ ์ธ local pooling์ ์ป์ ์ ์์ผ๋ฉฐ, s < z๋ฅผ ์ค์ ํ๋ฉด overlapping pooling์ ์ป์ ์ ์๋ค.
์ด๋๋ฌธ์ ์ ๋ฐ์ ์ธ ์ ๊ฒฝ๋ง์์ s=2๋ s=3์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
๋ํ ์ผ๋ฐ์ ์ธ training์์๋ overlapping pooling์ด ์๋ ๋ชจ๋ธ์ด ๋ชจ๋ธ์ ๊ณผ์ ํฉํ๊ธฐ๊ฐ ์ฝ๊ฐ ๋ ์ด๋ ต๋ค๋ ๊ฒ์ ์ ์ ์๋ค
3.5 Overall Architecture
์ด 8๊ฐ์ weight๋ฅผ ๊ฐ๋ layer๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
- 5๊ฐ์ CONV (convolution layer)
- 3๊ฐ์ FC (Fully-connected layer) + ๋ง์ง๋ง์ 1000๊ฐ์ ํด๋์ค๋ฅผ ๊ตฌ๋ถํ๋ softmax์ธต
์ด ๋ชจ๋ธ์ ๋คํญ์ logistic regression ๋ถ์๋ชฉํ๋ฅผ ์ต๋ํ ํ๋๋ฐ, ์ด๋ ์์ธก๋ถํฌ(prediction distribution)ํ์์ ์ฌ๋ฐ๋ฅธ label์ logํ๋ฅ (log-probability)์ training cases์ ๋ํ ํ๊ท (average)์ ์ต๋ํํ๋ ๊ฒ๊ณผ ๊ฐ๋ค.
2, 4, 5๋ฒ์งธ์ CONV์ kernel์ ๋์ผํ GPU์ ์๋ ์ด์ layer์ kernel map์๋ง ์ฐ๊ฒฐ๋๋ค. (์๋๊ทธ๋ฆผ ์ฐธ์กฐ)
3๋ฒ์งธ CONV๋ 2๋ฒ์งธ CONV์ ๋ชจ๋ kernel map๋ค๊ณผ ์ฐ๊ฒฐ๋๋ฉฐ ์์ ํ ์ฐ๊ฒฐ๋ ์ธต์ ๋ด๋ฐ์ ์ด์ ์ธต์ ๋ชจ๋ ๋ด๋ฐ๋ค๊ณผ ์ฐ๊ฒฐ๋๋ค.
response-normalization์ธต๋ค์ 1, 2๋ฒ์งธ CONV๋ฅผ ๋ฐ๋ฅด๋ฉฐ 3.4์ ์ ๊ธฐ์ ๋ ์ข ๋ฅ์ MaxPooling์ response-normalization layer์ 5๋ฒ์งธ CONV layer๋ฅผ ๋ชจ๋ ๋ฐ๋ฅธ๋ค.ReLU์ ๋น์ ํ์ฑ์ ๋ชจ๋ CONV์ FC์ ์ถ๋ ฅ์ ์ ์ฉ๋๋ฉฐ ์ฒซ ๋ฒ์งธ CONV์ 11×11×3์ 96๊ฐ์ kernel์ ๊ฐ์ง๋ฉฐ
224×224×3(150,528 ์ฐจ์)์ input image๋ฅผ stride=4๋ก filtering์ ์งํํ๋ค.
(์ ๊ฒฝ๋ง์ ๋ด๋ฐ์๋ ๋ค์๊ณผ ๊ฐ๋ค. 150,528-253,440–186,624–64,896–64,896–43,264–4096–1000)
2๋ฒ์งธ CONV๋ ์ฒซ๋ฒ์งธ CONV์ ์ถ๋ ฅ์ ์ ๋ ฅ์ผ๋ก ๋ฐ์ 5×5×48์ 256๊ฐ์ kernel๋ก filtering์ ์งํํ๋ฉฐ
3๋ฒ์งธ CONV๋ 3×3×256์ 384๊ฐ์ kernel์ ๋๋ฒ์งธ CONV output๊ณผ ์ฐ๊ฒฐํ๊ณ
4๋ฒ์งธ CONV๋ 3×3×192์ 384๊ฐ์ kernel๋ก,
5๋ฒ์งธ CONV๋ 3×3×192์ 256๊ฐ์ kernel๋ก filteringํ๋ฉฐ
3, 4, 5๋ฒ์งธ CONV๋ ์ด๋ ํ ๊ฐ์ญ(intervening)pooling๊ณผ normalization layer์์ด ์๋ก ์ฐ๊ฒฐ๋๋ค.
๋ํ FC (Fully-Connected layer)๋ ๊ฐ๊ฐ 4096๊ฐ์ ๋ด๋ฐ์ ๊ฐ๋๋ค.
4. Reducing Overfitting
4.1 Data Augmentation
โ image translation. &. horizontal reflection
- image translation: ํ ๋๋ฉ์ธ์ ์ ๋ ฅ ์ด๋ฏธ์ง๋ฅผ ๋ค๋ฅธ ๋๋ฉ์ธ์ ํด๋น ์ด๋ฏธ์ง๋ก ๋ณํํ๋ ๊ฒ
- ์ด ๋ฐฉ๋ฒ์ ํตํด train์ ์ํธ์์กด์ ์ผ ์ ์๊ณ ์ด๋ฐ scheme์ด ์์๋ค๋ฉด overfitting์ ์ด๋ ค์์ ๊ฒช์์ ๊ฒ์ด๋ค.
โก altering intensities of the RGB channels
- ImageNet์ training set ์ ์ฒด์ RGBํฝ์ ๊ฐ์ PCA๋ฅผ ์ํ
- ๊ฐ train image์ ํด๋น eigenvalues(๊ณ ์ ๊ฐ)์ ๋น๋กํ๋ ํฌ๊ธฐ์ ํ๊ท 0, ํ์คํธ์ฐจ 0.1์ ๊ฐ๋ zero-mean Gaussian ๋ถํฌ(์ ๊ท๋ถํฌ)์์ ๋์ถ๋ random๋ณ์๋ฅผ ๊ณฑํด ๋์จ ์ฃผ์ ๊ตฌ์ฑ์์์ ๋ฐฐ์๋ฅผ ์ถ๊ฐํ๋ค.
- ๋ฐ๋ผ์ RGB ํฝ์ Ixy =[IR , IG , IB ]T์ ์๋ ๊ฐ์ ์ถ๊ฐํ๋ค.- ์ด๋, pi์ yi๋ ๊ฐ๊ฐ RGB pixel์ 3x3 covariance(๊ณต๋ถ์ฐ)ํ๋ ฌ์ i๋ฒ์งธ eigenvector์ eigenvalue์ด๋ฉฐ αi๋ ์ด์ ์ ์ค๋ช ํ random ๋ณ์์ด๋ค. ๊ฐ αi๋ ํด๋น ์ด๋ฏธ์ง๊ฐ ๋ค์ ํ๋ จ์ ์ฌ์ฉ๋ ๋๊น์ง ํน์ ํ๋ จ ์ด๋ฏธ์ง์ ๋ชจ๋ ํฝ์ ์ ๋ํด ํ ๋ฒ๋ง ๊ทธ๋ ค์ง๋ฉฐ, ์ด ์์ ์์ ๋ค์ ๊ทธ๋ ค์ง๋ค.
4.2 Dropout
- Dropout์ ์ ์ง์ ๊ธฐ์ฌ๋๋ฅผ ์์ ๊ณ ์ญ์ ํ๋ฅผ ๊ด์ฌํ์ง ๋ชปํ๊ฒ ํ๋ ๋ฐฉ์์ผ๋ก ๋ง๊ณ ๋ค๋ฅธ ๋ด๋ฐ๋ค์ ๋ถ๋ถ์งํฉ์ randomํ๊ฒ ๊ฒฐํฉ์ํค๋๋ฐ ์ ์ฉํ๋ค.
- 0.5์ ๋น์จ๋ก FC์ ์ฒ์ 2๊ฐ์ layer์ ์ ์ฉํ์์ผ๋ฉฐ dropout์ด ์์ผ๋ฉด ์๋นํ ๊ณผ์ ํฉ์ ๋ณด์ฌ์ฃผ์๋ค.
5. Details of Learning
- Optimizer: SGD (Stochastic Gradient Descent), momentum = 0.9, weight decay = 0.0005
- Batch size: 128i๋ ๋ฐ๋ณตํ์, v๋ momentum๋ณ์, ε์ Learning rate(ํ์ต์จ),
<-- wi์์ ํ๊ฐ๋ w์ ๋ฏธ๋ถ(derivative)์ i๋ฒ์งธ batch Di์ ํ๊ท ์ผ๋ก Loss function์ ๊ธฐ์ธ๊ธฐ์ ์๋ฏธํ๋ค.
<์ด๊ธฐํ>
ํ์คํธ์ฐจ๊ฐ 0.01์ธ zero-mean Gaussian ๋ถํฌ๋ก ๊ฐ ์ธต์ weight๋ฅผ ์ด๊ธฐํ
2,4,5 CONV์ธต๊ณผ FC์ธต์ ์์ 1๋ก , ๋๋จธ์ง ์ธต์ 0์ผ๋ก bias๋ฅผ ์ด๊ธฐํ
validation error๊ฐ ๊ฐ์ ๋์ง ์์ผ๋ฉด ํ์ต์จ์ 10์ผ๋ก ๋๋ (0.01๋ก ์ด๊ธฐํ ํ์์ผ๋ฉฐ ์ข ๋ฃ์ ์ 3๋ฐฐ์ ๋ ๊ฐ์ํ์์)
6. Results
- ILSVRC-2010์ ๋ํ ๊ฒฐ๊ณผ์ ์์ฝ์ ๋ค์๊ณผ ๊ฐ๋ค.
์ ๊ฒฝ๋ง์ 37.5%์ 17.0%5์ ์์ 1์์ ์์ 5์์ ํ ์คํธ ์ธํธ ์ค๋ฅ์จ์ ๋ฌ์ฑํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
ILSVRC-2010 ๊ฒฝ์์์ ๋ฌ์ฑ๋ ์ต๊ณ ์ ์ฑ๋ฅ์ ์๋ก ๋ค๋ฅธ ๊ธฐ๋ฅ์ ๋ํด ํ๋ จ๋ 6๊ฐ์ spase coding ๋ชจ๋ธ์์ ์์ฑ๋ ์์ธก์ ํ๊ท ํํ๋ ์ ๊ทผ ๋ฐฉ์์ผ๋ก 47.1%์ 28.2%์๋ค.
๊ทธ ์ดํ ๊ฐ์ฅ ์ ๋ฐํ๋ ๊ฒฐ๊ณผ๋ Fisher Vectors (FVS)์ ๋ํด ํ๋ จ๋ ๋ ๋ถ๋ฅ๊ธฐ์ ์์ธก์ ํ๊ท ํํ๋ ์ ๊ทผ ๋ฐฉ์์ผ๋ก 45.7%์ 25.7%์์ผ๋ฉฐ ๋ ๊ฐ์ง ์ ํ์ ์กฐ๋ฐํ๊ฒ ์ํ๋ง๋ ํน์ง์ผ๋ก๋ถํฐ ๊ณ์ฐ๋์๋ค.
- ๋ํ ILSVRC-2012 ๋ํ์์์ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ๋ค.
๋จ๋ฝ(paragraph)์ ๋๋จธ์ง ๋ถ๋ถ์์๋ ๊ฒ์ฆ ๋ฐ ํ ์คํธ ์ค๋ฅ์จ์ด 0.1% ์ด์ ์ฐจ์ด๊ฐ ๋์ง ์๊ธฐ ๋๋ฌธ์ ์๋ก ๊ตํํ์ฌ ์ฌ์ฉํ๋ค.
์ด ๋ ผ๋ฌธ์์ ์ค๋ช ํ CNN์ ๋ค์๊ณผ ๊ฐ์ ์ฑ๊ณผ๋ฅผ ๊ฑฐ๋์๋ค
์์ 5์ ์ด๋ด์ ์ค๋ฅ์จ 18.2%. 5๊ฐ์ ์ ์ฌํ CNN์ ์์ธก์ ํ๊ท ํ๋ฉด 16.4%์ ์ค๋ฅ์จ์ ์ป์๋ค.
- ๋ง์ง๋ง pooling layer์์ ์ถ๊ฐ์ ์ผ๋ก 6์ฐจ ์ปจ๋ณผ๋ฃจ์ ๋ ์ด์ด๊ฐ ์๋ CNN ํ๋๋ฅผ ๊ต์กํ์ฌ ImageNet Fall 2011 release (15M images, 22K categories)๋ฅผ ๋ถ๋ฅํ ๋ค์ ILSVRC-2012์์ "๋ฏธ์ธ ์กฐ์ (fine-tuning)"ํ๋ฉด 16.6%์ ์ค๋ฅ์จ์ ์ป์ ์ ์๋ค. ์์ ์ธ๊ธํ 5๊ฐ์ CNN์ผ๋ก 2011๋ ๊ฐ์ ์ ์ฒด ๋ฆด๋ฆฌ์ค์์ ์ฌ์ ํ๋ จ๋ 2๊ฐ์ CNN์ ์์ธก์ ํ๊ท ํ๋ฉด 15.3%์ ์ค๋ฅ์จ์ ์ป์ ์ ์๋ค. ๋ ๋ฒ์งธ๋ก ์ฐ์ํ ์ฝํ ์คํธ ํญ๋ชฉ์ ๋ค์ํ ์ ํ์ ์กฐ๋ฐํ๊ฒ ์ํ๋ง๋ ๊ธฐ๋ฅ์์ ๊ณ์ฐ๋ FV์ ๋ํด ํ๋ จ๋ ์ฌ๋ฌ ๋ถ๋ฅ๊ธฐ์ ์์ธก์ ํ๊ท ํํ๋ ์ ๊ทผ ๋ฐฉ์์ผ๋ก 26.2%์ ์ค๋ฅ์จ์ ๋ฌ์ฑํ๋ค.
- ๋ง์ง๋ง์ผ๋ก, ์ฐ๋ฆฌ๋ ๋ํ 10,184๊ฐ์ ๋ฒ์ฃผ๋ฅผ ๊ฐ์ง Fall 2009 version of ImageNet์ ๋ํ ์ค๋ฅ์จ์ ๋ณด๊ณ ํ๋ค
๊ทธ๋ฆฌ๊ณ 890๋ง ์ฅ์ ์ด๋ฏธ์ง๊ฐ ์๋๋ฐ, ์ด dataset์์ ์ฐ๋ฆฌ๋ ํ์ต์ ์ํด ์ด๋ฏธ์ง์ ์ ๋ฐ์ ์ฌ์ฉํ๊ณ ํ ์คํธ๋ฅผ ์ํด ์ด๋ฏธ์ง์ ์ ๋ฐ์ ์ฌ์ฉํ๋ ๋ฌธํ์ ๊ด๋ก๋ฅผ ๋ฐ๋ฅธ๋ค.
ํ๋ฆฝ๋ testset์ด ์๊ธฐ ๋๋ฌธ์, ์ฐ๋ฆฌ์ ๋ถํ ์ ๋ฐ๋์ ์ด์ ์ ์๋ค์ด ์ฌ์ฉํ ๋ถํ ๊ณผ ๋ค๋ฅด์ง๋ง, ์ด๊ฒ์ ๊ฒฐ๊ณผ์ ํฌ๊ฒ ์ํฅ์ ๋ฏธ์น์ง ์์ผ๋ฉฐ ์ด dataset์์ ์์ 1์์ ์์ 5์์ ์ค๋ฅ์จ์ 67.4%์ 40.9%์ด๋ฉฐ, ์์์ ์ค๋ช ํ ์์ผ๋ก ๋ฌ์ฑ๋๋ ๋ง์ง๋ง pooling layer์ ๋นํด 6๋ฒ์งธ ์ปจ๋ณผ๋ฃจ์ ๊ณ์ธต์ด ์ถ๊ฐ๋๋ค. ์ด ๋ฐ์ดํฐ ์ธํธ์ ๋ํ ๊ฐ์ฅ ์ ์๋ ค์ง ๊ฒฐ๊ณผ๋ 78.1%์ 60.9%์ด๋ค.
6.1 Qualitative Evaluations
์ด ๊ทธ๋ฆผ์ ์ ๊ฒฝ๋ง์ ๋ data-connected layer์ ์ํด ํ์ต๋ Convolution kernel์ ๋ณด์ฌ์ค๋ค.
์ ๊ฒฝ๋ง์ ๋ค์ํ frequency ๋ฐ orientation-selective kernels ๋ฟ๋ง ์๋๋ผ ๋ค์ํ ์์ blob๋ค์ ์ฌ์ฉํ ๊ฒ ๋ํ ์ ์ ์๋ค.
3.5์์ ์ค๋ช ํ ์ ํ๋ ์ฐ๊ฒฐ์ ๊ฒฐ๊ณผ๋ก ๋ GPU๊ฐ ๋ณด์ฌ์ฃผ๋ ์ ๋ฌธํ์ ์ฃผ๋ชฉํ๋ค. GPU 1์ ์ปค๋์ ๋๋ถ๋ถ ์์์ ๊ตฌ์ ๋ฐ์ง ์๋ ๋ฐ๋ฉด GPU 2์ ์ปค๋์ ๋๋ถ๋ถ ์์์ ๋ฐ๋ผ ๋ค๋ฅด๊ธฐ์ ์ด๋ฌํ ์ข ๋ฅ์ ์ ๋ฌธํ๋ ๋ชจ๋ ์คํ ์ค์ ๋ฐ์ํ๋ฉฐ ํน์ random weight ์ด๊ธฐํ(GPU์ ๋ชจ๋๋ก ๋ฒํธ ๋ณ๊ฒฝ)์ ๋ฌด๊ดํ๋ค.์ ์ฌ์ง์ ์ผ์ชฝ์ ๋ค์๊ณผ ๊ฐ๋ค.
- 8๊ฐ์ ํ ์คํธ ์ด๋ฏธ์ง์ ๋ํ ์์ 5๊ฐ ์์ธก์ ๊ณ์ฐํ์ฌ ์ ๊ฒฝ๋ง์ด ๋ฌด์์ ๋ฐฐ์ ๋์ง ์ ์ฑ์ ์ผ๋ก ํ๊ฐ(qualitatively assess)ํ๋ค.
- ์ด๋, ์ง๋๊ธฐ(mite)๊ฐ์ด ์ค์ฌ์ ๋ฒ์ด๋ ๋ฌผ์ฒด๋ net๋ก ์ธ์ํ ์ ์๋ค๋ ์ ์ ์ ์ํด์ผ ํ๋ค.
(์์ 5๊ฐ์ label์ ๋๋ถ๋ถ ํฉ๋ฆฌ์ ์ธ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.)
์ ์ฌ์ง์ ์ค๋ฅธ์ชฝ์ ์ฒซ ๋ฒ์งธ ์ด์ 5๊ฐ์ ILSVRC-2010 ํ ์คํธ ์์์ผ๋ก ๋๋จธ์ง ์ด์ ํ ์คํธ ์ด๋ฏธ์ง์ ํน์ง ๋ฒกํฐ๋ก๋ถํฐ ์ ํด๋ฆฌ๋ ๊ฑฐ๋ฆฌ(Euclidean distance)๊ฐ ๊ฐ์ฅ ์์ ๋ง์ง๋ง ์จ๊ฒจ์ง ๋ ์ด์ด์์ ํน์ง ๋ฒกํฐ๋ฅผ ์์ฑํ๋ 6๊ฐ์ ํ๋ จ ์ด๋ฏธ์ง๋ฅผ ๋ณด์ฌ์ค๋ค.
- ๋ ์ด๋ฏธ์ง๊ฐ ์์ Euclidean separation์ผ๋ก ํน์ง ํ์ฑํ ๋ฒกํฐ(feature activation vectors)๋ฅผ ์์ฑํ ๋, ์ ๊ฒฝ๋ง์ ๊ณ ์์ค์ด ์ ์ฌํ๋ค ๊ฐ์ฃผํ๋ค๊ณ ํ ์ ์๋ค.
- ๊ทธ๋ฆผ์ testset์ 5๊ฐ ์ด๋ฏธ์ง์ ์ด ์ธก์ ์ ๋ฐ๋ผ ๊ฐ ์ด๋ฏธ์ง์ ๊ฐ์ฅ ์ ์ฌํ training set์ 6๊ฐ ์ด๋ฏธ์ง๋ฅผ ๋ณด์ฌ์ฃผ๋๋ฐ, ํฝ์ ์์ค์์ ๊ฒ์๋ ๊ต์ก ์ด๋ฏธ์ง๋ ์ผ๋ฐ์ ์ผ๋ก ์ฒซ ๋ฒ์งธ ์ด์ query image์ L2์์ ๊ฐ๊น์ง ์๋ค.
์๋ฅผ ๋ค์ด, ํ์๋ ๊ฐ๋ค๊ณผ ์ฝ๋ผ๋ฆฌ๋ค์ ๋ค์ํ ํฌ์ฆ๋ก ๋ํ๋๋ฉฐ ์ฐ๋ฆฌ๋ ๋ณด์ถฉ ์๋ฃ์์ ๋ ๋ง์ train image์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ์ ์ํ๋ค.
- ๋ ๊ฐ์ 4096์ฐจ์ ์ค์ ๊ฐ ๋ฒกํฐ ์ฌ์ด์ Euclidean distance ์ฌ์ฉํ์ฌ ์ ์ฌ์ฑ์ ๊ณ์ฐํ๋ ๊ฒ์ ๋นํจ์จ์ ์ด์ง๋ง, ์ด๋ฌํ ๋ฒกํฐ๋ฅผ ์งง์ ์ด์ง ์ฝ๋๋ก ์์ถํ๋๋ก auto-encoder๋ฅผ ํ๋ จ์ํด์ผ๋ก์จ ํจ์จ์ ์ผ๋ก ๋ง๋ค ์ ์๋ค.
์ด๋ image label์ ์ฌ์ฉํ์ง ์๊ธฐ์ ์๋ฏธ์ ์ผ๋ก(semantically) ์ ์ฌํ์ง ์ฌ๋ถ์ ๊ด๊ณ์์ด edge๋ค๊ณผ์ ์ ์ฌํ ํจํด์ ๊ฐ์ง ์ด๋ฏธ์ง๋ฅผ ๊ฒ์ํ๋ ๊ฒฝํฅ์ด ์๋ raw-pixel์ auto-encoder๋ฅผ ์ ์ฉํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋์ ์ด๋ฏธ์ง ๊ฒ์ ๋ฐฉ๋ฒ์ ์์ฑํด์ผ ํ๋ค.
7. Discussion
- ํฌ๊ณ ๊น์ CNN์ด ๊ธฐ๋ก์ ๊นจ๋ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋ ๊ฒ์ ์ ์ ์๋ค.
- ๋ํ ์ค๊ฐ์ธต์ ์ผ๋ถ ์ญ์ ํ๋๋ผ๋ ์ฑ๋ฅ์ด ๋จ์ด์ง๋ ๊ฒ์ ์ ์ ์๋ฏ, ๊น์ด๊ฐ ์ ๋ง๋ก ์ฐ๋ฆฌ์ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ฃฉํ๋๋ฐ ์ค์ํ๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
- ์คํ์ ๋จ์ํํ๊ธฐ ์ํด, ํนํ label์ด ์ง์ ๋ ๋ฐ์ดํฐ์ ์์์ ๊ทธ์ ์์ํ๋ ์ฆ๊ฐ๋ฅผ ์ป์ง ์๊ณ ์ ๊ฒฝ๋ง์ ํฌ๊ธฐ๋ฅผ ํฌ๊ฒ ๋๋ฆด ์ ์๋ ์ถฉ๋ถํ ๊ณ์ฐ ๋ฅ๋ ฅ์ ์ป๋ ๊ฒฝ์ฐ์ ๋์์ด ๋ ๊ฒ์ผ๋ก ์์ํ์์๋ ๋ถ๊ตฌํ๊ณ unsupervised pre-training์ ์ฌ์ฉํ์ง ์์๋ค.
๐ง ๋ ผ๋ฌธ ๊ฐ์_์ค์๊ฐ๋ ํต์ฌ ์์ฝ
"ImageNet Classification with Deep Convolutional Neural Networks"
Alex Krizhevsky, Ilya Sutskever ๋ฐ Geoffrey Hinton์ด 2012๋ ์ ๋ฐํํ ์ฐ๊ตฌ ๋ ผ๋ฌธ์ผ๋ก ์ด ๋ ผ๋ฌธ์ 2012๋ ILSVRC(ImageNet Large Scale Visual Recognition Challenge)์์ ์ต์ฒจ๋จ ์ฑ๋ฅ์ ๋ฌ์ฑํ AlexNet์ด๋ผ๋ ์ฌ์ธต ํฉ์ฑ๊ณฑ ์ ๊ฒฝ๋ง์ ์ ์ํ๋ค.
[ํต์ฌ ๊ฐ๋ ]
1. Convolutional Neural Networks
Convolutional ๋ฐ Subsampling ์ธต์ ์ฌ๋ฌ layer๋ก ๊ตฌ์ฑ๋ Deep CNN Architecture์ Fully-Connected layer๋ฅผ ์ ์ํ๋ค.
2. Rectified Linear Units(ReLU)
์ด ๋ ผ๋ฌธ์ Sigmoid ๋ฐ tanh์ ๊ฐ์ ๊ธฐ์กด ํ์ฑํ ํจ์๋ณด๋ค ๋ ๊ฐ๋จํ๊ณ ํจ์จ์ ์ธ ReLU ํ์ฑํ ํจ์์ ์๊ฐ ๋ฐ ํ์ฉ์ ์งํํ ์ต์ด์ ๋ ผ๋ฌธ์ด๊ธฐ์ ๋์ฑ ์ค์ํ๋ค๊ณ ๋ณผ ์ ์๋ค.
3. Local Response Normalization(LRN)
์ด ๋ ผ๋ฌธ์ ์ผ์ข ์ ์ธก๋ฉด ์ต์ (lateral inhibition)๋ฅผ ์ ๊ณตํ์ฌ ์ผ๋ฐํ ์ฑ๋ฅ์ ๊ฐ์ ํ๋ ๋ฐ ๋์์ด ๋๋ LRN์ด๋ผ๋ ์ ๊ทํ ์ ํ์ ์ ์ํ๋ค.
4. Dropout
์ด ๋ ผ๋ฌธ์ ๊ณผ์ ํฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด ํ๋ จ ์ค์ ์ผ๋ถ ๋ด๋ฐ์ ๋ฌด์์๋ก ์ ๊ฑฐํ๋ ๋๋กญ์์์ด๋ผ๋ ์ ๊ทํ ๊ธฐ์ ์ ์๊ฐํ์๋ค.
5. Data Augmentation
์ด ๋ ผ๋ฌธ์ training set์ ํฌ๊ธฐ๋ฅผ ๋๋ฆฌ๊ณ model์ ๊ฒฌ๊ณ ์ฑ์ ๋ใน๋ฆฌ๊ธฐ ์ํด random crop, vertical flip๊ฐ์ ๊ธฐ์ ์ ์ฌ์ฉํ๋ค.
6. State-of-the-Art Performance (์ต์ ์ฑ๋ฅ)
์ด ๋ ผ๋ฌธ์ ILSVRC 2012 ๋ถ๋ฅ ์์ ์์ ์ต์ ์ฑ๋ฅ์ ๋ฌ์ฑํ์ฌ ์ด์ ๋ฐฉ๋ฒ๋ณด๋ค ํจ์ฌ ๋ฐ์ด๋ ์ฑ๋ฅ์ ๋ณด์ฌ์ค๋ค.
์ ๋ฐ์ ์ผ๋ก ์ด ๋ ผ๋ฌธ์ Convolution์ ๊ฒฝ๋ง, ReLU ํ์ฑํ ํจ์ ๋ฐ ๋ฐ์ดํฐ ์ฆ๊ฐ์ ์ฌ์ฉ๊ณผ ๊ฐ์ ๋ฅ ๋ฌ๋์ ๋ช ๊ฐ์ง ์ค์ํ ๊ฐ๋ ์ ์๊ฐํ๊ณ ๊น๋ค๋ก์ด ์ปดํจํฐ ๋น์ ์์ ์์ ์ต์ฒจ๋จ ์ฑ๋ฅ์ ๋ฌ์ฑํ๋ ๋ฐ ์์ด ๊ทธ ํจ๊ณผ๋ฅผ ์ ์ฆํ๋ค.
๐ง ๋ ผ๋ฌธ์ ์ฝ๊ณ Architecture ์์ฑ (with tensorflow)
import tensorflow as tf
from tensorflow.keras.layers import Input, Conv2D, MaxPooling2D, Flatten, Dense, Dropout
def AlexNet(input_shape, num_classes):
input_layer = Input(shape=input_shape)
# first convolutional layer
x = Conv2D(96, kernel_size=(11,11), strides=(4,4), padding='valid', activation='relu')(input_layer)
x = MaxPooling2D(pool_size=(3,3), strides=(2,2))(x)
x = Dropout(0.25)(x)
# second convolutional layer
x = Conv2D(256, kernel_size=(5,5), strides=(1,1), padding='same', activation='relu')(x)
x = MaxPooling2D(pool_size=(3,3), strides=(2,2))(x)
x = Dropout(0.25)(x)
# third convolutional layer
x = Conv2D(384, kernel_size=(3,3), strides=(1,1), padding='same', activation='relu')(x)
x = Dropout(0.25)(x)
# fourth convolutional layer
x = Conv2D(384, kernel_size=(3,3), strides=(1,1), padding='same', activation='relu')(x)
x = Dropout(0.25)(x)
# fifth convolutional layer
x = Conv2D(256, kernel_size=(3,3), strides=(1,1), padding='same', activation='relu')(x)
x = MaxPooling2D(pool_size=(3,3), strides=(2,2))(x)
x = Dropout(0.25)(x)
# flatten the output from the convolutional layers
x = Flatten()(x)
# first fully connected layer
x = Dense(4096, activation='relu')(x)
x = Dropout(0.5)(x)
# second fully connected layer
x = Dense(4096, activation='relu')(x)
x = Dropout(0.5)(x)
# output layer
output_layer = Dense(num_classes, activation='softmax')(x)
# define the model with input and output layers
model = tf.keras.Model(inputs=input_layer, outputs=output_layer)
return model
model = AlexNet(input_shape=(224,224,3), num_classes=1000)
model.summary()
Model: "model"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_12 (InputLayer) [(None, 224, 224, 3)] 0
conv2d_281 (Conv2D) (None, 54, 54, 96) 34944
max_pooling2d_59 (MaxPoolin (None, 26, 26, 96) 0
g2D)
dropout_21 (Dropout) (None, 26, 26, 96) 0
conv2d_282 (Conv2D) (None, 26, 26, 256) 614656
max_pooling2d_60 (MaxPoolin (None, 12, 12, 256) 0
g2D)
dropout_22 (Dropout) (None, 12, 12, 256) 0
conv2d_283 (Conv2D) (None, 12, 12, 384) 885120
dropout_23 (Dropout) (None, 12, 12, 384) 0
conv2d_284 (Conv2D) (None, 12, 12, 384) 1327488
dropout_24 (Dropout) (None, 12, 12, 384) 0
conv2d_285 (Conv2D) (None, 12, 12, 256) 884992
max_pooling2d_61 (MaxPoolin (None, 5, 5, 256) 0
g2D)
dropout_25 (Dropout) (None, 5, 5, 256) 0
flatten_9 (Flatten) (None, 6400) 0
dense_25 (Dense) (None, 4096) 26218496
dropout_26 (Dropout) (None, 4096) 0
dense_26 (Dense) (None, 4096) 16781312
dropout_27 (Dropout) (None, 4096) 0
dense_27 (Dense) (None, 1000) 4097000
=================================================================
Total params: 50,844,008
Trainable params: 50,844,008
Non-trainable params: 0
_________________________________________________________________