6. Training Nearual Netwarks, part 1
โ Activation Function
1. Sigmoid
Sigmoid ํจ์๋ ๋ชจ๋ ์๋ฅผ [0,1] ์ฌ์ด์ ์๋ก squash ํ๋ค. ๊ฐ์ฅ ๊ฐ๋จํ activation function์ด์ง๋ง, ๋ฌธ์ ์ ์ด ์๋ค.
1. satured neurons "kill" the gradients
backpropagation์์ local gradient๊ฐ 0์ ๊ฐ๊น์ฐ๋ฉด gradient๋ ๊ฑฐ์ ์๊ฒ ๋๋ค.
2. sigmoid outputs are not zero centered
input ๋ฐ์ดํฐ๊ฐ ํญ์ ์์๋ผ๋ฉด, backpropagation ๊ณผ์ ์์ w๋ ๋ค ์์๊ฑฐ๋, ๋ค ์์์ด๊ฒ ๋๋ค. (zero-meanํ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.)
3. exp() is a bit compute expensive
2. Tanh
- sqaush into [-1,1]
- zero centered
3. ReLU
- Rectified Linear Unit
- f(x)=max(0,x)
- ์๋ ด์ ๊ธ์๋๋ก ๊ฐ์ํ ํ๋ค.
- ๋จ์ํด์ ๊ณ์ฐ์ด ํจ์จ์ ์ด๋ค.
- positive biases ํ ๊ฒฝ์ฐ ์ข๋ค. (์์๊ฐ ๋ค ์ฃฝ์ด๋ฒ๋ฆฌ๋๊น)
4. Leaky ReLU
- ReLU๊ฐ ์์์ผ ๋ ์ฃฝ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ ๋ฑ์ฅํจ
- ์์์ผ ๋, 0.01์ ์์ ๊ธฐ์ธ๊ธฐ ๊ฐ์
5. Maxout
ReLU์ ์ฅ์ ์ ์ทจํ๊ณ , dying problem์ ๊ฐ์ง ์์. ํ์ง๋ง ํ๋ผ๋ฏธํฐ ์๊ฐ ๋๋ฐฐ๋ก ๋์ด๋๋ค๋ ๋ฌธ์ ๊ฐ ์๊ธด๋ค.
โ Data Preprocessing
- zero-centered ํ๋ฉด activation ์์๋ ํจ์จ์ ์
- normalized๋ ์ด๋ฏธ์ง์์๋ ๋ง์ด ์ฌ์ฉํ์ง ์๋๋ค. ์ด๋ฏธ์ง์์๋ ์์น๊ฐ ์ถฉ๋ถํ ์๋ฏธ๋ฅผ ๊ฐ๊ธฐ ๋๋ฌธ์. ๋ค๋ฅธ ๋จธ์ ๋ฌ๋์ ๊ฒฝ์ฐ normalization ํด์ผ ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ๋น์ทํ ์ ๋๋ก ์๊ณ ๋ฆฌ์ฆ์ ๊ธฐ์ฌํจ.
- test set์๋ ์ ์ฉํ๋ค. (trn์ mean์ผ๋ก tst๋ preprocess ํจ)
- ์ด๋ฏธ์ง๋ 3 channel์ ์ฌ์ฉํด RGB ๊ฐ๊ฐ์ mean์ ์ฌ์ฉํด์ ๋บ๋ค. (batch์ ํ๊ท ์ ์ฌ์ฉํด๋ ๋๋ค...?)
โ Weight Initialization
- ๋ชจ๋ w๋ฅผ 0์ผ๋ก ์ด๊ธฐํํ๋ฉด, ๋ชจ๋ layer์ gradient๊ฐ ๋์ผํด์ง๊ฒ ๋๊ณ , ๊ทธ๋ผ ๋ชจ๋ NN์ด ๊ฐ์ ํ์ต์ ํ๊ฒ๋๋ค. ์ฐ๋ฆฌ๋ ๊ฐ๊ฐ์ ๋ด๋ฐ๋ค์ด ๋ค๋ฅธ ํ์ต์ ํ๊ธฐ ๋ฐ๋ผ๋ฏ๋ก w๋ ๋ชจ๋ ๋ค๋ฅธ๊ฐ์ผ๋ก ์ค์ ํ๋ ๊ฒ์ด ์ข๋ค.
- small random numbers๋ก ์ค์ ํ๋ฉด?
- ๊น์ network์์๋ ๋ฌธ์ ๊ฐ ๋๋ค. activation์ด ๋ค 0์ด ๋์ด๋ฒ๋ฆฐ๋ค (std๊ฐ 0์ผ๋ก)
- Xavier initialization
- 1/sqrt(n)์ผ๋ก ๋ถ์ฐ ๊ท๊ฒฉํ (์
์ถ๋ ฅ์ ๋ถ์ฐ์ ๋ง์ถฐ์ค๋ค)
w = np.random.randn(n) / sqrt(n)
- ReLU๋ ์ถ๋ ฅ์ ์ ๋ฐ์ ์ค์ด๊ธฐ ๋๋ฌธ์ ์ ๋ฐ์ด ๋งค๋ฒ 0์ด ๋์ด๋ฒ๋ฆฐ๋ค.
- ReLU์ ์ ์ ํ ์ต์ ์
w = np.random.randn(n) * sqrt(2.0/n)
โ Batch Normalization
- ์ฐ์ฐ์ ๊ณ์ํ๋ค๋ณด๋ฉด w์ scale์ด ์ปค์ง๋๋ฐ, batch norm ํตํด์ ์ผ์ ํ๊ฒ ์ ์ง์์ผ์ค
- ๋ชจ๋ ๋ ์ด์ด๊ฐ Unit Gaussian(ํ์ค์ ๊ท๋ถํฌ) ๋ฐ๋ฅด๊ฒ ํ๋ค.
- ๋์ learning rates
- initialization์ ์์กด๋๋ฅผ ๋ฎ์ถค
- regularization์ ์ญํ ์ ํด์ค
โ Babysitting the Learning Process
- Preprocess the data
- Choose the architecture
- Double check that the loss is reasonable. (ํด๋์ค ๊ฐ์๋ฅผ ๊ณ ๋ คํ์ ๋, ์ ๋นํ ๊ฐ์ธ์ง)
- train
- train with regulization and check learning rate
โ Hyperparameter Optimization
Cross-validatoin strategy
- trn set ์ผ๋ก ํ์ต, val set์ผ๋ก ํ๊ฐ
- log scale ์ฌ์ฉํด์ ์ ํ
Random Search
- Random Search๋ฅผ ์ฌ์ฉํ๋ ํธ์ด Graid Search ๋ณด๋ค ์ค์ํ ํฌ์ธํธ๋ค์ ์ ์ก์๋ธ๋ค.
Learning rate
- Loss curve๋ฅผ ํ์ธํด์ learning rate๊ฐ ์ ๋นํ์ง ํ๋จ
๊ผผ์ง๋ฝ
์๋ถ๋ถ์๋ง ์ง์ค์ ๋๋ฌด ํด์ ๋์ค์ ์กฐ๋๋ผ ์ ์ดํด๋ ๋ชปํ๋ค. ๋
ธํธ๊น์ง ๋ณด๋ ค๊ณ ์์ฌ๋ด๊ธฐ ๋ณด๋จ, ๊ทธ๋ฅ ์์ ๋ค์ ๋ ์ต๋ํ์ผ๋ก ์ดํด๋ฅผ ํด์ผ์งใ
ใ
์ค๋๋ง์ ๊ฐ์๋ ๊ฒ์ ๋ค์ผ๋ ๋๋ฌด ํ๋ค๋ค...