Optimizer - BD-SEARCH/MLtutorial GitHub Wiki

์ตœ์ ํ™”: loss function์˜ ๊ฐ’์„ ์ตœ๋Œ€ํ•œ ๋‚ฎ์ถ”๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜, ์ฆ‰ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์ตœ์ ๊ฐ’์„ ์ฐพ๋Š” ๊ณผ์ •

01. Optimizer์˜ ์ข…๋ฅ˜

1-1. Gradient Descent

image

  • Neural net์˜ weight๋ฅผ ์กฐ์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•.
  • ๋„คํŠธ์›Œํฌ์˜ output๊ณผ ์‹ค์ œ ๊ฒฐ๊ณผ๊ฐ’ ์‚ฌ์ด์˜ ์ฐจ์ด loss๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ์šธ๊ธฐ๋ฅผ ์ด์šฉํ•œ๋‹ค.
  • Gradient descent์—์„œ๋Š” ๋„คํŠธ์›Œํฌ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋Œ€ํ•ด gradient์˜ ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ์œผ๋กœ ์ผ์ • ํฌ๊ธฐ๋งŒํผ ์ด๋™ํ•˜๋Š” ๊ฒƒ์„ ๋ฐ˜๋ณตํ•˜์—ฌ loss๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์„ ์ฐพ๋Š”๋‹ค.
  • ๋‹จ์ : ์ตœ์ ๊ฐ’์„ ์ฐพ์•„ ํ•œ ์นธ ์ „์ง„ํ•  ๋•Œ๋งˆ๋‹ค ๋ชจ๋“  data๋ฅผ ๋„ฃ์–ด์ค˜์•ผ ํ•œ๋‹ค. ํ•™์Šต์ด ๊ต‰์žฅํžˆ ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค.

1-2. ํ™•๋ฅ ์  ๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ• (Stochastic Gradient Descent. SGD)

image

  • ์—ญ์ „ํŒŒํ•˜๊ฐ•๋ฒ•(Backpropagation)์„ ์ด์šฉํ•ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•. Gradient Decent์— ๋น„ํ•ด mini batch๋ฅผ ์ด์šฉํ•ด ์กฐ๊ธˆ์”ฉ ํ›‘์–ด๋ณด๊ณ  ๋‚˜์•„๊ฐ„๋‹ค.

image

  • ๋‹จ์ : ์ตœ์ ํ™”๋ฅผ ํ•  ๋•Œ learning rate๊ฐ€ ๋‚ฎ์œผ๋ฉด loss function์˜ ์ตœ์†Œ๊ฐ’์œผ๋กœ ๊ณง์žฅ ์ตœ์ ํ™”ํ•˜์ง€ ๋ชปํ•˜๊ณ , ์ง€๊ทธ์žฌ๊ทธ๋กœ ์ด๋™ํ•˜๋ฉด์„œ ์ตœ์ ํ™”ํ•œ๋‹ค. ๋ฐ˜๋ฉด learning rate๊ฐ€ ๋†’์œผ๋ฉด ์ตœ์ ํ™”๋ฅผ ํ•˜์ง€ ๋ชปํ•œ๋‹ค.

image

Gradient Descent์™€ Stochastic Gradient Descent๋Š” ๋ฐฉํ–ฅ์„ฑ๊ณผ step size์—์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ๋‹ค.

์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์—ฌ๋Ÿฌ Optimizer๊ฐ€ ๋“ฑ์žฅํ–ˆ๋‹ค.

๋ฐฉํ–ฅ์„ฑ ํ•ด๊ฒฐ: Momentum, NAG

Step size ํ•ด๊ฒฐ: Adagrad, RMSProp, AdaDelta

๋ฐฉํ–ฅ์„ฑ+Step size ํ•ด๊ฒฐ: Adam, Nadam

1-3. ๋ชจ๋ฉ˜ํ…€ (Momentum)

  • SGD๊ฐ€ ์ง€๊ทธ์žฌ๊ทธ๋กœ ์›€์ง์ด๋ฉฐ ์ตœ์ ํ™”๋˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ ๋ฐฉ๋ฒ•. Gradient Descent๋ฅผ ํ†ตํ•ด ์ด๋™ํ•˜๋Š” ๊ณผ์ •์— ์ผ์ข…์˜ ๊ด€์„ฑ์„ ์ค€๋‹ค. ๊ฐฑ์‹  ๊ฒฝ๋กœ๊ฐ€ ๊ณต์ด ๊ทธ๋ฆ‡ ๋ฐ”๋‹ฅ์„ ๊ตฌ๋ฅด๋“ฏ ์›€์ง์ธ๋‹ค.
  • ํ˜„์žฌ Gradient๋ฅผ ํ†ตํ•ด ์ด๋™ํ•˜๋Š” ๋ฐฉํ–ฅ๊ณผ๋Š” ๋ณ„๊ฐœ๋กœ ๊ณผ๊ฑฐ์— ์ด๋™ํ–ˆ๋˜ ๋ฐฉ์‹์„ ๊ธฐ์–ตํ•˜๋ฉด์„œ ๊ทธ ๋ฐฉํ–ฅ์œผ๋กœ ์ผ์ • ์ •๋„๋งŒํผ ์ถ”๊ฐ€์ ์œผ๋กœ ์ด๋™ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

