๐Ÿ“Œ ๋ณธ ๋‚ด์šฉ์€ Michigan University์˜ 'Deep Learning for Computer Vision' ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ๊ฐœ์ธ์ ์œผ๋กœ ํ•„๊ธฐํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ๋‚ด์šฉ์— ์˜ค๋ฅ˜๋‚˜ ํ”ผ๋“œ๋ฐฑ์ด ์žˆ์œผ๋ฉด ๋ง์”€ํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํžˆ ๋ฐ˜์˜ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
(Stanford์˜ cs231n๊ณผ ๋‚ด์šฉ์ด ๊ฑฐ์˜ ์œ ์‚ฌํ•˜๋‹ˆ ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ๋„์›€ ๋˜์‹ค ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค)๐Ÿ“Œ


0. ์ด์ „์‹œ๊ฐ„ + ํ๋ฆ„

  • Loss function์ข…๋ฅ˜
    • cross entropy loss
    • SVM loss
    • Full loss : regularizaton ๋”ํ•œ loss
  • ์ „์ฒด ํ๋ฆ„
    • w์™€ xi, yi๋กœ ๊ฐ๊ฐ์— ๋Œ€ํ•œ ์ ์ˆ˜ ๋‚ด๊ณ  โ†’ f(xi,w) โ†’ ๊ฐ class๋ณ„ loss๊ณ„์‚ฐ (์ด๋•Œ regularization์œผ๋กœ ๊ณผ์ ํ•ฉ ๋ฐฉ์ง€)
    • ์ด๋ฒˆ ๊ฐ•์˜ = train data์— ๋งž๊ณ , loss ์ตœ์†Œํ™” ํ•˜๋Š” W๊ฐ’ ์ฐพ๋Š” ๋ฐฉ๋ฒ• ๊ตฌํ•˜๊ธฐ!




1. Optimization

1) ๊ฐœ๋…

  • loss function์„ ์ตœ์†Œํ™”ํ•˜๋Š” W ํ–‰๋ ฌ ์ฐพ๊ธฐ

    • ํ•ด์„
      • L(w) : loss function
        • ์ €๋ฒˆ๊นŒ์ง€๋Š” ์ด ํ•จ์ˆ˜์˜ ๋‚ด๋ถ€ ์ดˆ์ 
        • ์ด๋ฒˆ์—๋Š” ๊ฑ ํ๋ฆ„ ํŒŒ์•… ์‹œ ์“ฐ์ž„

2) ํŠน์ง•

  • optimization์˜ ์ง๊ด€์  ์ƒ๊ฐ (= ๋งค์šฐ ํฐ ๊ณ ์ฐจ์› ํ’๊ฒฝ ๊ฐ€๋กœ์ง€๋ฅด๊ธฐ)
  • (x,y)point = W height = Loss๊ฐ’
  • ์ œ์ผ ์ข‹์€ ๋ฐฉ๋ฒ•: ์ •๋‹ต ์•Œ๊ธฐ โ†’๋Œ€์‹ โ†’๋ฐ˜๋ณต์  ๊ฐœ์„ (๋งจ ์•„๋ž˜๋กœ ์ด๋™)

3) Idea

a. Idea#1 : Random Search (๋งค์šฐ ๋ณ„๋กœ)

  • ๋ฐฉ๋ฒ•

    • weight ํ–‰๋ ฌ์„ random๊ฐ’์œผ๋กœ ์ƒ์„ฑ
      โ†’ ๊ฐ๊ฐ์— ๋Œ€ํ•œ loss๊ตฌํ•˜๊ธฐ
      โ†’ ์ „์ฒด ์ถ”์ 
      โ†’ ๊ฐ€์žฅ ๋‚ฎ์€ loss์ฐพ๊ธฐ

    • ๊ฐ€์žฅ loss๊ฐ€ ์ž‘์€ W๋กœ input๊ณผ ๋‚ด์ ํ•ด์„œ score์–ป๊ธฐ

      โ†’ ์–ป์€ ์ ์ˆ˜๋“ค ์ค‘ ์ ค ํฐ์• ๋ฅผ predict๊ฐ’์œผ๋กœ ์„ค์ •

      โ†’ ์ •ํ™•๋„ ๊ณ„์‚ฐ(์ตœ์ข… ์˜ˆ์ธก ์ ์ˆ˜)

b. Idea#2 : Follow the Slope

  • ๋ฐฉ๋ฒ•

    • ๋‚ฎ์€ ๊ธฐ์šธ๊ธฐ ๋”ฐ๋ผ๊ฐ€๊ธฐ โ†’ ๊ณ„์† ๋”ฐ๋ผ๊ฐ€๋‹ค๋ณด๋ฉด โ†’ ๊ฐ€์žฅ ๋‚ฎ์€ ์ง€์ ์— ๋„๋‹ฌ ํ•  ๊ฒƒ
  • 1์ฐจ์› ๋„ํ•จ์ˆ˜

    • input & output ๋ชจ๋‘ single scalar
    • ๋ฏธ๋ถ„ ์ •์˜ ๊ฐ€๋Šฅ
    • ์–ด๋Š ์ง€์ ์—์„œ ๋‹ค ๊ธฐ์šธ๊ธฐ ์•Œ์ˆ˜ O
    • dL/dw๊ฐ™์€ ์ˆ˜์‹์œผ๋กœ ์ „์ฒด loss์— ๋Œ€ํ•œ w์˜ ๋ฏธ๋ถ„๊ฐ’ ๊ตฌํ•˜๊ธฐ
  • ๋‹ค์ฐจ์› ๋„ํ•จ์ˆ˜

    • input: vector, output: scalar
    • ์—ฌ๊ธฐ๋กœ ๊ฐ€๋ฉด ๋‚ด๋ ค๊ฐˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฐ€์žฅ ํฐ ๊ฐ์†Œ ๋ฐฉํ–ฅ ์•Œ์ˆ˜ O
    • gradient ํฌ๊ธฐ=๊ฒฝ์‚ฌ์˜ ๋ฐฉํ–ฅ ์•Œ๊ณ ๋ฆฌ์ฆ˜

