๐จโ๐ซ ๋ณธ ๋ฆฌ๋ทฐ๋ cs231n-2017 ๊ฐ์๋ฅผ ๋ฐํ์ผ๋ก ์งํํ์ต๋๋ค.
One time setup
Trainging dynamics
Evaluation
๐ ์ง๊ธ๊น์ง ๋ง์ Activation functions์ ๋ดค์์ต๋๋ค. ์ค๋์ ๊ฐ๊ฐ์ Activation functions์ ์ญํ๊ณผ ์ ์์ ๋ํด์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๐ ์๊ทธ๋ชจ์ด๋ ํจ์๋ฅผ ๋ณด๋ฉด, ์์ ๊ทธ๋ํ์ฒ๋ผ 0~1์ฌ์ด์ ๊ฐ์ ๊ฐ์ง๋๋ค. ์๊ทธ๋ชจ์ด๋ ํจ์์๋ ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ์กด์ฌํฉ๋๋ค.
๐ ๋ฌธ์ ์ 1. ๋ด๋ฐ์ด ํฌํ๋๋ฉด gradinet๋ฅผ ์ฃฝ์ผ๊ฒ๋๋ค.
๐ ๋ง์ฝ X๊ฐ -10, 0, 10์ด๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? -10์ด๋ฉด 0์ ๊ฐ๊น๊ฒ ์๋ ดํ ๊ฒ์
๋๋ค. ๋ํ chain rule๋ก ์ธํด gradient๋ค์ด 0์ ๊ฐ๊น๊ฒ ๋ฉ๋๋ค. ์ฆ gradient๊ฐ ์ฃฝ๊ฒ ๋ฉ๋๋ค. 10์ผ๋๋ ๋์ผํ ํ์์ด ์ผ์ด๋ฉ๋๋ค. 0์ผ๋๋ ์์ ๊ทธ๋ ํ์์ ํ์ธํ ์ ์๋ฐ์ด, 0.5์ ๊ฐ์ ๊ฐ์ง๋ฉฐ ์๋ฌด ์ด์ ์์ ๊ฒ๋๋ค.
๐ ๋ฌธ์ ์ 2. ์๊ทธ๋ชจ์ด๋ ํจ์์ ๊ฒฐ๊ณผ๊ฐ zero-center๊ฐ ์๋๋ผ๋ ๊ฒ์
๋๋ค.
๐ ์๊ทธ๋ชจ์ด๋ ํจ์๋ zero-center๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ํญ์ ์์์ด๊ฑฐ๋ ์์์ผ ๊ฒ์
๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์์ ๋นจ๊ฐ์ ์ฒ๋ผ gradinet๊ฐ ํน์ ๋ฐฉํฅ์ผ๋ก๋ง ์์ง์ด๊ธฐ ๋๋ฌธ์ ํจ์จ์ ์ด์ง ๋ชปํฉ๋๋ค. ์ฆ, ํ๋์ ์ฒ๋ผ ์์ง์ผ ์ ์๋ค๋ ๊ฒ์ด์ฃ .
๐ ๋ฌธ์ ์ 3. exp()์ฐ์ฐ์ด ๋น์ธ๋ค๋ ์ ์ ๋๋ค.
๐ ๋๋ฒ์งธ activation function์ผ๋ก tanh(x) ํจ์์ ๋๋ค. ์ด๋ ์๊ทธ๋ชจ์ด๋ ํจ์์ ๋ค๋ฅด๊ฒ -1 ~ 1์ฌ์ด์ ๊ฐ์ ๊ฐ์ง๋๋ค. ์ด๋ ์ฆ tanh๋ zero-centerํ๋ค๋ ๊ฒ์ ๋๋ค.
๐ ํ์ง๋ง ์ญ์๋ ๊ทธ๋ํ๋ฅผ ๋ณด์๋ฉด ํฌํ์ํ์์ gradient๊ฐ ์ฃฝ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
๐ ์์ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ ๋ฐฉ๋ฒ๋ก ์ผ๋ก ReLU ํจ์๊ฐ ์์ต๋๋ค. ReLU ํจ์๋ ๋ ์ ํํจ์์ ํฉ์ด๋ผ๊ณ ์๊ฐํ ์ ์์ต๋๋ค. ReLU๋ ์์์ธ ์ง์ญ์์๋ ํฌํ๊ฐ ๋์ง ์์ต๋๋ค. ReLU๋ ๋น์ธ์ง ์์ต๋๋ค. ๋ํ ๋ค๋ฅธ ํจ์๋ค๋ณด๋ค ์๋ ด์ด ๋น ๋ฅด๊ฒ ๋ฉ๋๋ค.
๐ ํ์ง๋ง ReLU ์ญ์ 0์ดํ์ ๊ฐ๋ค์ ์ ๋ถ 0์ผ๋ก ์๋ ดํฉ๋๋ค. ์ฆ, ์ ๋ฐ์ gradient๋ ์ฃฝ์ต๋๋ค. ๋ํ ์ญ์๋ zero-center์ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ด์ง ์์ต๋๋ค.
๐ ์์ training set(DATA CLOUD)์ ์ดํ๋ฉด์์ ๋ณด๋ฉด ReLU ํจ์๋ ๋นจ๊ฐ์์ ๋ฐฉํฅ์ผ๋ก๋ ํ์ฑํ ํ ์ ์์ต๋๋ค.
๐ ์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํ ๋ค์ํ ReLU ํจ๋ฐ๋ฆฌ๋ค์ด ๋์ค๊ฒ ๋ฉ๋๋ค. ๋จผ์ Leaky ReLU๋ ์์ ๊ทธ๋ํ์ ๊ฐ์ด ์ฃฝ์ง ์์ต๋๋ค. ๋ํ Parametric Rectifier์ ๊ฒฝ์ฐ ๊ณ์๋ฅผ ํ๋ผ๋ฏธํฐ์ฒ๋ผ ์ปจํธ๋กค ํ ์ ์์ต๋๋ค.
๐ ELU๋ ReLU์ Leaky ReLU์ ์ฌ์ด๋ผ๊ณ ์ฝ๊ฒ ์ด์ผ๊ธฐํ ์ ์์ต๋๋ค. ELU๋ ๊ธฐ์กด์ dying ReLU ํ์์ ๋ฐฉ์งํ๋ฉฐ, ๋ํ ๊ฑฐ์ zero-center์ ๊ฐ๊น๊ฒ ์กด์ฌํฉ๋๋ค. ํ ๋ง๋๋ก ReLU์ ์ฅ์ ๋ง ๋ชจ์๋์ ํจ์์ ๋๋ค. ํ์ง๋ง ์ ์ผํ ๋จ์ ์ผ๋ก exp()์ฐ์ฐ์ ์ํํด์ผํ๋ค๋ ์ ์ ๋๋ค.
๐ Maxout์ ReLU์ Leaky ReLU๋ฅผ ์ผ๋ฐํ ํ๊ฒ์ด๋ผ๊ณ ์๊ฐํ ์ ์์ต๋๋ค. ์ฃฝ์ง์๊ณ ํฌํํ์ง ์์ต๋๋ค. ํ์ง๋ง ์์ ์์ ๋ณด๋ฉด ํ๋ผ๋ฏธํฐ๋ฅผ ๋๋ฒ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ฐ์ฐ๋์ด ๋ง์ด ๋์ด๋ฉ๋๋ค.
๐จโ๐ซ ๊ฒฐ๋ก ์ ์ผ๋ก Activation Fucntion์ ReLU ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
๐ ์ด๋ฏธ์ง์ ๊ดํ ์ ์ฒ๋ฆฌ๋ ์ผ๋ฐ์ ์ผ๋ก zero-centered๋ง ์ํํ๋ค๊ณ ํฉ๋๋ค. ๋ฐ๋ฅธ ํ์คํ, PCA, ํ์ดํธ๋ ๋ฑ์ด ์กด์ฌํ์ง๋ง ์ผ๋ฐ์ ์ผ๋ก CNN ๊ณ์ด์ zero-centered๋ง ์ํํฉ๋๋ค.
๐ ์ด๋ฏธ์ง์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฒ์๊ฐ ์ ํด์ ธ ์๊ธฐ ๋๋ฌธ์ zero-centered๋ง ์ํํ๋ค๋ ๊ฒ๊ฐ์ต๋๋ค.
๐ ๋ง์ฝ W=0์ด๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ๋ชจ๋ ๋ด๋ฐ์ ๊ฐ์ด ์ ๋ถ ๋๊ฐ์ ๊ฒ์ ๋๋ค. ์ฆ, ์ฐ๋ฆฌ๋ Weight๋ฅผ ์ ๋นํ ๋ฐฉ๋ฒ์ผ๋ก ์ด๊ธฐํ ์์ผ์ค์ผํฉ๋๋ค.
๐ ๋จผ์ ~ Gaussian(0, 0.01) * 0.01๋ก ์ด๊ธฐํ ์์ผ์ค๋๋ค.
๐ ์์ ์๋ก ์ด๊ธฐํ ํ์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์์ ๊ทธ๋ํ๋ฅผ ๋ณด๋ฉด activation์ด 0์ผ๋ก ์๋ ดํ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. smell networks์์๋ ๊ด์ฐฎ์ ์ ์์ด๋ ๊น์ด์ง๋ฉด ์ง์๋ก 0์ผ๋ก ์๋ ดํ ๊ฒ์ ๋๋ค.
๐ ์์ ๊ทธ๋ํ์ฒ๋ผ 1.0์ ๋์ ๊ณฑํด์ฃผ๋ฉด, ์์ ๊ทธ๋ํ์ ๊ฐ์ด 1, -1๋ก ํฌํ๋๋ ๊ฒ์ ๋ณผ ์ ์๊ณ , gradient๋ ๊ฒฐ๊ตญ 0์ด ๋ ๊ฒ์ ๋๋ค.
๐ ์์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ ์ด์ผ๊ธฐ ํ ์ ์๋ ๊ฑด, ๊ฒฐ๊ตญ Weight ์ด๊ธฐํ ๋ํ ๊ณ ๋ฏผํด๋ด์ผํ ๋ฌธ์ ์ด๋ผ๋ ๊ฒ์ ๋๋ค. ํ์ง๋ง ๋๊ตฐ๊ฐ ๋ฏธ๋ฆฌ ์ข์ ์๋ฃจ์ ์ ์ ๊ณตํด์ค๋๋ค.
๐ "Xavier" ์ด๊ธฐํ ๋ฐฉ๋ฒ์ ๋๋ค. ์์ ์์ ๋ณด์๋ฉด ๊ฐ์ฐ์์ ๋ถํฌ์ ์ ๋ ฅ์ ์๋ฅผ ๋๋ ์ฃผ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ์ฆ, ์ ์ถ๋ ฅ์ ๋ถ์ฐ์ ๋ง์์ค๋๋ค. ์กฐ๊ธ ๋ ์ง๊ด์ ์ผ๋ก Input์ ์๊ฐ ์์ผ๋ฉด ๋ ์์ ๊ฐ์ผ๋ก ๋๋๊ณ ์กฐ๊ธ ๋ ํฐ ๊ฐ์ ์ป์ต๋๋ค. ์์ ์ ๋ ฅ์ ์๊ฐ ๊ฐ์ค์น์ ๊ณฑํด์ง๊ธฐ ๋๋ฌธ์, ๊ฐ์ค์น๊ฐ ๋ ์ปค์ผ๋ง ์ถ๋ ฅ์ ๋ถ์ฐ๋งํผ ํฐ ๊ฐ์ ์ป์ ์ ์์ต๋๋ค.
๐ ํ์ง๋ง ReLU ํจ์๋ฅผ ์ฌ์ฉํ ๋์๋ ์ถ๋ ฅ์ ์ ๋ฐ์ด ์ฃฝ๊ธฐ ๋๋ฌธ์, ๋ถํฌ๊ฐ 0์ผ๋ก ์๋ ดํ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
๐ ์์ ๋ํ ํด๊ฒฐ์ฑ ์ผ๋ก ์ ๋ ฅ์ ์๋ฅผ ์ ๋ฐ์ผ๋ก ๋๋ ์ค์ผ๋ก์จ ํด๊ฒฐํด์ค๋๋ค.
๐ Batch Normalization(BN)์ ๊ฐ๊ฐ์ ์ฐจ์์ unit gaussain์ผ๋ก ๋ฐ๊ฟ์ค๋๋ค.
๐ ์์ ๊ทธ๋ฆผ ์ฒ๋ผ ๊ฐ feature๋ง๋ค ํ๊ท ์ ๊ตฌํด Normalize๋ฅผ ์งํํฉ๋๋ค.
๐ BN์ ์์ ๊ฐ์ด FC layer๋ Conv layer ์ดํ์ ์ฌ์ฉ๋ฉ๋๋ค.(activation function ์ ์) ๋ํ Conv layer์ ๊ฒฝ์ฐ์๋ ๊ฐ๊ฐ์ activation map๋ง๋ค ํ๊ท ๊ณผ ๋ถ์ฐ์ ๊ตฌํฉ๋๋ค.
๐ ํ์ง๋ง ์์ ๋ฐฉ๋ฒ์ ๋ชจ๋ ํฌํ(saturation)์ ๋ฐฉ์งํ๋ค. ํ์ง๋ง ์ฐ๋ฆฌ์ ๋ชฉ์ ์ ๋ชจ๋ ํฌํ(saturation)๋ง๋ ๊ฒ ๋ณด๋ค๋ ์ปจํธ๋กคํ๊ณ ์ถ๋ค.
๐ ๊ทธ๋์ (scale)๊ณผ (shift)๋ฅผ ์ฌ์ฉํด ์ปจํธ๋กค ํ ์ ์์ต๋๋ค. ๊ทน๋จ์ ์ผ๋ก ์์ ์์์ ๊ฐ์ด (scale)๊ณผ (shift)๋ฅผ ์์ ๊ฐ์ด ์ ์ฉํ๋ฉด identity mapping์ด ๋ฉ๋๋ค.
๐ ์ ์ฒด์ ์ผ๋ก ํ์ต ์งํ ๊ณผ์ ์ ๋ณด์ฌ์ฃผ๊ณ ์์ต๋๋ค. ๋ํ ํ ์คํธ์ ํ์ต์ ์งํํ์ง ์๊ณ train์ ํ์ตํ๋ ํ๋ผ๋ฏธํฐ์ ํ๊ท ๊ณผ ๋ถ์ฐ์ ์ฌ์ฉํ๋ค.
๐ ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ๋ ์์์ ์ธ๊ธํ๋ฏ์ด ๊ฐ๋จํ๊ฒ zero-centered๋ง ์งํํฉ๋๋ค.
๐ CIFAR-10 3072 images๋ค์ Input์ผ๋ก 50๊ฐ์ hidden neurons๊ณผ 10๊ฐ์ ouptut class ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
๐ ๋จผ์ ์ด๋ค Loss๋ฅผ ์ฌ์ฉํ ๊ฒ์ธ์ง ์๊ฐํฉ๋๋ค. ์์ ์์์์๋ ๊ฐ์ค์น๊ฐ ๋งค์ฐ ์์ ์๋ก ์ด๋ค์ ธ ์๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ์ฆ, ๊ฐ์ค์น๊ฐ ์์๋ Softmax classifier์ Loss๋ negative log likelihood๋ฅผ ์ฌ์ฉํด์ผํฉ๋๋ค. ์์ ์์์๋ ์ ๊ทํ๋ ์ ์ฉํ์ง ์๊ณ ๊ณ์ฐํ์๋ 2.3026.. ๋ผ๋ ์ ๋นํ loss๊ฐ ๋์ต๋๋ค.
๐ ์ดํ 1e3์ ์ ๊ทํ ๊ณ์๋ฅผ ์ถ๊ฐํด ์งํํ์ ๋, 3.06.. ์ข ๋ ๋์ loss๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
๐ ๋ํ ๋ชจ๋ธ์ ํ ์คํธํ ์์๋ ๋งค์ฐ ์ผ๋ถ์ ๋ฐ์ดํฐ์ ์ ๊ฐ์ง๊ณ ์คํํฉ๋๋ค. ์ฆ, ๊ตฌ์ฑํ๋๋ก ์ ๋์ํ๋์ง ํ์ธํ๋ ์์ ์ ๋๋ค. ์์ ์ฝ๋์์๋ 20๊ฐ์ CIFAR-10 ๋ฐ์ดํฐ์ ์ ๊ทํ๋ ์ฌ์ฉํ์ง ์๊ณ , vanilla SGD๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ ์ ์์ ์์์์๋ overfit ๋๋๊ฒ์ด ๋น์ฐํ๊ณ , ๊ทธ๋ ๊ฒ ๋์ด์ผ ์ ์์ ๋๋ค.
๐ ์์ ์ฌ์ง๊ณผ ๊ฐ์ด ์ fitting ๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
๐ ์ด์ ๋ loss๋ฅผ ์ค์ด๋ ์ฝ๊ฐ์ ์ ๊ทํ์ learning rate ์ฐพ์ ๊ฒ๋๋ค. ํนํ๋ learning rate์ ๊ฒฝ์ฐ์๋ ๋งค์ฐ ์ค์ํ ํ์ดํผํ๋ผ๋ฏธํฐ ์ ๋๋ค. ๋๋ฌด ์์ผ๋ฉด ํ์ต์ด ์ ์ผ์ด๋์ง ์์ ๊ฒ๋๋ค. ๋ํ ๋๋ฌด ํฌ๋ฉด ๋ฐ์ฐํ๊ฑฐ๋ ์๋ ดํ์ง ๋ชปํ๊ธฐ์ ์ ๋นํ ๊ฐ์ผ๋ก ํ์ตํด์ผํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก [1e-3 ... 1e-5]๋ผ๊ณ ๋งํ ์ ์์ง๋ง, ๋ถ๋ช ํ๊ฑด ๊ตฌ์ฑํ ๋ชจ๋ธ์ ๋ฐ๋ผ ์์ดํ ๊ฒ์ ๋๋ค.
๐ Hyperparameter Optimization ์ค ์ญ์ ๊ฐ์ฅ ๋ํ์ ์ธ cross-validation์ ์ฌ์ฉํฉ๋๋ค. ์ฒซ ์คํ ์ด์ง์์๋ few epochs๊ณผ ๋๋ต์ ์ธ ํ๋ผ๋ฏธํฐ๋ก ์ฐพ์ผ๋ฉฐ, ๋๋ฒ์งธ ์คํ ์ด์ง์์๋ ์ฒซ ์คํ ์ด์ง์ ์คํ์ ๋ฐํ์ผ๋ก ๊ตฌ์ฒด์ ์ธ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฐพ์ต๋๋ค. ๋ํ ์ผ๋ฐ์ ์ผ๋ก cost๊ฐ 3๋ฐฐ์ด์ ๋ด๋ค๋ฉด ๋ฐ์ฐํ๋ค๊ณ ์๊ฐํ ์ ์์ต๋๋ค.
๐ ์ผ๋ฐ์ ์ผ๋ก lr์ด๋ reg๋ ์ง์๋ถ๋ถ์ ์ปจํธ๋กคํฉ๋๋ค. ์์ ๊ฒฐ๊ณผ์์ ๊ฐ์ฅ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
๐ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ์ผ๋ก ๊ตฌ์ฒด์ ์ธ ๋ฒ์๋ฅผ ์ฐพ์ ๋ค์ ํ ์คํธํฉ๋๋ค.
๐ ํ์ํผ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ ์ค์๋ ์์ ๊ฐ์ด Grid search ๋๋ Random search ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์์์ ๋ณผ ์ ์๋ฏ์ด Grid search๋ ๊ทธ๋ฆฌ๋ํ๊ฒ ์ ํํ๊ธฐ์ ์ต์ ์ ์ ์ฐพ์ง ๋ชปํ ๊ฐ๋ฅ์ฑ์ด ์์ง๋ง, Random search๋ ํน์ ๋ฒ์์์ ๋๋ค์ผ๋ก ์ฐพ๊ธฐ ๋๋ฌธ์ ์ต์ ์ ์ ์ฐพ์ ๊ฐ๋ฅ์ฑ์ด ๋ ๋์ต๋๋ค.
๐ ์ด์ธ์๋ ๋ค์ํ ํ์ดํผ ํ๋ผ๋ฏธํฐ๋ค์ด ์กด์ฌํ์ง๋ง ๋์ค์ ๋ ํ์ตํ๋ค๊ณ ํฉ๋๋ค.
๐ ๊ฒฐ๊ณผ์ ์ผ๋ก ์ต์ ์ ํ์ดํผํ๋ผ๋ฏธํฐ๋ฅผ ์ฐพ๊ธฐ ์ํด์ ์์ ๊ฐ์ด ๋ง์ ์๋๋ฅผ ํด๋ด์ผํ๋ค๊ณ ํฉ๋๋ค.
๐ ์ฒซ๋ฒ์งธ ๊ทธ๋ํ์์๋ learning rate์ ๋ฐ๋ฅธ loss์ ๋ถํฌ๋ฅผ ํ์ธ ํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ฒฐ๊ณผ์ ์ผ๋ก ๋นจ๊ฐ์์ ๊ณผ ๊ฐ์ learning rate์ ์ฐพ์๋ ค๊ณ ๋ ธ๋ ฅํด์ผํฉ๋๋ค.
๐ ๋๋ฒ์งธ ๊ทธ๋ํ์ ๊ฐ์ ๊ทธ๋ํ๊ฐ ๋์จ๋ค๋ฉด ์ด๊ธฐํ ๊ฐ์ด ์๊ฐํด๋ด์ผํฉ๋๋ค. ์ด๋ฐ์ ํ์ต์ด ์ ์๋๋ค๊ณ ์ด์ผ๊ธฐ ํ ์ ์์ต๋๋ค.
๐ ๋ง์ง๋ง์ผ๋ก train accurracy ์ Validation accurracy๋ฅผ ๋น๊ตํ ๋๋ ๋ ๊ทธ๋ํ์ gap์ ํ์ธํด ํ๋ผ๋ฏธํฐ๋ฅผ ์์ ํ ์ ์์ต๋๋ค.