Lecture 7: Training Neural Networks 2

1 minute read

Optimization

์ „์— ์ตœ์ ํ™” ๊ณผ์ •์—์„œ SGD(stochastic gradient descent)์— ๋Œ€ํ•ด ๋ฐฐ์šด์ ์ด ์žˆ๋‹ค. SGD๋Š” ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋น„ํ•ด ๊ฐ€์žฅ ํ•ฉ๋ฆฌ์ ์ด๋ฉด์„œ ํšจ๊ณผ๊ฐ€ ์ข‹์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‚˜ ๋งŽ์€ ๋ฌธ์ œ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž.

์œ„ ๊ฒฝ์šฐ์—์„œ ๋นจ๊ฐ„ ์ ์€ ์‹ค์„ ์„ ํ–ฅํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ๋Š” ๋น ๋ฅด๊ฒŒ ์ด๋™ํ•˜๋‚˜ ์ตœ์ ์˜ ์ (์›ƒ๊ณ  ์žˆ๋Š” ์ )์„ ํ–ฅํ•ด์„œ๋Š” ๋Š๋ฆฌ๊ฒŒ ์ด๋™ํ•œ๋‹ค. ์ด๋Ÿด๋•Œ๋Š” ๊ฐ ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™ํ•˜๋Š” ์†๋„๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ง€๊ทธ์žฌ๊ทธ๋กœ ์›€์ง์—ฌ ์ตœ์ ์˜ ์ ๊นŒ์ง€ ๋„๋‹ฌํ•˜๋Š”๋ฐ ๋งค์šฐ ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค.

๋˜ํ•œ ์†์‹คํ•จ์ˆ˜๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ชจ์Šต์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž.

๋นจ๊ฐ„ ์ ์ด ์œ„์น˜ํ•œ ๊ณณ์€ ์†์‹คํ•จ์ˆ˜์˜ ๋ฏธ๋ถ„ ๊ฐ’์ด 0์ด ๋˜๋Š” ๊ณณ์ด๋ฏ€๋กœ ์ ์ด ๋”์ด์ƒ ์ด๋™ํ•˜์ง€ ์•Š๊ณ  ๊ทธ๋Œ€๋กœ ์œ„์น˜ํ•˜๊ฒŒ ๋œ๋‹ค.

์œ„์™€ ๊ฐ™์€ SGD์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋œ ๊ฒƒ์ด SGD+Momentum ์ด๋‹ค.

SGD+Momentum

SGD์™€ SGD+Momentum์„ ๋น„๊ตํ•œ ํ•จ์ˆ˜๋ฅผ ํ•œ๋ฒˆ ๋ณด์ž.

SGD๋Š” ๋ฏธ๋ถ„๊ฐ’๋งŒ ๊ณ ๋ คํ•˜๋Š” ๋ฐ˜๋ฉด SGD+Momentum์€ ๋ฏธ๋ถ„๊ฐ’๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ ์˜ ์†๋„ ๋˜ํ•œ ๊ณ ๋ คํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ์ง„ํ–‰ ๋ฐฉํ–ฅ์˜ ์†๋„๋ฅผ ๊ณ ๋ คํ•˜๊ฒŒ ๋˜๋ฉด SGD๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋˜ ๋ฌธ์ œ์ ์„ ์™„๋ฒฝํ•˜๊ฒŒ ๋ณด์™„ํ•  ์ˆ˜ ์žˆ๋‹ค.

Momentum์—๋Š” ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

  1. Momentum update

์ผ๋ฐ˜ Momentum์€ ๋ฏธ๋ถ„๊ฐ’์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฐฉํ–ฅ๊ณผ ์†๋„๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฐฉํ–ฅ์„ ํ•ฉ์นœ ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™ํ•œ๋‹ค.


2. Nesterov Momentum