* Numeric Gradient (๊ทธ๋ƒฅ ๊ธฐ์šธ๊ธฐ ๋ฒกํ„ฐ)

ex. ์ž„์˜์˜ ์ž…๋ ฅ ๊ฐ’์— ๋Œ€ํ•œ ๊ธฐ์šธ๊ธฐ ์–ด์ผ€ ๊ณ„์‚ฐํ•˜๋Š”์ง€ ํ™•์ธ

  • ๊ฐ€์ค‘์น˜ ํ–‰๋ ฌ์˜ ํ•œ ์š”์†Œ๋ฅผ ์กฐ๊ธˆ๋งŒ ๋ณ€๊ฒฝ โ†’ ๊ธฐ์šธ๊ธฐ ์•Œ ์ˆ˜ O
    = W์˜ ํ•˜๋‚˜์˜ ๊ฐ’์„ ๋ณ€ํ™”์‹œ์ผฐ์„๋•Œ, ์ „์ฒด loss ๋ณ€ํ•จ
    ex. ์œ„์— ๋Œ€ํ•œ ์˜ˆ์‹œ
  • ํŠน์ง•
    • ์œ„์™€ ๊ฐ™์ด ํ•˜๋‚˜์”ฉ ๋ฐ˜๋ณตํ•ด์„œ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ๋‹จ์ 
    • ๋งค์šฐ ๋Š๋ฆผ (์ตœ๋Œ€ ์ˆ˜์–ต๊ฐœ์˜ data๋ฅผ train์‹œํ‚จ๋‹คํ•˜๋ฉด, ๋งค์šฐ ๋น„์‹ค์šฉ์ )
    • ์ •ํ™•X, ๊ทผ์‚ฌ์น˜O

* Analytic Gradient (back prop)

  • ํŠน์ง•
    • (๊ฐ๊ฐ ๋ฐ˜๋ณตํ•˜์ง€ ์•Š๊ณ ) ์ˆ˜ํ•™์ ์œผ๋กœ ์•ž์„œ ํ•œ ๋ฏธ๋ถ„ ๊ฐ„๋‹จํžˆ ํ•จ
    • (๋ฒกํ„ฐ ๋ฏธ์ ํ•™์— ๋”ฐ๋ผ) W์— ๋Œ€ํ•ด ์ •ํ™•ํ•œ gradient์— ๋Œ€ํ•œ ์ˆ˜ํ•™์  ๋ถ„์„ , ํ‘œํ˜„์‹ ์ž‘์„ฑ ๊ฐ€๋Šฅ

* ๋‘ Gradient ๋ฐฉ๋ฒ• ๋น„๊ต (์‹ค์ œ๋ก  ๋‘˜๋‹ค ์‚ฌ์šฉ)




2. Vanilla Gradient Descent (Full batch)

๐Ÿ”ฅ Full batch
: ๋ฐฉํ–ฅ์ด optimal ํ•จ (full batch์—ฌ์„œ)

: ๊ธฐ์šธ๊ธฐ (gradient)ํ™œ์šฉํ•˜์—ฌ Loss์˜ ์ตœ์†Œ๋ฅผ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜

: L(w)์˜ ๊ฐ€์žฅ ๋‚ฎ์€ ์ ์— gradient negativeํ•œ ๋ฐฉํ–ฅ์„ ๋”ฐ๋ผ๊ฐ€๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜

(gradient negative๋ผ๊ณ  ํ‘œํ˜„ํ•œ ์ด์œ : )

1) Vanilla gradient descent

a. ์ „์ฒด ๋ฐฉ๋ฒ• (์†์‹คํ•จ์ˆ˜ ์ตœ์ ํ™” ์œ„ํ•œ ๋ฐฉ๋ฒ•)

  • ๊ฐ€์ค‘์น˜ ์ดˆ๊ธฐํ™” โ†’ ์ผ์ • ๋ฐ˜๋ณตํšŸ์ˆ˜๋™์•ˆ ๋ฃจํ”„ ์ง„ํ–‰ โ†’ํ˜„์žฌ ์œ„์น˜์—์„œ dw(๊ธฐ์šธ๊ธฐ) ๊ณ„์‚ฐ โ†’ ์Œ์˜ gradient๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™ํ•˜๋ฉฐ w update (-์ธ ์ด์œ : ๋‚ด๋ ค๊ฐ€๋Š” ๋ฐฉํ–ฅ ์ฐพ์•„์•ผํ•ด์„œ(gradient negative))

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

