Lecture 6: Training Neural Networks 1
Activation Functions
ํ์ฑํ ํจ์๋ ๊ฐ์ค์น์ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๊ณฑํ ๊ฐ์ ์ ์งํ ๋ณ์๋ฅผ ๋ํ ๊ฐ์ ๋ค์ ๋ ์ด์ด๋ก ์ด๋ ํ ๊ฐ์ผ๋ก ์ ๋ฌํ ์ง ์ง์ ํ๋ ํจ์์ด๋ค. ๋ํ์ ์ธ ํ์ฑํ ํจ์๋ก Sigmoid, tanh, ReLU, Leaky ReLU, Maxout, ELU ๊ฐ ์๋ค.
Sigmoid
์๊ทธ๋ชจ์ด๋ ํจ์์ ๋ชจ์ต์ ๋ค์๊ณผ ๊ฐ๋ค.
$\sigma(x)=1/(1+e^{-x})$
์ด ํจ์๋ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ 0๊ณผ 1์ฌ์ด๋ก ๋ณํํ๋ค. ๊ทธ๋ฌ๋ ์ด ํจ์์๋ ์น๋ช ์ ์ธ ๋จ์ 3๊ฐ๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ์ ์ฌ์ฉ๋์ง ์๋๋ฐ, 3๊ฐ์ง ๋จ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ์ ๋ ฅ ๋ฐ์ดํฐ๊ฐ ํน์ ๊ฐ์ ๋์ด๊ฐ๊ฑฐ๋ ๋์ง ๋ชปํ๋ฉด gradient๊ฐ 0์ผ๋ก ์๋ ดํ๋ค. ์ฆ, gradient descent๋ฅผ ํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ์ญ์ ํ๋ฅผ ํ์ง ๋ชปํ๋ค.
- ์๊ทธ๋ชจ์ด๋ ํจ์์ ์ถ๋ ฅ๊ฐ์ ์ค์ฌ์ด 0์ด ๋์ง ์๋๋ค. ์ถ๋ ฅ๊ฐ์ ์ค์ฌ์ด 0์ด ๋์ง ์์ผ๋ฉด ๊ฐ์ค์น ํ๋ ฌ์ gradient๊ฐ ๋ชจ๋ ์์์ด๊ฑฐ๋ ์์์ ํํ๋ฅผ ๋๊ฒ๋๋ค. ์ด ๋ง์ธ์ฆ์จ ์ญ์ ํ๋ฅผ ํ ๋ ๊ฐ์ค์น ๊ฐ์ด ๋ชจ๋ ์ฆ๊ฐํ๊ฑฐ๋ ๊ฐ์ํ์ฌ ์ต์ ์ ๊ฐ์ค์น ํ๋ ฌ์ ์ฐพ๊ธฐ ์ด๋ ต๋ค๋ ๋ง์ด ๋๋ค.
- ์์ฐํจ์ $e$ ๊ฐ ๋ค์ด๊ฐ๋ ๊ณ์ฐ์ด๋ฏ๋ก ๊ณ์ฐ๊ณผ์ ์ด ์ค๋ ๊ฑธ๋ฆฐ๋ค.
tanh
tanh ํจ์์ ๋ชจ์ต์ ๋ค์๊ณผ ๊ฐ๋ค.
์ด ํจ์๋ ์ถ๋ ฅ๊ฐ์ ์ค์ฌ์ด 0์ด ๋์ง ์๋๋ค๋ ์ ๋ง ์ ์ธํ๋ฉด ์๊ทธ๋ชจ์ด๋ ํจ์์ ๊ฐ์ ๋จ์ ์ ๊ฐ์ง๊ณ ์์ด ๋ง์ฐฌ๊ฐ์ง๋ก ์์ฃผ ์ฌ์ฉ๋์ง๋ ์๋๋ค.
ReLU
ReLU์ ๋ชจ์ต์ ๋ค์๊ณผ ๊ฐ๋ค.
$f(x)=max(0,x)$
ReLU์ ์ฅ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ์ ๋ ฅ ๋ฐ์ดํฐ๊ฐ ์์์ผ๋ gradient๊ฐ 0๋ก ์๋ ดํ์ง ์๋๋ค.
- ๊ณ์ฐ๊ณผ์ ์ด ๋จ์ํ๊ณ ๋น ๋ฅด๋ค.
- ์ค์ ๋ด๋ฐ๊ณผ ์๋ํ๋ ๋ฐฉ๋ฒ์ด ๋น์ทํ๋ค.
๋ฐ๋ฉด ๋จ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ์ ๋ ฅ ๋ฐ์ดํฐ๊ฐ ์์์ผ๋ gradient๊ฐ 0์ผ๋ก ์๋ ดํ๋ค.
- ์ถ๋ ฅ๊ฐ์ ์ค์ฌ์ด 0์ด ๋์ง ์๋๋ค.
- ์๋ ์ฌ์ง๊ณผ ๊ฐ์ด ๋ฐ์ดํฐ๋ค์ด ์กด์ฌํ๋ ์ง์ญ ๋ฐ์ ํจ์๊ฐ ์กด์ฌํ๋ฉด dead ReLU, ์ฆ ์ฃฝ์ ReLU๊ฐ ๋์ด ๋ ์ด์ ์ ๋ฐ์ดํธ๊ฐ ๋์ง ์๋ ํจ์๊ฐ ๋๋ค.
Leaky ReLU, PreReLU
Leaky ReLU์ ๋ชจ์ต์ ๋ค์๊ณผ ๊ฐ๋ค.
$f(x)=max(0.01x,x)$
๊ธฐ๋ณธ์ ์ธ ํํ๋ ReLU์ ๋น์ทํ๋ ReLU์ ๋นํด ์ ๋ ฅ ๋ฐ์ดํฐ๊ฐ ์์์ผ๋ gradient๊ฐ 0์ผ๋ก ์๋ ดํ์ง ์๋๋ค๋ ์ฅ์ ์ ๊ฐ์ง๊ณ ์๋ค.
PreReLU๋ ๋ค์๊ณผ ๊ฐ์ด ReLU์ ๋น์ทํ ํจ์์ด๋ค. $f(x)=max(\alpha x,x)$
์ฌ๊ธฐ์ $\alpha$๋ ์ญ์ ํ ๊ณผ์ ์ ํตํด ์ฐพ์๋๊ฐ๋ค.
ELU
ELU์ ๋ชจ์ต์ ๋ค์๊ณผ ๊ฐ๋ค.
ReLU์ ๋ชจ๋ ์ฅ์ ์ ๊ณต์ ํ๊ณ ์์ผ๋ ์์ฐํจ์ $e$๊ฐ ํฌํจ๋ ๊ณ์ฐ๊ณผ์ ์ด ์๊ธฐ ๋๋ฌธ์ ๊ณ์ฐํ๋ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฐ๋ค๋ ๋จ์ ์ด ์๋ค.
Maxout
Maxout์ ๋ชจ์ต์ ๋ค์๊ณผ ๊ฐ๋ค.
$max(w_1^{T}x+b_1,w_2^{T}x+b_2)$
์ด ํจ์๋ ReLU์ LeakyReLU๋ฅผ ์ผ๋ฐํํ์ฌ ReLU์ ๋จ์ ์ ๋ชจ๋ ๊ทน๋ณตํ ๊ฒ์ ์์๊ฐ ์๋ค. ๊ทธ๋ฌ๋ ๊ธฐ์กด ReLU์ ๊ณ์ฐ๊ณผ์ ์ ๋๋ฐฐ๊ฐ ๋๋ค๋ ์ ์ด ๋จ์ ์ด๋ค.
Choosing Activation Functions
์ด๋ ํ ํ์ฑํ ํจ์๋ฅผ ์จ์ผ๋๋์ง์ ๋ํ ๊ฐ๋จํ ํ์ด๋ค.
- ์ฒ์์๋ ReLU ํจ์๋ฅผ ์ฌ์ฉํ๋ค. ์ด๋ learning rate๋ฅผ ์ ์ค์ ํ๋ ๊ฒ์ด ์ค์ํ๋ค.
- ๋ค์์ผ๋ก Leaky ReLU, Maxout, ELU๋ฅผ ์ฌ์ฉํด๋ณธ๋ค.
- tanh๋ ํ๋ฒ์ฏค ์๋ํด๋ณด๋ ๊ฒฐ๊ณผ์ ๋ํ ๊ธฐ๋๋ ํ์ง ์๋ ๊ฒ์ด ์ข๋ค.
- sigmoid๋ ์ ๋ ์ฌ์ฉํ์ง ์๋๋ค.
Data Preprocessing
์ด๋ฏธ์ง๋ฅผ ํ๋ จ์ํค๊ธฐ ์ ์ ์ ์ฒ๋ฆฌ๋ฅผ ํ๋ ๊ฒ์ด ์ข๋ค. ์ถ์ฒ๋๋ ์ ์ฒ๋ฆฌ ๊ณผ์ ์ zero centering, ์ฆ ๋ฐ์ดํฐ์ ํ๊ท ์ด 0์ด ๋๊ฒ ํ๋ ๊ฒ์ด๋ค. ์ด๋, ์ด๋ฏธ์ง ๋ฐ์ดํฐ์ ๋ถํฌ์ ํฌ๊ธฐ๋ฅผ ๋ณด์กดํ๊ธฐ ์ํด ์ ๊ทํ ๊ณผ์ ์ ์ ์ฌ์ฉ๋์ง ์๋๋ค.
zero centering ์ธ์ ์ถ์ฒํ๋ ์ ์ฒ๋ฆฌ๋ ์ด๋ฏธ์ง์ ์ฐจ์์ ์ค์ด๋ PCA, ๋ถ์ฐ์ 1๋ก ๋ง๋๋ whitening ๋ฑ์ด ์๋ค.
์ฌ๊ธฐ์ ์ ๊ทํ๋ฅผ ์ํด ํ๊ท ์ ๊ตฌํ๋ 2๊ฐ์ง์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์๋ค.
- ์ด๋ฏธ์ง์ ์ฐจ์์ ์๊ฐํ์ง ์๊ณ ๊ฐ ํฝ์ ์ ํ๊ท ์ ๊ตฌํ๋ค. (ex: AlexNet)
- ์ฐจ์๋ณ๋ก ๊ฐ ํฝ์ ์ ํ๊ท ์ ๊ตฌํ๋ค. (ex: VGGNet)
Weight initalization
์ ํํ ํ๋ จ ๋ชจ๋ธ์ ๋ง๋ค๊ธฐ ์ํด ์ด๊ธฐ ๊ฐ์ค์น ๊ฐ์ ์ ์ค์ ํ๋ ๊ฒ์ ๋งค์ฐ ์ค์ํ๋ค. ์ด๋ ํ ๊ฐ์ ์ค์ ํ๋ ๊ฒ์ด ์ข์์ง ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ์ ํ๋ฒ ์ดํด๋ณด์.
- ์์ ๋๋ค ์ซ์๋ก ์ค์ ํ๋ค
- ๋ ์ด์ด๊ฐ ์ค์ฒฉ๋๋ฉฐ ๊ฐ์ค์น๋ฅผ ๊ณ์ ๊ณฑํ์๋ ํ์คํธ์ฐจ๊ฐ 0์ ๊ฐ๊น์์ง๋ฏ๋ก ์ข์ ๋ฐฉ๋ฒ์ด ์๋๋ค.
2. ํฐ ๋๋ค ์ซ์๋ก ์ค์ ํ๋ค.
- ๋ ์ด์ด๊ฐ ์ค์ฒฉ๋๋ฉฐ ๊ฐ์ค์น๋ฅผ ๊ณ์ ๊ณฑํ์๋ ํ์คํธ์ฐจ๊ฐ -1 ๋๋ 1์ ๊ฐ๊น์์ง๋ฏ๋ก ์ข์ ๋ฐฉ๋ฒ์ด ์๋๋ค.
3. Xavier initalization
- ์ ๋ ฅ ๋ฐ์ดํฐ์ ๋ถ์ฐ๊ณผ ์ถ๋ ฅ ๋ฐ์ดํฐ์ ๋ถ์ฐ์ ๊ฐ๊ฒ ๋ง๋๋ ๋ฐฉ๋ฒ์ด๋ค.
- ์ถ๋ ฅ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ํฌ๋ฉด ๊ฐ์ค์น์ ๊ฐ์ ์๊ฒ ์ค์ ํ๊ณ , ์ถ๋ ฅ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ์์ผ๋ฉด ๊ฐ์ค์น์ ๊ฐ์ ํฌ๊ฒ ์ค์ ํ๋ค.
- ๊ฐ์ฅ ์ด์์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก, ๋ ์ด์ด๋ฅผ ์ค์ฒฉํ ์๋ก ํ์คํธ์ฐจ๊ฐ ๊ฐ์ํ๋ฉฐ ํน์ ๊ฐ์ผ๋ก ์๋ ดํ๋ ํํ์ด๋ค.
- ReLU๋ฅผ ์ฌ์ฉํ ๋๋ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ 2๋ก ๋๋์ด์ผ์ง ์ ์์ ์ผ๋ก ์๋ํ๋ค.
Batch Normalization
๋ฐฐ์น ์ ๊ทํ(Batch Normalization) ๋ ์ด๋ฏธ์ง๋ฅผ ํ์ตํ๋ฉด์ ๋ฐ์ดํฐ์ ๋ถํฌ๊ฐ ๋ณํ๋์ง ์๋๋ก ํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ด๋ค. ์ผ๋ฐ ์ ๊ทํ์ ๋ค๋ฅธ ์ ์ ์ฐจ์๋ณ๋ก ๋ฐฐ์น์ ์ ๊ทํ๋ฅผ ํ๋ค๋ ๊ฒ์ ์๋ค. ๋ฐฐ์น ์ ๊ทํ์ ๊ธฐ๋ณธ์ ์ธ ๊ณต์์ ๋ค์๊ณผ ๊ฐ๋ค.
$\hat{x}^{(k)}=\frac{x^{(k)}-E[x^{(k)}]}{\sqrt{Var[x^{(k)}]}}$
๋ฐฐ์น ์ ๊ทํ๋ ์ฃผ๋ก fully connected layer, convolutional layer ๋ฐ๋ก ๋ค์์ ์ด๋ฃจ์ด์ง๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฐฐ์น ์ ๊ทํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ์ ๊ทํ ๋๊ธฐ ์ ์ ๋ฐ์ดํฐ๋ก ๋ณ๊ฒฝํด์ผ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ด ์๊ธด๋ค. ๋ฐ๋ผ์ ์ด์ ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ๊ธฐ ์ํ ๋ณ์์ธ $\gamma$ ์ $\beta$ ๋ํ ๋ฐฐ์น ์ ๊ทํ ๊ณผ์ ์์ ๊ณ์ฐํ๋ค.
$y^{(k)}=\gamma^{(k)} \hat{x}^{(k)}+\beta^{(k)}$
๋ฐฐ์น ์ ๊ทํ์ ์ฅ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- gradient flow๊ฐ ๊ฐ๋จํด์ง๋ค.
- ๋์ learning rate์ ์ฌ์ฉ์ด ๊ฐ๋ฅํด์ง๋ค.
- ์ด๊ธฐ ๊ฐ์ค์น ๊ฐ ์ค์ ์ ๋ํ ๋ถ๋ด์ ๋์ด์ค๋ค.
- dropout ์ฌ์ฉ์ ํ์์ฑ์ด ๋ค์ ๊ฐ์ํ๋ค.
์๋ ์ฌ์ง์ ๋ฐฐ์น ์ ๊ทํ์ ๋ํด ๋ฐฐ์ด ๋ด์ฉ์ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํ ๋ด์ฉ์ด ๋์์๋ค.
Monitoring the training
์ด๋ฏธ์ง์ ํ๋ จ์ ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.
- ์ด๋ฏธ์ง ๋ฐ์ดํฐ๋ฅผ ์ ์ฒ๋ฆฌํ๋ค.
# zero-centering ๋ฐฉ๋ฒ์ ์ด์ฉ
X -= np.mean(X, axis=0)
2. ํ๋ จ ๋ชจ๋ธ์ ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ๋ค. ์ด๋, ์ธต์ ๊ฐ์, ๋
ธ๋์ ๊ฐ์๋ฑ์ ์ ํ๋ค.
# ๋ ์ด์ด์ ์๋ 50๊ฐ, ๋ ์ด์ด๋น ๋
ธ๋ ์๋ 10๊ฐ๋ก ์ค์ ํ๋ค.
3. ๋ชจ๋ธ์ ํ๋ จ์ํจ๋ค. ์ด๋, ์ ์งํ(regularization)๊ฐ์ 0, learning rate๋ ์ ๋นํ ์๊ฒ ์ค์ ํ๋ค. ๋ํ ์ด๋ฏธ์ง ๋ฐ์ดํฐ์ ์ผ๋ถ์ ๊ณผ์ ํฉ ํ ์ ์๋๋ก 20๊ฐ์ ๋ฐ์ดํฐ๋ง ํ๋ จ์ํจ๋ค.
model = init_two_layer_model(32*32*3,50,10) #input size, hidden layer size, number of classes
trainer = ClassifierTrainer()
X_tiny = X_train[:20] # 20๊ฐ์ ๋ฐ์ดํฐ๋ง ํ๋ จ์ํจ๋ค.
y_tiny = y_train[:20]
best_model, stats = trainer.train(X_tiny,y_tiny,X_tiny,y_tiny,
model,two_layer_net,
num_epochs=200, reg=0.0,
update='sgd', learning_rate_decay=1,
sample_batch=False,
learning_rate=1e-3, verbose=True)
์ ์ฝ๋๋ฅผ ์คํ์ํค๋ฉด ๋ค์๊ณผ ๊ฐ์ด epoch๋ณ ํ๋ จ ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค.
ํ๋ จ์ ์งํํ ์๋ก ์์ค๊ฐ(cost)์ ๊ฐ์ํ๊ณ ์ ํ๋(train)์ ์ฆ๊ฐํ์ฌ ํ๋ จ์ด ์ ์์ ์ผ๋ก ์ด๋ฃจ์ด์ง๊ณ ์๋ค๋ ์ฌ์ค์ ํ์ธํ ์ ์๋ค.
4. ์ ์งํ ๊ฐ์ ๋ณ๊ฒฝํ๊ณ learning rate ๊ฐ์ ๋ ์๊ฒ ์ค์ ํ์ฌ ๋ชจ๋ธ์ ๋ค์ ํ๋ จ์์ผ๋ณธ๋ค.
model = init_two_layer_model(32*32*3,50,10) #input size, hidden layer size, number of classes
trainer = ClassifierTrainer()
best_model, stats = trainer.train(X_train,y_train,X_val,y_val,
model,two_layer_net,
num_epochs=10, reg=0.000001,
update='sgd', learning_rate_decay=1,
sample_batch=True,
learning_rate=1e-6, verbose=True)
ํ๋ จ์ด ์งํํ ์๋ก ์์ค๊ฐ๊ณผ ์ ํ๋ ๊ฐ์ด ๊ฑฐ์ ๊ทธ๋๋ก ์ธ๊ฒ์ ํ์ธํ ์ ์๋ค. ์ด๋ฌํ ํ์์ learning rate์ ๋๋ฌด ๋ฎ๊ฒ ํ์๊ธฐ ๋๋ฌธ์ด๋ค.
5. ๊ทธ๋ ๋ค๋ฉด learning rate๋ฅผ ํฌ๊ฒ ์ค์ ํ์ฌ ๋ชจ๋ธ์ ๋ค์ ํ๋ จ์์ผ๋ณด์.
model = init_two_layer_model(32*32*3,50,10) #input size, hidden layer size, number of classes
trainer = ClassifierTrainer()
best_model, stats = trainer.train(X_train,y_train,X_val,y_val,
model,two_layer_net,
num_epochs=10, reg=0.000001,
update='sgd', learning_rate_decay=1,
sample_batch=True,
learning_rate=1e6, verbose=True)
์์ค๊ฐ์ด NaN์ด ๋์๋ค. ์ด๋ฌํ ํ์์ learning rate๊ฐ ์ง๋์น๊ฒ ํฌ๊ฒ ์ค์ ๋์๊ธฐ ๋๋ฌธ์ ๋ํ๋์๋ค.
Hyperparameter Optimization
Cross validation
์ต์ ์ parameter์ ์ฐพ๊ธฐ ์ํ ๊ณผ์ ์ผ๋ก ๊ต์ฐจ ๊ฒ์ฆ(cross-validation)๊ฐ ์๋ค. ์ ์งํ ๋ณ์์ learning rate ๋ณ์๋ฅผ ์ผ์ ํ ๋ฒ์๋ก ์ค์ ํ ํ ๊ทธ ๋ฒ์ ์์์ ๊ฐ์ฅ ์ข์ ์ฑ๋ฅ์ ๋ณด์ด๋ ๋ชจ๋ธ์ parameter์ ์ฐพ๋ ๋ฐฉ๋ฒ์ด๋ค.
max_count = 100
for count int xrange(max_count):
reg = 10**uniform(-4,0)
lr = 10**uniform(-3,-4)
trainer = ClassifierTrainer()
model = init_two_layer_model(32*32*3,50,10) #input size, hidden layer size, number of classes
trainer = ClassifierTrainer()
best_model_local, stats = trainer.train(X_train,y_train,X_val,y_val,
model,two_layer_net,
num_epochs=5, reg=reg,
update='momentum', learning_rate_decay=0.9,
sample_batches=True, batch_size=100,
learning_rate=lr, verbose=True)
๋นจ๊ฐ์ ๋ฐ์ค๊ฐ ์ณ์ง ๋ชจ๋ธ์ ๊ฒ์ฆ ๋ฐ์ดํฐ์ ์ ํ๋(val_acc)๊ฐ ๋๊ฒ ๋ํ๋ ์ด ๋ชจ๋ธ์ ์ฌ์ฉ๋ ์ ์งํ ๋ณ์์ learning rate ๋ณ์๋ฅผ ๋ฒ์๋ก ์ง์ ํด ๋ค์ ๊ต์ฐจ๊ฒ์ฆ์ ์ค์ํ ์ ์๋ค.
Random search
์ด์ ๋จ์์์ ๋๋ค์์น(Random search)๋ ์๋นํ ๋ฌด์ํ๊ณ ์ ์ฐ์ด์ง ์๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ํ์ ์ด ์๋ค. ๊ทธ๋ฌ๋ ์ด๋ฏธ์ง ๋ฐ์ดํฐ๋ฅผ ํ๋ จ์ํฌ๋๋ ๋๋ค์์น๊ฐ ์๋นํ ์ ์ฉํ ์ ์๋๋ฐ, ์ผ์ ํ ๊ท์น์ ๋ฐ๋ผ ์ ๋ ฌ๋ parameter๋ณด๋ค ์์ ํ ๋๋คํ parameter์ ์ฐ๋ ๊ฒ์ด ์์์น ๋ชปํ๊ฒ ๋ ํจ๊ณผ์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ผ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
Visualization of loss curve
๋ค์์ learning rate๋ฅผ ์ด๋ป๊ฒ ์ค์ ํ๋๋์ ๋ฐ๋ผ ๋ํ๋๋ ์์ค๊ฐ์ ๊ทธ๋ํ๋ก ํํํ ๊ฒ์ด๋ค.
๋ง์ฝ ์๋ ์ฌ์ง๊ณผ ๊ฐ์ด loss ๊ฐ์ด ํ๋์ ์ผ์ ํ๋ฉด ์ด๊ธฐ ๊ฐ์ค์น ๊ฐ์ ์๋ชป ์ค์ ํ์๋ค๋ ์๋ฏธ์ด๋ค.
์๋ ๊ทธ๋ํ๋ฅผ ํ๋ฒ ๋ณด์. ๋นจ๊ฐ์ ๊ทธ๋ํ์ ์ด๋ก์ ๊ทธ๋ํ์ ์ฐจ์ด๊ฐ ํฐ ๊ฒฝ์ฐ๋ ํ๋ จ ๋ฐ์ดํฐ์ ์ง๋์น๊ฒ ๊ณผ์ ํฉํ์ฌ ์ ์งํ ๊ณผ์ ์ด ํ์ํ ๊ฒฝ์ฐ์ด๋ค.
Summary
- ํ์ฑํ ํจ์๋ ReLU๋ฅผ ์ฌ์ฉํ๋ค.
- ์ ์ฒ๋ฆฌ๊ณผ์ ์ zero-centering ๋ฐฉ๋ฒ์ ์ด์ฉํ๋ค.
- ์ด๊ธฐ ๊ฐ์ค์น ๊ฐ ์ค์ ์ Xavier initalization ๋ฐฉ๋ฒ์ ์ด์ฉํ๋ค
- ๋ฐฐ์น ์ ๊ทํ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ถ์ฒํ๋ค.
- ์ต์ ์ parameter๋ฅผ ์ฐพ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก ๊ต์ฐจ ๊ฒ์ฆ์ ์ด์ฉํ๋, ๊ฐ๋ฅํ๋ฉด ๋๋ค ์์น๋ ์๋ํด๋ณธ๋ค.
Comments