๐ค Neural Network
์ธ๊ณต์ ๊ฒฝ๋ง(ไบบๅทฅ็ฅ็ถ็ถฒ, ์์ด: artificial neural network, ANN)์ ๊ธฐ๊ณํ์ต๊ณผ ์ธ์ง๊ณผํ์์ ์๋ฌผํ์ ์ ๊ฒฝ๋ง(๋๋ฌผ์ ์ค์ถ์ ๊ฒฝ๊ณ์ค ํนํ ๋)์์ ์๊ฐ์ ์ป์ ํต๊ณํ์ ํ์ต ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค.
์ธ๊ณต์ ๊ฒฝ๋ง์ ์๋ ์ค์ ๊ฒฐํฉ์ผ๋ก ๋คํธ์ํฌ๋ฅผ ํ์ฑํ ์ธ๊ณต ๋ด๋ฐ(๋ ธ๋)์ด ํ์ต์ ํตํด ์๋ ์ค์ ๊ฒฐํฉ ์ธ๊ธฐ๋ฅผ ๋ณํ์์ผ, ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ์ ๊ฐ์ง๋ ๋ชจ๋ธ ์ ๋ฐ์ ๊ฐ๋ฆฌํต๋๋ค.
์ด๋ฒ ํฌ์คํ ์์๋ ์ญ์ ํ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
๐ ์ญ์ ํ(Backpropagation)
1957๋ ์ perceptron์ด ๋์ค๊ณ 1969๋ ์ MLP๊ฐ ๋์์์๋ ๋ถ๊ตฌํ๊ณ 1986๋ ๊น์ง ๊ฐ์ค์น๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ ๊ตฌํ์ง ๋ชปํ์ต๋๋ค.
์ด๊ฒ์ ํด๊ฒฐํ๊ฒ ๋ ์๊ณ ๋ฆฌ์ฆ์ด ์ญ์ ํ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค.
์ญ์ ํ ์๊ณ ๋ฆฌ์ฆ์ ์ค๋ฅ์ญ์ ํ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ๋ ํฉ๋๋ค.
์ด๋๋ถํฐ Neural Network๊ฐ ๋ค์ ์ด์๋๊ฒ ๋์์ต๋๋ค.
์๋์ ๊ทธ๋ฆผ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
output์ ๊ตฌํ ๋ Loss ๊ณ์ฐ์ด ํ์ํ๋ฐ ์ด๋ ์ญ๋ฐฉํฅ์ผ๋ก ์ด๋ํ๋ฉฐ ์ด๋ค ๊ฐ์ด ๋์ Loss๊ฐ์ ์์ธ์ด ๋์๋์ง๋ฅผ ์ถ์ ํฉ๋๋ค,
๋น์ ๋ฅผ ํ์๋ฉด ์ง์๊ท๋ช ์ ํตํด ์ฑ ์์ ์ฒ๋ฒ์ ํ๋ ๊ฒ์ ๋๋ค.
์ญ์ ํ ์๊ณ ๋ฆฌ์ฆ์ ์ดํดํ๊ธฐ ์ํด Gradient Descent์ ๋ํด ์์์ผ ํฉ๋๋ค.
๐ ๊ฒฝ์ฌํ๊ฐ๋ฒ(Gradient Descent)
๊ฒฝ์ฌ ํ๊ฐ๋ฒ์ ๋ํ ๋ด์ฉ์ Gradient Boost๋ฅผ ๋ฐฐ์ฐ๋ฉฐ ์ค๋ช ํ์ต๋๋ค.
์๋์ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ์๊ธธ ๋ฐ๋๋๋ค.
https://2t-hong.tistory.com/122
๊ทธ๋๋ ๊ฒฝ์ฌํ๊ฐ๋ฒ์ ์กฐ๊ธ ์ค๋ช ํ์๋ฉด ๊ธฐ์ธ๊ธฐ์ ๋ฐ๋๋ฐฉํฅ์ผ๋ก ์ด๋ํ๋ฉฐ ๊ธฐ์ธ๊ธฐ๋ฅผ ๊ฐ์์ํค๋ ๋ฐฉ๋ฒ์ ๋๋ค.
์ด๋ฌํ ๋ฐฉ๋ฒ์ ํตํด ๊ธฐ์ธ๊ธฐ์ ์ต์ ์ ์ ์ฐพ์ ์ ์์ต๋๋ค.
โ ์ต์ ํ ๋ฐฉ๋ฒ
- ๋จ๊ณ์ ์ผ๋ก ๊ฐ์ค์น๋ฅผ ์ ๋ฐ์ดํธ
$w_0$์ ๊ฒฝ์ฐ ๋๋คํ๊ฒ ์ ํฉ๋๋ค.
์ด๋ฅผ ์ผ๋ถ ๊ฐ์ ํ ๊ฒ์ด $w_1$ → $w_2$ ... ์ ๋๋ค.
๊ฐ์ ํ๋ ๋ฐฉ๋ฒ์ ์์ ๋งํฌ์ ์์ธํ ์ค๋ช ๋์ด ์์ต๋๋ค.
์์์ผ๋ก ๋ํ๋ธ๋ค๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
- ์ด๋ค ๋ฐฉํฅ์ผ๋ก ์ด๋?
์ด๋ ๊ฐ์ ์ด๋ํ ๋ฐฉํฅ์ ์ ํด์ผ ํ๋๋ฐ ์ฐ๋ฆฌ๊ฐ ๊ตฌํด์ผ ํ๋ ๊ฒ์ ๋ชฉ์ ํจ์๋ฅผ ์ต์ํ ํ๋ ๊ฒ์ด๋ฏ๋ก ํด๋น ๋ฐฉํฅ์ผ๋ก ์ด๋ํด์ผ ํฉ๋๋ค. (ํด๋น ์์์์ ๋ชฉ์ ํจ์๋ Loss Function ์ ๋๋ค.)
๊ทธ๋ฌ๋ฏ๋ก $w_k$์์์ ๊ธฐ์ธ๊ธฐ์ ์ญ๋ฐฉํฅ์ผ๋ก ์ด๋ํ๋ฉด ๋ฉ๋๋ค.
์ด๋ฅผ ๊ทธ๋ฆผ๊ณผ ์์ผ๋ก ๋ํ๋ด๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
- ์ผ๋งํผ ์ด๋?
์ ํํ๊ฒ ์ผ๋งํผ ์ด๋ํด์ผ ํ ์ง๋ ๋ชจ๋ฅด์ง๋ง ๊ธฐ์ธํค๊ฐ ํฌ๋ค๋ฉด ๋ง์ด ์ด๋ํ๊ณ ์๋ค๋ฉด ์กฐ๊ธ๋ง ์ด๋ํ๋ฉด ๋ฉ๋๋ค.
์ด๋ฅผ ์๋์ ๊ฐ์ด ๋ํ๋ด๊ฒ ์ต๋๋ค.
์ฆ, ์ด๋ํ๋ ๋งํผ์ ์์ ํด๋น ์์ผ๋ก ๋ํ๋ผ ์ ์์ต๋๋ค.
๐ ์ญ์ ํ์ ์ดํด
์ฐ๋ฆฌ๊ฐ ๊ตฌํด์ผํ ๋ชฉ์ ํจ์์ด์ MLP์ Loss Function์ ์์์ผ๋ก ๋ํ๋ด๋ฉด ์๋์ ๊ฐ์ด ๋ํ๋ผ ์ ์์ต๋๋ค.
์์ค์ ๊ณ์ฐ , Error ๋๋ ์ ํ๋ ๊ณ์ฐ์ ๋ฏธ๋ถ ๊ฐ๋ฅํ ํํ๋ก ๋ง๋ ๋ค๋ฉด ํ์ ์กฐ์น๋ฅผ ํ๊ธฐ ์ฝ์ต๋๋ค.
MSE๋ฅผ ์ฌ์ฉํ ์ด์
์ถ๊ฐ์ ์ผ๋ก ์์ ์์์ ๋ฏ์ด๋ณด๋ฉด MSE๋ผ๊ณ ํ ์ ์์ต๋๋ค.
MSE๋ performance์ ๋ํ ์ธก์ ๋ฐฉ๋ฒ์ ๋๋ค.
MSE๋ ์ต์ ํ๋ฅผ ์ํ ์ธก์ ๋ฐฉ๋ฒ์ด๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ๋ฐ๋ก ํ์ฉํ ์ ์์ต๋๋ค.
๊ทธ๋์ ๋๋ถ๋ถ์ Loss Function์ MSE๋ฅผ ์ด์ฉํฉ๋๋ค.
โ ํด๋น ์์ term๋ค์ ์๋ฏธ
$k$ : output node์ number๋ผ๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค.(๊ฐ์๊ฐ ์๋์ ์ฃผ์)
$t_k$ : target, $y$
$z_k$ : model output, $\hat{y}$
์ด๋ฅผ ์ค์ ๋ก ๊ณ์ฐํ์ฌ ํ๋ฆ์ ์ดํดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
ํ๋ฆ์ ์ดํด๋ฅผ ํตํด ์ค์ ๋ก ๊ฐ์ค์น๊ฐ ์ด๋ค ๋ฐฉ์์ผ๋ก ์ ๋ฐ์ดํธ๊ฐ ๋๋์ง๋ฅผ ์ง์คํด์ ๋ณด์๊ธธ ๋ฐ๋๋๋ค.
์๋์ ๊ทธ๋ฆผ์ ์์ ์์ ํ์์ ์ฌ์ฉํ๋ MLP๋ ธ๋์ ๋๋ค.
์์ ๊ณ์ฐ์ ์ฝ๊ฒ ํ๊ธฐ ์ํด ์์์ ๋ฏธ๋ฆฌ ์ ๋ฆฌํด ๋์์ต๋๋ค.
Input์ $i$, Hidden์ $j$, Output์ $k$๋ฅผ ์ปจํธ๋กคํฉ๋๋ค.
Loss๋ $Z_1, Z_2$๋ฅผ ํตํฉํ์ฌ ๊ณ์ฐ๋ฉ๋๋ค.
์ฐ๋ฆฌ๋ Loss๋ฅผ ๋ชฉ์ ํจ์๋ก ์ฌ์ฉํ๋ฉฐ ์ด๋ฅผ ๊ฐ์ค์น๋ก ๋ฏธ๋ถํด์ผํฉ๋๋ค
์์ ๊ทธ๋ฆผ์์ ๊ฐ์ค์น๋ ๋ ๋จ๊ณ ์กด์ฌํ๋๋ฐ Input to Hidden, Hidden to Output์ ๊ฐ์ค์น์ ๋๋ค.
Loss๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ ๋จ๊ณ ์ ๋ถ ๋ฏธ๋ถ์ ํด์ผํฉ๋๋ค.
์ฐ๋ฆฌ๋ Chain Rule๋ก ๋ฏธ๋ถ์ ์งํํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ Loss Function์ ๊ฐ๊น์ด ์์ด ํจ์ฌ ๊ฐ๋จํ๋ฏ๋ก Hidden to Output์ ๋จผ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
โ Loss Function ๋ฏธ๋ถ, ๊ฐ์ค์น Update ( Hidden to Output )
ํด๋น ์์ ๋ฐํ์ผ๋ก Loss Function์ ๋ฏธ๋ถํด๋ณด๊ฒ ์ต๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก Loss Function์ ๋ฏธ๋ถํ๋ฉด ์๋์ ๊ฐ์ ์์ ์ป์ ์ ์์ต๋๋ค.
ํด๋น ์์ ์ดํดํ๋๊ฒ์ด ๋์ฑ ์ค์ํฉ๋๋ค.
๊ฐ์ค์น์ ์ ๋ฐ์ดํธ๋ฅผ ์ดํดํ๋ฉด ์๋์ ๊ฐ์ด ์ดํดํ ์ ์์ต๋๋ค.
์ฆ, $\delta_k$ ๋ output node์ sensitivity๋ฅผ ์๋ฏธํ๋ฉฐ $y_j$๋ ๊ธฐ์ฌ๋๋ฅผ ์๋ฏธํฉ๋๋ค.
Error backpropagation์ด๋ผ๋ ๊ฒ์ ๊ฒฐ๊ตญ ๋ฐ๋๋ฐฉํฅ์ผ๋ก ๊ณ์ ์ ํํด ๋๊ฐ ๊ฒ์ธ๋ฐ ์ ํ์ ์ ๋๊ฐ $\delta_k$์ $y_j$ ๋ฐ๋ผ ๋ณํํ๋ค๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค.
๋น์ ํ์๋ฉด ๋ชฉ์๋ฆฌ๋ฅผ ํฌ๊ฒ ์ฃผ์ฅํ ์ฌ๋ ๋๋ฌธ์ ๋ ํฐ ์ฑ ์์ ์ง๊ฒ ๋๋ค๋ ๊ฒ์ ๋๋ค.
โ Loss Function ๋ฏธ๋ถ, ๊ฐ์ค์น Update ( Input to Hidden )
์์์ ์ดํด๋ณธ ๊ฒ์ Hidden to Output์ด์๊ธฐ ๋๋ฌธ์ Loss Function ํ๋๋ง์ ๊ณ ๋ คํด์ฃผ๋ฉด ๋์ต๋๋ค.
ํ์ง๋ง Input to Hidden์ ๊ฒฝ์ฐ์๋ ์๋์ ๊ทธ๋ฆผ์์ ๋นจ๊ฐ์์ผ๋ก ์์น ํ ๋ชจ๋ ๋ ธ๋๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
์ฆ, $w_{ji}$๋ฅผ ์ ๋ฐ์ดํธ ํ๊ธฐ ์ํด ํ๊ณ ๊ฐ์ผ ํ๋ path๋ ์๋์ ๋นจ๊ฐ ํ์ดํ ๋ ๊ฐ๋ฅผ ๋ชจ๋ ๊ณ ๋ คํด์ผ๋ง ํฉ๋๋ค.
์ค์ฒฉ๋์ด์๋ ๊ฐ์ค์น Update๊ฐ ์ด๋ ค์ ๊ธฐ ๋๋ฌธ์ MLP์์ ๊ณต๋ฐฑ๊ธฐ๊ฐ ์๋ ๊ฒ์ ๋๋ค.
Hidden to Output๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋ฏธ๋ถ์ ์งํํฉ๋๋ค.
์์ Chain Rule์ ํตํด ๊ณ์ฐํ๋ฉด ์๋์ ๊ฐ์ด ๋ํ๋ผ ์ ์์ต๋๋ค.
์ ๋ฆฌํ๋ฉด ์๋์ ์์์ ์ป์ ์ ์์ต๋๋ค.
ํด๋น ์์์๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ term์ด ์ด๋ค ๊ฒ์ ์๋ฏธํ๋์ง๋ฅผ ์์๋ด์ผ ํฉ๋๋ค.
๊ฒฐ๊ตญ $ w_{ji}$๋ฅผ updateํ๊ธฐ ์ํด $x_1$๋ก ๋ค์ด์ค๋ ์ ๋ ฅ ์๊ทธ๋์ด ์ผ๋ง๋ ํฐ ์ง๋ฅผ( ๋ชฉ์๋ฆฌ๊ฐ ์ผ๋ง๋ ํฐ ์ง) ํด๋น ๋ถ๋ถ์์ ์ง์ ๊ณ์ฐํ๋ผ๋ ๊ฒ์ ๋๋ค.
์ดํ ์ผ๋ง๋ ๋ฏผ๊ฐํ๊ฒ ๋ฐ์๋ค์ด๊ณ ์๋๊ฐ๋ $\delta_j$๋ฅผ ํตํด ์ ์ ์์ต๋๋ค.
๋ํ $\delta_j$๋ output ๋ ธ๋๋ค์ sensitivity์ ์ํฅ์ ๋ฐ์ต๋๋ค
์ต์ข ์ ์ผ๋ก ๋ง์ด ํ๋ฆฌ๋ฉด ํ๋ฆด ์๋ก Loss๊ฐ ์์นํ๋ฏ๋ก ๋ ๋ง์ Error๊ฐ ์์ ๋ ๋ ๋ง์ weight update๊ฐ ์ผ์ด๋ฉ๋๋ค.
.
์ฌ๊ธฐ์ ์๋์ ๋นจ๊ฐ ๋ถ๋ถ์ ๋์ฌ๊ฒจ ๋ด๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ( Deep Learning์์ ์ฌ์ฉ )
๋ค์ ํฌ์คํ ์์๋ ์ญ์ ํ ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์กฐ๊ธ ๋ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
'AI > Machine Learning' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ML] ํธ์ฆ์จ ๋จธ์ ๋ฌ๋ - 10์ฅ(๋ค์ํ ๋ชจ๋ธ ๋ง๋ค๊ธฐ) (0) | 2023.01.03 |
---|---|
[ML] Neural Network(6) - ์ญ์ ํ(Backpropagation)(2) (0) | 2022.12.06 |
[ML] Neural Network(4) - ์์ ํ(Feedforward Process) (0) | 2022.12.01 |
[ML] Neural Network(3) - MLP(Multilayer Perceptron) (0) | 2022.12.01 |
[ML] Neural Network(2) - Linear Separability (0) | 2022.12.01 |