(KNN๊ณผ ๋‹ฌ๋ฆฌ ์‹ค์ œ ์กฐ์ • ๋งŽ์ดX, NN์—์„œ ์ข‹์€ or ๋‚˜์œ ์—ญํ• ํ• ์ˆ˜๋„)

  • Weight initialization method: random value (๋งค์šฐ ์ค‘์š”)
  • number of steps (๋ช‡๋ฒˆ ๋Œ๋ฆด๊ฑด์ง€)
    • stopping๊ธฐ์ค€์ด ์—ฌ๋Ÿฌ๊ฐœ ์žˆ์ง€๋งŒ, ๋”ฅ๋Ÿฌ๋‹์—์„  ๊ทธ๋ƒฅ ๊ณ ์ •๋œ ์ˆ˜๋งŒํผ ๋ฐ˜๋ณต
    • ๋”ฐ๋ผ์„œ ์˜ˆ์‚ฐ or ๊ธฐ๋‹ค๋ฆด์ˆ˜์žˆ๋Š” ์‹œ๊ฐ„์— ์˜ํ•ด ์ œ์•ฝ๋จ
  • Learning Rate (=step size)
    • ์ด gradient๋ฅผ ์–ผ๋งˆ๋‚˜ ์‹ ๋ขฐํ•  ์ˆ˜์žˆ๋Š”๊ฐ€
      • (LRํฌ๋ฉด) ์‹ ๋ขฐ๋งŽ์ด ํ•˜๋ฉด โ†’ ๋ณดํญ ํฌ๊ฒŒ ๋Œ€์ถฉ ํ™•์ธ
      • (LR์ž‘์œผ๋ฉด) ์‹ ๋ขฐ ๋งŽ์ด ์•ˆํ•˜๋ฉด โ†’ ๋ณดํญ ์ž‘๊ฒŒ ์„ธ๋ฐ€ํ•˜๊ฒŒ ํ™•์ธ
    • ์šฐ๋ฆฌ๋Š” ์ตœ๋Œ€ ๊ฐ์†Œ๋ฐฉํ–ฅ์„ ์–ผ๋งŒํผ์˜ ๋ณดํญ์œผ๋กœ ๋‚ด๋ ค๊ฐ€๊ฒŒ ํ• ๊ฑด์ง€ ๊ฒฐ์ •
    • ๋„ˆ์˜ network๊ฐ€ ์–ผ๋งŒํผ์˜ ๋น ๋ฅด๊ธฐ๋กœ ํ•™์Šตํ• ๊ฑด์ง€
      • LR๋†’์œผ๋ฉด โ†’ ์ˆ˜๋ ด์†๋„ ๋น ๋ฆ„
      • LR๋‚ฎ์œผ๋ฉด โ†’ ์ˆ˜๋ ด์†๋„ ๋Š๋ฆผ

c. ๊ทธ๋ฆผ์œผ๋กœ ์ดํ•ดํ•˜๊ธฐ(1) - Direction of greatest decrease of Loss function

  • ํ•ด์„
    • negative gradient๊ณ„์‚ฐ โ†’ ์ตœ๋Œ€ ๊ฐ์†Œ ๋ฐฉํ–ฅ์ชฝ์œผ๋กœ ์•ฝ๊ฐ„์˜ step size์ทจํ•˜๊ณ  โ†’ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋‚ด๋ฆฌ๋ง‰๊ธธ ๋‚ด๋ ค๊ฐ

d. ๊ทธ๋ฆผ์œผ๋กœ ์ดํ•ดํ•˜๊ธฐ(2) - taco ๋ชจ์–‘

  • ํ•ด์„
    • taco ๊ทธ๋ฆ‡ ๋ชจ์–‘์ด๋ผ ๋ฐ”๋‹ฅ์œผ๋กœ ๊ณง์žฅ ์•ˆ๊ฐ
      • ๋น„์Šค๋“ฌํžˆ ๊ธฐ์šธ์—ฌ์ ธ ์žˆ์Œ
      • ์˜†์œผ๋กœ ๊ณก์„  ๊ทธ๋ฆฌ๋ฉฐ ๊ทธ๋ฆผ ์•„๋žซ์ชฝ์œผ๋กœ ๋Œ์•„์˜ด
    • ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ์‹œ์ž‘
    • (dw์™€ LR๊ณฑํ•œ ์ด์œ )
      • gradient ํฌ๊ธฐ ๋”ฐ๋ผ ๋” ํฐ LR(step size)์ทจํ• ์ˆ˜๋„ ์žˆ์Œ
      • ๊ทธ๋ฆ‡์˜ ๋ฐ”๋‹ฅ์— ์ ‘๊ทผํ• ์ˆ˜๋ก ์†์‹คํ•จ์ˆ˜ ํ‘œ๋ฉด ํ‰ํ‰ํ•ด์ง€๊ณ , gradientํฌ๊ธฐ ์ค„์–ด๋“ค๊ฒŒ ํ•ด์•ผ๋ผ์„œ
        • (๊ทธ๋ž˜์„œ LR์„ ํŒŒ๋ผ๋ฏธํ„ฐํ™” ํ•˜๋Š”๊ฑฐ โ†’ ํ•™์Šต์‹œ์ผœ์„œ ๋ณ€๋™๋˜๊ฒŒ ํ•˜๋ ค๊ณ )
          • ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ํ‰ํ‰ํ•œ ์˜์—ญ(=์†์‹คํ•จ์ˆ˜ ์ตœ์†Ÿ๊ฐ’)์— ์ ‘๊ทผ์‹œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์†๋„ ๊ฐ์†Œ(step size ๊ฐ์†Œ) ๋˜์–ด LR๋„ ์ค„์–ด๋“ค๊ฒŒ ํ•˜๋ ค๊ณ 

2)(Full) Batch Gradient Descent ์ˆ˜์‹

  • ํ•ด์„
    • ์ฒซ๋ฒˆ์งธ ์‹
      • ํ•˜๋‚˜์˜ example์—์„œ ์šฐ๋ฆฌ ๋ถ„๋ฅ˜๊ธฐ๊ฐ€ ์–ผ๋งˆ๋‚˜ ์ž˜ ์ˆ˜ํ–‰?
      • W๋กœ ์ ์ˆ˜ ๊ตฌํ•˜๊ณ , ํ™•๋ฅ ํ™”ํ•ด์„œ L(W)๊ตฌํ•˜๊ธฐ
    • ๋‘๋ฒˆ์งธ ์‹
      • (Gradient๊ฐ€ ์„ ํ˜•์ด์—ฌ์„œ) gradient๋Š” ๊ฐœ๋ณ„ example์˜ ํ•ฉ
    • ๋ชจ๋‘ sumํ•˜๋ฉด ๋„ˆ๋ฌด ์ปค์ ธ์„œ ๊ณ„์‚ฐ๋น„์šฉ ๋งŽ์•„์ง
      (ex. N=1000๋งŒ์ด๋ฉด, ๊ฐ๊ฐ์˜ Li ์ „๋ถ€ ๊ตฌํ•ด์„œ ๋”ํ•ด์•ผ๋จ)
      โ‡’ N์ด ์—„์ฒญ ํด๋•Œ ์‹คํ˜„๊ฐ€๋Šฅ์„ฑ X
      โ€”> ํ•ด๊ฒฐ: Stochastic Gradient Descent (SGD)




