Computer Science/์ธ๊ณต์ง€๋Šฅ

[์ธ๊ณต์ง€๋Šฅ] SP06-Fitting Models

ํ•˜์ด๋žŒ 2023. 12. 19. 22:28

[1] non-convex ํ•จ์ˆ˜์—์„œ์˜ ๋ฌธ์ œ์™€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

๋น„์„ ํ˜• ํ•จ์ˆ˜์—์„œ loss function์€ ๋‘ ๊ฐ€์ง€ ํ•จ์ •์„ ๊ฐ–๋Š”๋‹ค.

(1) local minima

์ด๋Š” ๊ธฐ์šธ๊ธฐ๊ฐ€ 0์ธ ์ง€์ ์ด๋ฉฐ, ์–ด๋А ๋ฐฉํ–ฅ์œผ๋กœ ์›€์ง์ด๋“  loss๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ์ง€์ ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ด ์ง€์ ์€ ์ „์ฒด ํ•จ์ˆ˜์—์„œ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’, ์ฆ‰ global minimum์€ ์•„๋‹ˆ๋‹ค.

(2) saddle point

์ด๊ฒƒ ๋˜ํ•œ ๊ธฐ์šธ๊ธฐ๊ฐ€ 0์ด์ง€๋งŒ, ์–ด๋–ค ๋ฐฉํ–ฅ์—์„œ๋Š” ์ฆ๊ฐ€ํ•˜๊ณ  ๋‹ค๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ๋Š” ๊ฐ์†Œํ•˜๋Š” ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

์ด๋Ÿฐ ํŠน์„ฑ์œผ๋กœ ์ธํ•ด ์ตœ์ ํ™” ๊ณผ์ •์—์„œ ์ข…์ข… ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๊ธฐ์šธ๊ธฐ๊ฐ€ 0์— ๊ฐ€๊นŒ์›Œ์ง€๋ฉด์„œ loss๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

saddle point์™€ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ, ํ™•๋ฅ ์  ๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ•(Stochastic Gradient Descent, SGD)์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

Stochastic gradient descent,SGD(ํ™•๋ฅ ์  ๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ•)์ด๋ž€?

๊ฐ ๋ฐ˜๋ณต์—์„œ gradient๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ, ๋ฌด์ž‘์œ„๋กœ ์„ ํƒํ•œ ๋ฐ์ดํ„ฐ์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋กœ ์ธํ•ด noise๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉฐ, ์ด noise๊ฐ€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ž˜๋ชป๋œ ๊ณจ์งœ๊ธฐ, ์ฆ‰ local minima๋‚˜ saddle point์— ๊ฐ‡ํžˆ์ง€ ์•Š๋„๋ก ๋ง‰์•„์ค€๋‹ค. ์ด๋Ÿฌํ•œ SGD๋Š” ๋ฐ์ดํ„ฐ์˜ ์ผ๋ถ€๋ถ„๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ„์‚ฐ๋Ÿ‰์ด ์ ๋‹ค๋Š” ์žฅ์ ๋„ ์žˆ๋‹ค.

 

[2] Momentum

Momentum์ด๋ž€?

ํ˜„์žฌ ๋ฐฐ์น˜์—์„œ ๊ณ„์‚ฐ๋œ ๊ธฐ์šธ๊ธฐ์™€ ์ด์ „ ๋‹จ๊ณ„์—์„œ ์ด๋™ํ•œ ๋ฐฉํ–ฅ์˜ ๊ฐ€์ค‘ ์กฐํ•ฉ์œผ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

Momentum์„ ์‚ฌ์šฉํ•˜๋ฉด ์ˆ˜๋ ด ์†๋„๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ณ  ์ง„๋™๊ณผ ๊ฐ™์€ ํ˜„์ƒ์„ ๊ฐ์†Œ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

 

๋ชจ๋ฉ˜ํ…€ ์ˆ˜์‹

 

์œ„ ์ˆ˜์‹์„ ๋ฐ”ํƒ•์œผ๋กœ ํŒŒ์ด์ฌ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๊ฒƒ์ด๋‹ค.

# ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”
m = 0
beta = 0.9  # ๋ชจ๋ฉ˜ํ…€ ๊ณ„์ˆ˜
alpha = 0.01  # ํ•™์Šต๋ฅ 
phi = np.random.randn()  # ์ž„์˜์˜ ์‹œ์ž‘์ 

# ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•œ ์ตœ์ ํ™”
for i in range(iterations):
  # ๊ธฐ์šธ๊ธฐ ๊ณ„์‚ฐ (์—ฌ๊ธฐ์„œ๋Š” ์ž„์˜์˜ ํ•จ์ˆ˜ 'gradient'๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.)
  gradient = gradient(phi)

  # ๋ชจ๋ฉ˜ํ…€ ์—…๋ฐ์ดํŠธ
  m = beta * m + (1 - beta) * gradient

  # ํŒŒ๋ผ๋ฏธํ„ฐ ์—…๋ฐ์ดํŠธ
  phi = phi - alpha * m

 

