์ ๋ถ๋ฅ ๋ฌธ์ ์์ ๋น์ฉ ํจ์๋ก '๊ต์ฐจ ์ํธ๋กํผ'๋ฅผ ์ธ๊น์? ์์๊ณผ ๊ฐ๋ ์ ๊ฐ๋จ๋ช ๋ฃํ๊ฒ ์ ๋ฆฌํด๋๋ฆฝ๋๋ค.
์๋ ํ์ธ์! ์ค๋์ ๋ถ๋ฅ ๋ฌธ์ ๋ฅผ ๋ค๋ฃฐ ๋ ๊ฑฐ์ ๋ฌด์กฐ๊ฑด ๋ฑ์ฅํ๋ '๊ต์ฐจ ์ํธ๋กํผ(Cross-Entropy)' ์์ค ํจ์์ ๋ํด ์ด์ผ๊ธฐํด๋ณด๋ ค ํด์. ์ ๋ ์ฒ์ ๋ฅ๋ฌ๋ ๊ณต๋ถํ ๋ "์ ๋ถ๋ฅ ๋ฌธ์ ์๋ MSE๊ฐ ์๋ ๊ต์ฐจ ์ํธ๋กํผ๋ฅผ ์ฐ์ง?" ๋ผ๋ ์๋ฌธ์ ๊ฐ์ก์๊ฑฐ๋ ์. ์ด ๊ธ์์ ๊ทธ ์ด์ ๋ฅผ ํ์คํ ์๋ ค๋๋ฆด๊ฒ์.
๋ชฉ์ฐจ
์ ๊ต์ฐจ ์ํธ๋กํผ๋ฅผ ์ฌ์ฉํ ๊น?
๋ถ๋ฅ ๋ฌธ์ ์์๋ ๋ชจ๋ธ์ด ๊ฐ ํด๋์ค์ ๋ํ 'ํ๋ฅ '์ ์ถ๋ ฅํฉ๋๋ค. ๊ทธ ํ๋ฅ ์ด ์ค์ ์ ๋ต๊ณผ ์ผ๋ง๋ ์ผ์นํ๋์ง๋ฅผ ์ธก์ ํ๋ ๋ฐ ๊ฐ์ฅ ์ ํฉํ ์์ค ํจ์๊ฐ ๋ฐ๋ก ๊ต์ฐจ ์ํธ๋กํผ์ ๋๋ค.
- ์ถ๋ ฅ์ธต์ด ์ํํธ๋งฅ์ค๋ ์๊ทธ๋ชจ์ด๋ ํจ์์ผ ๊ฒฝ์ฐ ํ์
- ๋ชจ๋ธ์ ํ๋ฅ ์์ธก๊ณผ ์ค์ ์ ๋ต ๊ฐ์ '๊ฑฐ๋ฆฌ'๋ฅผ ๋ก๊ทธ ํจ์๋ก ๊ณ์ฐ
- ์ ๋ต ํด๋์ค์ ๊ฐ๊น์ด ์์ธก์ผ์๋ก ์์ค๊ฐ์ด ์์์ง
๋ค์ค ๋ถ๋ฅ์ฉ ๊ต์ฐจ ์ํธ๋กํผ ์์
๋ค์ค ํด๋์ค ๋ถ๋ฅ์์๋ ์ ๋ต์ one-hot encoding์ผ๋ก ํํํ๋ฉฐ, ์์ค ํจ์๋ ๋ค์๊ณผ ๊ฐ์ด ๊ณ์ฐ๋ฉ๋๋ค:
Loss = - ∑ (yแตข × log(yฬแตข))
- yแตข : ์ค์ ์ ๋ต (0 ๋๋ 1, one-hot ์ธ์ฝ๋ฉ)
- yฬแตข : ๋ชจ๋ธ์ด ์์ธกํ ํ๋ฅ (softmax ๊ฒฐ๊ณผ)
์ ๋ต์ ํด๋นํ๋ ํด๋์ค์ ํ๋ฅ ์ด ๋์์๋ก ์์ค์ ์์์ง๊ณ , ํ๋ฆฐ ํด๋์ค์ ๋์ ํ๋ฅ ์ ์ค์๋ก ์์ค์ด ์ปค์ง๋๋ค.
์ด์ง ๋ถ๋ฅ์ฉ ๊ต์ฐจ ์ํธ๋กํผ ์์
์ด์ง ๋ถ๋ฅ์์๋ ์๋์ ๊ฐ์ ์์์ผ๋ก ์์ค์ ๊ณ์ฐํฉ๋๋ค:
Loss = - [ y × log(yฬ) + (1 - y) × log(1 - yฬ) ]
- y : ์ค์ ์ ๋ต (0 ๋๋ 1)
- yฬ : ๋ชจ๋ธ์ด ์์ธกํ ํ๋ฅ (์๊ทธ๋ชจ์ด๋ ๊ฒฐ๊ณผ)
์ ๋ต์ด 1์ผ ๋๋ ์ฒซ ํญ๋ง ํ์ฑํ๋๊ณ , 0์ผ ๋๋ ๋ ๋ฒ์งธ ํญ๋ง ๊ณ์ฐ๋ฉ๋๋ค.
MSE์์ ๋น๊ต: ์ MSE๋ณด๋ค ๊ต์ฐจ ์ํธ๋กํผ์ธ๊ฐ?
์ด๋ณด์ ๋ถ๋ค์ "ํ๊ท ์ ๊ณฑ์ค์ฐจ(MSE)๋ ์ข์ ๊ฑฐ ์๋๊ฐ์?"๋ผ๊ณ ๋ฌผ์ผ์ค ์ ์์ต๋๋ค. ๋ฌผ๋ก ํ๊ท ๋ฌธ์ ์์ MSE๊ฐ ์ข์ง๋ง, ๋ถ๋ฅ์์๋ ๋ค์๊ณผ ๊ฐ์ ์ด์ ๋ก ๊ต์ฐจ ์ํธ๋กํผ๊ฐ ํจ์ฌ ๋ ํจ๊ณผ์ ์ ๋๋ค.
- MSE๋ ํ๋ฅ ๋ถํฌ๋ฅผ ์ ๋๋ก ๋ฐ์ํ์ง ๋ชปํฉ๋๋ค.
- ๊ต์ฐจ ์ํธ๋กํผ๋ ์์ธก์ด ์ ๋ต์ ๊ฐ๊น์ธ์๋ก ์์ค์ด ๋น ๋ฅด๊ฒ ๊ฐ์ํจ (๋ฏผ๊ฐ๋ ↑)
- MSE๋ ์์ค ๊ณก์ ์ด ํํํด์ ํ์ต ์๋ ์ ํ ๊ฐ๋ฅ์ฑ
- ๊ต์ฐจ ์ํธ๋กํผ๋ ํ๋ฅ ๋ชจ๋ธ์ ๋ง์ถฐ ์ค๊ณ๋ ํจ์๋ก, ํ๋ฅ ๊ธฐ๋ฐ ์์ธก(softmax)์ ์ต์
์ฆ, ๊ต์ฐจ ์ํธ๋กํผ = ๋ถ๋ฅ ๋ฌธ์ ์ฉ ํนํ ์์ค ํจ์ ๋ผ๊ณ ์ดํดํ๋ฉด ๋ฑ์ ๋๋ค.
์์ฝ ๋ฐ ์ค์ ํ
๋ถ๋ฅ ๋ฌธ์ ์์๋ ์ ๋ต๊ณผ ์์ธก ํ๋ฅ ๊ฐ์ ๊ฐ๊ทน์ ์ ์ธก์ ํด์ฃผ๋ ๊ต์ฐจ ์ํธ๋กํผ ์์ค ํจ์๋ฅผ ์ฐ๋ ๊ฒ์ด ์ ์์ ๋๋ค. ์ ๋ต์ 0 ๋๋ 1, ์์ธก์ 0~1 ์ฌ์ด ํ๋ฅ ๊ฐ์ผ ๋ ๊ฐ์ฅ ์ ํํ ํผ๋๋ฐฑ์ ์ค ์ ์์ฃ .
- ํ๊ท ๋ฌธ์ → MSE
- ๋ถ๋ฅ ๋ฌธ์ → ๊ต์ฐจ ์ํธ๋กํผ
- ์ถ๋ ฅ์ธต์ด
sigmoid
orsoftmax
๋ฉด ๊ต์ฐจ ์ํธ๋กํผ๊ฐ ์ ์ - TensorFlow, PyTorch ๋ฑ์์๋ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ค์
โ ํ ์ค ์์ฝ: ๋ถ๋ฅ ๋ฌธ์ ์๋ ๊ต์ฐจ ์ํธ๋กํผ๊ฐ ๊ฐ์ฅ ์ ํํ๊ณ ํจ๊ณผ์ ์ธ ์์ค ํจ์๋ค!
์๋์. ๊ต์ฐจ ์ํธ๋กํผ๋ ๋ถ๋ฅ ๋ฌธ์ , ํนํ ํ๋ฅ ๊ธฐ๋ฐ ์ถ๋ ฅ์ ์ต์ ํ๋ ์์ค ํจ์์ด๋ฉฐ, ํ๊ท์๋ ์ ํฉํ์ง ์์ต๋๋ค.
์๊ทธ๋ชจ์ด๋๋ ์ด์ง ๋ถ๋ฅ์, ์ํํธ๋งฅ์ค๋ ๋ค์ค ๋ถ๋ฅ์ ์ฌ์ฉ๋๋ฉฐ, ๋ชจ๋ ๊ต์ฐจ ์ํธ๋กํผ ์์ค ํจ์์ ํจ๊ป ์ฌ์ฉ๋ฉ๋๋ค.
๋ง์ต๋๋ค. ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์ผ๋ฐ์ ์ผ๋ก log(0)
๋์ log(ε)
์ฒ๋ผ ์์ ๊ฐ์ ๋ํด ๊ณ์ฐํฉ๋๋ค.
์์ค ๊ฐ์ 0 ์ด์์ด๋ฉฐ, ์์ธก์ด ์๋ฒฝํ๋ฉด 0์ ๊ฐ๊น์์ง๊ณ ํ๋ฆด์๋ก ๋ฌดํํ ์ปค์ง ์ ์์ต๋๋ค.
๊ต์ฐจ ์ํธ๋กํผ ์์ค ํจ์๋ ๋ถ๋ฅ ๋ฌธ์ ์์ ๋น ์ง ์ ์๋ ํต์ฌ ๋๊ตฌ์ ๋๋ค. ํ๋ฅ ์์ธก ๊ธฐ๋ฐ์ ๋ชจ๋ธ์ด ์ ์ ์ ๋ต์ ๊ฐ๊น์ด ์์ธก์ ํ๋๋ก ๋๋ ๊ฐ๋ ฅํ ๊ธฐ์ค์ด์ฃ . ์ ๋ ์ฒ์์ MSE๋ ๋๊ฐ์ ๋ณด์์ง๋ง, ์ค์ ์ ์ฉํด๋ณด๋ ํ์ต์ด ํจ์ฌ ์ ๋๋๋ผ๊ณ ์. ์์ผ๋ก ๋ถ๋ฅ ๋ฌธ์ ๋ชจ๋ธ์ ๋ง๋ค ๋ ๋ฌด์กฐ๊ฑด ๊ต์ฐจ ์ํธ๋กํผ๋ฅผ ์จ๋ณด์ธ์. ํจ๊ณผ ์ฐจ์ด๊ฐ ๋ถ๋ช ํ ๋๊ปด์ง ๊ฑฐ์์!