๐ง Neural Network _ concept
๐คซ Neural Network
perceptron์์ ๋จ์ง ์ธต์ด ์ฌ๋ฌ๊ฐ ๋์ด๋ ๊ฒ ๋ฟ์ด์ง๋ง, XOR ๋ฌธ์ ์ฒ๋ผ ํ๋์ perceptron์ผ๋ก ํด๊ฒฐํ๊ธฐ ์ด๋ ค์ ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. ๋ค์์ ๋ด๋ฐ์ ์ฌ์ฉํด ๋ง๋ ๊ฒ์ ์ธ๊ณต์ ๊ฒฝ๋ง(artificial neural network)๋ผ ํ๋ฉฐ, ์ค์ฌ์ ์ ๊ฒฝ๋ง(neural network)๋ผ ํ๋ค. ์ด๋ฐ ์ ๊ฒฝ๋ง์ ์๋์ ๊ฐ์ ๋ชจ์์ผ๋ก ๋์ด์๋๋ฐ, ์ด๋ ์๋์ธต(hidden layer)์ ๊น์ด๊ฐ ๊น์ ๊ฒ์ ์ด์ฉํ ํ์ต๋ฐฉ๋ฒ์ Deep Learning์ด๋ผ ํ๋ค.
์ ๊ฒฝ๋ง: ์ ๋ ฅ์ธต์์ ์๋์ธต์ผ๋ก ๊ฐ์ ์ ๋ฌํ๋ ํจ์๋ vector-to-vectorํจ์
๋ฅ๋ฌ๋: ํจ์๋ vector-to-scalarํจ์( โต ๋ฒกํฐ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐ์ดํฐ๊ฐ๋ค์ด ๊ฐ๋ณ์ ์ผ๋ก ์์ ๋กญ๊ฒ ํ๋)
input layer(์ ๋ ฅ์ธต): input์ data์ feature๋ก node์ ๊ฐ์ = feature์ ๊ฐ์์ด๋ค.
output layter(์ถ๋ ฅ์ธต): node๊ฐ์ = ๋ถ๋ฅํ๋ ค๋ class์ ๊ฐ์์ด๋ฉฐ ์ด๋, ๊ฐ ํด๋์ค์ score ์ค ๊ฐ์ฅ ๋์๊ฐ์ ๊ฐ๋ class๋ฅผ ์ต์ข ์ ์ผ๋ก ์ ์ ํ๋ค.
๐ง back propagation (์ค์ฐจ ์ญ์ ํ)
๐คซ ์ค์ฐจ ์ญ์ ํ (back propagation)
๋ค์ธต ํผ์ ํธ๋ก (multi-perceptron)์์ ์ต์ ๊ฐ์ ์ฐพ์๊ฐ๋ ๊ณผ์ ์ ์ค์ฐจ์ญ์ ํ(back propagation)๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
์ญ์ ํ๋ผ๋ ๋ง์ฒ๋ผ ์ญ์ ํ๋ ์ถ๋ ฅ์ธต-์๋์ธต-์ ๋ ฅ์ธต ์์๋๋ก ๋ฐ๋๋ก ๊ฑฐ์ฌ๋ฌ ์ฌ๋ผ๊ฐ๋ ๋ฐฉ๋ฒ์ด๋ค.
์ค์ฐจ์ญ์ ํ๋ฅผ ํตํด ์ค์ฐจ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ์ค์น(weight)๋ฅผ ์์ ํ ํ ๋ ์ข์ ์ฑ๋ฅ์ ๋ด๋๋ก ๋ชจ๋ธ์ ๊ฐ์ ํ๋ค.
๐คซ back propagation ๊ณผ์
1) weight ์ด๊ธฐํ 2) forward propagation์ ํตํ output ๊ณ์ฐ 3) Cost function ์ ์, 1์ฐจ ๋ฏธ๋ถ์ ๊ตฌํ๊ธฐ. => ์ค์ ๊ฐ t์ ๋ํด, ([t-z]^2) / 2 4) back propagation์ ํตํ 1์ฐจ ๋ฏธ๋ถ๊ฐ ๊ตฌํ๊ธฐ 5) ํ์ต๋ฅ (learning rate)์ค์ ํ parameter(weight, bias) update 6) 2 ~ 6์ ๊ณผ์ ๋ฐ๋ณต
๐ง activation function (ํ์ฑํ ํจ์)
๐คซ ํ์ฑํ ํจ์ (activation function)
ํ์ฑํ ํจ์๋ input, weight, bias๋ก ๊ณ์ฐ๋์ด ๋์จ ๊ฐ์ ๋ํด ํด๋น ๋ ธ๋๋ฅผ ํ์ฑํ ํ ๊ฒ์ธ์ง๋ฅผ ๊ฒฐ์ ํ๋ ํจ์์ด๋ค.
๐คซ ํ์ฑํ ํจ์์ ์ข ๋ฅ
๊ณ๋จ ํจ์(step function): 0์ ๊ธฐ์ ์ผ๋ก ์ถ๋ ฅ๊ฐ์ 0๊ณผ 1, ๋๊ฐ์ง ๊ฐ๋ง ๊ฐ๋ ํน์ง์ด ์๋ค.(๋ค๋ง 0์์ ๋ฏธ๋ถ๋ถ๊ฐ๋ฅ์ด๋ผ๋ ๋จ์ ์ด ์กด์ฌ)
๋ถํธ ํจ์(sign function): ๊ณ๋จํจ์์ ๋น์ทํ์ง๋ง 0์ ๊ธฐ์ ์ผ๋ก -1, 0, 1 ์ธ ๊ฐ์ ๊ฐ๋ ํน์ง์ด ์๋ค.
Sigmoid function: 1/(1 + exp(-x)) ๋ก 0๊ณผ 1์ฌ์ด ๊ฐ์ ์ถ๋ ฅํ๋ค.๋ค๋ง ๋จ์ ์ด ์กด์ฌํ๋๋ฐ, ๋ฐ๋ก vanishing gradient problem์ด๋ค.
Vanishing gradient problem: ํ์ตํ๋ ๊ณผ์ ์์ ๋ฏธ๋ถ์ ๋ฐ๋ณตํ๋ฉด gradient๊ฐ์ด ์ ์ ์์์ ธ ์์ค๋ ๊ฐ๋ฅ์ฑ์ด ์๋ค.
์ด ๋ฌธ์ ๋ ๋ฏธ๋ถ๊ฐ์ด 0์ ๊ฐ๊น์์ง๊ณ ์ด๋ ์ต์ข ์ ์ผ๋ก ํ์ต์๋๊ฐ ๋๋ ค์ง ์ ์๋ค.
Hyperbolic tangent (tanh): (exp(x) - exp(-x)) / (exp(x) + exp(-x))0~1์ฌ์ด์ธ sigmoidํจ์๋ฅผ ๋ณํํ ํจ์๋ก tanhํจ์๋ -1 ~ 1์ฌ์ด์ ๋ฒ์๋ฅผ ๊ฐ๋๋ค.
ReLU ํจ์ (Rectified Linear function): max(x, 0)๋ก ์์ ํจ์๋ค๊ณผ ๋ค๋ฅด๊ฒ ์ํ์ ์ด ์๋ค๋ ํน์ง์ด ์๋ค.Leaky ReLU ํจ์: a <= 1์ผ ๋, max(x, ax)๋ก ๋ณดํต a๋ 0.01๊ฐ์ ๊ฐ๋๋ค.
ํญ๋ฑํจ์(identity function, linear function): x๋ก ์ ๋ ฅ๊ฐ๊ณผ ์ถ๋ ฅ๊ฐ์ด ๋์ผํ๋ค.์ฃผ๋ก regression๋ฌธ์ ์์ ์ต์ข ์ถ๋ ฅ์ธต์ ์ฌ์ฉ๋๋ ํ์ฑํ ํจ์.
softmax function: exp(x) / Σ(exp(x))์ฃผ๋ก classification์ต์ข ์ถ๋ ฅ์ธต์ ์ฌ์ฉ๋๋ ํ์ฑํ ํจ์.
๋ค๋ง ์์ ์์ ๊ทธ๋๋ก ์ฌ์ฉํ ๊ฒฝ์ฐ, overflow๋ฐ์์ ๊ฐ๋ฅ์ฑ ๋๋ฌธ์ ์๋์ ๊ฐ์ด ์ฌ์ฉํ๋ค.
exp(x + C) / Σ(exp(x + C))
์ด๋, ์์ C๋ ์ผ๋ฐ์ ์ผ๋ก ์ ๋ ฅ๊ฐ์ ์ต๋๊ฐ์ ์ด์ฉํ๋ค.
๋ํ softmax๋ ๊ฒฐ๊ณผ๊ฐ 0~1์ฌ์ด์ด๊ธฐ์ ์ด๋ฅผ ํ๋ฅ ์ ๋์ํ์ฌ ํด์ํ ์ ์๋ค.(์ ๋ ฅ์ด ํฌ๋ฉด ํ๋ฅ ๋ ํฌ๋ค๋ ๋น๋ก๊ด๊ณ.)
์ฆ, ์ด๋ค ๊ฐ์ด ๊ฐ์ฅ ํฌ๊ฒ ์ถ๋ ฅ๋ ์ง ์์ธก๊ฐ๋ฅํ๋ค.
๐ง batch normalization
๐คซ batch size๋?
batch ํฌ๊ธฐ๋ ๋ชจ๋ธ ํ์ต ์ค parameter๋ฅผ ์ ๋ฐ์ดํธํ ๋ ์ฌ์ฉํ ๋ฐ์ดํฐ ๊ฐ์๋ฅผ ์๋ฏธํ๋ค.
์ฌ๋์ด ๋ฌธ์ ํ์ด๋ฅผ ํตํด ํ์ตํด ๋๊ฐ๋ ๊ณผ์ ์ ์๋ก ๋ค๋ฉด, batch ํฌ๊ธฐ๋ ๋ช ๋ฌธ์ ๋ฅผ ํ ๋ฒ์ ์ญ ํ๊ณ ์ฑ์ ํ ์ง๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์ด๋ค.
์๋ฅผ ๋ค์ด, ์ด 100๊ฐ์ ๋ฌธ์ ๊ฐ ์์ ๋, 20๊ฐ์ฉ ํ๊ณ ์ฑ์ ํ๋ค๋ฉด batch ํฌ๊ธฐ๋ 20์ด๋ค.
์ด๋ฅผ ์ด์ฉํด ๋ฅ๋ฌ๋ ๋ชจ๋ธ์ batch ํฌ๊ธฐ๋งํผ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํด ๋ชจ๋ธ์ด ์์ธกํ ๊ฐ๊ณผ ์ค์ ์ ๋ต ๊ฐ์ ์ค์ฐจ(conf. ์์คํจ์)๋ฅผ ๊ณ์ฐํ์ฌ optimizer๊ฐ parameter๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
๐คซbatch normalization
layer์ ๊ฐ์ ๋ถํฌ๋ฅผ ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ์ผ๋ก ํ๊ท ๊ณผ ๋ถ์ฐ์ ๊ณ ์ ์ํค๋ ๋ฐฉ๋ฒ์ด๋ค.
์ด๋ฅผ ์ด์ฉํ๋ฉด gradient ์์ค๋ฌธ์ ๋ฅผ ์ค์ฌ ํ์ต ์๋๋ฅผ ํฅ์์ํฌ ์ ์๋ค๋ ์ฅ์ ์ด ์กด์ฌํ๋ค.
Mini-batch mean, variance๋ฅผ ์ด์ฉํด ์ ๊ทํ(normalize)์ํจ ํ ํ๊ท 0, ๋ถ์ฐ 1์ ๋ถํฌ๋ฅผ ๋ฐ๋ฅด๊ฒ ๋ง๋ ๋ค. N(0, 1^2)
์ด๋, scale parameter γ์ shift parameter β๋ฅผ ์ด์ฉํด ์ ๊ทํ์ํจ ๊ฐ์ Affine transformation์ ํ๋ฉด scale and shift๊ฐ ๊ฐ๋ฅํ๋ค.
๐คซ normalization? standardization? Regularization?Normalization
- ๊ฐ์ ๋ฒ์(scale)๋ฅผ 0~1 ์ฌ์ด์ ๊ฐ์ผ๋ก ๋ฐ๊พธ๋ ๊ฒ
- ํ์ต ์ ์ scalingํ๋ ๊ฒ
- ๋จธ์ ๋ฌ๋์์ scale์ด ํฐ feature์ ์ํฅ์ด ๋น๋ํด์ง๋ ๊ฒ์ ๋ฐฉ์ง
- ๋ฅ๋ฌ๋์์ Local Minima์ ๋น ์ง ์ํ ๊ฐ์(ํ์ต ์๋ ํฅ์)
- scikit-learn์์ MinMaxScaler
Standardization
- ๊ฐ์ ๋ฒ์(scale)๋ฅผ ํ๊ท 0, ๋ถ์ฐ 1์ด ๋๋๋ก ๋ณํ
- ํ์ต ์ ์ scalingํ๋ ๊ฒ
- ๋จธ์ ๋ฌ๋์์ scale์ด ํฐ feature์ ์ํฅ์ด ๋น๋ํด์ง๋ ๊ฒ์ ๋ฐฉ์ง
- ๋ฅ๋ฌ๋์์ Local Minima์ ๋น ์ง ์ํ ๊ฐ์(ํ์ต ์๋ ํฅ์)
- ์ ๊ท๋ถํฌ๋ฅผ ํ์ค์ ๊ท๋ถํฌ๋ก ๋ณํํ๋ ๊ฒ๊ณผ ๊ฐ์
- Z-score(ํ์ค ์ ์)
- -1 ~ 1 ์ฌ์ด์ 68%๊ฐ ์๊ณ , -2 ~ 2 ์ฌ์ด์ 95%๊ฐ ์๊ณ , -3 ~ 3 ์ฌ์ด์ 99%๊ฐ ์์
- -3 ~ 3์ ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ฉด outlier์ผ ํ๋ฅ ์ด ๋์
- ํ์คํ๋ก ๋ฒ์ญํ๊ธฐ๋ ํจ
- scikit-learn์์ StandardScaler
Regularization
- weight๋ฅผ ์กฐ์ ํ๋๋ฐ ๊ท์ (์ ์ฝ)๋ฅผ ๊ฑฐ๋ ๊ธฐ๋ฒ
- Overfitting์ ๋ง๊ธฐ์ํด ์ฌ์ฉํจ
- L1 regularization, L2 regularizaion ๋ฑ์ ์ข ๋ฅ๊ฐ ์์
- L1: LASSO(๋ผ์), ๋ง๋ฆ๋ชจ
- L2: Lidge(๋ฆฟ์ง), ์
๐ง Drop Out
๐คซ ๋๋กญ ์์ (Drop out)
์ ๊ฒฝ๋ง์ ๋ชจ๋ ๋ ธ๋๋ฅผ ์ฌ์ฉํ์ง ์๋ ๋ฐฉ๋ฒ์ผ๋ก ์ ๊ฒฝ๋ง์์ ์ผ๋ถ ๋ ธ๋๋ฅผ ์ผ์์ ์ผ๋ก ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ์ด๋ค.
์ด๋, ์ด๋ค ๋ ธ๋๋ฅผ ์ผ์์ ์ผ๋ก ์ ๊ฑฐํ ๊ฒ์ธ์ง๋ ๋ฌด์์๋ก ์ ํํ๋๋ฐ, ์ด ๋ฐฉ๋ฒ์ ์ฐ์ฐ๋์ ์ค์ฌ overfitting(๊ณผ์ ํฉ)์ ๋ฐฉ์งํ ์ ์๋ค.
'A.I > Deep Learning' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
self.DL.(03). CNN (Convolution Neural Network) (0) | 2023.01.18 |
---|---|
self.DL.(02-3). regression (ํ๊ท์ ๊ฒฝ๋ง)์ค์ต (0) | 2023.01.18 |
self.DL.(02-2). classification (๋ถ๋ฅ์ ๊ฒฝ๋ง)์ค์ต (0) | 2023.01.18 |
self.DL.(02-1). tensorflow ์๊ฐ, model ์ ์ฅ, batch size, epoch, iteration (0) | 2023.01.17 |
self.DL.(01). Perceptron (0) | 2023.01.17 |