3. Stochastic Gradient Descent (Mini batch)

๐Ÿ”ฅ์—„์ฒญ ํฐ N์— ๋Œ€ํ•ด์„œ๋„ ํ•™์Šต ๊ฐ€๋Šฅํ•ด์ง_minibatch
1) ๊ฐœ๋…

  • ๋ฐฉํ–ฅ์ด optimal ํ•˜์ง€ X (full batch์•„๋‹ˆ์—ฌ์„œ)
  • ์ „์ฒด์— ๋Œ€ํ•œ ์ž‘์€ sub sample (mini batch)๋กœ ์†์‹คํ•จ์ˆ˜๋ฅผ ๊ทผ์‚ฌํ•˜๊ณ , gradient๋ฅผ ๊ทผ์‚ฌํ•จ
  • ์ „์ฒด dataset์— ๋Œ€ํ•œ loss ๊ณ„์‚ฐ ๋Œ€์‹ , dataset์—์„œ ์ž‘์€ minibatch๋ฅผ samplingํ•œ๊ฑธ๋กœ ๋‹ค์Œ ๊ธฐ์šธ๊ธฐ ๊ณ„์‚ฐํ•˜๋„๋ก ์ˆ˜์ • ์ „์ฒด ๋ฐฐ์น˜์—์„œ ํ™•๋ฅ ์ ์œผ๋กœ ๋ฏธ๋‹ˆ๋ฐฐ์น˜ ์„ ์ •

2) ๋ฐฉ๋ฒ•

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

  • ์œ„์— 3๊ฐœ - ๊ธฐ์กด์— ์žˆ๋˜๊ฑฐ
  • Batch size: ๊ฐ mini batch์— ๋ช‡ ๊ฐœ์˜ ์š”์†Œ๋“ค์ด ์žˆ๋Š”๊ฐ€
    • ๋ณ„๋กœ ์ค‘์š”X
    • (GPU๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ฐ๋‹นํ• ๋งŒํผ) ์ตœ๋Œ€ํ•œ ํฌ๊ฒŒ ๋งŒ๋“ค๊ธฐ (GPU์—ฌ๋Ÿฌ๊ฐœ & ์—ฌ๋Ÿฌ ์‹œ์Šคํ…œ์ด๋ฉด ์—„์ฒญ ํฌ๊ฒŒ batch sizeํ•ด๋„๋จ)
  • Data Sampling๋ฐฉ๋ฒ•
    • ์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜์—์„œ๋Š” ๊ฑฐ์˜ ์•ˆ๋‹ค๋ฃธ (๊ตฌ์กฐํ™”๋œ ์˜ˆ์ธก, ์‚ผ์ค‘ํ•ญ ์ผ์น˜, ์ˆœ์œ„ ๋ฌธ์ œ โ†’ ์—ฌ๊ธฐ์„  ์ค‘์š”ํ• ์ˆ˜O)
    • ์ตœ์ข… ๊ฒฐ๊ณผ์— ์ค‘์š”์˜ํ–ฅX

4) Stochastic์ธ ์ด์œ 

  • Loss function์„ ํ™•๋ฅ ์ ์œผ๋กœ ๋ณด๊ธฐ ๋•Œ๋ฌธ (์–ด๋–ป๊ฒŒ ํ™•๋ฅ ์ ์œผ๋กœ ๋ณด๋Š”์ง€?)
  • ์ฒซ๋ฒˆ์งธ ์‹

    • ์ „์ฒด data์— ๋Œ€ํ•œ ์†์‹ค ๊ธฐ๋Œ“๊ฐ’
  • ๋‘๋ฒˆ์งธ ์‹

    • sampling์œผ๋กœ ๊ธฐ๋Œ“๊ฐ’ ์˜ˆ์ธก
    • N: ๋ชจ๋“  data X, batch size
  • ๋ฐ์ดํ„ฐ sampling

    • ๊ธฐ์ €ํ™•๋ฅ ๋ถ„ํฌ โ†’(์ถ”์ถœ)โ†’ data
      • ๊ธฐ์ €ํ™•๋ฅ ๋ถ„ํฌ = ๋ฐ์ดํ„ฐ&๋ ˆ์ด๋ธ” ๊ฒฐํ•ฉํ™•๋ฅ ๋ถ„ํฌ
        = ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ค ๋ถ„ํฌ์—์„œ ์ถ”์ถœ๋˜๋Š”์ง€
        = ๋ฐ์ดํ„ฐ ์ƒ์„ฑ๊ณผ์ • ์„ค๋ช…
        = ์‹ค์ œ ๋ฐ์ดํ„ฐ ๋ถ„ํฌX, ํ™•๋ฅ  ๋ชจ๋ธ ๊ฐ€์ •
  • ์ „์ฒด ๋ถ„ํฌ์— ๋Œ€ํ•ด sample์˜ ์ž‘์€ ๋ชฌํ…Œ์นด๋ฅผ๋กœ ์ถ”์ • ์ทจํ•˜์—ฌ gradient๊ทผ์‚ฌํ™” ๊ฐ€๋Šฅ

    • gradient ๊ทผ์‚ฌํ™”

      • ์ „์ฒด ํ™•๋ฅ ๋ถ„ํฌ ๊ธฐ๋Œ“๊ฐ’์„ ๋ชฌํ…Œ์นด๋ฅผ๋กœ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ทผ์‚ฌํ™”
      • ๋ชฌํ…Œ์นด๋ฅผ๋กœ ๋ฐฉ๋ฒ•
        = ํ™•๋ฅ ์  ๋ฐฉ๋ฒ• ์‚ฌ์šฉํ•˜์—ฌ ํ•จ์ˆ˜๊ฐ’ ์ถ”์ •
        = ํŠน์ • ํ•จ์ˆ˜๊ฐ’ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ๋‚œ์ˆ˜ ์‚ฌ์šฉํ•˜์—ฌ sampling
        = ํ•จ์ˆ˜์˜ ํ‰๊ท ๊ฐ’ ์ถ”์ • โ†’ ์›๋ž˜ ํ•จ์ˆ˜๊ฐ’์˜ ๊ทผ์‚ฌ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ

      =โ‡’ ํ™•๋ฅ ์  ์ ‘๊ทผ โ†’ Loss ํ•จ์ˆ˜

      : ์†์‹คํ•จ์ˆ˜ ๊ณ„์‚ฐ ์œ„ํ•ด ๋ช‡๊ฐœ sample์ด์šฉํ•ด์„œ ์ „์ฒด ๊ธฐ๋Œ“๊ฐ’ ๊ทผ์‚ฌํ™”ํ• ์ง€ ์„ ํƒ

