-
[AI] ๊ฒฝ์ฌํ๊ฐ๋ฒ(feat: ์ต์ ํ, ์์ค ํจ์) - ์ ํ ํ๊ท ๋ถ์(1)๐ปProgramming/AI 2023. 10. 17. 16:27
๐ ์ ํ ํ๊ท ๋ถ์์ด๋?
- ๋ฅ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆ ํ์ต ์ ์ฌ์ฉ ๋๋ “์ต์ ํ ๋ฐฉ๋ฒ” ์ค ํ๋๋ก ,
- ์ฃผ์ด์ง ๋ฐ์ดํฐ๋ค์ ๊ฐ์ฅ ์ ์ค๋ช ํ๋ “์ง์ ” ํ๋๋ฅผ ์ฐพ๋ ๊ฒ. = ๋ฅ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆ ํ์ต ์ ๋ชฉํ๋ ์์ธก๊ฐ๊ณผ ์ ๋ต๊ฐ ๊ฐ์ ์ฐจ์ด์ธ ์์คํจ์์ ํฌ๊ธฐ๋ฅผ ์ต์ํ์ํค๋ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฐพ๋ ๊ฒ
- ๋จ์ ์ ํ ํ๊ท: ํ๋์ ๋
๋ฆฝ๋ณ์์ ๋ํด ์ ํํ๊ท๋ถ์์ ํ๋ ๊ฒ.
- ์: y=wx+b. ํค์ ๋ฐ๋ผ ๋ชธ๋ฌด๊ฒ๊ฐ ๋ฌ๋ผ์ง(ํค-๋ ๋ฆฝ๋ณ์, ๋ชธ๋ฌด๊ฒ-์ข ์๋ณ์) -> ์ด ์์ ๊ตฌํ๋ค๋ฉด, ์ผ๋ฐ์ ์ธ ์ฌ๋์ ํค์ ๋ฐ๋ฅธ ๋ชธ๋ฌด๊ฒ๋ฅผ ์์ธกํ ์ ์๋ค.
- ์์ ์์์ w์ b๋ Weight์ Bias๋ก ๊ฐ์ค์น์ ํธํฅ์ ์๋ฏธํ๋ค.
- ๋ค์ค ์ ํ ํ๊ท: ๋ ๋ฆฝ๋ณ์๊ฐ ์ฌ๋ฌ ๊ฐ์ธ ๊ฒฝ์ฐ์ ๋ํด ์ ํ ํ๊ท ๋ถ์์ ํ๋ ๊ฒ.
- ์ ํ ํ๊ท๋ฅผ ํตํด์ “๋ณ์๊ฐ์ ์๊ด๊ด๊ณ”๋ฅผ ์ ์ ์๋ค.
- ์ ํ ํ๊ท๋ฅผ ์๊ธฐ ์ ์ ์ต์ ํ์ ์์ค ํจ์์ ๊ฐ๋ ์ ๋ํด์ ์์์ผ ํ๋ค.
๐ ์ต์ ํ(Optimization)๋?
- ์ธ๊ณต์ง๋ฅ์์ ์ ๊ฒฝ๋ง์ด ํ์ตํ ๋ ์ต์ ์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฐพ์๊ฐ๋ ๋ฐฉ์ <- ์ ํ ํ๊ท ๋ฐฉ์์์๋ ์ด ํ๋ผ๋ฏธํฐ๊ฐ w์ b ์ฆ, ๊ฐ์ค์น์ ํธํฅ์ด๋ค. ์ ์ ํ ๊ฐ์ค์น์ ํธํฅ์ ์ฐพ์๊ฐ๋ ๊ณผ์ ์ด ์ต์ ํ
- ๋ชจ๋ธ์ ์์ธก๊ฐ๊ณผ ์ค์ ๊ฐ์ ์ฐจ์ด๋ฅผ ์ค์ฐจ(=error, loss)๋ผ๊ณ ํ๋ฉฐ ์ด ์ค์ฐจ๋ฅผ ์ค์ด๊ธฐ ์ํด ์์ธก ๊ฐ์ด ์ค์ ๊ฐ๊ณผ ์ผ๋ง๋ ์ ์ฌํ์ง ํ๋จํ๋ ๊ธฐ์ค์ด ์์คํจ์(Loss Function)์ด๋ค. -> ์ต์ ํ๋ฅผ ์ํด ์์ค ํจ์๊ฐ ํ์.
๐ ์์ค ํจ์(Loss Function)
- ๋ชจ๋ธ์ ์์ธก๊ฐ๊ณผ ์ค์ ๊ฐ์ ์ฐจ์ด๋ฅผ loss๋ผ๊ณ ํ๋๋ฐ, ์ด๊ฒ์ ํจ์๋ก ๋ํ๋ผ ์ ์๊ณ , ๊ทธ ํจ์๋ฅผ ์์ค ํจ์๋ผ๊ณ ํ๋ค. ์ฐ๋ฆฌ๋ ์ด ์์ค ํจ์์ ๊ฐ์ ์ค์ด๋ ๋ฐฉํฅ์ผ๋ก ํ์ต์ ์งํํ๋ค.
- ์์คํจ์์ ์ข ๋ฅ๋ ์ฌ๋ฌ๊ฐ๊ฐ ์๋ค. ๊ทธ ์ค์ ๋ง์ด ์ฌ์ฉ ๋๋ ๋ ๊ฐ์ง๋ฅผ ์์๋ณด์!
๐ ํ๊ท ์ ๊ณฑ ์ค์ฐจ(MSE, Mean Squared Error)
- ์์ธก๊ฐ๊ณผ ์ค์ ๊ฐ์ ๋บ ๊ฐ๋ค์ ๊ฐ๊ฐ ์ ๊ณฑํ์ฌ ํ๊ท ์ ๊ณ์ฐ
- ์ ๊ณฑ์ ํจ์ผ๋ก์จ ‘๋ถํธ’๋ฅผ ์์ ์ค๋ค. → ์ฐจ์ด ๊ฐ์ด ์์์ด๋์ง ์์์ด๋์ง ์ค์ฐจ๋ ์ค์ฐจ์ธ๋ฐ, ๊ทธ ์ฐจ์ด๋ค์ด ๋ํด์ง๋ฉด์ ์์๋๋ ๊ฒฝ์ฐ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํจ.
- n: ๋ฐ์ดํฐ ๊ฐ์
- y: ์ฃผ์ด์ง ๋ฐ์ดํฐ์ ๊ฐ
- yฬ: ์์ธก๊ฐ
๐ ํ๊ท ์ ๋ ์ค์ฐจ(MAE, Mean Absolute Error)
- ํ๊ท ์ ๋ ์ค์ฐจ๋ ๋ชจ๋ ์ ๋ ์ค์ฐจ์ ํ๊ท
๐ MSE vs MAE
- ์ ๋๊ฐ ์ฐ์ฐ์ด ๊ธฐ์ธ๊ธฐ ๊ณ์ฐ์ ์์ด ๋จ์ ๊ณฑ ์ฐ์ฐ์ ๋นํด ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค.
- MSE ํจ์๋ ์ ๊ณฑ์ ํ๊ฒ ๋จ์ผ๋ก ์ค๋ฅ๊ฐ ๊ฐ์กฐ๋จ.
- ์ค์ ๋ก๋ MSE๊ฐ ๋ ๋ง์ด ์ฌ์ฉ๋จ.
๐ ๊ฒฝ์ฌ ํ๊ฐ๋ฒ(Gradient Descent)์ ํตํ ์ต์ ํ
๐๊ฒฝ์ฌ ํ๊ฐ๋ฒ์ด๋?
- ์ค์ฐจ ํจ์์ ๊ฐ์ด ์ต์์ธ ์ง์ ์ ๊ฐ๊น์์ง์๋ก ๊ธฐ์ธ๊ธฐ๋ ์ ์ ์์์ง๋ ๊ฒ์ ์ด์ฉํ์ฌ ๊ธฐ์ธ๊ธฐ๋ฅผ ์ ์ ์ค์ฌ๋๊ฐ๋ฉด์ ์ต์ข ์ ์ผ๋ก ์ค์ฐจ๋ฅผ ์ต์ํํ๋ ๊ธฐ์ธ๊ธฐ๋ก ์๋ ดํ๊ฒ ๋๋ฉด์ ์ค์ฐจ๋ฅผ ์ต์ํํ๋ ์ต์ ์ ๊ธฐ์ธ๊ธฐ๋ฅผ ์ฐพ๋ ์ต์ ํ ๋ฐฉ๋ฒ์ด๋ค.
- ํจ์์ ์ต์๊ฐ์ ์ฐพ๋ ๋ฌธ์ ์์ ์ด์ฉ
- ๋ฏธ๋ถ ๊ณ์๊ฐ 0์ธ ์ง์ ์ ์ฐพ์ง ์๊ณ ๊ตณ์ด ๊ฒฝ์ฌํ๊ฐ๋ฒ์ ์ฌ์ฉํ๋ ์ด์
- ํจ์๊ฐ ๋ซํ ํํ๊ฐ ์๋ ๊ฒฝ์ฐ
- ํจ์๊ฐ ๋๋ฌด ๋ณต์กํด ๋ฏธ๋ถ ๊ณ์๋ฅผ ๊ตฌํ๊ธฐ ์ด๋ ค์ด ๊ฒฝ์ฐ
- Gradient Descent๋ฅผ ๊ตฌํํ๋๊ฒ ๋ฏธ๋ถ ๊ณ์๋ฅผ ๊ตฌํ๋ ๊ฒ ๋ณด๋ค ๋ ์ฌ์ด ๊ฒฝ์ฐ
- ๋ฐ์ดํฐ ์์ด ๋๋ฌด ๋ง์ ๋ ํจ์จ์ ์ผ๋ก ๊ณ์ฐํ๊ธฐ ์ํด์
๐ ๊ฒฝ์ฌํ๊ฐ๋ฒ ๊ณผ์
- ํ์ฌ ์ง์ ์ ๊ธฐ์ธ๊ธฐ๋ฅผ ๊ตฌํ์ฌ ๋ด๊ฐ ์ด๋ํด์ผ ํ๋ ๋ฐฉํฅ์ ์ ํ๋ค.(์๋์ ๊ฒฝ์ฌํ๊ฐ๋ฒ ์์ ์ ๋ ์ฐธ๊ณ )
- ํ ๋ฒ ์ด๋ํ ๋๋ง๋ค ์ผ๋ง๋ ์ด๋ํ ๊ฒ์ธ์ง step size(=learning rate)๋ฅผ ๊ณฑํด์ ๊ทธ๋งํผ ์ด๋
- ์ต์ ์ ํด๋ฅผ ์ฐพ์ ๋๊น์ง ์์ ๊ณผ์ ์ ๋ฐ๋ณต
๐ ๊ฒฝ์ฌ ํ๊ฐ๋ฒ์ ์์ ์ ๋
- Gradient Descent๋ ํจ์์ ๊ธฐ์ธ๊ธฐ๋ฅผ ์ด์ฉํด x์ ๊ฐ์ ์ด๋๋ก ์ฎ๊ธธ ๋ ์ต์๊ฐ์ ๊ฐ๊ฒ ๋๋์ง ์์๋ณด๋ ๋ฐฉ๋ฒ.
- ๊ธฐ์ธ๊ธฐ๊ฐ ์์: x๊ฐ ์ปค์ง์๋ก y๋ ์ปค์ง.
- ๊ธฐ์ธ๊ธฐ ์์: x๊ฐ ์ปค์ง์๋ก y๋ ์์์ง.
→ ๊ธฐ์ธ๊ธฐ๊ฐ ์์์ผ ๋ x๊ฐ ์์์ง๋ ๋ฐฉํฅ์ผ๋ก ์ฎ๊ธฐ๊ณ , ๊ธฐ์ธ๊ธฐ๊ฐ ์์์ผ ๋ y๊ฐ x๊ฐ ์ปค์ง๋ ๋ฐฉํฅ์ผ๋ก ์ฎ๊ฒจ์ผํ๋ค.
- ๊ฒฝ์ฌํ๊ฐ๋ฒ ์์
- α(=learning rate ๋ผ๊ณ ๋ ํจ.)๋ step size๋ก ๋ค์ step์ผ๋ก ์ด๋ํ ๋ ์ผ๋ง๋ ์ด๋ํ ์ง๋ฅผ ๊ฒฐ์ ์ง๋ ์
- ์ ์ ํ ํฌ๊ธฐ์ step size๋ฅผ ์ ํ๋ ๊ฒ์ด ์ค์ํ๋ค. step size๊ฐ ํฌ๋ฉด ํ ๋ฒ ์ด๋ํ ๋ ํฌ๊ฒํฌ๊ฒ ์ด๋ํ๋ฏ๋ก ๋น ๋ฅด๊ฒ ์๋ ด ๊ฐ๋ฅํ์ง๋ง, ๋๋ฌด ํฌ๊ฒ ์ค์ ํด๋ฒ๋ฆฌ๋ฉด ์ต์๊ฐ์ ์๋ ดํ์ง ๋ชปํ๊ณ ํจ์๊ฐ์ด ๊ณ์ ์ปค์ง๋ ๋ฐฉํฅ์ผ๋ก ์ต์ ํ๊ฐ ์งํ๋ ์ ์๋ค.
- step size๊ฐ ๋๋ฌด ์์ผ๋ฉด ์ต์๊ฐ์ ์๋ ดํ๋๋ฐ ๋๋ฌด ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆด ์ ์๋ค.
→ ์ ์ ํ ๊ฐ์ α ์ฆ, step size๋ฅผ ์ง์ ํ๋ ๊ฒ๋ ์ค์ํ๋ค.
๐ ๊ฒฝ์ฌ ํ๊ฐ๋ฒ์ ํ๊ณ - Local Minimua
- global maximum๊น์ง ๊ฐ์ง ๋ชปํ๊ณ , local minima(๊ตญ์ํด)์ ๋น ์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
- ๊ฐ์ ๋ ํํ์ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ(momantum, stocastic gradient descent…) ์ด ์กด์ฌ.
๐ ์ ๋ฆฌ
- ์ต์ ํ๋, ์ธ๊ณต์ง๋ฅ์์ ์ ๊ฒฝ๋ง์ด ํ์ตํ ๋ ์ต์ ์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฐพ์๊ฐ๋ ๋ฐฉ์์ ์๋ฏธํ๊ณ , ์ต์ ํ ๋ฐฉ๋ฒ์ค์๋ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์์ง๋ง, ์ค๋ ๋ฐฐ์ด ๊ฒ์ ๊ฒฝ์ฌ ํ๊ฐ๋ฒ์ด๋ค. ์ด ๊ฒฝ์ฌ ํ๊ฐ๋ฒ์ ๊ธฐ์ธ๊ธฐ์ ๊ฐ์ ์ด์ฉํด ์์ค ํจ์์ ๊ฐ์ ์ค์ฌ ๊ฐ๋ฉด์ ์ต์ ์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฐพ์๊ฐ๋ค.
๐ References
https://dotiromoook.tistory.com/25
https://angeloyeo.github.io/2020/08/16/gradient_descent.html
๐ ๋ค์ ๊ธ
https://suucong.tistory.com/53
'๐ปProgramming > AI' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