cleanUrl: 'paper/AlexNet'
0. ์ด ๋ ผ๋ฌธ์ ์ ํํ๊ฒ ๋ ๋ฐฐ๊ฒฝ
์ง๋ 1์ฃผ์ผ๊ฐ ์ด ์ฑ
์ ๊ณต๋ถํ๋๋ฐ, ๊ฐ์ฅ ์ฐ๊ด์ด ๊น๋ค๊ณ ์๊ฐํ ๋
ผ๋ฌธ์ ๊ณจ๋์ต๋๋ค.
1. CNN ์ดํด(๋ณต์ต)
์ฐธ๊ณ )
[๋ฅ๋ฌ๋ ์ํคํ
์ฒ] ์ ์ค๊ณ๋ ๋ฅ๋ฌ๋ ์ํคํ
์ฒ ํน์ง 1, 2, 3ํธ|์์ฑ์ ์ธํ
๋ฆฌ์ฆ
CNN, Convolutional Neural Network ์์ฝ
์ด ๋
ผ๋ฌธ์ ์ฝ๊ธฐ ์ CNN์ ๋ํด ์ ๋ชจ๋ฅด์๊ฒ ๋ค๋ฉด ์ด ๊ธ๋ค๋ถํฐ ์ฝ๊ณ ์ค๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค!
- ๊ฐ๋จํ CNN ์ค๋ช
Fully Connected Layer ๋ง์ผ๋ก ๊ตฌ์ฑ๋ ์ธ๊ณต ์ ๊ฒฝ๋ง์ ์
๋ ฅ ๋ฐ์ดํฐ๋ 1์ฐจ์(๋ฐฐ์ด) ํํ๋ก ํ์ ๋ฉ๋๋ค. ํ ์ฅ์ ์ปฌ๋ฌ ์ฌ์ง์ 3์ฐจ์ ๋ฐ์ดํฐ์
๋๋ค. ๋ฐฐ์น ๋ชจ๋์ ์ฌ์ฉ๋๋ ์ฌ๋ฌ ์ฅ์ ์ฌ์ง์ 4์ฐจ์ ๋ฐ์ดํฐ์
๋๋ค. ์ฌ์ง ๋ฐ์ดํฐ๋ก ์์ ์ฐ๊ฒฐ(FC, Fully Connected) ์ ๊ฒฝ๋ง์ ํ์ต์์ผ์ผ ํ ๊ฒฝ์ฐ์, 3์ฐจ์ ์ฌ์ง ๋ฐ์ดํฐ๋ฅผ 1์ฐจ์์ผ๋ก ํ๋ฉดํ์์ผ์ผ ํฉ๋๋ค. ์ฌ์ง ๋ฐ์ดํฐ๋ฅผ ํ๋ฉดํ ์ํค๋ ๊ณผ์ ์์ ๊ณต๊ฐ ์ ๋ณด๊ฐ ์์ค๋ ์๋ฐ์ ์์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์ด๋ฏธ์ง ๊ณต๊ฐ ์ ๋ณด ์ ์ค๋ก ์ธํ ์ ๋ณด ๋ถ์กฑ์ผ๋ก ์ธ๊ณต ์ ๊ฒฝ๋ง์ด ํน์ง์ ์ถ์ถ ๋ฐ ํ์ต์ด ๋นํจ์จ์ ์ด๊ณ ์ ํ๋๋ฅผ ๋์ด๋๋ฐ ํ๊ณ๊ฐ ์์ต๋๋ค. ์ด๋ฏธ์ง์ ๊ณต๊ฐ ์ ๋ณด๋ฅผ ์ ์งํ ์ํ๋ก ํ์ต์ด ๊ฐ๋ฅํ ๋ชจ๋ธ์ด ๋ฐ๋ก CNN(Convolutional Neural Network)์
๋๋ค.
ย
CNN(Convolutional Neural Network)์ ๊ธฐ์กด Fully Connected Neural Network์ ๋น๊ตํ์ฌ ๋ค์๊ณผ ๊ฐ์ ์ฐจ๋ณ์ฑ์ ๊ฐ์ต๋๋ค.
- ๊ฐ ๋ ์ด์ด์ ์ ์ถ๋ ฅ ๋ฐ์ดํฐ์ ํ์ ์ ์ง
- ์ด๋ฏธ์ง์ ๊ณต๊ฐ ์ ๋ณด๋ฅผ ์ ์งํ๋ฉด์ ์ธ์ ์ด๋ฏธ์ง์์ ํน์ง์ ํจ๊ณผ์ ์ผ๋ก ์ธ์
- ๋ณต์์ ํํฐ๋ก ์ด๋ฏธ์ง์ ํน์ง ์ถ์ถ ๋ฐ ํ์ต
- ์ถ์ถํ ์ด๋ฏธ์ง์ ํน์ง์ ๋ชจ์ผ๊ณ ๊ฐํํ๋ Pooling ๋ ์ด์ด
- ํํฐ๋ฅผ ๊ณต์ ํ๋ผ๋ฏธํฐ๋ก ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์, ์ผ๋ฐ ์ธ๊ณต ์ ๊ฒฝ๋ง๊ณผ ๋น๊ตํ์ฌ ํ์ต ํ๋ผ๋ฏธํฐ๊ฐ ๋งค์ฐ ์ ์
ย
CNN์ ์ ์ด๋ฏธ์ง์ ๊ฐ์ด ์ด๋ฏธ์ง์ ํน์ง์ ์ถ์ถํ๋ ๋ถ๋ถ๊ณผ ํด๋์ค๋ฅผ ๋ถ๋ฅํ๋ ๋ถ๋ถ์ผ๋ก ๋๋ ์ ์์ต๋๋ค. ํน์ง ์ถ์ถ ์์ญ์ Convolution Layer์ Pooling Layer๋ฅผ ์ฌ๋ฌ ๊ฒน ์๋ ํํ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. Convolution Layer๋ ์
๋ ฅ ๋ฐ์ดํฐ์ ํํฐ๋ฅผ ์ ์ฉ ํ ํ์ฑํ ํจ์๋ฅผ ๋ฐ์ํ๋ ํ์ ์์์
๋๋ค. Convolution Layer ๋ค์์ ์์นํ๋ Pooling Layer๋ ์ ํ์ ์ธ ๋ ์ด์ด์
๋๋ค. CNN ๋ง์ง๋ง ๋ถ๋ถ์๋ ์ด๋ฏธ์ง ๋ถ๋ฅ๋ฅผ ์ํ Fully Connected Layer๊ฐ ์ถ๊ฐ๋ฉ๋๋ค. ์ด๋ฏธ์ง์ ํน์ง์ ์ถ์ถํ๋ ๋ถ๋ถ๊ณผ ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฅํ๋ ๋ถ๋ถ ์ฌ์ด์ ์ด๋ฏธ์ง ํํ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐฐ์ด ํํ๋ก ๋ง๋๋ Flatten ๋ ์ด์ด๊ฐ ์์น ํฉ๋๋ค.
ย
CNN์ ์ ์ด๋ฏธ์ง์ ๊ฐ์ด ์ด๋ฏธ์ง์ ํน์ง์ ์ถ์ถํ๋ ๋ถ๋ถ๊ณผ ํด๋์ค๋ฅผ ๋ถ๋ฅํ๋ ๋ถ๋ถ์ผ๋ก ๋๋ ์ ์์ต๋๋ค. ํน์ง ์ถ์ถ ์์ญ์ Convolution Layer์ Pooling Layer๋ฅผ ์ฌ๋ฌ ๊ฒน ์๋ ํํ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. Convolution Layer๋ ์
๋ ฅ ๋ฐ์ดํฐ์ ํํฐ๋ฅผ ์ ์ฉ ํ ํ์ฑํ ํจ์๋ฅผ ๋ฐ์ํ๋ ํ์ ์์์
๋๋ค. Convolution Layer ๋ค์์ ์์นํ๋ Pooling Layer๋ ์ ํ์ ์ธ ๋ ์ด์ด์
๋๋ค. CNN ๋ง์ง๋ง ๋ถ๋ถ์๋ ์ด๋ฏธ์ง ๋ถ๋ฅ๋ฅผ ์ํ Fully Connected Layer๊ฐ ์ถ๊ฐ๋ฉ๋๋ค. ์ด๋ฏธ์ง์ ํน์ง์ ์ถ์ถํ๋ ๋ถ๋ถ๊ณผ ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฅํ๋ ๋ถ๋ถ ์ฌ์ด์ ์ด๋ฏธ์ง ํํ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐฐ์ด ํํ๋ก ๋ง๋๋ Flatten ๋ ์ด์ด๊ฐ ์์น ํฉ๋๋ค.
2. AlexNet
๋ชจ๋ธ ์๊ฐ
1๋ฒ์งธ ๋ ๊ฐ์ ๋ ์ด์ด๋ ์ค์ฒฉ ์ต๋ ํ๋ง ๋ ์ด์ด(Max Pooling)๊ฐ ์์ต๋๋ค. ์ด๋ ๋ฐ์ดํฐ์ ์ค์ํ ์์๋ค๋ง ์์ฝํ์ฌ ์ถ์ถํ๋ ๊ธฐ๋ฅ์ํฉ๋๋ค.
3~ 5๋ฒ์งธ ๋ ์ด์ด๋ ์ง์ ์ฐ๊ฒฐ๋ฉ๋๋ค. ์ด๋ ์ค๊ฐ๋ค๋ฆฌ ์ญํ ์ ๋ ์ด์ด๋ก ํ๋ผ๋งคํฐํํ๊ธฐ ์ํ ๋ ์ด์ด๋ค์
๋๋ค.
5 ๋ฒ์งธ ๋ ์ด์ด๋ ์ค์ฒฉ ์ต๋ ํ๋ง ๋ ์ด์ด(Max Pooling)๊ฐ ๋ค๋ฐ๋ฆ
๋๋ค. ์ด ๋ ์ด์ด์ ์ถ๋ ฅ์ ์์ ํ ์ฐ๊ฒฐ๋ ๋ ์ด์ด(Fully Connected Layer)๋ก ๋ ๊ฐ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ด ๋ ์ด์ด์ ๊ฒฝ์ฐ 1~5๋ฒ์งธ ์์ฑ๋์ด ํ์ต๋ ๋ฐ์ดํฐ๋ค์ FC Layer๋ก ๋ชจ์ Categorizedํ๋ ๊ธฐ๋ฅ์ ํ๊ณ ์ต์ข
์ ์ผ๋ก ๋ถ๋ฅํ๋๋ฐ ๋์์ ์ค๋๋ค.
๋ง์ง๋ง์ผ๋ก ์์ ํ ์ฐ๊ฒฐ๋(Fully Connected Layer) ๋ ๋ฒ์งธ ๋ ์ด์ด๋ 1000 ํด๋์ค ๋ ์ด๋ธ์ด ์๋ softmax ๋ถ๋ฅ๊ธฐ๋ก ๋ถ๋ฅ๋ฉ๋๋ค.
Raw Input Data์์ ์ ์ฒด์ ์ผ๋ก ๋ค๋ก ํ๋ฅผ ์๋ก ๊ฐ ์์๋ค์ Categorized์ํค๊ณ ๋ฐ์ดํฐ๋ค์ ๊ฐ ์์๋ณ๋ก ์ ๋ฆฌํํ ๊ทธ๊ฒ์ ๋ํ ๋ถ๋ฅํ์ฌ ๋ฐ์ดํฐ๋ค์ ๊ฐ๊ฐ ๋ถํ ํ์ฌ ๋ถ๋ฅํ ์ ์๊ฒ ๋ง๋ค์ด ์ฃผ๋ ๊ฒ์ด ์๋ ์ค๋ท ์ํคํ
์ฒ์ ํต์ฌ์
๋๋ค.
์์
Top 5 test error ๊ธฐ์ค 15.4%๋ฅผ ๊ธฐ๋กํด ๊ธฐ์กด ํ๊ณ์น์ธ(26.2%)๋ฅผ ํฐ ํญ์ผ๋ก ๊ฐ์ ํ์์ต๋๋ค.
AlexNet์ ๊ตฌ์กฐ์ ํน์ง 7๊ฐ์ง
- ReLU(๋น์ ํ ํ์ฑํจ์)
์ค์ ์ธ๊ฐ์ ๋์ฒ๋ผ ์ ๊ฒฝ๋ง์ ๊ตฌ์ฑํ๋ค๋ฉด ํ์ฑํ ํจ์๋ tanh, sigmoid๊ฐ ๋์ด์ผ ํ๋๋ฐ, ์ ReLU๊ฐ ์ฑ๋ฅ์ด ์ข์๊น์? ๊ทธ ์ด์ ๋ ReLU๊ฐ non-saturationํ๊ธฐ ๋๋ฌธ์
๋๋ค. ๊ทธ๋์ ์ด๋ non-saturation์ด ๋ฌด์์ผ๊น์?
saturation(ํฌํ)
sigmoid, tanh ํจ์๋ ์ด๋ ํ ๊ฐ์ด ๋ค์ด์๋ -1~1, ํน์ 0~1 ์ฌ์ด์ ๊ฐ์ ๋ฐฐ์ถํฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ํฐ ๊ฐ์ด ๋ค์ด์์ ๋๋, ์ ์ฌ์ด์ ๊ฐ์ ๋ด๋์ saturation(ํฌํ)๋ฉ๋๋ค. ํ์ง๋ง ReLU๋ max(0, x)์ด๋ฏ๋ก ์ด๋ ํ ๊ฐ์ด ๋ค์ด์๋ ์ ํ์ด ์์ต๋๋ค. ๊ฐ์ด ํฌ๋ฉด ํด์๋ก ๋ํฐ gradient๋ฅผ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ReLU์ non-saturation์ด stochastic gradient descent์ ๊ฒฐํฉ๋์ด ๋์ฑ๋ ํจ์จ์ด ์ฆ๋๋ฉ๋๋ค. feature๊ฐ ํฐ ๊ฐ์ ๊ฐ์ง๊ณ ํฐ gradient๋ฅผ ๊ฐ์ง๊ณ ์์ ๊ฒฝ์ฐ ๊ด์ฑ์ด ์๊ฒจ ๋์ฑ๋ ๋คํธ์ํฌ๊ฐ ๋นจ๋ฆฌ ์ต์ ํํฉ๋๋ค. ๋ํ ReLU๋ ๋ฏธ๋ถํ๊ธฐ์๋ ๋จ์ํ์ฌ, ์ฐ์ฐ๋์ ๋ฉด์์๋ ์ถฉ๋ถํ ์ด์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ ๊ทธ๋ฆผ์ ๋ณด์๋ฉด ์ค์ ์ด ReLU๋ฅผ ์ฌ์ฉํ์ ๋์ด๊ณ ์ ์ ์ด tanh์ ์ฌ์ฉํ ๊ฒฝ์ฐ์
๋๋ค.
- Training on Multiple GPUs (๋ค์ค GPU๋ฅผ ์ด์ฉํ ํ์ต)
AlexNet์ 2012๋
๋น์ ์ปดํจํฐ ๋น์ ์์
์ ์ฌ์ฉ๋ ๊ธฐ์กด์ CNN๋ณด๋ค ํจ์ฌ ์ปธ์ต๋๋ค(์: Yann LeCun์ LeNet ๋
ผ๋ฌธ 1998). ์ด๋ 6์ฒ๋ง ๊ฐ์ ํ๋ผ๋ฏธํฐ์ 650,000๊ฐ์ ๋ด๋ฐ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ GTX 580 3GB GPU ๋ ๊ฐ์์ ํ์ตํ์ฌ 5-6์ผ์ด ๊ฑธ๋ ธ์ต๋๋ค. ๊ธฐ์กด์ CPU๋ก ํ์ตํ์๋๋ผ๋ฉด 50์ผ 60์ผ์ด ๊ฑธ๋ ธ์ ๊ฒ์
๋๋ค๋ง ํ๊ธฐ์ ์ผ๋ก Mutiple GPUs๋ฅผ ์ด์ฉํ ๋ณ๋ ฌ์ฒ๋ฆฌ ๊ธฐ๋ฒ์ผ๋ก ํ์ต์๊ฐ์ ํ๊ธฐ์ ์ผ๋ก ์ค์์ต๋๋ค.
- Local Response Normalization(์ปค๋ ์ ๊ทํ) - overfitting ๋ฐฉ์ง ๊ธฐ๋ฒ
Lateral inhibition์ด๋ ๊ฒ์ ์์ญ๋๊น? ์ค์ ๋ ์ธํฌ์ ์ฆ์์ธ๋ฐ, ๊ฐํ๋ด๋ฐ์ ํ์ฑํ๊ฐ ๊ทผ์ฒ ๋ค๋ฅธ ๋ด๋ฐ์ ํ๋์ ์ต์ ์ํค๋ ํ์์
๋๋ค. ๊ทธ๋์ ์๋ ๊ทธ๋ฆผ์ ๋ณด์๋ฉด ๊ฒ์ ๋ค๋ชจ๋ค ์ฌ์ด์ ํ์ ์ ?๋ถ๋ถ? ์ด ๋ณด์ผํ
๋ฐ ์ด๋ ๊ฒ์์ ์ฌ๊ฐํ์ ๋ณด๊ณ ๋ด๋ฐ๋ค์ด ๊ฐํ๊ฒ ๋ฐ์ํ์ฌ ํฐ์๋ถ๋ถ(์ฝํ ๋ด๋ฐ)์ ๋ฐ์ํ์ฌ ํ์์ด ์กฐ๊ธ ๋ณด์ด๊ฒ ๋ฉ๋๋ค.
๊ทธ๋์ ์ด๊ฒ์ด ์ ๋์๋ํ๋ฉด, Neural Network์ Feature์์ ํ ์ธํฌ๊ฐ ์ ๋ณ๋๊ฒ ๊ฐํ ๊ฐ์ ๊ฐ์ง๊ฒ ๋๋ค๋ฉด, ๊ทผ์ฒ์ ๊ฐ์ด ์ฝํ๋๋ผ๋ convolution ์ฐ์ฐ์ ํ๋ค๋ฉด ๊ฐํ feature๋ฅผ ๊ฐ์ง๊ฒ ๋๋๊ฒ์
๋๋ค. ๊ทธ๋ ๋ค๋ฉด over-fitting์ด ์ ์ผ์ด๋๊ฒ ๋๊ฒ ์ฃ (training dataset์๋ง feature๊ฐ ํฌ๊ฒ ๋ฐ์ํ๋๊น)
๊ทธ๋์ ์ด๋ ํ filter๊ฐ ์์ ๋, ๊ทธ ์ฃผ์ ํน์ ๊ฐ์ ์์น์ ๋ค๋ฅธ channel์ filter๋ค์ square-sumํ์ฌ ํ filter์์๋ง ๊ณผ๋ํ๊ฒ activateํ๋ ๊ฒ์ ๋ง์ต๋๋ค.
์์
a^i_x,y๋ i๋ฒ์งธ kernel์ x,y๊ฐ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๊ทํ๊ฐ ์ ์ฉ๋์ด b^i_x,y๋ก ๋ฐ๋๊ฒ ๋๋ ๊ฒ์
๋๋ค. n์ ํด๋น a์ ์์น์ spatial positionํ kernel๋ค์ ๊ฐ์๋ฅผ ๋งํฉ๋๋ค. N์ ์ด kernel ๊ฐ์์
๋๋ค. k, alpha, beta๋ normalization์ ์ํ ํ์ดํผ ํ๋ผ๋ฏธํฐ์
๋๋ค.
- Overlapping Pooling
์ผ๋ฐ์ ์ผ๋ก max pooling์ ํ ๋๋ ๊ฐ๊ฐ ์ค๋ณต๋์ง ์๋ ์์ญ์์ polling ํฉ๋๋ค. ํ์ง๋ง AlexNet์ 3x3 ์์ญ์ 2ํฝ์
๋จ์๋ก pooling ํ์ฌ ์กฐ๊ธ์ฉ ๊ฒน์น๋ ๋ถ๋ถ์ด ์๋๋ก pooling ํ์ฌ, overfitting ํ์์ ๊ฐ์ ํ์์ต๋๋ค.
- Reducing Overfitting(์ค๋ฒํผํ ๊ฐ์)
์๋ ๋๊ฐ์ง ๋ฐฉ์์ผ๋ก ์ค๋ฒํผํ
์ ์ค์์ต๋๋ค.
ย
5-1. Data Augmentation(๋ฐ์ดํฐ ํ์ฅ)
Over-fitting์ ๋ง๋ ๊ฐ์ฅ ๋จ์ํ ๋ฐฉ๋ฒ์ ๋ฐ์ดํฐ์
์ ํฌ๊ธฐ๋ฅผ ๋ง์ด ๋์ด๋ ๊ฒ์
๋๋ค. ๊ทธ๋์ Data Augmentation์ด๋ ๊ฒ์ ํตํด dataset์ ๋ ํฌ๊ฒ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ ์ํ์์ต๋๋ค.
256x256์ผ๋ก ๋ง๋ค์ด์ง ์ด๋ฏธ์ง์์ ๋๋ค์ผ๋ก 224x224๋ก ์ด๋ฏธ์ง๋ฅผ ์ฌ๋ฌ์ฅ cropํ๊ณ , ์ด๋ฏธ์ง๋ฅผ filp(์ข์ฐ๋ฐ์ )ํ ์ํ์์๋ cropํ์ฌ ์ด๋ฏธ์ง๋ฅผ 2048๋ฐฐ ๋์์ต๋๋ค. ํ
์คํธ์์๋ ์ด๋ฏธ์ง์ ๊ฐ์ฅ์๋ฆฌ 4๊ฐ์ ์ ๊ฐ์ด๋ฐ์์ patch๋ฅผ ๋ง๋ค์ด ๋คํธ์ํฌ๋ฅผ ํต๊ณผ์ํจํ softmax๋ฅผ ํ๊ท ๋์ต๋๋ค.
์ด๋ฏธ์ง ๋ฐ์ดํฐ์
์ PCA ๋ถ์์ ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ํ์ตํ๊ธฐ ์ฝ๋๋ก ๋ณํํ์์ต๋๋ค.
5-2. Dropout(๋คํธ์ํฌ ์๋ต)
Dropout์ด๋ hidden layer์ ๋ช๋ช ๋ด๋ฐ์ ๊ฐ์ 0์ผ๋ก ๋ฐ๊ฟ๋ฒ๋ฆฝ๋๋ค. ๊ทธ๋์ neuron์ด "dropped out(ํ๋ฝ)"๋์ด forward pass, back propagation์ ์๋ฌด๋ฐ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค. ์ด drop out์ ๋ด๋ฐ๋ค ๊ฐ์ ๋ณต์กํ ์ํธ์์กด๋๋ฅผ ๋ฎ์ถฐ over fitting์ ๋ง์ต๋๋ค. ํ
์คํธ ์์๋ ๋ชจ๋ ๋ด๋ฐ์ ์ฌ์ฉํ๋ output์ 0.5๋ฅผ ๊ณฑํ์ฌ ์ฌ์ฉํ์์ต๋๋ค.
ย
[์ฐธ๊ณ ํ ๊ธ]
๋ฐ๋ฐ๋ฅ๋ถํฐ ์์ํ๋ ๋ฅ๋ฌ๋1
ย
ย