๐Ÿ“– ์ผ€๋ผ์Šค ์ฐฝ์‹œ์ž์—๊ฒŒ ๋ฐฐ์šฐ๋Š” ๋”ฅ๋Ÿฌ๋‹ (ํ”„๋ž‘์†Œ์™€ ์ˆ„๋ ˆ, ๋ฐ•ํ•ด์„ , ๊ธธ๋ฒ—) ์ฐธ๊ณ 

๐ŸŽˆ Gradient Descent

๋ณ€ํ™”์œจ

f(x) = y ๋ผ๋Š” ์—ฐ์†์ ์ธ ํ•จ์ˆ˜์—์„œ x๋ฅผ epsilon_x๋งŒํผ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด y๊ฐ€ epsilon_y๋งŒํผ ๋ฐ”๋€Œ๊ฒŒ ๋œ๋‹ค.

f(x + epsilon_x) = y + epsilon_y

๊ทธ๋ฆฌ๊ณ  ์ด ํ•จ์ˆ˜์—์„œ epsilon_x๊ฐ€ ์ถฉ๋ถ„ํžˆ ์ž‘๋‹ค๋ฉด ์–ด๋–ค ํฌ์ธํŠธ p์—์„œ ๊ธฐ์šธ๊ธฐ a์˜ ์„ ํ˜• ํ•จ์ˆ˜๋กœ f๋ฅผ ๊ทผ์‚ฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, epsilon_y๋Š” a * epsilon_x์ด๋‹ค.

f(x + epsilon_x) = y + a * epsilon_x

์ด ๊ธฐ์šธ๊ธฐ๋ฅผ p์—์„œ f์˜ ๋ณ€ํ™”์œจ(๋„ํ•จ์ˆ˜)์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋ณ€ํ™”์œจ์˜ ํฌ๊ธฐ๋Š” f(x)์˜ ์ฆ๊ฐ€๋‚˜ ๊ฐ์†Œ๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋น ๋ฅด๊ฒŒ ์ผ์–ด๋‚˜๋Š”์ง€ ์•Œ๋ ค์ค€๋‹ค.

๊ทธ๋ž˜๋””์–ธํŠธ

ํ…์„œ ์—ฐ์‚ฐ์˜ ๋ณ€ํ™”์œจ์„ ์˜๋ฏธํ•œ๋‹ค. ์ž…๋ ฅ ๋ฒกํ„ฐ x, ํ–‰๋ ฌ W, ํƒ€๊นƒ y์™€ ์†์‹คํ•จ์ˆ˜ loss๊ฐ€ ์žˆ์„ ๋•Œ w๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํƒ€๊นƒ์˜ ์˜ˆ์ธก y_pred๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  y_pred์™€ ํƒ€๊นƒ y ์‚ฌ์ด์˜ ์˜ค์ฐจ๋ฅผ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

y_pred = dot(W, x)
loss_value = loss(y_pred, y)

์ž…๋ ฅ ๋ฐ์ดํ„ฐ x์™€ y๊ฐ€ ๊ณ ์ •๋˜์–ด ์žˆ์„ ๊ฒฝ์šฐ loss_value = f(W) ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

W์˜ ํ˜„์žฌ ๊ฐ’์„ W0์ด๋ผ๊ณ  ํ•  ๋•Œ W0์—์„œ f์˜ ๋ณ€ํ™”์œจ์€ W์™€ ๊ฐ™์€ ํฌ๊ธฐ์˜ ํ…์„œ gradient(f)(W0)์ด๋‹ค. ์ด ํ…์„œ์˜ ๊ฐ ์›์†Œ gradient(f)(W0)[i, j]๋Š” W0[i, j]๋ฅผ ๋ณ€๊ฒฝํ–ˆ์„ ๋•Œ loss_value๊ฐ€ ๋ฐ”๋€Œ๋Š” ๋ฐฉํ–ฅ๊ณผ ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. gradient(f)(W0)๋Š” W0์—์„œ f(W)์˜ ๊ธฐ์šธ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ…์„œ์ด๋‹ค.

f(W)์— ๋Œ€ํ•ด์„œ ๊ทธ๋ž˜๋””์–ธํŠธ์˜ ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ์œผ๋กœ W๋ฅผ ์›€์ง์ด๋ฉด f(W)์˜ ๊ฐ’์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