5) SGD์˜ ๋ฌธ์ œ์ 

  • Q1) (์•„๋ž˜์™€ ๊ฐ™์€ ์ƒํ™ฉ๊ฐ™์ด) ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ๋ณ€ํ™” or ๋งค์šฐ ๋Š๋ฆฌ๊ฒŒ ๋ณ€ํ™”์‹œ, Gradient Descent์— ์–ด๋– ํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”๊ฐ€?

    A) (๊ฒฐ๋ก ) ์ €์ฐจ์›์—์„œ๋Š” ๋งค์šฐ ๋Š๋ฆฌ๊ณ , ๊ฐ€ํŒŒ๋ฅธ ๋ฐฉํ–ฅ์—์„œ๋Š” ๋ถˆ์•ˆ์ •ํ•˜๊ฒŒ ์ง„๋™ํ•œ๋‹ค.

    • Stepsize๊ฐ€ ๋„ˆ๋ฌด ํฌ๋ฉด โ†’ step์ด ์ง„๋™ํ•จ

      โ†’ gradient๊ณ„์‚ฐ์‹œ, ๋น ๋ฅด๊ฒŒ ์›€์ง์ด๋Š” ์ฐจ์›์—์„œ overshootํ•  ์ˆ˜ ์žˆ์Œ

      โ†’ overshoot์ˆ˜์ •ํ•˜๊ณ  ๋‹ค๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ๋‹ค์‹œ ๋Œ์•„์™€์•ผ ํ•จ

      โ†’ ์ง€๊ทธ์žฌ๊ทธ ํŒจํ„ด ์œ ๋ฐœ

      โ†’ ์ตœ์†Ÿ๊ฐ’์œผ๋กœ ์ง€๊ทธ์žฌ๊ทธ ์ด๋™ํ•˜๋ฉด ์ˆ˜๋ ด์†๋„ ๋‚ฎ์•„์ง

    • (์ ˆ์ถฉ์•ˆ) stepsize ์ค„์ด๊ธฐ โ†’ overshoot ์ง€๊ทธ์žฌ๊ทธ๋Š” ํ”ผํ• ์ˆ˜์žˆ์ง€๋งŒ ์ˆ˜๋ ด์†๋„ ๋‚ฎ์•„์ง

      =โ‡’ (๋ฌธ์ œ์ ) taco๋ชจ์–‘์ฒ˜๋Ÿผ ํ•œ์ชฝ์€ ๋นจ๋ฆฌ ๋ณ€ํ•˜๊ณ , ํ•œ์ชฝ์€ ๋Š๋ฆฌ๊ฒŒ ๋ณ€ํ•˜๋ฉด stepsize๊ฐ€ ํฌ๋“  ์ž‘๋“  ์–ด์จŒ๋“  ๋ฌธ์ œ ๋ฐœ์ƒํ•จ(gradient๊ฐ„ ์ฐจ์ด๊ฐ€ ๋งค์šฐ ํผ)

    • (ํ•ด๊ฒฐ์ฑ…) condition number๋‚ฎ์ถ”๊ธฐ โ†’ ํ—ค์‹œ์•ˆ ํ–‰๋ ฌ ์กฐ์ ˆ or ์ตœ์ ํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์กฐ์ ˆ(=์ˆ˜๋ ด์†๋„ ๋†’์ผ์ˆ˜์žˆ์Œ)

      • *(๊ธฐ์กด ๋ฌธ์ œ์ ) Loss function์€ high condition number์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ*

        = ํ—ค์‹œ์•ˆ ํ–‰๋ ฌ์˜ (๊ฐ€์žฅ ํฐ ํŠน์ด๊ฐ’ & ๊ฐ€์žฅ ์ž‘์€ ํŠน์ด๊ฐ’ ๊ฐ„ ๋น„์œจ์ด ํผ) =high condition number

        : ์†์‹คํ•จ์ˆ˜์˜ ๋ฏธ๋ถ„๊ฐ’๋“ค๋กœ ๊ตฌ์„ฑ๋œ ํ–‰๋ ฌ, ์ตœ์ ํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ์‚ฌ์šฉ

        : ํ—ค์‹œ์•ˆํ–‰๋ ฌ ํŠน์ด๊ฐ’ = ํ–‰๋ ฌ์˜ ์Šค์ผ€์ผ๋ง ์ •๋ณด

        = ํ—ค์‹œ์•ˆ ํ–‰๋ ฌ์˜ ์Šค์ผ€์ผ๋ง ์ฐจ์ด๊ฐ€ ํผ (taco๋ชจ์–‘์€ ํ•œ์ชฝ์€ ๊ฐ€ํŒŒ๋ฅด๊ณ , ํ•œ์ชฝ์€ ํ‰ํ‰)

        : ์ตœ์ ํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด Gradient Descent๋ณด๋‹ค ์ˆ˜๋ ด์†๋„ ์ž‘์Œ

        : Gradient Descent๊ฐ€ ํšจ์œจ์  ์ž‘๋™X โ†’ ์ˆ˜๋ ด์†๋„ ๋‚ฎ์•„์ง

  • Q2) loss function์ด local minimum or saddle point์— ์žˆ๊ฒŒ ๋˜๋ฉด ๋ฐœ์ƒ๋˜๋Š” ๋ฌธ์ œ์™€ ๊ทธ ํ•ด๊ฒฐ์ฑ…?
    A) (๊ณตํ†ต ๋ฌธ์ œ์ ) zero gradient, gradient descent gets stuck - ๊ณ ์ฐจ์›์ผ์ˆ˜๋ก ๋” ์ž์ฃผ ๋ฐœ์ƒ (์ด์œ : ์–ด๋–ค ํ•œ ๊ณณ์€ ์ฆ๊ฐ€, ๋‹ค๋ฅธ ๊ณณ์€ ๊ฐ์†Œํ•œ ๋ถ€๋ถ„์ด ๋” ๋งŽ์„ํ…Œ๋‹ˆ๊นŒ)

    • local minimum : ํ•จ์ˆ˜ ๊ธฐ์šธ๊ธฐ=0์ด์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ์ตœ์ €์ ์ด ์•„๋‹˜

    • saddle point: ๊ณ ์ฐจ์› ์ตœ์ ํ™”์—์„œ ๋” ์ž์ฃผ ๋ฐœ์ƒ, ํ•œ๋ฐฉํ–ฅ ์ฆ๊ฐ€, ๋‚˜๋จธ์ง€ ํ•œ ๋ฐฉํ–ฅ ๊ฐ์†Œ

      (์•ˆ์žฅ์˜ ๋ ๊ธฐ์šธ๊ธฐ =0)

  • Q3) ๋ชจ๋“  ๋‹จ๊ณ„์—์„œ updateํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์šธ๊ธฐ๊ฐ€ ๊ฐ€๋ ค๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๊ณง์žฅ ์•ˆ๊ฐ(ํ™•๋ฅ ์  ๋ถ€๋ถ„)
    A) ๋ช…ํ™•ํ•œ ๊ฐ’์ด ์•„๋‹ˆ๊ณ  ๊ทผ์‚ฌ์น˜์ด๊ธฐ ๋•Œ๋ฌธ์— ์žก์Œ์ด ๋งŽ์„์ˆ˜๋ฐ–์— ์—†์Œ โ†’ ์ˆ˜๋ ด ์‹œ๊ฐ„ ์˜ค๋ž˜๊ฑธ๋ฆผ




