ํ์ดํผ ํ๋ผ๋ฏธํฐ
ํ์ดํผ ํ๋ผ๋ฏธํฐ ๋ ์ฌ๋์ด ์๋์ผ๋ก ์กฐ์ ํ๋ ํ๋ผ๋ฏธํฐ์ด๋ค. ํ์ดํผ ํ๋ผ๋ฏธํฐ๋ฅผ ์ ์กฐ์ ํ๋ฉด ์ฑ๋ฅ์ด ๊ฐ์ ๋ ์ ์๋ค. ๋ค์๊ณผ ๊ฐ์ ์ข ๋ฅ๊ฐ ์๋ค. ์ด๋ฒ์๋ ๋ฅ๋ฌ๋์์ ์ฐ๋ฆฌ๊ฐ ์กฐ์ํ ์ ์๋ ํ์ดํผ ํ๋ผ๋ฏธํฐ์ ๋ํด ์์๋ณด๊ณ ํ๋(์กฐ์ )ํ๋ ๋ฐฉ๋ฒ๋ค๋ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค.
Model-free hyperparameters ( ๋ชจ๋ธ๊ณผ ๊ด๋ จ ์๋ ํ์ดํผํ๋ผ๋ฏธํฐ)
learning rate
pytorch ์์๋ learning rate scheduler๋ฅผ ์ ๊ณตํ๋ค. ์ด ๋ ๊ฐ์ง๊ฐ ์๋ค.
1. LambdaLR
2. stepLR
batch size
- ํด์๋ก ์ข๋ค, ์ฃผ์ด์ง GPU์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ณด๊ณ ์ต์ฌ์ ๋ฐฐ์น์ฌ์ด์ฆ๋ฅผ ์ค์ ํ๋ ๊ฒ์ด ์ฑ๋ฅ์ด ์ข๋ค๊ณ ์๋ ค์ ธ ์๋ค.
๋ฐฐ์น ์ฌ์ด์ฆ๊ฐ ํฌ๋ฉด, ํ๋ฒ ํ์ตํ ๋ ๋ณด๋ ์ด๋ฏธ์ง/ํ ์คํธ ๋ฐ์ดํฐ๊ฐ ๋์ด๋๊ฒ ๋๋ค. outlier(์ด์์น)์ ๋ํด ๊ณผ์ ํฉ๋์ง ์๊ณ , ํ์ต์ด ๋น ๋ฅด๋ค
(์๋ฅผ ๋ค์ด ํ์ต์ 1๋ฒํ ๋ ์ด๋ฏธ์ง๋ฅผ ํ์ฅ์ฉ ๊ผผ๊ผผํ ๋ณด๋ ๊ฒฝ์ฐ์ 100์ฅ์ฉ ๋ณด๋ ๊ฒฝ์ฐ๋ฅผ ๋น๊ตํด๋ณด๋ฉด 100์ฅ์ ๋ณผ๋ ๊ณผ์ ํฉ์ด ์ ๊ณ 100์ฅ์ ๊ณตํต๋ feature๋ฅผ ํ์ตํ ์ ์๊ธฐ ๋๋ฌธ์ 100์ฅ์ฉ ๋ณด๋ ๊ฒฝ์ฐ๊ฐ ์ข๋ค. )
epoch
ํ์ต ํ์์ด๋ค. ํฌ๋ฉด ํด์๋ก ํ์ต์ ๋ง์ด ํ๊ฒ๋๊ธฐ ๋๋ฌธ์ ํ์ต ์๊ฐ๋ ๋์ด๋๊ฒ ๋๋ค.
optimizer
์ฐ๋ฆฌ๊ฐ ์๋ ์ตํฐ๋ง์ด์ ์ด๋ค. ์ ์ฌ์ง๊ณผ ๊ฐ์ ๋ค์ํ ์ข ๋ฅ์ ์ตํฐ๋ง์ด์ ๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ์ต๊ทผ์๋ Adam ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ณดํธ์ ์ด๋ค.
Adam ์ ์ฌ์ฉํ๋ค๋ฉด, beta1, beta2์ ๊ฐ์ด ์ค์ํ ํ์ดํผํ๋ผ๋ฏธํฐ๊ฐ ๋ ๊ฒ์ด๋ค.
Weight initialization
๋ชจ๋ธ์ ์ด๋ป๊ฒ ์ด๊ธฐํํ ๊ฒ์ธ๊ฐ?์ ๋ํ ๊ฒ์ผ๋ก
weight๋ฅผ zero๋ก ํจ๋ฉ, ๋๋คํ๊ฒ ํ์ต์ํฌ ์๋ ์๋ค.
x๋ฅผ ๊ฐ์ง๊ณ y^(y hat)์ ์์ธกํ๋ ๊ณผ์ ์ ๋ณด๋ฉด, x๋ฅผ encoder(pre-trained LM, ๋ณดํต์ BERT)๋ฅผ ๊ฑฐ์ณ Z๋ฒกํฐ๋ฅผ ๊ฑฐ์ณ, fully connected layer๋ฅผ ๊ฑฐ์นจ์ผ๋ก์จ ์์ธก๊ฐ์ด ๋์ถ๋๋ค. fully connected layer ๋ ๊ธฐ์กด์ ์๋ ๊ฐ์ค์น๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ง๋ง, ์๋ก์ด ๋ฐ์ดํฐ์ ์ ์ฌ์ฉํ ๊ฒฝ์ฐ์ ์๋ก ์ด๊ธฐํ ํ๊ฑฐ๋ ์คํฌ๋์น๋ถํฐ ์ฆ ๋ฐ๋ฅ๋ถํฐ ๋ค์ ๋ง๋ค์ด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
์ด๋ด๋ ์ ๊ท๋ถํฌ๋ฅผ ์ฌ์ฉํ๊ฑฐ๋, uniform, Xavier initialization, He initialization ๋ฑ์ ์ฌ์ฉํ๋ค. Xavier initialization ์ sigmoid ๊ธฐ๋ฐ์ด๊ณ He ๋ ReLU ๊ธฐ๋ฐ์ด๋ค.
Early stop strategy
๋ชจ๋ธ ํ์ต์ ํ ๋ ์ํฌํฌ๋ฅผ 500์ผ๋ก ํ๊ณ , ๋๋ฆฌ๋ ์ค Loss 400 = 0.005 ์ด๊ณ , Loss 390~399๋ฒ์งธ 0.0052 ๋ก ๋ณ ์ฐจ์ด๊ฐ ์์ ๋ ๋์ด์ ์ฑ๋ฅ์ด ์ข์์ง์ง ์๋๋ค๋ผ๊ณ ํ๋จํ ์ 400์ํฌํฌ์์ ๋ชจ๋ธ ํ์ต์ ๋ฉ์ถ๋ ์กฐ๊ธฐ์ข ๋ฃ๋ฅผ ์ค์ ํ ์ ์๋ค.
์กฐ๊ธฐ ์ข ๋ฃ์ ๊ธฐ์ค ๊ฐ์ loss์ผ ์ ๋ ์๊ณ , val set acc ๋ F1 score์ผ ์๋ ์๋ค.
Regularization
L1 norm, L2 norm ๋ ์ข ๋ฅ๊ฐ ์์ผ๋ฉฐ L1 norm, L2 norm์ค์ ์ ํํ๋ค.
Drop out
node ์ weight๋ฅผ ๋ชจ๋ ์ญ์ ์ํฌ ๊ฒ์ธ์ง, weight์ ์ผ๋ถ๋ง ์ญ์ ์ํฌ ๊ฒ์ธ์ง, ํผ์ผํธ๋ ๋ช์ผ๋ก ์ค์ ํ ๊ฒ์ธ์ง ๋ฑ๋ฑ์ ๋ํด ์ค์ ํ ์ ์๋ค.
Perturbation or noise for an input
Perturbation = ์๋๋ค
input ์์ฒด์์ ์ผ๋ถ๋ฌ ๋ ธ์ด์ฆ๋ฅผ ๋ฐ์์ํค๋ ๊ธฐ๋ฒ์ผ๋ก ์์ฐ์ด ์ฒ๋ฆฌ์์ ์ธํ๋ฐ์ดํฐ์ ์ผ๋ถ๋ฌ ์คํ๋ฅผ ๋ฃ๊ฑฐ๋ ๋ฌธ๋ฒ์ ํ๋ฆฌ๊ฒ ๋ฃ๋ ๋ฑ์ ๋ ธ์ด์ฆ๋ฅผ ์ถ๊ฐํ๋ค. ํน์ ๊ณต๋ฐฑ์ ๋ค๋ฅธ ๊ณณ์ ๋ฃ์ด ๋ฌธ๋ฒ์ ํ๋ฆฌ๊ฒ ์ ๋ํ๋ค.
๋ ธ์ด์ฆ ๋ฒกํฐ๋ ์ฑ์ง์ ์ ๋ฐ์ดํฐ์ ๋น์ทํ๋ค. ์๋ฅผ ๋ค์ด ํ ์คํธ ๋ถ๋ฅ๋ฌธ์ ์ค์ ๊ฐ์ฑ๋ถ์์ ๋ณด๋ฉด, ์ด๋ฒ์ด ์กฐ๊ธ ๋ง์ง ์๊ฑฐ๋ ์คํ๊ฐ ์๋ ๋ฌธ์ฅ๋ ๊ธ์ ์ผ๋ก ๋ถ๋ฅ๋ ์ ์๋ค. ์ด๋ฐ ๋ ธ์ด์ฆ ๋ฒกํฐ์ ๋ํ ๋ถ๋ฅ ์ฑ๋ฅ์ ๋์ฌ์ฃผ๋ฉด ์คํ๋ ์ธํฐ๋ท ์ฉ์ด ๊ฐ์ ๋ง์๋ ๋ถ๋ฅ๋ฅผ ํ์คํ๊ฒ ํ ์ ์์ ๊ฒ์ด๋ค.
์ด๋ค ๋ฐฉ์์ผ๋ก ๋ ธ์ด์ฆ๋ฅผ ์ค์ง, ๋ ธ์ด์ฆ๋ฅผ ์ถ๊ฐํ ๋ฐ์ดํฐ๋ ์ผ๋ง๋ ๋ฐ์์ํฌ์ง์ ๋ํด ๊ฒฐ์ ํ๋ค.
Model hyperparameters ( ๋ชจ๋ธ์ ๊ตฌ์กฐ์ ํน์ง๊ณผ ๊ด๋ จ๋ ํ์ดํผํ๋ผ๋ฏธํฐ)
Kernel size
- ex) CNN filter size , 3x3, 5x5, 7x7
number of layer
number of hidden units
- BERT์ ๊ฒฝ์ฐ multi-head ๊ฐ์, ๋ณดํต 12๊ฐ ์ง๋ง ๋๋ฌด ๋ง๋ค ํ๋ฉด 8๊ฐ๋ก ์ค์ด๊ธฐ๋ ํจ
number os embedding units
pooling
- filter stride
activation function
- ReLU, GeLU, tanh
1. learning rate scheduler ์์ด ๋ชจ๋ธ์ train ์์ผ๋ณธ๋ค. check initial loss
2. ์ํ ์ค 20%์ ๋๋ง ๊ฐ์ ธ์์ ์ต๊ณ ์ฑ๋ฅ ๋ณด๊ธฐ (100%์ฐ์ ์ ์๋๊ฐ?)
- loss๊ฐ ์์์ง์ง ์๋๋ค๋ฉด ? lr too low, bad initialization
- loss ๊ฐ inf or NAN ๋ก ๊ฐ๋ค? lr too high, bad initialization
-- ์ข์ ๋ชจ๋ธ๊ณผ ๋ฌ๋ ๋ ์ดํธ๋ฅผ ์ป๊ณ
3. ๋ฌ๋๋ ์ดํธ ์ฐพ๊ธฐ
- iterํ ์๋ก lr ์ค์ด๋ ๋ฐฉํฅ์ผ๋ก
- 1e-1, 1e-2, 1e-3, 1e-4 try
4. ๊ทธ๋ฆฌ๋ ์์น
- weight decay : 1e-4, 1e-5,0
5.
6. loss curve ํ์ธ
์ฒ์์ ๋ง์ด ์์ค์ด๋ ๋ค - bad initialization
ํน์ ์ดํ์ ๋ก์ค๊ฐ ์์ํ ์ค๋ค.- ๊ทธ์์ ๋ถํฐ lr์ค์ผ์ฅด๋ฌ ์ ์ฉ
ํน์ ์ดํ์ ํ์ต์ด ์ ์๋๋ค. - lr decay
'์์ฐ์ด ์ฒ๋ฆฌ > Today I learned :' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ฝ๋ฉ ํ๋ก, ํ๋ก ํ๋ฌ์ค ์จ๋ณธ ํ๊ธฐ (0) | 2023.01.21 |
---|---|
model.train() ๊ณผ model.eval()์ ์ค์์นญ์ ํ์์ผ๊น? (0) | 2023.01.20 |
์์ฐ์ด์ฒ๋ฆฌ ๋ชจ๋ธ์ด ํ์คํฌ๋ฅผ ์ํํ๋ ๋ฐฉ๋ฒ์? (์ธ ์ปจํ ์คํธ ๋ฌ๋, ์ ๋ก์ท, ์์ท ํจ์ท ๋ฌ๋) (0) | 2023.01.17 |
์ธ์ด๋ชจ๋ธ GPT (1) | 2023.01.17 |
๋ฒํธ๋ฅผ ํ์ฉํ ์ํ๋ฆฌ๋ทฐ ๋ถ๋ฅ (0) | 2023.01.16 |