์ž์—ฐ์–ด ์ฒ˜๋ฆฌ/Today I learned :

์ž์—ฐ์–ด ์ฒ˜๋ฆฌ์—์„œ์˜ ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ ์ข…๋ฅ˜, ์„ค์ •

์ฃผ์˜ ๐Ÿฑ 2023. 1. 20. 11:40
728x90

 

ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ 

ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ž€ ์‚ฌ๋žŒ์ด ์ˆ˜๋™์œผ๋กœ ์กฐ์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์ด๋‹ค. ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ž˜ ์กฐ์ •ํ•˜๋ฉด ์„ฑ๋Šฅ์ด ๊ฐœ์„ ๋  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ๋”ฅ๋Ÿฌ๋‹์—์„œ ์šฐ๋ฆฌ๊ฐ€ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ํ•˜์ดํผ ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ  ํŠœ๋‹(์กฐ์ •)ํ•˜๋Š” ๋ฐฉ๋ฒ•๋“ค๋„ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. 

 


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

 

๋ฐ˜์‘ํ˜•