4. SGD + Momentum

๐Ÿ”ฅ์†๋„ ์ฒจ์œผ๋กœ ๊ฐ€์ง โ†’ local minma, ์žก์Œ ๊ทน๋ณต_v, rho
1) ๊ธฐ์กด SGD

  • ํ•ด์„
    • ๊ฐ€์ค‘์น˜ ์ดˆ๊ธฐํ™” ์ƒ๋žต(๋ชจ๋“  ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณตํ†ต ๊ธฐ์ดˆ๋ผ์„œ)

2) ๊ฐœ๋…

  • SGD๋งŒ ์‚ฌ์šฉํ–ˆ์„๋•Œ์˜ ๋ฌธ์ œ์ (์ง„๋™ํ•˜๋Š” ๋ฌธ์ œ, local minima, saddle point) ๊ทน๋ณต ์œ„ํ•ด Momentum๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ
  • ๊ณผ๊ฑฐ์˜ ๋ฐฉํ–ฅ ๊ธฐ์–ตํ•˜์—ฌ ํ˜„์žฌ ๋ฐฉํ–ฅ์— ๋ฐ˜์˜
    • ์ด์ „ ์ด๋™๊ฐ’ ๊ณ ๋ คํ•˜์—ฌ ์ผ์ • ๋น„์œจ๋งŒํผ๋งŒ ๋‹ค์Œ๊ฐ’ ๊ฒฐ์ • (๊ด€์„ฑ ํšจ๊ณผ)
    • ๋ณ€์ˆ˜๋ฅผ ๊ฐ€๋˜ ๋ฐฉํ–ฅ์œผ๋กœ ๊ณ„์† ๊ฐ€๊ฒŒ ํ•จ
    • ๊ฐ™์€ ๋ฐฉํ–ฅ ์ด๋™์‹œ, ๋” ๋งŽ์ด ๋ณ€ํ™” โ†’ ํ•™์Šต ์†๋„ ๋นจ๋ผ์ง

  • ์˜ค๋ฅธ์ชฝ ํ•ด์„
    • dw = w์˜ gradient๊ณ„์‚ฐ
    • (๋ฐฉํ–ฅ์žก๊ธฐ) v(์†๋„)=rho(๋งˆ์ฐฐ๊ณ„์ˆ˜ <1: ๊ณผ๊ฑฐ ์†๋„๊ฐ€ rho๋กœ ์ธํ•ด ์กฐ๊ธˆ์”ฉ ๋‚ ๋ผ๊ฐ) + dw โ†’ v(ํ˜„์žฌ์†๋„)์— gradient(dw) ๋ˆ„์ ๋˜๋ฉด์„œ, rho๋กœ ์ธํ•ด ๊ณผ๊ฑฐ gradient ์žŠํ˜€์ง
    • (๊ทธ ๋ฐฉํ–ฅ์œผ๋กœ ์–ผ๋งŒํผ ๊ฐˆ์ง€) ํ˜„์žฌ ๋ฐฉํ–ฅ์œผ๋กœ ์–ผ๋งŒํผ์˜ ๋ณดํญ์œผ๋กœ ๊ฐˆ๊ฑด์ง€์— ๋”ฐ๋ผ w update์‹œํ‚ด

3) SGD์˜ ๋ฌธ์ œ์ ๋“ค์„ Momentum์ด ํ•ด๊ฒฐํ•œ ๋ฐฉ๋ฒ•๋“ค

