๐ ๊ต๋ด '์ธ๊ณต์ง๋ฅ' ์์ ์ ํตํด ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ฒ์ ๋๋ค.
์์ฝ
โ multiple layer ๊ฐ ํ์ํ ์ด์
- XOR ๋ฌธ์
- feature extraction and classification
โก Multi-layer perceptron
- gradient descent
- backpropagation algorithm
1๏ธโฃ MLP
โ MLP๋
๐ Perceptron vs Multi layer Perceptron
- Perceptron : ๋ด๋ฐ์ด ํ๋๋ง ์กด์ฌํ๋ ๊ฒฝ์ฐ
- MLP (multi-layer perceptron) : ๋ด๋ฐ(ํผ์
ํธ๋ก )์ด ์ฌ๋ฌ๊ฐ๊ฐ ์กด์ฌํ๋ฉฐ ์ธต์ ์ด๋ฃฌ๋ค.
- layer : ๋ด๋ฐ๊ณผ ๋ด๋ฐ ์ฌ์ด์ ์๋ ์ค ์ธต์ ์ง์นญํจ
๐ค ๋ด๋ฐ์ด ์ด๊ฑฐ๋ ๋ถ๋ถ์ layer ๋ผ๊ณ ์นญํ๋ฉฐ hidden layer ๋ผ๊ณ ์ค๋ช ํ๋ ๊ฒฝ์ฐ๋ ์์ผ๋, ์์ ์์ ์๋ ์ค ์ฐ๊ฒฐ๋ถ๋ถ์ layer ๋ก ์ง์นญํจ
โก MLP
๐ input layer
โญ weight matrix W ์ฐจ์ : (output) x (input)
๐ Output layer
๐ MLP
โข XOR ๋ฌธ์
๐ XOR ๋ฌธ์
- ๋ค์ด์ค๋ input ์ด ๋ค๋ฅผ ๊ฒฝ์ฐ์๋ง output ์ 1๋ก ๋์ถํ๋ ๋ฌธ์
๐ ๋จ์ผ ํผ์ ํธ๋ก ์ ๊ฐ์ง๊ณ XOR ๋ฌธ์ ๋ฅผ ํ ์ ์๋ค.
- AND ๋ฌธ์ ๋ ๋จ์ผํผ์ ํธ๋ก ์ ๊ฐ์ง๊ณ ํ ์ ์๋ค.
- ๋ด๋ฐ์ด ํ๋ ์ญํ ์ input ์ ๋ํด ๊ตฌ๋ถ์ ์ง๋ ์ดํ๋ฉด (hyperplane) ์ ๊ทธ๋ฆฌ๋ ๊ฒ์ผ๋ก, ์ ์ ๊ฐ์ค์น w์ ํธ์ฐจ b์ ์ํด ๊ฒฐ์ ๋๋ค. ์ ์ ๊ธฐ์ค์ผ๋ก 0 ๋๋ 1์ output ์ ์์ฑํด๋ธ๋ค. (classification)
- input ์ด ์์๊ฐ์ด (x1, x2) 2๊ฐ๊ฐ ์๋ (x1, x2, x3) ์ด๋ ๊ฒ 3๊ฐ๋ฉด 3์ฐจ์ ๊ณต๊ฐ์์ 2์ฐจ์ ํ๋ฉด์ ๊ทธ๋ฆฐ๋ค.
โญ ํ๋์ ๋ด๋ฐ์ n ์ฐจ์ ๊ณต๊ฐ์์ n-1 ์ฐจ์์ ์ดํ๋ฉด์ ๊ทธ๋ ค์ฃผ๋ ์ญํ ์ ํ๋ค.
๐ ๋ค์ธต ํผ์ ํธ๋ก MLP ๋ก๋ XOR ๋ฌธ์ ๋ฅผ ํ ์ ์๋ค!
- ์๋์ ๊ฐ์ด ๊ฐ์ค์น์ ํธ์ฐจ์ ์ด๊ธฐ๊ฐ์ ์ค์ ํ๊ณ , ํ์ฑํ ํจ์๋ฅผ ReLU ๋ก ๊ณ์ฐํด๋ณด์
- batch ํํ๋ก input ์ ํํํด๋ณด๊ธฐ
โฃ ์ค์!
- XOR ์ linearly separable ํ ๋ฌธ์ ๊ฐ ์๋๋ค.
- ๋ฐ๋ผ์ ๋ณธ๋ (x1,x2) ๊ณต๊ฐ์ผ๋ก๋ถํฐ ๊ฐ์ค์น์์ ์ฐ์ฐ์ ํตํด ๊ณต๊ฐ์ ์๋ ํน์ง (y1,y2) ์ ์ถ์ถํ๊ณ ์ถ์ถํ ๊ณต๊ฐ์ผ๋ก๋ถํฐ ๋ถ๋ฅ ๋ฌธ์ ๋ฅผ ์ํํ๋ฉด XOR ๋ฌธ์ ๋ฅผ ํ ์ ์๊ฒ ๋๋ค.
- Feature extraction & output classification
- ํ๋์ ๋ด๋ฐ์ด ํ๋ ์ญํ : ๋ถ๋ฅํด์ฃผ๋ ์ ํ ์ง์ ์ ๊ทธ๋ ค์ค๋ค.
2๏ธโฃ MLP training
* ์์์ ์ ์ํ W,b ์ด๊ธฐ๊ฐ์ XOR ๋ฌธ์ ๋ฅผ ํ๋ฒ์ ์ ํ๊ธฐ์ํด์ ์์๋ก ์ค์ ํ ๊ฐ์ด์๋ค.
* ๊ทธ๋ผ ์ด๋ป๊ฒ ํ๋ฉด ๋ถ๋ฅ๋ฅผ ์ ์ํํด๋ด๋ W,b ํ๋ ฌ์ ๋ง๋ค ์ ์์๊น?
โ Gradient descent
๐ MLP ํ๋ จ = ์ฃผ์ด์ง ๋ฐ์ดํฐ๋ฅผ ํตํด ๋ชฉํ๋ฅผ ๋ฌ์ฑํด๋ผ ์ ์๋ W,b ํ๋ ฌ์ ์ฐพ๋ ๊ฒ
- Cost function ๐ analytically ํ๊ฒ (๋ฏธ๋ถ) ์ฐ์ฐํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ฏ๋ก gradient descent ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
- ๊ฐ์ค์น์ ๋ํ์ฌ cost function ์ ํธ๋ฏธ๋ถํ๋ค.
๐ ๋จ์ผ ํผ์ ํธ๋ก ์์์ gradient descent ์ฐ์ฐ
๐ ๋ค์ธต ํผ์ ํธ๋ก ์์์ gradient descent ์ฐ์ฐ
- i : input unit ์ ๊ฐ์ , j : hidden unit ์ ๊ฐ์, k : output unit ์ ๊ฐ์
- input gradient : ์ง์ ์ ๋ฐ์ํ error ์ weight ๋ฅผ ๊ณฑํ๊ฐ
- weight gradient : error x input
๐ป ์ฐธ๊ณ
- bias ์ ๋ํ ๋ฏธ๋ถ๊ฐ๋ ๊ธฐ์ตํ๊ธฐ!
- ํ์ฑํํจ์ ๋ฏธ๋ถ ๊ณฑ์์ ํ๋ ฌ๊ณฑ ์ฐ์ฐ๊ณผ element wise ๊ณฑ์ ์ฐ์ฐ์ ์ฃผ์ํ ๊ฒ!
# error(2)
dA2 = np.multiply(dMSE(A2, T), self.second_layer_dactivation_func(Z2))
# weight gradient = error(2) * input
dW2 = np.dot(A1.T, dA2)
# bias gradient
dB2 = np.sum(dA2, axis=0, keepdims = True) ## error(2) ๋ฅผ ์ด๋ฐฉํฅ์ผ๋ก ๋ง์
# error(1)
dA1 = np.multiply(np.dot(dA2, self.second_layer_weights.T), self.first_layer_dactivation_func(Z1))
# weight gradient = error(1) * input
dW1 = np.dot(X.T, dA1)
# bias gradient
dB1 = np.sum(dA1, axis=0, keepdims = True) ## error(2) ๋ฅผ ์ด ๋ฐฉํฅ์ผ๋ก ๋ง์
๐ MLP output ์ด 2๊ฐ ์ด์์ธ ๊ฒฝ์ฐ
โก Backpropagation
๐ ์ฐ์ฐ ๊ณผ์
1. W, b ๋ฅผ ์์ ๊ฐ์ผ๋ก ์ด๊ธฐํ
2. training set ์ ์ฒด์ ๋ํด ์๋์ ์ฐ์ฐ์ ์ํ (1 epoch ๊ธฐ์ค)
a. Forward Propagation : output ๊ฐ๊ณผ error ๋ฅผ ๊ณ์ฐ
b. Backpropagation : error ๋ฅผ ์ญ์ ํ ํ๋ค.
c. W,b ๋ฅผ ์ ๋ฐ์ดํธํ๋ค.
3. ์ ๊ฒฝ๋ง์ด ์ ํ๋ จ๋ ๋๊น์ง 2๋ฒ์ ๋ฐ๋ณตํ๋ค.
* example ๊ผญ ์์ผ๋ก ์ง์ ๊ณ์ฐํด๋ณด๊ธฐ
'1๏ธโฃ AIโขDS > ๐ Deep learning' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ธ๊ณต์ง๋ฅ] Training CNN (0) | 2022.04.26 |
---|---|
[์ธ๊ณต์ง๋ฅ] CNN (0) | 2022.04.23 |
[์ธ๊ณต์ง๋ฅ] DNN (0) | 2022.04.23 |
[์ธ๊ณต์ง๋ฅ] Basic Neural Network (0) | 2022.04.21 |
[์ธ๊ณต์ง๋ฅ] Introduction to AI/Deep learning (0) | 2022.04.21 |
๋๊ธ