image

  • Momentum์„ ์ด์šฉํ•˜๋ฉด ์ž์ฃผ ์ด๋™ํ•˜๋Š” ๋ฐฉํ–ฅ์— ๋Œ€ํ•ด ๊ด€์„ฑ์ด ์ƒ๊ธฐ๊ณ  ์ง„๋™์„ ํ•˜๋”๋ผ๋„ ์ค‘์•™์œผ๋กœ ๊ฐ€๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ํž˜์„ ๊ฐ–๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๋Œ€์ ์œผ๋กœ SGD์— ๋น„ํ•ด ๋น ๋ฅด๊ฒŒ ์›€์ง์ผ ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, local minima์—์„œ ๋น ์ ธ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

image

  • ๋‹จ์ : ๊ธฐ์กด์˜ ๋„คํŠธ์›Œํฌ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ณ€์ˆ˜ ์™ธ์—๋„ ๊ณผ๊ฑฐ์— ์ด๋™ํ–ˆ๋˜ ๋ฐฉ์‹์„ ๋ณ€์ˆ˜ ๋ณ„๋กœ ์ €์žฅํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ธฐ์กด์— ๋น„ํ•ด ๋‘ ๋ฐฐ ์ด์ƒ ํ•„์š”ํ•˜๊ฒŒ ๋œ๋‹ค.

1-4. NAG (Nesterov Accelerated Gradient)

  • Momentum ๋ฐฉ์‹์„ ๊ธฐ์ดˆ๋กœ ํ•œ ๋ฐฉ์‹์ด์ง€๋งŒ Gradient๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ์‹์€ ์กฐ๊ธˆ ๋‹ค๋ฅด๋‹ค.

image

  • Momentum: ์ด๋™ ๋ฒกํ„ฐ v๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ, ํ˜„์žฌ ์œ„์น˜์—์„œ์˜ gradient์™€ momentum step์„ ๋…๋ฆฝ์ ์œผ๋กœ ๊ณ„์‚ฐํ•˜๊ณ  ํ•ฉ์นœ๋‹ค.
  • NAG: Momentum step์„ ๋จผ์ € ๊ณ ๋ คํ•˜์—ฌ momentum step์„ ๋จผ์ € ์ด๋™ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ ํ›„, ๊ทธ ์ž๋ฆฌ์—์„œ์˜ gradient๋ฅผ ๊ตฌํ•ด์„œ gradient step์„ ์ด๋™ํ•œ๋‹ค.
  • Momentum์€ ๋ฉˆ์ถฐ์•ผ ํ•  ์‹œ์ ์—๋„ ๊ด€์„ฑ์— ์˜ํ•ด ๋” ๋ฉ€๋ฆฌ ๋‚˜์•„๊ฐˆ ์ˆ˜๋„ ์žˆ์ง€๋งŒ, NAG์—์„œ๋Š” Momentum๋ฐฉ์‹์œผ๋กœ ๋ฐ˜ ์ •๋„ ์ด๋™์„ ํ•œ ํ›„ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์ด๋™ํ•ด์•ผํ•  ์ง€๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. ์ฆ‰, Momentum๊ณผ ๊ฐ™์ด ๋น ๋ฅด๊ฒŒ ์ด๋™ํ•˜๋ฉด์„œ๋„ ์ œ๋™์„ ๊ฑฐ๋Š” ๋ฐ ์œ ๋ฆฌํ•˜๋‹ค.

1-5. AdaGrad (Adaptive Gradient)

  • SGD, ๋ชจ๋ฉ˜ํ…€์€ ํ•™์Šต๋ฅ (ฮท) ๊ฐ’์ด ํ•™์Šต์— ํฐ ์˜ํ–ฅ์„ ์ค€๋‹ค๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. ๋„ˆ๋ฌด ์ž‘์œผ๋ฉด ํ•™์Šต ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ณ , ๋„ˆ๋ฌด ํฌ๋ฉด ํ•™์Šต์ด ์ œ๋Œ€๋กœ ์ด๋ค„์ง€์ง€ ์•Š๋Š”๋‹ค.
  • ํ•™์Šต์„ ํ•˜๋ฉด์„œ ํ•™์Šต๋ฅ ์„ ์ ์ฐจ ์ค„์—ฌ๊ฐ€๋Š” ํ•™์Šต๋ฅ  ๊ฐ์†Œ(learning rate decay) ๊ธฐ๋ฒ•์„ ์ด์šฉํ•ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ณ€์ˆ˜๋“ค์„ updateํ•  ๋•Œ ๊ฐ๊ฐ์˜ ๋ณ€์ˆ˜๋งˆ๋‹ค step size๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์„ค์ •ํ•ด์„œ ์ด๋™ํ•œ๋‹ค.
  • ํ•™์Šต๋ฅ  ๊ฐ์†Œ ๊ธฐ๋ฒ•์„ ๊ฐ๊ฐ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋งž์ถคํ˜•์œผ๋กœ ์ ์šฉํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค. ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐฑ์‹ ์ด ํฌ๊ฒŒ ๋ ์ˆ˜๋ก ๋‹ค์Œ ๋ฒˆ์˜ ํ•™์Šต๋ฅ ์„ ๋‚ฎ์ถ˜๋‹ค.