a. local minima, saddle point, poor conditioning, gradient noise

  • local minima, saddle point
    • v๋กœ ์ธํ•ด ์†๋„๋ฅผ ์—ฌ์ „ํžˆ ๊ฐ€์ ธ์„œ, local minima์— ๊ฐ‡ํžˆ์ง€ ์•Š๋„๋ก
  • poor conditioning
    • v๊ฐ€ ์ง„๋™์„ ๋งค๋„๋Ÿฝ๊ฒŒ ํ•ด์คŒ (๊ธฐ์กด ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ€๋„๋ก ํ•ด์ฃผ๋‹ˆ๊นŒ)

    • ์ˆ˜ํ‰์ ์œผ๋กœ ์ˆ˜๋ ด์†๋„๊ฐ€ ๊ฐ€์†ํ™”๋ ์ˆ˜๋„ O

  • gradient noise
    • SGD(๊ฒ€) : ๋ชจ๋“  ์ง€์ ์—์„œ random noise์ถ”๊ฐ€๋จ
    • SGD + Momentum (ํŒŒ)
      • ๋™์ผ sequence of gradient update
      • noise ๋ถ€๋“œ๋Ÿฝ๊ฒŒ
      • ๋ชฉํ‘œ์— ๋” ์ง์ ‘์  ๊ฒฝ๋กœ

4) Momentum update (v update)

  • ๊ฐœ๋…
    • velocity: ๋ฐฉํ–ฅ ์ œ๊ณต ( train์—์„œ gradient์™€์˜ ๊ณผ๊ฑฐ ํ‰๊ท )
    • gradient: ์ˆœ๊ฐ„ ๋ณ€ํ™”์œจ
    • ํ˜„์žฌ ์ž…๋ ฅ๊ฐ’ (๋นจ๊ฐ„์ )์—์„œ ๊ตฌํ•œ gradient์™€ velocity๋”ํ•˜์—ฌ ๋‹ค์Œ v(step) ๊ตฌํ•จ




5. Nesterov Momentum

1) ๊ฐœ๋…

  • ๊ธฐ์กด๊ณผ ์ˆœ์„œ๋งŒ ๋‹ค๋ฆ„
  • ๋ฏธ๋ž˜๋ฅผ ๋ณด๊ณ  gradient ๋ฐฉํ–ฅ์ด ์–ด๋–จ์ง€ ๊ณ„์‚ฐ
  • convex function(๋ณผ๋กํ•จ์ˆ˜) ์„ฑ๋Šฅ good, but ๊ณ ์ฐจ์› ํ•จ์ˆ˜์—์„  ์„ฑ๋Šฅ bad
  • ํ˜„์žฌ ์ž…๋ ฅ๊ฐ’์—์„œ velocity๋งŒํผ ์ด๋™ ํ›„, gradient๊ตฌํ•˜๊ณ  ์ด๋ฅผ ๋”ํ•˜์—ฌ step ๊ตฌํ•˜๊ธฐ

2) ์ˆ˜ํ•™์  ํ‘œํ˜„

  • ํ•ด์„
    • xt + pvt = ํ˜„์žฌ ์ž…๋ ฅ๊ฐ’ + rho*v
    • ๋ฏธ๋ฆฌ ๊ธฐ์šธ๊ธฐ ๊ณ„์‚ฐ
      = v๋ฐฉํ–ฅ์œผ๋กœ ๊ฑธ์–ด๊ฐˆ๋•Œ์˜ gradient
      = ๊ฑฐ๊ธฐ์„œ gradient ๊ณ„์‚ฐ

3) ๊ทธ๋ฆผ์œผ๋กœ ๋น„๊ต

  • ๊ณตํ†ต์ 
    • ์‹œ์ž‘์—์„œ overshootํ•˜๊ณ  ๋‹ค์‹œ ๋Œ์•„์˜ด (v๋ฅผ ๊ณ„์† ๋ˆ„์ ํ•จ์— ๋”ฐ๋ผ ํฐ ์†๋„ ์–ป๊ฒŒ๋จ)
    • train process ๊ฐ€์†ํ™” (์‹œ๊ฐ„ ์ง€๋‚จ์— ๋”ฐ๋ผ ์†๋„ ๋ฒกํ„ฐ ๊ตฌ์ถ•ํ•ด์„œ ์–ด์ผ€๋“  ๋นจ๋ฆฌ ์›€์ง์ด๊ธฐ ๊ฐ€๋Šฅ) โ†’ ์†๋„ ๋Šฆ์ถ”๊ณ , ๋์„ ํ–ฅํ•ด ์ˆ˜๋ ดํ•˜๋„๋ก




6. Adagrad

๐Ÿ”ฅLR(step) ์กฐ์ ˆ๊ฐ€๋Šฅ_grad_squared
1) ๊ฐœ๋…

  • ๊ฐ๊ฐ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋งž๊ฒŒ ๋งž์ถคํ˜• ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐฑ์‹  ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • adaptive๋กœ ํ•™์Šต๋ฅ (LR, step size) ์กฐ์ •(w์—…๋ฐ์ดํŠธ์‹œ, w์— ์ ์šฉ๋˜๋Š”)
  • historical sum of gradient values ๋”ํ•˜๋Š” ๋Œ€์‹  gradient ์ œ๊ณฑ
  • 1e-7: ๋ถ„๋ชจ๊ฐ€ ์•„์˜ˆ 0์ผ๋•Œ ๋Œ€๋น„ํ•ด์„œ

