[์ธ๊ณต์ง๋ฅ] SP06-Fitting Models
[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๊ฐ ์์ ๊ฒฝ์ฐ, ํ์ต๋ฅ ์ด ์๋์ ์ผ๋ก ์๊ฒ ๊ฐ์ํ๋ฉฐ, ํ๋ผ๋ฏธํฐ๋ฅผ ๋์ฑ ๋๋ดํ๊ฒ ์ ๋ฐ์ดํธ์ํจ๋ค.
์ด๋ฌํ ๊ณผ์ ์ ํตํด ์ต์ ์ ์๋ฃจ์ ์ ๋ ๋น ๋ฅด๊ฒ ๋๋ฌํ ์ ์๊ฒ ๋๋ค.
๋ค์์ผ๋ก AdaDelta๋ AdaGrad์ ํ๊ณ์ธ ํ์ต๋ฅ ์ด ์ง๋์น๊ฒ ๊ฐ์ํ์ฌ ํ์ต์ด ๋ฉ์ถ๋ ๋ฌธ์ ๋ฅผ ๋ณด์ํ ๋ฐฉ๋ฒ์ด๋ค.
AdaGrad๊ฐ gradient ์ ์ฒด ๋จ๊ณ๋ฅผ ๋์ ํ๋ ๋ฐ๋ฉด, AdaDelta๋ ๋์ ํ๋ ๋จ๊ณ ์๋ฅผ moving window์ ํฌ๊ธฐ์ธ w๋ก ์ ํํ๋ค.
RMSProp๋ Root Mean Square Propagation์ ์ฝ์๋ก, AdaGrad์ ๋จ์ ์ ๋ณด์ํ ๋๋ค๋ฅธ ๋ฐฉ๋ฒ์ด๋ค.
gradient์ ๋์ ์ 'exponentially weighted moving average(์ง์ ๊ฐ์ค ์ด๋ ํ๊ท )'๋ก ๋ณ๊ฒฝํ์ฌ, ๋น๋ณผ๋ก ํจ์์์์ ์ฑ๋ฅ์ ํฅ์์ํจ ๊ฒ์ด ํน์ง์ด๋ค. ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด, ๊ทน๋จ์ ์ธ ๊ณผ๊ฑฐ์ ์ด๋ ฅ์ ์ ๊ฑฐ๋๋ฉฐ, ๋ณผ๋กํ ๊ตฌ์กฐ๋ฅผ ์ฐพ์๋ธ ํ์๋ ๋น ๋ฅด๊ฒ ๊ทธ ๋ฐฉํฅ์ผ๋ก ํ์ต๋ฅ ์ ์กฐ์ ํ๊ณ ์๋ ดํ ์ ์๋ค.
Adam์ RMSProp๊ณผ Momentum์ ๊ฒฐํฉํ ๋ฐฉ๋ฒ์ผ๋ก, ํ์ดํผํ๋ผ๋ฏธํฐ๋ฅผ ์ธ๋ฐํ๊ฒ ์กฐ์ ํ์ง ์์๋ ๋์ฒด์ ์ผ๋ก ์ฐ์ํ ์ฑ๋ฅ์ ๋ณด์ฌ์ฃผ๋์๊ณ ๋ฆฌ์ฆ์ด๋ค.