image

  • ๋‹จ์ : ํ•™์Šต์„ ๋ฐ˜๋ณตํ•˜๋‹ค ๋ณด๋ฉด step size๊ฐ€ ๋„ˆ๋ฌด ์ค„์–ด๋“ ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ ๊ฒฐ๊ตญ ๊ฑฐ์˜ ์›€์ง์ด์ง€ ์•Š๊ฒŒ ๋œ๋‹ค

1-6. RMSProp

  • Adagrad์˜ ๋‹จ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜ํƒ€๋‚œ optimizer.
  • Adagrad์˜ ์‹์—์„œ gradient์˜ ์ œ๊ณฑ๊ฐ’์„ ๋”ํ•ด๋‚˜๊ฐ€๋ฉด์„œ ๊ตฌํ•œ Gt ๋ถ€๋ถ„์„ ํ•ฉ์ด ์•„๋‹ˆ๋ผ ์ง€์ˆ˜ํ‰๊ท ์œผ๋กœ ๋ฐ”๊พผ๋‹ค.
  • Adagrad์ฒ˜๋Ÿผ Gt๊ฐ€ ๋ฌดํ•œ์ • ์ปค์ง€์ง€๋Š” ์•Š์œผ๋ฉด์„œ ์ตœ๊ทผ ๋ณ€ํ™”๋Ÿ‰์˜ ๋ณ€์ˆ˜๊ฐ„ ์ƒ๋Œ€์ ์ธ ํฌ๊ธฐ ์ฐจ์ด๋Š” ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

1-7. AdaDelta

  • Adagrad์˜ ๋‹จ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜ํƒ€๋‚œ optimizer.
  • RMSProp๊ณผ ๋™์ผํ•˜๊ฒŒ G๋ฅผ ๊ตฌํ•  ๋•Œ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๋Œ€์‹  ์ง€์ˆ˜ํ‰๊ท ์„ ๊ตฌํ•œ๋‹ค
  • ์—ฌ๊ธฐ์—์„œ๋Š” step size๋ฅผ ๋‹จ์ˆœํ•˜๊ฒŒ ฮท ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  step size์˜ ๋ณ€ํ™”๊ฐ’์˜ ์ œ๊ณฑ์„ ๊ฐ€์ง€๊ณ  ์ง€์ˆ˜ํ‰๊ท  ๊ฐ’์„ ์‚ฌ์šฉํ•œ๋‹ค.

1-8. Adam (Adaptive Moment Estimation)

  • ์ตœ์ ํ™”์— ์˜ํ•œ ๊ฐฑ์‹  ๊ฒฝ๋กœ๋ฅผ ๋ฐ”๊พธ๋Š” Momentum, ํ•™์Šต๋ฅ ์„ ๋ฐ”๊พธ๋Š” AdaGrad๋ฅผ ์กฐํ•ฉํ•ด์„œ ๋งŒ๋“  ์ตœ์ ํ™” ๊ธฐ๋ฒ•
  • Momentum ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ์ง€๊ธˆ๊นŒ์ง€ ๊ณ„์‚ฐํ•ด์˜จ ๊ธฐ์šธ๊ธฐ์˜ ์ง€์ˆ˜ํ‰๊ท ์„ ์ €์žฅํ•˜๋ฉฐ, RMSProp๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ๊ธฐ์šธ๊ธฐ์˜ ์ œ๊ณฑ๊ฐ’์˜ ์ง€์ˆ˜ํ‰๊ท ์„ ์ €์žฅํ•œ๋‹ค

02. Optimizer ๊ฐ„์˜ ๋น„๊ต

์ตœ์ ํ™” ๊ธฐ๋ฒ•์— ๋”ฐ๋ฅธ ๊ฐฑ์‹  ๊ฒฝ๋กœ image

MNIST ๋ฐ์ดํ„ฐ์…‹์œผ๋กœ ๋ณธ loss ๊ฐ’ ๋ณ€ํ™” image

03. Reference

  • ๋ฐ‘๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๋”ฅ๋Ÿฌ๋‹ - 6์žฅ ํ•™์Šต ๊ด€๋ จ ๊ธฐ์ˆ ๋“ค
  • ๊น€๋ฒ”์ˆ˜ ๋‹˜์˜ ๋ธ”๋กœ๊ทธ: link