2) ์›๋ฆฌ

  • ์ƒํ™ฉ: ์–ด๋Š ํ•œ์ชฝ์€ ๊ธฐ์šธ๊ธฐ ๋นจ๋ฆฌ ๋ณ€ํ•˜๊ณ (=๊ธฐ์šธ๊ธฐ(dw)๊ฐ€ ํด๋•Œ),
    โ†’ Adagrad๋Š” ํฐ ๊ฐ’์œผ๋กœ ๋‚˜๋ˆ ์คŒ = ๋ถ„๋ชจ์— ๊ธฐ์šธ๊ธฐ์˜ ์ œ๊ณฑ๋งŒํผ ๋‚˜๋ˆ ์ฃผ๋‹ˆ, ์ „์ฒด ์†๋„ ๋Šฆ์ถฐ์ง
  • ์–ด๋Š ํ•œ์ชฝ์€ ๊ธฐ์šธ๊ธฐ ์ฒœ์ฒœํžˆ ๋ณ€ํ•จ(=๊ธฐ์šธ๊ธฐ๊ฐ€ ์ž‘์„๋•Œ)
    โ†’ ์ž‘์€ ๊ฐ’์œผ๋กœ ๋‚˜๋ˆ ์คŒ = ๋ถ„๋ชจ์— ๊ธฐ์šธ๊ธฐ ์ œ๊ณฑ๋งŒํผ ๋‚˜๋ˆ ์ฃผ๋‹ˆ, ์ „์ฒด ์†๋„ ๋นจ๋ผ์ง

3) ๋ฌธ์ œ์ 

  • grad_squared๋Š” ์ œ๊ณฑํ•˜๋Š”๊ฑฐ๋ผ, ์–‘์ˆ˜๋งŒ ๊ณ„์† ๋ˆ„์  (=๊ณ„์† ๋” ํฐ ์ˆซ์ž๋กœ ๋‚˜๋ˆ„๊ฒŒ ๋จ)
    โ†’ grad_squared๋Š” ๊ณ„์† ์ปค์ง โ†’ step_size๊ฐ์†Œ = LR ๊ฐ์†Œ
    โ†’ ์›ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ€๋Š” ์ง„ํ–‰ ๋„์ค‘์— ๋ฉˆ์ถœ์ˆ˜O = ๋ฐ”๋‹ฅ์— ๋„๋‹ฌ ์ „ ๋ฉˆ์ถœ์ˆ˜O




7. RMSProp: Leak Adagrad

๐Ÿ”ฅLR(step)์˜ ์†๋„ ์กฐ์ ˆ๊นŒ์ง€ ๊ฐ€๋Šฅ_decay_rate

1) ๊ฐœ๋…

  • gradient ์ œ๊ณฑ ๊ฐ’ ๊ทธ๋Œ€๋กœ ๋ˆ„์ X, decay_rate ๊ณฑํ•จ
  • step์˜ ์†๋„๋ฅผ ์กฐ์ ˆ ๊ฐ€๋Šฅ (๋งˆ์ฐฐ(decay_rate)์ถ”๊ฐ€)
  • ๋งˆ์ฐฐ(decay_rate)์ ์šฉ์‹œ์ผœ์„œ, ์†๋„๊ฐ€ ์ค„์–ด๋“œ๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ

2) ๊ทธ๋ฆผ์œผ๋กœ ๋น„๊ต

  • SGD: ๋„ˆ๋ฌด ๋Š๋ฆผ
  • SGD+Momentum: Overshoot
  • RMSProp: ์–ด๋Š์ •๋„ ์ด์ƒ์  ๋ฐฉํ–ฅ




8. Adam: RMSProp + Momentum

๐Ÿ”ฅ์ ์‘ํ˜• LR + ์†๋„์กฐ์ ˆ
1) ๊ธฐ์กด์—์„œ ๊ฐ€์ ธ์˜จ ๋ถ€๋ถ„

  • (Almost) SGD + Momentum ์ ์šฉ ๋ถ€๋ถ„ (์†๋„ ์กฐ์ ˆ)

    • ๊ธฐ์กด SGD+Momentum์˜ v, rho โ†’ Adam์˜ moment1, beta1
  • (Almost) Adagrad, RMSProp ์ ์šฉ ๋ถ€๋ถ„

    • ๊ธฐ์กด RMSProp์˜ grad_squared, decay_rate โ†’ Adam์˜ moment2, beta2

2) Bias correction

  • ๋ฐœ์ƒ ๊ฐ€๋Šฅ ๋ฌธ์ œ์ 

    • ์ตœ์ ํ™” ์ดˆ๊ธฐ์—์„œ ๋ฐœ์ƒ๊ฐ€๋Šฅ ๋ฌธ์ œ? (beta2 = 0.999)
      = moment2 ๊ฐ’์ด ์ดˆ๊ธฐ์— ๊ต‰์žฅํžˆ ์ž‘์€ ๊ฐ’์ผ์ˆ˜๋„
      โ†’ ์ด ๊ฐ’์ด ๋ถ„๋ชจ์— ์žˆ๊ธฐ์—, update์‹œ ๊ฐ’์ด ์ด์ƒํ•˜๊ฒŒ ํŠˆ์ˆ˜๋„
  • ํ•ด๊ฒฐ

    • bias correction์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ธฐ (ex. 1e-7)
    • update์‹œ, ํ˜„์žฌ step์— ๋งž๋Š” ์ ์ ˆํ•œ bias์ถ”๊ฐ€ํ•˜์—ฌ ๊ฐ’์ด ์ดˆ๊ธฐ์— 0์ด ๋˜์ง€ ์•Š๋„๋ก
    • ์ตœ์†Œํ•œ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ์กฐ์ •์œผ๋กœ ๋‹ค์–‘ํ•œ task์ˆ˜ํ–‰๊ฐ€๋Šฅํ•ด์„œ ์ข‹์Œ

3) ๊ทธ๋ฆผ์œผ๋กœ ์ดํ•ดํ•˜๊ธฐ

  • ๊ฒฐ๋ก ) ํŒŒ๋ž€์„ ์˜ overshoot์ ์–ด์ง€๊ณ  ,
    ๋นจ๊ฐ„์„ ์˜ ์ ์ ˆํ•œ stepsize๋กœ ์ค‘๊ฐ„์— ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  ๋๊นŒ์ง€ ์ตœ์†Œ๊ฐ’ ์ฐพ๊ธฐ ๊ฐ€๋Šฅ




9. ์ตœ์ข… ๋น„๊ต

profile
๐Ÿ–ฅ๏ธ

0๊ฐœ์˜ ๋Œ“๊ธ€