[3] Optimizer ์•Œ๊ณ ๋ฆฌ์ฆ˜

 

AdaGrad, AdaDelta, RMSProp, Adam 4๊ฐ€์ง€์˜ ๊ณตํ†ต์ ๊ณผ ์ฐจ์ด์ ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž.

 

๋จผ์ € AdaGrad๋Š” Adaptive Gradient์˜ ์ค„์ž„๋ง๋กœ, ๊ฐ ํŒŒ๋ผ๋ฏธํ„ฐ์— ์„œ๋กœ ๋‹ค๋ฅธ ํ•™์Šต๋ฅ ์„ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

gradient๊ฐ€ ํฐ ๊ฒฝ์šฐ, ์†์‹ค์— ํฌ๊ฒŒ ๊ธฐ์—ฌํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋ฏ€๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ํฌ๊ฒŒ ๋ณ€ํ•˜์ง€ ์•Š๊ฒŒ ํ•™์Šต๋ฅ ์„ ๋น ๋ฅด๊ฒŒ ๊ฐ์†Œ์‹œํ‚จ๋‹ค.

gradient๊ฐ€ ์ž‘์€ ๊ฒฝ์šฐ, ํ•™์Šต๋ฅ ์ด ์ƒ๋Œ€์ ์œผ๋กœ ์ž‘๊ฒŒ ๊ฐ์†Œํ•˜๋ฉฐ, ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋”์šฑ ๋Œ€๋‹ดํ•˜๊ฒŒ ์—…๋ฐ์ดํŠธ์‹œํ‚จ๋‹ค. 

์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ํ†ตํ•ด ์ตœ์ ์˜ ์†”๋ฃจ์…˜์— ๋” ๋น ๋ฅด๊ฒŒ ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

AdaGrad ์•Œ๊ณ ๋ฆฌ์ฆ˜

 

๋‹ค์Œ์œผ๋กœ AdaDelta๋Š” AdaGrad์˜ ํ•œ๊ณ„์ธ ํ•™์Šต๋ฅ ์ด ์ง€๋‚˜์น˜๊ฒŒ ๊ฐ์†Œํ•˜์—ฌ ํ•™์Šต์ด ๋ฉˆ์ถ”๋Š” ๋ฌธ์ œ๋ฅผ ๋ณด์™„ํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค.

AdaGrad๊ฐ€ gradient ์ „์ฒด ๋‹จ๊ณ„๋ฅผ ๋ˆ„์ ํ•˜๋Š” ๋ฐ˜๋ฉด, AdaDelta๋Š” ๋ˆ„์ ํ•˜๋Š” ๋‹จ๊ณ„ ์ˆ˜๋ฅผ moving window์˜ ํฌ๊ธฐ์ธ w๋กœ ์ œํ•œํ•œ๋‹ค.

 

RMSProp๋Š” Root Mean Square Propagation์˜ ์•ฝ์ž๋กœ, AdaGrad์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•œ ๋˜๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด๋‹ค.

gradient์˜ ๋ˆ„์ ์„ 'exponentially weighted moving average(์ง€์ˆ˜ ๊ฐ€์ค‘ ์ด๋™ ํ‰๊ท )'๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ, ๋น„๋ณผ๋ก ํ•จ์ˆ˜์—์„œ์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚จ ๊ฒƒ์ด ํŠน์ง•์ด๋‹ค. ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด, ๊ทน๋‹จ์ ์ธ ๊ณผ๊ฑฐ์˜ ์ด๋ ฅ์€ ์ œ๊ฑฐ๋˜๋ฉฐ, ๋ณผ๋กํ•œ ๊ตฌ์กฐ๋ฅผ ์ฐพ์•„๋‚ธ ํ›„์—๋Š” ๋น ๋ฅด๊ฒŒ ๊ทธ ๋ฐฉํ–ฅ์œผ๋กœ ํ•™์Šต๋ฅ ์„ ์กฐ์ •ํ•˜๊ณ  ์ˆ˜๋ ดํ•  ์ˆ˜ ์žˆ๋‹ค.

RMSProp ์•Œ๊ณ ๋ฆฌ์ฆ˜(๋นจ๊ฐ„์ƒ‰ ํ•„๊ธฐ์— -์˜คํƒ€ ์žˆ์Œ. +๋กœ ์ˆ˜์ •ํ•ด์•ผํ•จ)

 

Adam์€ RMSProp๊ณผ Momentum์„ ๊ฒฐํ•ฉํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ, ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์กฐ์ •ํ•˜์ง€ ์•Š์•„๋„ ๋Œ€์ฒด์ ์œผ๋กœ ์šฐ์ˆ˜ํ•œ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ฃผ๋Š”์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.