๐ค Neural Network
์ธ๊ณต์ ๊ฒฝ๋ง(ไบบๅทฅ็ฅ็ถ็ถฒ, ์์ด: artificial neural network, ANN)์ ๊ธฐ๊ณํ์ต๊ณผ ์ธ์ง๊ณผํ์์ ์๋ฌผํ์ ์ ๊ฒฝ๋ง(๋๋ฌผ์ ์ค์ถ์ ๊ฒฝ๊ณ์ค ํนํ ๋)์์ ์๊ฐ์ ์ป์ ํต๊ณํ์ ํ์ต ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค.
์ธ๊ณต์ ๊ฒฝ๋ง์ ์๋ ์ค์ ๊ฒฐํฉ์ผ๋ก ๋คํธ์ํฌ๋ฅผ ํ์ฑํ ์ธ๊ณต ๋ด๋ฐ(๋ ธ๋)์ด ํ์ต์ ํตํด ์๋ ์ค์ ๊ฒฐํฉ ์ธ๊ธฐ๋ฅผ ๋ณํ์์ผ, ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ์ ๊ฐ์ง๋ ๋ชจ๋ธ ์ ๋ฐ์ ๊ฐ๋ฆฌํต๋๋ค.
์ด๋ฒ ํฌ์คํ ์์๋ ์์ ํ์ ๋ํด ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๐ Hidden Layer์ Node์ ์๋ฏธ
์์ ํ์ ๋ํด ์์๋ณด๊ธฐ ์ ์ Hidden Layer์ Node์ ์๋ฏธ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค
โ Hidden Layer
Hidden Layer๋ Input ๊ณต๊ฐ์ ๋ช ๊ฐ์ ์์ ๊ณต๊ฐ์ผ๋ก ๋๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
๋ง์ฝ Hidden Layer๊ฐ ๋ง๋ค๋ฉด ๋ ๋ง์ ๋จ๊ณ์ ๊ฑธ์ณ์ ํด๋น ๊ณต๊ฐ์ ๊ณต๋ตํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ์ฐ์ถํฉ๋๋ค.
โ Hidden Node
Hidden Node๋ ์์์ ๋๋ ๊ณต๊ฐ์์์ Decision Rule์ ์๋ฏธํฉ๋๋ค.
๋ง์ฝ Hidden Node๊ฐ ๋ง๋ค๋ฉด ๋ ๋ง์ Decision Rule์ ์กฐํฉํ๋ค๋ ์๋ฏธ์ ๋๋ค.
Hidden Layer์ Hidden Node๊ฐ ๋ง๋ค๋ฉด Capacity๊ฐ ์ข์์ ธ ๋ ์ด๋ ค์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ง๋ง, ๋๋ฌด ๋ง๋ค๋ฉด Overfitting์ด ์ผ์ด๋๊ฒ ๋ฉ๋๋ค.
๐ ์์ ํ(feedforward)
์์์ ์ดํด๋ณธ ๊ทธ๋ฆผ์์ ํด๋น ๋คํธ์ํฌ๊ฐ ํ๋ ์ผ์ ์กฐ๊ธ ๋ ์์ธํ๊ฒ ์์๋ณด๊ฒ ์ต๋๋ค.
๋ฐ์ดํฐ๊ฐ Input์ผ๋ก ๋ค์ด๊ฐ๊ฒ ๋๊ณ Hidden Layer, Hidden Node๋ฅผ ๊ฑฐ์ณ Output์ ์ฐ์ถํฉ๋๋ค.
ํด๋น ๊ณผ์ ์ ์์ผ๋ก๋ง ์ผ์ด๋๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์์ ํ(feedforward)๋ผ๊ณ ํฉ๋๋ค.
๋ด๋ถ์ ์ผ๋ก ์ด๋ค ์ผ์ด ์ผ์ด๋๋์ง์ ๋ํด ์กฐ๊ธ ๋ ์์ธํ๊ฒ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
โ MLP
์ด์ ํฌ์คํธ์์ ์์๋ณด์๋ MLP๋ฅผ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
์ฐ๋ฆฌ๋ $Y_1$์ ์ป๊ธฐ ์ํด $f(w^Tx)$์ ๊ฐ์ ๊ตฌํฉ๋๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก $Y_2$๋ฅผ ์ป๊ธฐ ์ํด์๋ $f(w^Tx)$์ ๊ฐ์ ๊ตฌํฉ๋๋ค.
๋จ, ์ด๋ ์๋ก์ weight๋ ๋ค๋ฅธ ๊ฐ์ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค.
๊ทธ๋์ i์์ j๋ก ๊ฐ๋ weight๋ฅผ $w_{ji}$๋ก ๋ํ๋ ๋๋ค.
์ด๋ Output์ธ $Z$๋ก ๊ฐ ๋๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ ์ฉ๋ฉ๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก $Z_k$๋ฅผ ๊ตฌํ๊ธฐ ์ํด ์๋์ ์์์ ์ป์ ์ ์์ต๋๋ค..
์ ๋ฆฌํ์๋ฉด ํจ์์ ๊ฒฐ๊ณผ๊ฐ ์ค์ฒฉ๋์ด ์ ์ฉ๋๋ค๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค.( ๋ณ๋ ฌ์ ์ด์ง ์์ )
์ฃผ์ํด์ผ ํ ์ ์ ๋ ธ๋ ์์์ Activation๊น์ง ์ ์ฉ๋๋ค๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฆผ์ผ๋ก ๋ํ๋ธ๋ค๋ฉด hidden node ๋๋ output node๋ ์๋์ ๊ทธ๋ฆผ์ ์๋ตํ ๊ฒ์ ๋๋ค.
ํด๋น ๊ณผ์ ์ ์์์ผ๋ก ๋ํ๋ด๋ฉด ์ด๋ฌํ ์์์ ์ป์ ์ ์์ต๋๋ค.
ํ์ฑํ ํจ์๋ฅผ ์ฌ์ฉํด์ผ๋ง Output ๊ฐ์ ์ป์ ์ ์๋ค๋ ๊ฒ์ ๊ผญ ๊ธฐ์ตํ์๊ธฐ ๋ฐ๋๋๋ค.
๐ Architecture
โ NN๊ตฌ์กฐ์ ํน์ง
# of hidden layers, # of hidden nodes
hidden layer์ ๊ฐ์๊ฐ ๋ง์ ์๋ก, hidden node์ ๊ฐ์๊ฐ ๋ ๋ง์ ์๋ก ๋ ๋์ capacity ์ฆ, ๋ ๋์ ์ค๋ช ๋ ฅ์ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค.
ํ์ง๋ง ํด๋น layer์ node์ ๊ฐ์๊ฐ ๋๋ฌด ๋ง๋ค๋ฉด NN์ overfitํ๊ฒ ๋ฉ๋๋ค.
๊ทธ๋์ ์ฐ๋ฆฌ๊ฐ ์ ํด์ค์ผํ ํ์ดํผ ํ๋ผ๋ฏธํฐ๋ค์ด ์์ต๋๋ค.
์ ํ์ง ์์๋ ๋๋ ๊ฐ
Input Node์ ๊ฐ์๋ ๋ฐ์ดํฐ์ ๊ฐ์๋ก ๋ถํฐ ์ ํด์ง๋๋ค.
๊ทธ๋ฆฌ๊ณ Output Node์ ๊ฐ์๋ ์ฐ๋ฆฌ๊ฐ ํ๊ณ ์ ํ๋ ๋ฌธ์ ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
๋ง์ฝ ์ฐ๋ฆฌ๊ฐ ํ์ด์ผ ํ๋ ๋ฌธ์ ๊ฐ 2class๋ผ๋ฉด output node์ ๊ฐ์๋ 1๊ฐ ๋๋ 2๊ฐ๊ฐ ๋์ด์ผ ํฉ๋๋ค. ( 1๊ฐ๋ผ๋ฉด ์ ์ฒด์์ ๋นผ๋ฉด ๋๊ธฐ ๋๋ฌธ )
๋ง์ฝ ์ฐ๋ฆฌ๊ฐ ํ์ด์ผ ํ๋ ๋ฌธ์ ๊ฐ 3class๋ผ๋ฉด output node์ ๊ฐ์๋ 3๊ฐ๊ฐ ๋์ด์ผ ํฉ๋๋ค.
์ ํด์ผ ํ๋ ๊ฐ
์ฆ ,์ฐ๋ฆฌ๋ Hidden Node์ ๊ฐ์์ Hidden Layer์ ๊ฐ์๋ฅผ ์ ํด์ผ ํฉ๋๋ค.
MLP๋ฅผ ๋ฑ๋ฑํ๊ฒ ( Node์ ๊ฐ์๋ฅผ ๋ง์ด ) ๊ตฌ์ฑํ ์ง ๊ธธ๊ฒ ( Layer์ ๊ฐ์๋ฅผ ๋ง์ด ) ๊ตฌ์ฑํ ์ง๋ ์ฐ๋ฆฌ๊ฐ ์ ํด์ค์ผ ํ๋ ๊ฐ์ ๋๋ค.
๋ํ Activation Function์ ์ด๋ค ๊ฒ์ ์ฌ์ฉํ ์ง ์ ํด์ผ ํฉ๋๋ค.
Activation Function์ค ๋ํ์ ์ธ ๊ฒ๋ค์ ์๋์ ๊ฐ์ต๋๋ค.
ReLU๋ง ์ดํด๋ณด์๋ฉด 0๋ณด๋ค ์๋ค๋ฉด 0, 0๋ณด๋ค ํฌ๋ค๋ฉด x์ ๊ฐ์ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค.
ํ์ง๋ง x = 0์ผ ๋ ๋ฏธ๋ถ์ด ๋ถ๊ฐ๋ฅ ํ๋ค๋ ๋จ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ Loss Function์ ์ข ๋ฅ๋ฅผ ์ ํด์ผ ํฉ๋๋ค.
์ฐ๋ฆฌ๋ ํด๋น Output์ด ์ ๋ต์ ์ผ๋ง๋ ๋ง์ท๋์ง ํ๊ฐ๋ฅผ ์งํํด์ผ ํฉ๋๋ค.
์ฆ, Loss Function์ ๊ฐ์ ์ผ๋ง๋ ์ต์ํ ํ๋์ง ์์๋ด์ผ ํฉ๋๋ค.
Classification์ ๊ฒฝ์ฐ์๋ cross-entropy๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ค์ ๋ก ์ฐ๋ฆฌ๊ฐ ๊ณ์ฐํ ๋๋ $\sum_{i}target_ilog(output_i) = \sum_{i}y_ilog(\hat{y})$๋ฅผ ์ต์ํํฉ๋๋ค.
Regression์ ๊ฒฝ์ฐ์๋ MSE๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ค์ ๋ก ์ฐ๋ฆฌ๊ฐ ๊ณ์ฐํ ๋๋ $\frac{1}{2}||y - \hat{y}||^2$๋ฅผ ์ต์ํํฉ๋๋ค.
โ Activation Function์ ์ญํ
Input Node
Input์๋ Activation Function์ด ์ค์ง์ ์ผ๋ก ์ ์ฉ๋์ง ์์ง๋ง ํต์ผ์ฑ์ ์ํด $y = x$๋ผ๋ Activation Function์ ์ ์ฉํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
Hidden Node
Activation Function์ Hidden Layer์์ ๋ง ๊ทธ๋๋ก ํ์ฑํ ํ๋ ์ญํ ์ ํ๊ฒ ๋ฉ๋๋ค.
์ฆ, ์ ๋ ฅ ์๊ทธ๋์ด ์ถฉ๋ถํ ํฌ๋ค๋ฉด ์ถฉ๋ถํ ํฐ ์๊ทธ๋์ ๋ค์ Layer์ ์ ๊ณตํฉ๋๋ค.
๋ฐ๋๋ก ์ ๋ ฅ ์๊ทธ๋์ด ์๋ค๋ฉด 0 ๊ฐ์ ๋ณด๋ด๊ฑฐ๋ ์์ ๊ฐ์ ๋ค์ Layer์ ์ ๊ณตํ๊ฒ ํฉ๋๋ค.
Output Node ( Classification )
Output Node์ ๊ฒฝ์ฐ ์ด๋ค ๋ฌธ์ ๋ฅผ ๊ฐ์ง๊ณ ์๋๋์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
๋ง์ฝ 2-class classification์ ๋ฌธ์ ์์๋ SIgmoid๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ฆ, Logistic function์ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ๋๋ค.
์ด๋ฅผ ์์์ผ๋ก ๋ํ๋ด๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
ํฌ๋น ํจ์๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ค๋ฉด Output Node์ ๊ฒฐ๊ณผ๊ฐ 0๊ณผ 1์ฌ์ด์ ๊ฐ์ด ๋์ ํ๋ฅ ๊ฐ ์ฒ๋ผ ๋์ค๊ฒ ๋ฉ๋๋ค.
3-class ์ด์ Multi-class classification์ ๋ฌธ์ ์์๋ Softmax๋ฅผ ์ฌ์ฉํฉ๋๋ค.
3-class classification ๋ฌธ์ ๋ฅผ ์์๋ก ๋ค๋ฉด ๊ฐ๊ฐ์ ๊ฐ์ ํ๋ฅ ๊ฐ์ผ๋ก ๋ํ๋ด๊ณ ์ ํ ๋ ๋ชจ๋ Output ๊ฐ์ ๋ํ๋ฉด 1์ด ๋์์ผ๋ง ํฉ๋๋ค.
ํ์ง๋ง ์ด๋ Logistic sigmoid ํจ์๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด 1์ด ๋์ค์ง ์์ ์ ์์ต๋๋ค.
๊ทธ๋์ softmax ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
Output Node ( Regression )
Classification์์๋ ๊ฐ๊ฐ์ ๊ฐ์ ํ๋ฅ ์ ์ผ๋ก ๋ณํํด์ฃผ๊ธฐ ์ํด์ Activation Function์ ์ฌ์ฉํ์ต๋๋ค.
Regression์์๋ Output ์์ฒด๊ฐ Continuousํ Variable์ด๊ธฐ ๋๋ฌธ์ Output์ Linear units๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ฆ, ๊ทธ๋๋ก ๊ฐ์ ๋ด๋ณด๋ธ๋ค๋ ๊ฒ์ ๋๋ค.
์ด๋ฅผ ์์ผ๋ก ๋ํ๋ธ๋ค๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
$$\hat{y} = W^Th + b$$
๊ฒฐ๋ก ์ ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ์ด๋ ํ ๋ฌธ์ ๋ฅผ ํ ๊ฒ์ธ๊ฐ์ ๋ฐ๋ผ Output Node์ ๊ฐ์๋ ๋ฌ๋ผ์ง๊ณ Output Node์์ ๋ค์ด๊ฐ๋ Activation Function์ ์ข ๋ฅ๋ ๋ฌ๋ผ์ง๋๋ค.
์ ๋ฆฌํ์๋ฉด Hidden Node์ ๊ฐ์์ Hidden Layer์ ๊ฐ์ Activation Function์ ์ข ๋ฅ, Loss Function์ ์ข ๋ฅ๋ฅผ ์ง์ ์ ํด์ผ ํฉ๋๋ค.
์ง๊ธ๊น์ง ์์ ํ(feedforward process)์ ๋ํด ๋ฐฐ์๋ดค์ต๋๋ค.
๋ค์ ํฌ์คํธ์์๋ ์ญ์ ํ(backpropagation)์ ๋ํด ๋ฐฐ์๋ณด๊ฒ ์ต๋๋ค.
'AI > Machine Learning' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ML] Neural Network(6) - ์ญ์ ํ(Backpropagation)(2) (0) | 2022.12.06 |
---|---|
[ML] Neural Network(5) - ์ญ์ ํ(Backpropagation)(1) (0) | 2022.12.06 |
[ML] Neural Network(3) - MLP(Multilayer Perceptron) (0) | 2022.12.01 |
[ML] Neural Network(2) - Linear Separability (0) | 2022.12.01 |
[ML] Neural Network(1) - Introduction (0) | 2022.12.01 |