๐ŸŽˆ ์˜ˆ์‹œ์™€ ๊ทธ๋ฆผ์œผ๋กœ ๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ• ์ดํ•ดํ•˜๊ธฐ

์œ„ ๊ทธ๋ž˜ํ”„๋Š” ๊ธฐ์˜จ์— ๋”ฐ๋ฅธ ๋น™์ˆ˜ ํŒ๋งค์œจ์„ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ด๋‹ค. ๊ธฐ์˜จ์ด ๋†’์„ ์ˆ˜๋ก ๋น™์ˆ˜ ํŒ๋งค์œจ์ด ๋†’๋‹ค.

๋น™์ˆ˜ ํŒ๋งค์œจ์„ ์˜ˆ์ธกํ•˜๋Š” ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ๋งŒ๋“ ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์ด ๋•Œ ๋จธ์‹ ์€ ํ•จ์ˆ˜๋ผ๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž!
(์‚ฌ์‹ค ๋จธ์‹ ์€ ํ•จ์ˆ˜๋งŒ ํฌํ•จ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ˜•ํƒœ๋„ ์กด์žฌํ•˜์ง€๋งŒ ์ดํ•ด๋ฅผ ์œ„ํ•ด์„œ ์ž ์‹œ ํ•จ์ˆ˜๋กœ ์ƒ๊ฐํ•˜์ž)

์ง์„ ์„ ํ•˜๋‚˜ ๊ทธ๋ ธ๋‹ค. ์ด ์ง์„ ์€ y = wx + b๋ผ๋Š” ํ•จ์ˆ˜๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์ด ๋•Œ w๋Š” ๊ธฐ์šธ๊ธฐ, b๋Š” y์ ˆํŽธ์ด๋‹ค.
ํ˜„์žฌ ์ € ์ง์„ ์€ ์ ๋“ค์˜ ๋ถ„ํฌ๋ฅผ ์ž˜ ๋‚˜ํƒ€๋‚ด๊ณ  ์žˆ์ง€ ์•Š๋‹ค. ๋‹ค์‹œ ๋งํ•ด ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์ž˜ ํ‘œํ˜„ํ•˜์ง€ ๋ชปํ•œ๋‹ค. w์™€ b๋ฅผ ๋ฐ”๊ฟ”๋ณด์ž!

๋ณด๋ผ์ƒ‰ ์ง์„ ์—์„œ w์™€ b์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜์—ฌ ํŒŒ๋ž€์ƒ‰ ์ง์„ ์„ ๊ทธ๋ ธ๋‹ค. ์ด ์ง์„ ์€ ์šฐ๋ฆฌ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ž˜ ํ‘œํ˜„ํ•˜๊ณ  ์žˆ๋‹ค! ์šฐ๋ฆฌ๊ฐ€ ๋ณ€๊ฒฝํ•œ w์™€ b๋Š” parameter๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์ฆ‰, ์šฐ๋ฆฌ๋Š” ๋ฐฉ๊ธˆ parameter update๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ž˜ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์ง์„ ์„ ๊ทธ๋ฆฐ ๊ฒƒ์ด๋‹ค! ์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ์ง์„ ์„ ์šฐ๋ฆฌ๋Š” model์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค!

์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ๋ชจ๋ธ์€ ๊ธฐ์˜จ์ด x1์ผ ๋•Œ y_hat์˜ ๋น™์ˆ˜ ํŒ๋งค์œจ์„ ์˜ˆ์ธกํ•˜๊ณ  ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์‹ค์ œ ๋น™์ˆ˜ ํŒ๋งค์œจ์€ y์ด๋‹ค. y - y_hat, ์ฆ‰ ๊ทธ๋ž˜ํ”„์—์„œ ๋…ธ๋ž€์ƒ‰ ๋น—๊ธˆ์œผ๋กœ ์น ํ•ด์ ธ์žˆ๋Š” ๋ถ€๋ถ„์ด ๋ฐ”๋กœ ์‹ค์ œ๊ฐ’์—์„œ ์˜ˆ์ธก๊ฐ’์„ ๋บ€ ์—๋Ÿฌ์ด๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด ์—๋Ÿฌ๊ฐ€ ์ตœ๋Œ€ํ•œ ์ž‘์€ ๋ชจ๋ธ์„ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค.

