AI/Coursera

[Coursera] 6. Opitmization

Pupbani 2023. 12. 31. 00:19
728x90
๋ฐ˜์‘ํ˜•
๐Ÿฅ‘ Coursera์˜ "Improving Deep Neural Networks: Hyperparameter Tuning, Regularization and
Optimization" ๊ฐ•์ขŒ์˜ ๋‚ด์šฉ์„ ๋ฐฐ์šฐ๋ฉด์„œ ๊ฐœ์ธ์ ์œผ๋กœ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

 

์šฐ๋ฆฌ๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” Gradient Descent์€ ๊ฐ Steop์— ๋ชจ๋“  Sample m์— ๋Œ€ํ•ด์„œ Gradient Steps์„ ์ง„ํ–‰ํ•œ๋‹ค. ์ด๋Ÿฐ Gradient Descent๋ฅผ Batch Gradient Descent๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

 

Parameters Update Rule

  • for l = 1, ..., L
  • W[l] = W[l] αdW[l]
  • b[l] = b[l] αdb[l]โ€‹

 

L์€ Layer์˜ ์ˆ˜, α(lpha)๋Š” Learning Rate์ด๋‹ค.

 

 

๋‹ค๋ฅธ Gradient Descent๋กœ๋Š” Stochastic Gradient Descent(SGD)๊ฐ€ ์žˆ๋‹ค.

ํ™•๋ฅ ์  ๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ•์ด๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ mini-batch์—์„œ์˜ ํฌ๊ธฐ๊ฐ€ 1 example์ธ ๊ฒƒ๊ณผ ๋™์ผํ•˜๊ณ  update rule์€ ๋™์ผํ•˜๋‚˜ 1๊ฐœ์˜ example์—์„œ ๋ฐ”๋กœ๋ฐ”๋กœ gradient๋ฅผ ๊ตฌํ•ด์„œ ๊ณ„์‚ฐํ•˜๋Š”๊ฒƒ์ด ํ‹€๋ฆฌ๋‹ค.

 

 

SGD๋Š” ์ง„๋™ํ•˜๋ฉด์„œ ์ˆ˜๋ ดํ•˜๊ฒŒ๋˜๋Š”๋ฐ ๋ฐ์ดํ„ฐ๊ฐ€ training set์˜ ํฌ๊ธฐ๊ฐ€ ์ž‘์„ ๊ฒฝ์šฐ ์ผ๋ฐ˜ GD๊ฐ€ ๋น ๋ฅด์ง€๋งŒ ํฌ๊ธฐ๊ฐ€ ํฐ ๊ฒฝ์šฐ๋Š” SGD๊ฐ€ ๋น ๋ฅด๋‹ค. 

 

Mini-Batch Gradient Descent๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋” ๋น ๋ฅด๊ฒŒ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

  • GD ์‚ฌ์šฉ ์‹œ ์ „์ฒด training set์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ 1๊ฐœ์˜ training example์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  mini-batch ์‚ฌ์šฉ.
  • mini-batch๋Š” 1~m ์‚ฌ์ด์˜ ํฌ๊ธฐ๋กœ GD์˜ ๊ฐ ์Šคํ…์„ ์ง„ํ–‰.

 

Mini-Batch Gradient Descent๋ฅผ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š”์ง€ ์‚ดํŽด๋ณด์ž.

 

๋‹ค์Œ 2๋‹จ๊ณ„๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„๋œ๋‹ค.

1. Shuffle

  • training set (X,Y)์„ ์„ž์–ด์ค€๋‹ค.
  • X,Y๋ฅผ ๋™์ผํ•˜๊ฒŒ ์„ž์–ด์•ผํ•œ๋‹ค.(X,Y๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ์„ž์ด๋ฉด ์•ˆ๋จ!)
  • ์ด ์ž‘์—…์€ training example๋“ค์ด ๋‹ค๋ฅธ mini-batches๋กœ ๋ฌด์ž‘์œ„๋กœ ๋ถ„๋ฆฌ๋˜๋„๋ก ํ•ด์ฃผ๋Š” ์—ญํ• 

 

 

2. Partition

  • ์„ž์ธ (X,Y)๋ฅผ mini-batch-size(32, 64 ๋“ฑ๋“ฑ)๋กœ ๋ถ„๋ฆฌํ•ด์ค€๋‹ค.
  • ํ•ญ์ƒ training examples์˜ ์ˆ˜๊ฐ€ mini-batch-size๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ๋งˆ์ง€๋ง‰ mini-batch์˜ ํฌ๊ธฐ๋Š” mini-batch-size๋ณด๋‹ค ์ž‘์„ ์ˆ˜ ์žˆ์œผ๋‚˜ ๋ฌธ์ œ๋˜์ง€ ์•Š๋Š”๋‹ค.

 

 

 

 

