[Deep Learning] Backpropagation
๐ง๐ป๐ป์ฉ์ด ์ ๋ฆฌ
Neural Networks
Feed-forward
Backpropagation
Backpropagation
์, ์ง๊ธ๊น์ง ์ฐ๋ฆฌ๊ฐ ๊ฐ์ด Peceptron์ ํตํด linear problem์ ํด๊ฒฐํ ์ ์์์ ์์๊ณ ,
๊ทธ๋ฅผ ํตํด ์ฐ๋ฆฌ๊ฐ Multi-layer perceptron์ ๊ตฌํ์ฌ, ์ด๋ฅผ ํตํด Non-linear problem ๋ํ ํด๊ฒฐํ ์ ์์์ ์์์ต๋๋ค.
์ฌ๊ธฐ์,
๊ทธ๋์ Weight๋ฅผ ์ด๋ป๊ฒ ๊ตฌํ๋ค๋ ๊ฑด๋ฐ?
๋ผ๋ ์๋ฌธ์ด ์๊ธธ ๊ฒ์ ๋๋ค.
๊ทธ๊ฒ์ ์ด๋ฒ ์ฅ์์ ๋ค๋ฃน๋๋ค.
๊ฒฐ๊ตญ ํ ๋ง๋๋ก ๋งํ์๋ฉด,
"Backpropagation์ด๋ผ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ๊ตฌํฉ๋๋ค."๋ผ๊ณ ํ ์ ์์ต๋๋ค.
57๋ ๋์ single-layer perceptron์ด ๋์ค๊ณ , 69๋ ๋์ MLP๊ฐ ๋์์ ์ฐ๋ฆฌ๋ค์ ๊ทธ๊ฒ๋ค์ ๊ฐ์ง๊ณ ๋ง์ ๋ฌธ์ ๋ค์ ํ ์ ์๊ฒ ๋์์ต๋๋ค.
๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ , ๊ทธ๊ฒ์ผ๋ก Weight๋ฅผ ์ต์ ํ ํ ์ ์๋ค๋ ๋ฌธ์ ๋ก Neural Net์ ์ฃฝ์ด๋ ๊ฒฐ๊ณผ๋ฅผ ๋ณ๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ ๊ฒ 57๋ ์ ํ์ด๋ 69๋ ์ ์ฃฝ์์ง๋ง,
Backpropagation์ด 86๋ ์ ๋ฑ์ฅํ๋ฉฐ NN์ ๋ค์ ์ด๋ฆฌ๊ฒ ๋ฉ๋๋ค.
Backpropagation์ ์ํ์ ์ผ๋ก ์กด์ฌํ๋ ๊ฒ์ด์ง๋ง, ์ค์ ๋ก ์กด์ฌํ์์ง๋ง,
MLP์์ Weight๋ฅผ updateํ๋ ๋ชฉ์ ์ผ๋ก ์ฐ์ด๊ฒ ๋ ๊ฒ์ ์ด๋ฒ์ด ์ฒ์์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ , ๋ฒ์ธ๋ก 95๋ ๋์ SVM์ผ๋ก ๋ค์ ์ฃฝ์๋ค๊ฐ, 06๋ ๋์ DBN์ผ๋ก ๋ค์ ์ด์๋์ ํ์ฌ ์ ์ฑ๊ธฐ๋ฅผ ๋ง๊ณ ์๋ Neural Net์ ์ญ์ฌ์ ์ธ ์๊ฐ์ ์ฌ๋ฌ๋ถ ํจ๊ปํ๊ณ ๊ณ์ญ๋๋ค.
์ ๊ทธ๋ผ Backpropagation์ ๋ํด ๋ ์์ธํ ์์๋ด ์๋ค.
์ด๊ฒ์ error backpropagation ์ด๋ผ๊ณ ์นญํ๋ฉฐ,
์ฐ๋ฆฌ ๋ง๋ก ์ญ์ ํ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ํฉ๋๋ค.
๊ฒฐ๊ตญ,
Gradient descent method์ ๊ธฐ๋ฐํ์ฌ error ๋ฅผ ์ญ์ ํ ์ํค๋ฉฐ weight๋ฅผ optimizationํ๋ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํ ์ ์์ต๋๋ค.
์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด Input layer, Hidden layer, Output layer๋ฅผ ์ง๋๊ณ , loss๊ฐ ๋์ต๋๋ค.
์ด Loss๋ก๋ถํฐ ๋ท ๋ฐฉํฅ์ผ๋ก ๊ฑฐ์ฌ๋ฌ ์ฌ๋ผ๊ฐ๊ฒ ๋ฉ๋๋ค.
๊ฒฐ๊ตญ ์ฐ๋ฆฌ๋ Gradient Descent ๋ฐฉ์์ ํ์ฉํด์ Backpropagation์ ํ๊ฒ ๋ฉ๋๋ค.
Gradient Descent
์์ ๊ฐ์ด random ๊ฐ์ผ๋ก ์ค์ ๋ initial weight์์, ๊ณ์ํด์ update๋ฅผ ํตํด์ ์ต์ ์ weight๋ฅผ ์ฐพ์๊ฐ๋ ๊ฒ์ ๋๋ค.
๊ฒฐ๊ตญ weight๋ค์ scalar ๊ฐ์ ๊ฐ์ง๋ weight๋ค์ ๋๋ค.
๊ฒฐ๊ตญ scalar์ ๊ด์ ์์ ๋ณผ ๋,
์ด weight ๊ฐ์ ์ฆ๊ฐ์ํฌ ๊ฒ์ด๋. ๊ฐ์์ํฌ ๊ฒ์ด๋.
์ด ๋ ๊ฐ์ง๋ก ๋๋ฉ๋๋ค.
๊ทธ๋์ ์ ๋ฐฉํฅ์ ๊ฒฐ์ ํด์ผํฉ๋๋ค.
๊ฒฐ๊ตญ ์ด ๋ฐฉํฅ์ ๊ธฐ์ธ๊ธฐ๋ก ๊ฒฐ์ ๋ฉ๋๋ค.
๊ธฐ์ธ๊ธฐ๊ฐ ํ์ฌ +์ด๋ฉด -๋ก update,
๊ธฐ์ธ๊ธฐ๊ฐ ํ์ฌ -์ด๋ฉด +๋ก update.
์์ ๊ฐ์ด ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ ํจ์ซ ๊ฐ์ ๋ํด์๋ +์ -๋ฅผ ์ ๊ฒฐ์ ํ ์ ์์ง๋ง,
์๋ํ๋ algorithm์ด๋ loss function์ด ๋ ๋ณต์กํด์ง๋ค๋ฉด ์ฐ๋ฆฌ๋ ์ด๊ฒ์ ๋์ผ๋ก ๋ณด๊ณ ํ ์ ์๊ฒ ๋ฉ๋๋ค.
๊ทธ๋์, ์ฐ๋ฆฌ๋ ์์ ๊ฐ์ด loss function์ ๋ด๊ฐ ๋ณํ์ํฌ ์ ์๋ weight๋ก ๋ฏธ๋ถํ ๊ฐ์ด updateํ๋ ๊ฐ์ด ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ -๋ฅผ ๋ถ์ฌ์ ๊ธฐ์ธ๊ธฐ์ ์ญ๋ฐฉํฅ์ผ๋ก ๊ฐ๋ ๊ฒ์ผ๋ก ๋ณผ ์ ์์ต๋๋ค.
์ ์์์ผ๋ก ๋ฏธ๋ฃจ์ด ๋ณผ ๋,
๊ธฐ์ธ๊ธฐ ๊ฐ์ด -์ด๋ฉด, weight ๊ฐ์ด ์ปค์ง๊ฒ ๋๊ณ , ๊ธฐ์ธ๊ธฐ ๊ฐ์ด +์ด๋ฉด weight ๊ฐ์ด ์ปค์ง๊ฒ ๋ฉ๋๋ค.
๊ทธ๋์ ์ด ๊ธฐ์ธ๊ธฐ๋ฅผ ํตํด ์ผ๋ง๋ updateํ๋์ ๋ํ ์ค๋ง๋ฆฌ๊ฐ ํ๋ฆฌ๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ ๋ค๋ฉด, ์ด์ weight๋ฅผ updateํ๋ ๋ฐฉํฅ์ ์ค์ ํ์๊ณ ,
์ด์ ์ผ๋ง๋ updateํ ๊ฑด์ง๋ฅผ ๊ฒฐ์ ํด์ผํฉ๋๋ค.
๊ทธ๋์ ์ํ๋ผ๋ hyperparameter๋ฅผ ์์ ๊ฐ์ด ์ ์ํฉ๋๋ค.
์ฐ๋ฆฌ๋ ์ด ์ํ๋ฅผ learning rate๋ผ๊ณ ๋ ๋ถ๋ฆ ๋๋ค.
์ฆ, ํ์ต๋ฅ ์ด๋ผ๋ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ์ gradient๋ฅผ ์ผ๋ง๋ ํ์ต์ ๋ฐ์์ํฌ ๊ฒ์ธ๊ฐ? ์ ๋๋ค.
hyperparameter๋ model์ outside์ ์กด์ฌํ๋ฉฐ, ์ฌ๋์ด ์ง์ ์ ํด์ค๋๋ค.
์ง๊ธ์ ์ด๊ฒ์ ์์๋ก ๋ณด๊ฒ ์ต๋๋ค.
๊ทธ๋ฌ๋, ์ด learning rate๋ adaptive learning rate๋ผ๊ณ ํ์ฌ, ์ค๊ฐ ์ค๊ฐ ์์ ์ด ๊ฐ๋ฅํ ํํ๋ ์กด์ฌํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ด๊ฒ์ ์ง๊ธ์, ์์๋ก ๋ณด๊ฒ ์ต๋๋ค.
learning rate๊ฐ 100์ด๋ผ๋ฉด, ์ฐ๋ฆฌ๊ฐ ์ ํ gradient์ ๋ฐฉํฅ์ ๋ํด์ 100๋งํผ ๊ณฑํด์ updateํ๋ ๊ฒ์ด๊ณ ,
learning rate๊ฐ 0.01์ด๋ผ๋ฉด, ์ฐ๋ฆฌ๊ฐ ์ ํ gradient์ ๋ฐฉํฅ์ ๋ํด์ 0.01๋งํผ ๊ณฑํด์ updateํ๋ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ ๋ณดํญ์ ํฌ๊ฒ ๊ฐ์ง ์ฑํผ์ฑํผ ๊ฐ์ง๋ฅผ ๊ฒฐ์ ํ๋ ํฌ๊ธฐ๊ฐ ๋๋ ์์๋ก ๋ณด์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค. (์์ง๊น์ง ์์๋ก ๋ณด๊ธฐ ๋ฐ๋๋๋ค)
Backpropagation in MLP
์, ์ด์ Backpropagation์ด MLP์์ ์ด๋ป๊ฒ ํ์ฉ๋๋์ง ์์ธํ ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
Loss Function์ผ๋ก์์ MSE๋ฅผ ์ฌ์ฉํ์ฌ performance์ ๋ํ measurement์ ๋๋ค.
์ด MSE๋ฅผ ๊ทธ๋๋ก Objective function ์ต์ ํ์ ์ฌ์ฉํฉ๋๋ค.
์ฐ๋ฆฌ model์ performance ์ ์ธ ๋ชฉ์ ๊ณผ model์ training ์ํค๋ ์ต์ ํ์ ๋ํ ๋ชฉ์ ์ ์ผ์น์์ผ ์ ๋ฆฌํ๊ฒ ๊ฐ์ ธ๊ฐ๋๋ค.
performance์ ๋ํ measurement ๋ง๋ค ์ฅ๋จ์ ์ด ์์ง๋ง, MSE์ ๋ฏธ๋ถ ๊ฐ๋ฅํจ์ ํ์์กฐ์น๋ฅผ ์ฝ๊ฒ ๋ง๋ค๊ณ , ์ต์ ํ ์ ๋ฐ๋ก ์ง์ ์ ์ผ๋ก ํ์ฉํ ์ ์๊ฒ ๋ฉ๋๋ค.
- k - output node index
- t - target, y
- y - mdel output, y^
์๋์ ๊ฐ์ด Backpropagation ๊ณผ์ ์ ๋ณผ ์ ์์ต๋๋ค.
output์์ hidden๊ณผ ๋จผ์ชฝ๋ถํฐ ์์ํฉ๋๋ค.
์์ ๊ฐ์ ์์๋ค์ ์ ์ดํด๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
output์์ loss๊ฐ ์์ด ์ญ์ผ๋ก ํ๊ณ ๋ค์ด๊ฐ๋๋ค.
๊ทธ๋ฆฌ๊ณ weight์ ๋ฐฉํฅ์ ๋ฐ๋ผ ์ฌ๋ฌ ๊ฐ์ง ๊ฒฝ์ฐ์ ์๊ฐ ์กด์ฌํฉ๋๋ค.
์ ์์์ ์๋์ ๊ฐ์ ์ฑ์ง์ ๊ฐ์ง๋๋ค.
- activation function์ ๋ฏธ๋ถ๊ฐ์ด ํด ์๋ก update๊ฐ ๋ง์ด ๋๋ค.
- hidden node์ ์ค์ signal, ๊ฐ์ธ y ๊ฐ์ด ํด ์๋ก update๊ฐ ๋ง์ด ๋๋ค.
- target๊ณผ ์ค์ ๊ฐ ์ฌ์ด์ ์ฐจ์ด๊ฐ ํด ์๋ก update๊ฐ ๋ง์ด ๋๋ค.
์ฌ๊ธฐ์ ๋ธํk๋ output node์ sensitivity๋ฅผ ์๋ฏธํ๊ณ , yj๋ hidden node์ ๊ธฐ์ฌ๋๋ฅผ ์๋ฏธํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ yj์ธ signal์ ๊ธฐ์ฌ๋๊ฐ ํด ์๋ก update๋ ๋ง์ด ๋๋ ๊ฒ์ ๋๋ค.
์ฆ, ๋ชฉ์๋ฆฌ๊ฐ ํฐ ๋์ด ์ฑ ์์ ๋ ๋ง์ด ์ง๊ฒ ๋๋ ๊ฒ์ด์ง์.
์ง๊ธ๊น์ง hidden layer - > output layer๋ฅผ ์์๋ดค์ต๋๋ค.
์ด์ input layer -> hidden layer๋ก ๊ฐ๋ weight update๋ฅผ ์์๋ณด๊ฒ ์ต๋๋ค.
hidden layer -> output layer์ ๋ค๋ฅด๊ฒ,
input layer -> hidden layer์์์ weight update๋ input๋ถํฐ output์ ๋ป๋ ๊ฐ์๊น์ง ๋ชจ๋ ์ํฅ์ ๋ฏธ์น๋ฏ๋ก,
์ด ๋ชจ๋ ๊ฒ์ ๊ณ ๋ คํด์ฃผ์ด์ผ ํฉ๋๋ค.
๊ทธ๋์, ์ค์ฒฉ๋์ด ์๋ Neural Net์ weight update๊ฐ ๊น๋ค๋ก์ด ๊ฒ์ ๋๋ค.
์ ์์ ๊ณ์ฐํ๋ฉด, ์๋์ ๊ฐ์ด ๋์ต๋๋ค.
๊ณ์ฐ์ ์ต์ข ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์, ์ด๋ ๊ฒ 3-layer MLP์์ Loss function์ MSE๋ก ๊ฐ์ ํ์ ๋, weight update ๊ณผ์ ์ ๋๋ค.
'Artificial Intelligence > Deep Learning' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Deep Learning] Generating regression model for California housing dataset with Keras functional API (0) | 2023.04.05 |
---|---|
[Deep Learning] Backpropagation in special Functions (0) | 2023.04.03 |
[Deep Learning] Feedforward (0) | 2023.03.27 |
[Deep Learning] - MLP(Multilayer Perceptron) (0) | 2023.03.26 |
[Deep Learning] - Neural Networks (0) | 2023.03.26 |