๋ชจ๋ธ์ด 1๋ฒˆ ํ™”์‚ดํ‘œ๋ฅผ ๋”ฐ๋ผ ์ด๋™ํ•˜๋ฉด ์˜ค์ฐจ๊ฐ€ ์ ์  ์ค„์–ด๋“ ๋‹ค. ํ•˜์ง€๋งŒ ๋‹ค์‹œ 2๋ฒˆ ํ™”์‚ดํ‘œ๋ฅผ ๋”ฐ๋ผ ์ด๋™ํ•˜๋ฉด ์˜ค์ฐจ๊ฐ€ ๋‹ค์‹œ ์ปค์ง€๊ฒŒ ๋œ๋‹ค.

์œ„ ๋‚ด์šฉ์„ ๊ทธ๋ž˜ํ”„๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ์ €๋Ÿฐ ๊ทธ๋ž˜ํ”„๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.(parameter๊ฐ€ w์™€ b๊ฐ€ ์žˆ์ง€๋งŒ ์šฐ์„  w๋งŒ ๊ณ ๋ คํ•˜์ž ๊ทธ๋ฆฌ๊ธฐ ์–ด๋ ต๋‹ค ..!) ์˜ค์ฐจ๊ฐ€ ๊ฐ€์žฅ ์ ์€ ๋ถ€๋ถ„์€ ๋ฐ”๋กœ ์ ‘์„ ์˜ ๊ธฐ์šธ๊ธฐ, ๋ฏธ๋ถ„๊ฐ’์ด 0์ด ๋˜๋Š” ์ง€์ ์ด๋‹ค.

w1์—์„œ์˜ ์ˆœ๊ฐ„๋ณ€ํ™”์œจ์„ ๊ตฌํ•ด๋ณด๋ฉด +๊ฐ’์ด ๋‚˜์˜ฌ ๊ฒƒ์ด๋‹ค. w1์—์„œ dw1(w1์˜ ์ˆœ๊ฐ„๋ณ€ํ™”์œจ/๊ธฐ์šธ๊ธฐ/๋ฏธ๋ถ„๊ฐ’)์„ ๋นผ๋ฉด w2๋กœ ์ด๋™ํ•˜๊ฒŒ ๋œ๋‹ค. ์ฆ‰ ์ตœ์†Ÿ๊ฐ’์— ๊ฐ€๊นŒ์›Œ์ง€๋Š” ๊ฒƒ์ด๋‹ค!

์ด๋ฒˆ์—” w1์—์„œ ์ˆœ๊ฐ„๋ณ€ํ™”์œจ์ด -๊ฐ’์ด๋‹ค. w1์—์„œ dw1์„ ๋นผ๋ฉด ์šฐ์ธก์œผ๋กœ ์ด๋™ํ•˜์—ฌ w2๋กœ ์ด๋™ํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. ์—ญ์‹œ ์ตœ์†Ÿ๊ฐ’์— ๊ฐ€๊น๊ฒŒ ์ด๋™ํ•˜๊ฒŒ ๋œ๋‹ค.

ํ•˜์ง€๋งŒ ๋ฏธ๋ถ„๊ฐ’์ด ๋„ˆ๋ฌด ์ปค์„œ ์œ„ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ์ตœ์†Ÿ๊ฐ’์œผ๋กœ ๊ฐ€๊นŒ์›Œ์ง€๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์˜คํžˆ๋ ค ์—๋Ÿฌ๊ฐ€ ์ปค์ง€๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ ์ˆ˜๋„ ์žˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋ฐœ์‚ฐํ•˜๊ฒŒ ๋˜์–ด์„œ ํ•™์Šต์ด ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด w = w - dw๊ฐ€ ์•„๋‹ˆ๋ผ w = w - r * dw๋ผ๋Š” ์ˆ˜์‹์„ ์ด์šฉํ•œ๋‹ค. ์ด ๋•Œ r์€ ํ•™์Šต๋ฅ ๋กœ 0 ~ 1 ์‚ฌ์ด์˜ ๊ฐ’์„ ๊ฐ€์ง„๋‹ค.

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

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด

Powered by GraphCDN, the GraphQL CDN