Nesterov Momentum์€ ์†๋„๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™ํ•œ๋’ค ๊ทธ ๊ณณ์—์„œ์˜ ๋ฏธ๋ถ„๊ฐ’์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ์†๋„๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฐฉํ–ฅ์ด ์•ฝ๊ฐ„์˜ ์˜ค๋ฅ˜๊ฐ€ ์ƒ๊ฒจ๋„ ๋ฏธ๋ถ„๊ฐ’์œผ๋กœ ์ˆ˜์ •์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

๊ทธ ๋ฐ–์˜ ์ตœ์ ํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.

AdaGrad

AdaGrad๋Š” ์ด๋™ํ• ๋•Œ๋งˆ๋‹ค ์ง€๋‚˜์˜จ ์ ๋“ค์˜ ๋ฏธ๋ถ„๊ฐ’๋“ค์˜ ๋ˆ„์  ๊ณฑ์„ ๊ตฌํ•˜๊ณ  ์ด ๊ฐ’์˜ ์ œ๊ณฑ๊ทผ ๊ฐ’์ด learning rate๋ฅผ ๋‚˜๋ˆˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ์ž‘์€ ๋ฏธ๋ถ„๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ฐจ์›์œผ๋กœ๋Š” ์ž‘์€ ๋ณดํญ์„, ํฐ ๋ฏธ๋ถ„๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ฐจ์›์œผ๋กœ๋Š” ํฐ ๋ณดํญ์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ ์ด ์ด๋™ํ• ์ˆ˜๋ก ๋ณดํญ์ด ์ข์•„์ง„๋‹ค๋Š” ๋‹จ์ ๋–„๋ฌธ์— ์ž˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.

RMSprop

RMSprop๋Š” AdaGrad์˜ ๋ฌธ์ œ์ ์„ ๋ณด์™„ํ•ด์ค€๋‹ค. ์ด๋™ํ• ๋•Œ๋งˆ๋‹ค ์ง€๋‚˜์˜จ ์ ๋“ค์˜ ๋ฏธ๋ถ„๊ฐ’๋“ค์˜ ๋ˆ„์  ๊ณฑ์„ decay_rate๋ผ๋Š” ๋ณ€์ˆ˜๋กœ ๊ฐ’์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•ด์ค€๋‹ค. ์ด๋ ‡๊ฒŒ ํ•จ์œผ๋กœ์จ ๋ชจ๋“  ์ฐจ์›์— ๋Œ€ํ•ด ์ง„ํ–‰๋ฐฉํ–ฅ์„ ์ตœ์ ํ™”ํ•˜์—ฌ AdaGrad๋ณด๋‹ค ๋†’์€ ์„ฑ๋Šฅ์„ ๋ณด์ธ๋‹ค.

Adam

adam์€ Mometum, AdaGrad/RMSProp ์˜ ํŠน์ง•์„ ๋ชจ๋‘ ํ•ฉ์ณ๋…ผ ํ˜•ํƒœ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ฒซ๋ฒˆ์งธ ๋ณดํญ์ด ๋งค์šฐ ํด ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์œผ๋ฏ€๋กœ bias correction์˜ ์—ญํ• ์„ ํ•˜๋Š” ์ˆ˜์‹์ด ์ถ”๊ฐ€๋œ๋‹ค.

adam์€ ์ตœ์ ํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ๊ฐ€์žฅ ์ข‹์€ ์„ฑ๋Šฅ์„ ๋ณด์ธ๋‹ค. ๋˜ํ•œ ์ด ๊ฐ•์˜์—์„œ๋Š” adam์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ beta1=0.9, beta2=0.999, learning_rate=1e-3 ๋˜๋Š” 5e-4 ์œผ๋กœ ์„ค์ •ํ•  ๊ฒƒ์„ ์ถ”์ฒœํ•˜๊ณ  ์žˆ๋‹ค!


๋‹ค์Œ์€ ์œ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์„ ํ•œ๋ฒˆ์— ๋น„๊ตํ•˜์—ฌ ๋‚˜ํƒ€๋‚ด๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜์ด๋‹ค.

Comments