91. ๋ฅ๋ฌ๋ ๊ธฐ์ด ์ด๋ก (4)ํผ์ ํธ๋ก , ์ ๊ฒฝ๋ง
๋ฅ๋ฌ๋(Deep Learning)์ด๋?
๋จธ์ ๋ฌ๋์ ํ ๋ถ์ผ
์ฐ์๋ ์ธต(Layer)์์ ์ ์ง์ ์ผ๋ก ํ์ต์ ํ๋ ๊ฒ์ ๊ฐ์ ์ด ์์ผ๋ฉฐ, ๊ธฐ๊ณ ํ์ต์ ์๋ก์ด ๋ฐฉ์
* ๋ฅ(Deep) : '์ฐ์๋ ์ธต์ผ๋ก ํ์ตํ๋ค' (์ธต์ ์ซ์ = ๋ชจ๋ธ์ ๊น์ด)
ํผ์ ํธ๋ก (Perceptron)
์ด๊ธฐ ํํ์ ์ธ๊ณต ์ ๊ฒฝ๋ง
๋ค์์ ์
๋ ฅ์ผ๋ก๋ถํฐ ํ๋์ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋ณด๋ด๋ ์๊ณ ๋ฆฌ์ฆ
ํผ์
ํธ๋ก ์ ์ค์ ๋๋ฅผ ๊ตฌ์ฑํ๋ ์ ๊ฒฝ ์ธํฌ ๋ด๋ฐ์ ๋์๊ณผ ์ ์ฌ (๋ด๋ฐ์ ๊ฐ์ง๋๊ธฐ์์ ์ ํธ๋ฅผ ๋ฐ์๋ค์ด๊ณ , ์ด ์ ํธ๊ฐ ์ผ์ ์น ์ด์์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋ฉด ์ถ์ญ๋๊ธฐ๋ฅผ ํตํด์ ์ ํธ๋ฅผ ์ ๋ฌ)
์ ๊ฒฝ ์ธํฌ ๋ด๋ฐ์ ์
๋ ฅ ์ ํธ์ ์ถ๋ ฅ ์ ํธ๊ฐ ํผ์
ํธ๋ก ์์ ๊ฐ๊ฐ ์
๋ ฅ๊ฐ๊ณผ ์ถ๋ ฅ๊ฐ์ ํด๋น
1. ๋จ์ธต ํผ์
ํธ๋ก (Single-Layer Perceptron)
๊ฐ์ ๋ณด๋ด๋ ๋จ๊ณ๊ณผ ๊ฐ์ ๋ฐ์์ ์ถ๋ ฅํ๋ ๋ ๋จ๊ณ
๊ฐ ๋จ๊ณ๋ฅผ ๋ณดํต ์ธต(layer), ๋ ๊ฐ์ ์ธต์ ์
๋ ฅ์ธต(input layer)๊ณผ ์ถ๋ ฅ์ธต(output layer)
AND ๊ฒ์ดํธ, NAND ๊ฒ์ดํธ, OR ๊ฒ์ดํธ๋ฅผ ๊ตฌํํ ์ ์์ผ๋ XOR ๊ฒ์ดํธ๋ ๊ตฌํ ๋ถ๊ฐ
XOR ๊ฒ์ดํธ : ์
๋ ฅ๊ฐ ๋ ๊ฐ๊ฐ ์๋ก ๋ค๋ฅธ ๊ฐ์ ๊ฐ๊ณ ์์๋์๋ง ์ถ๋ ฅ๊ฐ์ด 1์ด ๋๊ณ , ์
๋ ฅ๊ฐ ๋ ๊ฐ๊ฐ ์๋ก ๊ฐ์ ๊ฐ์ ๊ฐ์ง๋ฉด ์ถ๋ ฅ๊ฐ์ด 0์ด ๋๋ ๊ฒ์ดํธ
* ๊ฒ์ดํธ(gate) : ์ปดํจํฐ๋ ๋ ๊ฐ์ ๊ฐ 0๊ณผ 1์ ์
๋ ฅํด ํ๋์ ๊ฐ์ ์ถ๋ ฅํ๋ ํ๋ก๊ฐ ๋ชจ์ฌ ๋ง๋ค์ด์ง๋๋ฐ, ์ด ํ๋ก๊ฐ ๊ฒ์ดํธ
2. ๋ค์ธต ํผ์ ํธ๋ก (MultiLayer Perceptron, MLP)
๊ธฐ์กด์ AND, NAND, OR ๊ฒ์ดํธ๋ฅผ ์กฐํฉํด XOR ๊ฒ์ดํธ๋ฅผ ์์ฑ ๊ฐ๋ฅ
๋จ์ธต ํผ์
ํธ๋ก ์ ์
๋ ฅ์ธต๊ณผ ์ถ๋ ฅ์ธต๋ง ์กด์ฌํ์ง๋ง, ๋ค์ธต ํผ์
ํธ๋ก ์ ์ค๊ฐ์ ์๋์ธต(hidden layer)์ ์ถ๊ฐ
* XOR ๋ฌธ์ , ๊ธฐํ ๋ณต์กํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ค์ธต ํผ์
ํธ๋ก ์ ์ค๊ฐ์ ์๋ง์ ์๋์ธต์ ์ถ๊ฐํ ์ ์์
์ ๊ฒฝ๋ง์ ์ข ๋ฅ
1. ํผ๋ ํฌ์๋ ์ ๊ฒฝ๋ง(FFNN)
๋ค์ธต ํผ์ ํธ๋ก (MLP)๊ณผ ๊ฐ์ด ์ค์ง ์ ๋ ฅ์ธต์์ ์ถ๋ ฅ์ธต ๋ฐฉํฅ์ผ๋ก ์ฐ์ฐ์ด ์ ๊ฐ๋๋ ์ ๊ฒฝ๋ง
2. ์ธ๊ณต์ ๊ฒฝ๋ง (Artificial Neural Network, ANN)
์๋ฌผํ์ Neural Network vs Artificial Neural Network
์ฌ๋์ ์ ๊ฒฝ๋ง ์๋ฆฌ์ ๊ตฌ์กฐ๋ฅผ ๋ชจ๋ฐฉํ์ฌ ๋ง๋ ๊ธฐ๊ณํ์ต ์๊ณ ๋ฆฌ์ฆ
๋์์ ๋ด๋ฐ๋ค์ด ์ด๋ค ์ ํธ, ์๊ทน ๋ฑ์ ๋ฐ๊ณ , ๊ทธ ์๊ทน์ด ์ด๋ ํ ์๊ณ๊ฐ(threshold)์ ๋์ด์๋ฉด ๊ฒฐ๊ณผ ์ ํธ๋ฅผ ์ ๋ฌํ๋ ๊ณผ์ ์์ ์ฐฉ์ (์๊ทน/์ ํธ๋ Input Data, ์๊ณ๊ฐ์ ๊ฐ์ค์น(weight), ์๊ทน์ ์ํด ์ด๋ค ํ๋์ ํ๋ ๊ฒ์ Output๋ฐ์ดํฐ)
๋จ์ธต ANN
hidden = output
- ๋จ์ธต layer : hidden node ์ = ์ถ๋ ฅ ์
๋ค์ธต ANN
hidden ≠ output
* Hyper parameter : hidden layer & node
Weight ์ฐจ์ : 2์ฐจ์
Weight ํ = ์ ๋ ฅ node(์ด์ layer ์ถ๋ ฅ ์)
Weight ์ด = ์ถ๋ ฅ node(๋ค์ layer ์ ๋ ฅ ์)
Bias ์ฐจ์ : 1์ฐจ์
์ถ๋ ฅ node(๋ค์ layer ์ ๋ ฅ)
* layer node ์ : ์ ๋ ฅ์ธต๊ณผ ๊ฐ๊น์ธ ์๋ก ๋ง๊ฒ, ์ถ๋ ฅ์ธต๊ณผ ๊ฐ๊น์ธ ์๋ก ์ ๊ฒ ์ง์
ANN์ ๋ฌธ์ ์
1. ํ์ต๊ณผ์ ์์ ํ๋ผ๋ฏธํฐ์ ์ต์ ๊ฐ์ ์ฐพ๊ธฐ ์ด๋ ต๋ค.
ํ์ฑํจ์์ ์ฌ์ฉ์ ๊ธฐ์ธ๊ธฐ ๊ฐ์ ์ํด weight๊ฐ ๊ฒฐ์ ๋์๋๋ฐ ์ด๋ฐ gradient๊ฐ์ด ๋ค๋ก ๊ฐ์๋ก ์ ์ ์์์ ธ 0์ ์๋ ดํ๋ ์ค๋ฅ ์์ฑ, ๋ถ๋ถ ์๋ฌ๋ฅผ ์ต์ ์๋ฌ๋ก ์ธ์ํด ํ์ต ์ค๋จ ๋ฑ
โ2. Overfitting์ ๋ฐ๋ฅธ ๋ฌธ์ . ํ์ต์๊ฐ์ด ๋๋ฌด ๋๋ฆฌ๋ค.
๋ง์ ์๋์ธต์ ์ ํ๋ ์์น๊ณผ ์ฐ์ฐ๋ ์์น ์ ๋ฐ. (ํ์ฌ๋ ๊ทธ๋ํฝ ์นด๋์ ๋ฐ์ ์ผ๋ก ์ฐ์ฐ๋ ๊ฐ๋น, ์ฌ์ ํ๋ จ์ผ๋ก ์ค๋ฒํผํ
์ผ๋ก ์ฌ์ ๋ฐฉ์ง ๊ฐ๋ฅ
์์ ํ
์ธ๊ณต ์ ๊ฒฝ๋ง์์ ์ ๋ ฅ์ธต์์ ์ถ๋ ฅ์ธต ๋ฐฉํฅ์ผ๋ก ์ฐ์ฐ์ ์งํํ๋ ๊ณผ์
์ ๋ ฅ์ธต์์ ์ถ๋ ฅ์ธต ๋ฐฉํฅ์ผ๋ก ์์ธก๊ฐ์ ์ฐ์ฐ์ด ์งํ๋๋ ๊ณผ์
ํ๋ ฌ๊ณฑ์ผ๋ก ์์ ํ ์ดํดํ๊ธฐ
์ ๋ ฅ์ ์ฐจ์์ด 3, ์ถ๋ ฅ์ ์ฐจ์์ด 2 (์ ๊ฒฝ๋ง์ ์ฉ์ด๋ก๋ ์ ๋ ฅ์ธต์ ๋ด๋ฐ์ด 3๊ฐ, ์ถ๋ ฅ์ธต์ ๋ด๋ฐ์ด 2๊ฐ)
ํ์ดํ ๊ฐ๊ฐ์ ๊ฐ์ค์น w๋ฅผ ์๋ฏธ(3๊ฐ์ ๋ด๋ฐ๊ณผ 2๊ฐ์ ๋ด๋ฐ ์ฌ์ด์๋ ์ด 6๊ฐ์ ํ์ดํ๊ฐ ์กด์ฌํ๋๋ฐ, ์ด๋ '์ ๊ฒฝ๋ง์์ ๊ฐ์ค์น w์ ๊ฐ์๊ฐ 6๊ฐ'์์ ์๋ฏธ. ํ๋ ฌ๊ณฑ ๊ด์ ์์๋ '3์ฐจ์ ๋ฒกํฐ์์ 2์ฐจ์ ๋ฒกํฐ๊ฐ ๋๊ธฐ ์ํด์ 3 × 2 ํ๋ ฌ์ ๊ณฑํ๋ค')
๋ณ๋ ฌ ์ฐ์ฐ
์ธ๊ณต ์ ๊ฒฝ๋ง์ 4๊ฐ์ ์ํ์ ๋์์ ์ฒ๋ฆฌํ๊ณ ์์ง๋ง, ์ฌ๊ธฐ์ ํ์ต๊ฐ๋ฅํ ๋งค๊ฐ๋ณ์์ ์๋ ์ฌ์ ํ 8๊ฐ
๋ฐฐ์น ์ฐ์ฐ : ์ธ๊ณต ์ ๊ฒฝ๋ง์ด ๋ค์์ ์ํ์ ๋์์ ์ฒ๋ฆฌํ๋ ๊ฒ
์ญ์ ํ(Backpropagation)
๋ฅ๋ฌ๋ ํ๋ ์์ํฌ ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
์ถ๋ ฅ์์ ์๊ธด ์ค์ฐจ(error)๋ฅผ ์ ๋ ฅ ์ชฝ(์ญ๋ฐฉํฅ)์ผ๋ก ์ ํ์์ผ ์์ฐจ์ ์ผ๋ก ํธ๋ฏธ๋ถ์ ์ํํ์ฌ ํ๋ จ ๋ฐ์ดํฐ์ ์ต์ ํ๋ weight๊ฐ์ ์ป๋ ์๊ณ ๋ฆฌ์ฆ
์ธ๊ณต ์ ๊ฒฝ๋ง์ ํ์ต์ ์ค์ฐจ๋ฅผ ์ต์ํํ๋ ๊ฐ์ค์น๋ฅผ ์ฐพ๋ ๋ชฉ์ ์ผ๋ก ์์ ํ์ ์ญ์ ํ๋ฅผ ๋ฐ๋ณตํ๋ ๊ฒ
์ญ์ ํ ๋จ๊ณ
1. Hidden vs Output ๊ฐ์ค์น ์์
์๋์ธต๊ณผ ์ถ๋ ฅ์ธต ์ฌ์ด ๊ฐ์ค์น ์์ : output ์ค์ฐจ, output, hidden ์ด์ฉ
2. Input vs Hidden ๊ฐ์ค์น ์์
1) hidden ์ค์ฐจ = hidden ๊ฐ์ค์น(wo) ์ ์นํ๋ ฌ * output ์ค์ฐจ
* ์ ๋ ฅ์ธต๊ณผ ์๋์ธต ์ฌ์ด์ ๊ฐ์ค์น๋ฅผ ์์ ํ๊ธฐ ์ํด์ ์๋์ธต ์ค์ฐจ ํ์
2) Input vs Hidden ๊ฐ์ค์น ์์ : hidden ์ค์ฐจ์ hidden output, input ์ด์ฉ
Deep Learning ์ ํ
์ฌ์ธต ์ ๊ฒฝ๋ง(DNN : Deep Neural Network)
์ ๋ ฅ์ธต(input layer)๊ณผ ์ถ๋ ฅ์ธต(output layer) ์ฌ์ด์ ์ฌ๋ฌ ๊ฐ(2๊ฐ ์ด์)์ ์๋์ธต(hidden layer)
์ค๊ฐ์ธต์ ๋ค์ธตํ๋ก ๋ด๋ฐ ์ฒ๋ฆฌ์ ์ ๋ฌ, ์ฐ์ถ๋๋ ํน์ง ๊ฐ์ด ๋์ด๋จ → ์ ํ๋ ํฅ์
ํ๋ผ๋ฏธํฐ ์๊ฐ ๋๋ฌด ๋ง์์ง → ์ฐ์ฐ ๋ง์์ง, ๊ณผ์ ํฉ
์์ ์ฐ๊ฒฐ ๊ณ์ธต(Fully Connected NN)
์ฌ์ธต ์ ๋ขฐ ์ ๊ฒฝ๋ง (DBN : Deep Belief Network)
๋ค์ค๊ณ์ธต์ผ๋ก ์ด๋ฃจ์ด์ง ์ฌ์ธต ์ ๊ฒฝ๋ง
Dropout : ๊ณผ์ ํฉ ๋ฌธ์ ํด๊ฒฐ์ ์ํ ๋ฌด์์ ๋คํธ์ํฌ ์ญ์
์ ํ๋ ๋ณผ์ธ ๋ง ๋จธ์ (Restricted Boltzmann Machine: RBM) : ๊ฐ์ค์น ๊ฐฑ์ ์๊ณ ๋ฆฌ์ฆ
ํฉ์ฑ๊ณฑ ์ ๊ฒฝ๋ง (Convolution Neural Network, CNN)
์ด๋ฏธ์ง ์ ๋ ฅ → ์ด๋ค ์ด๋ฏธ์ง์ธ์ง ํ๋ณํ๋ Classification๋ชจ๋ธ
๊ธฐ๊ณํ์ต์์ ์ด๋ฏธ์ง์ ์ ๋ณด๋ฅผ ๋ด๋ฐ์ ์ ๋ฌํ ๋, ์ด๋ฏธ์ง์ ์ผ๋ถ ๋ฒ์๋ก ์ขํ์ ๋ถ์ํ๊ณ ๊ทธ ๋ฒ์๋ฅผ ์กฐ๊ธ์ฉ ์๋ผ๋ด๋ฉฐ ๋ถ์์ ๋ฐ๋ณตํ๋ ๋ฐฉ์ (ํน์ง์ ์ถ์ถํ์ฌ ํน์ง์ ํจํด ํ์ )
ํ์ฉ ๋ถ์ผ : ์ ๋ณด์ถ์ถ, ๋ฌธ์ฅ๋ถ๋ฅ, ์ผ๊ตด์ธ์
- Convolution Layer : ๊ฐ ์ฑ๋ถ์ ์ธ์ ์ฑ๋ถ๋ค์ ์กฐ์ฌํด ํน์ง์ ํ์ ํ๊ณ ํ์ ํ ํน์ง์ ํ์ฅ์ผ๋ก ๋์ถ์ํค๋ ๊ณผ์ ์์ ๋์ถ๋ ์ฅ
- Pooling : Convolution ๊ณผ์ ์ ๊ฑฐ์น ๋ ์ด์ด์ ์ฌ์ด์ฆ๋ฅผ ์ค์ฌ์ฃผ๋ ๊ณผ์ . ๋ฐ์ดํฐ์ ์ฌ์ด์ฆ๋ฅผ ์ค์ด๊ณ , ๋ ธ์ด์ฆ๋ฅผ ์์, ๋ฏธ์ธํ ๋ถ๋ถ์์ ์ผ๊ด์ ์ธ ํน์ง์ ์ ๊ณต
์ํ์ ๊ฒฝ๋ง (Recurrent Neural Network, RNN)
๋ฐ๋ณต์ ์ด๊ณ ์์ฐจ์ ์ธ ๋ฐ์ดํฐ(Sequential data)ํ์ต์ ํนํ๋ ์ธ๊ณต์ ๊ฒฝ๋ง์ ํ ์ข ๋ฅ
๋ด๋ถ์ ์ํ๊ตฌ์กฐ๊ฐ ๋ค์ด์๋๋ฐ, ์ํ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ์ฌ ๊ณผ๊ฑฐ์ ํ์ต์ Weight๋ฅผ ํตํด ํ์ฌ ํ์ต์ ๋ฐ์ํ๋ค
์๊ณ์ด ๋ถ์์ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค์ด ์ค ๋์ ๋ฐ์ดํฐ์ ํธํ๋๋ ๋ฅ๋ฌ๋ ๋ชจ๋ธ
ํ์ฌ์ ํ์ต๊ณผ ๊ณผ๊ฑฐ์ ํ์ต์ ์ฐ๊ฒฐ์ ๊ฐ๋ฅํ๊ฒ ํ๊ณ ์๊ฐ์ ์ข ์๋๋ค๋ ํน์ง
* ๋์ ๋ฐ์ดํฐ : ์์ฐ์ด ๋ํ, ๋์์, ์์ฑ, ์๊ณ์ด์ ํต๊ณ ๋ฐ์ดํฐ์ ๋ก๊ทธ ๋ฐ์ดํฐ
ํ์ฉ ๋ถ์ผ : ์ต๊ทผ ์์ฐ์ด ๋ํ ๋ฑ์ ๋ถ์ผ, ์์ฑ ์จ์ด๋ธ ํผ, ํ ์คํธ ์ ๋ค ์ฑ๋ถ ํ์
๋ฅ๋ฌ๋ ๋ ์ด์ด (Fully Connected Layers)
์ด๋ฏธ์ง ์ธ์๊ณผ ์ปดํจํฐ ๋น์ ๊ณผ์ ๋ฅผ ์ ๋ฌธ์ผ๋ก ํ๋ ์ ๊ฒฝ๋ง์ ์ผ์ข
์ธ์ ํ ๊ณ์ธต์ ๋ชจ๋ ๋ด๋ฐ๊ณผ ๊ฒฐํฉ
์์ฒญ๋ ์์ ์ฐ๊ฒฐ๊ณผ ๋คํธ์ํฌ ๋งค๊ฐ๋ณ์๋ฅผ ํ์๋ก ํจ
Affine ๊ณ์ธต : layer ๊ฐ์ ๋ชจ๋ ๋ ธ๋(๋ด๋ฐ) ์์ ์ฐ๊ฒฐ ๊ณ์ธต
Affine ๊ณ์ธต ๋ค์ ํ์ฑํ ํจ์ ReLU ๊ณ์ธต(or Sigmoid) ์ฐ๊ฒฐ
๋ง์ง๋ง 4๋ฒ์งธ ๊ณ์ธต์ Affine ๊ณ์ธต๊ณผ Softmax ๊ณ์ธต์์ ํ๋ฅ ๊ฐ์ผ๋ก ์ต์ข ์ถ๋ ฅ
์ ์ : ์ ๊ทํํ์ง ์์ ์ถ๋ ฅ ๊ฒฐ๊ณผ(Affine ๊ณ์ธต) -> ๋น์จ์ฒ๋(ํ๊ท๋ถ์)
ํ๋ฅ : ์ ๋ ฅ๊ฐ์ ์ ๊ทํ(์ถ๋ ฅ์ ํฉ 1)ํ ์ถ๋ ฅ ๊ฒฐ๊ณผ(Softmax ๊ณ์ธต) -> 0~1์ฌ์ด