Momentum

mini-batch GD๋Š” training example์˜ ์ผ๋ถ€๋งŒ์œผ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์—…๋ฐ์ดํŠธ์˜ ๋ณ€๋™์ด ๊ฝค ์žˆ์œผ๋ฉฐ, ์ง„๋™ํ•˜๋ฉด์„œ ์ˆ˜๋ ดํ•˜๊ฒŒ ๋œ๋‹ค.

 

Momentum์„ ํ†ตํ•ด ์ง„๋™์„ ๊ฐ์†Œ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. 

์ด์ „์˜ gradient๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ง„๋™์„ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ํ•œ๋‹ค. (์ด์ „ gradient์˜ ๋ฐฉํ–ฅ ๋ณ€์ˆ˜ v(๊ฒฝ์‚ฌ๋ฅผ ์›€์ง์ด๋Š” ์†๋„)์— ์ €์žฅํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค.)

 

๋ณ€์ˆ˜ v๋Š” 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  grads ๋”•์…”๋„ˆ๋ฆฌ์™€ ๊ฐ™์€ ์ฐจ์›์„ ๊ฐ€์ง„๋‹ค. 

 

ํŒŒ๋ผ๋ฏธํ„ฐ ์—…๋ฐ์ดํŠธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹์„ ๋”ฐ๋ฅธ๋‹ค. (l = 1, ..., L)

 

 

Adam

Adam์€ NN์„ ํ•›๋ธŒํ•˜๋Š”๋ฐ ๊ฐ€์žฅ ํšจ๊ณผ์ ์ธ ์ตœ์ ํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. 

RMSProp์™€ Momentum์„ ๊ฒฐํ•ฉํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค.

 

Adam์˜ ๋™์ž‘ ์ˆœ์„œ

  1. ๋ชจ๋ธ์˜ ์ดˆ๊ธฐ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•œ๋‹ค.
  2. ํ•™์Šต๋ฅ (learning rate), ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ์ž‘์€ ์–‘์ˆ˜ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.
  3. ๋ชจ๋ฉ˜ํŠธ(momentum)์™€ RMSProp์˜ ๊ฐœ๋…์„ ๊ฒฐํ•ฉํ•˜์—ฌ ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ์—…๋ฐ์ดํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  4. ๋งค ๋ฐ˜๋ณต(iteration)๋งˆ๋‹ค ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์„ ์ˆ˜ํ–‰ํ•œ๋‹ค:
    • ํ˜„์žฌ ๋ฏธ๋‹ˆ๋ฐฐ์น˜(mini-batch)์˜ ๊ธฐ์šธ๊ธฐ(gradient)๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.
    • ์ผ์ • ๋น„์œจ์˜ ๋ชจ๋ฉ˜ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด์ „ ๊ทธ๋ž˜๋””์–ธํŠธ์˜ ์ด๋™ ํ‰๊ท ์„ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.
    • ์ผ์ • ๋น„์œจ์˜ RMSProp์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด์ „ ๊ทธ๋ž˜๋””์–ธํŠธ์˜ ์ œ๊ณฑ๊ฐ’์˜ ์ด๋™ ํ‰๊ท ์„ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.
    • ํŽธํ–ฅ ๋ณด์ •(bias correction)์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋ชจ๋ฉ˜ํŠธ์™€ RMSProp์˜ ํŽธํ–ฅ ๋ณด์ • ๊ฐ’์„ ๊ณ„์‚ฐํ•œ๋‹ค.
    • ๊ณ„์‚ฐ๋œ ํŽธํ–ฅ ๋ณด์ • ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.
  5. ์ง€์ •๋œ ๋ฐ˜๋ณต ํšŸ์ˆ˜๋‚˜ ๋‹ค๋ฅธ ์ข…๋ฃŒ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋  ๋•Œ๊นŒ์ง€ 4๋‹จ๊ณ„๋ฅผ ๋ฐ˜๋ณตํ•œ๋‹ค.

 

Update Rule์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

 

์ฝ”๋“œ ๊ตฌํ˜„(FP, BP, batch,momentum,Optimizer)

 

Optimization.ipynb

Colaboratory notebook

colab.research.google.com

 

728x90
๋ฐ˜์‘ํ˜•