๐ฅ๏ธ Deep_Learning (Basic)
Transfer Learning, ์ฆ ์ ์ด ํ์ต์ ML(๋จธ์ ๋ฌ๋)๊ณผ DL(๋ฅ๋ฌ๋)์์ ๊ธฐ์กด์ Pre-Training ๋ ๋ชจ๋ธ์ ์๋ก์ด ์์
์ ์ฌ์ฌ์ฉํ๋ ๊ธฐ๋ฒ์
๋๋ค. ์ด ๋ฐฉ๋ฒ์ ํนํ ๋๊ท๋ชจ ๋ฐ์ดํฐ์
์์ ํ์ต๋ ๋ชจ๋ธ์ ์์ ๋ฐ์ดํฐ์
์ ์ ์ฉํ ๋ ์ ์ฉํฉ๋๋ค.์ ์ด ํ์ต์ ๋ชจ๋ธ์ด ์ฌ์ ํ์ตํ ์ง์์ ์๋ก์ด ๋ฌธ์ ์ ์ ์ฉํ์ฌ ํ์ต ์๋๋ฅผ ๋์ด๊ณ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.Transfer Learning (์ ์ด ํ์ต)๊ธฐ์กด์ Neural Network(์ ๊ฒฝ๋ง)์์ ์ต์์ ๋ถ๋ถ์ ์๋ก ์ ์ํ ๋ค์, ์ด ๋ถ๋ถ์ Training ์ํค๋ ๊ฒ์ด Transfer Learning (์ ์ด ํ์ต) ์ด๋ผ๊ณ ํฉ๋๋ค.์ด๋ Neural Network(์ ๊ฒฝ๋ง)์ ํ์ ๋ถ๋ถ์ ์ด๋ฏธ Training๋ Neural Network(์ ๊ฒฝ๋ง)์ ์ฌ์ฉํ..
๐ฅ๏ธ Deep_Learning (Basic)
์ด๋ฒ๊ธ์์๋ ๋ค์ํ CNN ๋คํธ์ํฌ์ ๋ฐํ์ฌ ์์๋ณด๊ฒ ์ต๋๋ค. LeNet 5LeNet-5๋ ๊ธฐ๋ณธ์ ์ธ CNN ์ํคํ
์ฒ๋ฅผ ์ ์ํ๋ฉฐ, ํ์ฌ์ ๋ฅ๋ฌ๋์ ๊ธฐ์ด๊ฐ ๋์์ต๋๋ค.์ฃผ๋ก ์๊ธ์จ ์ซ์ ์ธ์(MNIST ๋ฐ์ดํฐ์
) ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๊ฐ๋ฐ๋์์ผ๋ฉฐ, ๋ํ ํ๋ CNN์ ๊ธฐ์ด๋ฅผ ๋ง๋ จํ ๋ชจ๋ธ๋ก ์ฌ๊ฒจ์ง๋๋ค.LeNet-5๋ ์ด 7๊ฐ์ ๋ ์ด์ด(์
๋ ฅ๊ณผ ์ถ๋ ฅ ํฌํจ)๋ก ๊ตฌ์ฑ๋ ๋คํธ์ํฌ์
๋๋ค.LeNet-5์ ๊ตฌ์กฐ๋ ํฌ๊ฒ ๋ ๋ถ๋ถ์ผ๋ก ๋๋ ์ ์์ต๋๋ค.Convolutional Neural Network (CNN)Fully Connected Network (FCN)๊ฐ ๋ ์ด์ด๋ ํน์ ํ ์ญํ ์ ์ํํ๋ฉฐ, Convolutional Neural Network(CNN - ํฉ์ฑ๊ณฑ ๋ ์ด์ด)์ ์๋ธ์ํ๋ง ๋ ์ด์ด(Pooling Layer)๋ฅผ ๊ต๋๋ก..
๐ฅ๏ธ Deep_Learning (Basic)
์ด๋ฒ์๋ Convolution Layer, Pooling Layer๋ฅผ ํ๋ฒ ๊ตฌํํด ๋ณด๊ฒ ์ต๋๋ค. Convolution & Pooling Layer ๊ตฌํํด๋ณด๊ธฐ4-Dimension Array (4์ฐจ์ ๋ฐฐ์ด)Convolution Neural Network(CNN)์์ Layer ์ฌ์ด๋ฅผ ํ๋ฅด๋ ๋ฐ์ดํฐ๋ 4์ฐจ์์
๋๋ค.์๋ฅผ ๋ค์ด์ ๋ฐ์ดํฐ์ ํ์์ด (10, 1, 28, 28)์ด๋ฉด?Height(๋์ด): 28, Width(๋๋น): 28, Channel(์ฑ๋): 1๊ฐ์ธ ๋ฐ์ดํฐ๊ฐ 10๊ฐ๋ผ๋ ์ด์ผ๊ธฐ ์
๋๋ค.์ด๋ฅผ Python์ผ๋ก ๊ตฌํํ๋ฉด ์๋์ ์ฝ๋์ ๊ฐ์ต๋๋ค.x = np.random.rand(10, 1, 28, 28) # ๋ฌด์์๋ก ๋ฐ์ดํฐ ์์ฑx[0, 0] # ๋๋ x[0][0] ์ฒซ๋ฒ์งธ ๋ฐ์ดํฐ์ ์ฒซ ์ฑ๋ ๊ณต๊ฐ ๋ฐ์ดํฐ์ ์ ๊ทผ์ฌ๊ธฐ์..
๐ฅ๏ธ Deep_Learning (Basic)
Convolutional Neural Network, CNN์ ์ด๋ฏธ์ง ์ธ์ & ์์ ์ธ์๋ฑ ๋ค์ํ ๊ณณ์์ ์ฌ์ฉ๋ฉ๋๋ค.ํนํ ์ด๋ฏธ์ง ์ธ์ ๋ถ์ผ ์์ ๋ฅ๋ฌ๋์ ํ์ฉํ ๊ธฐ๋ฒ์ ๊ฑฐ์ด ๋ค CNN์ ๊ธฐ์ด๋ก ํฉ๋๋ค.CNN ์ ์ฒด ๊ตฌ์กฐConvolution Layer(ํฉ์ฑ๊ณฑ ๊ณ์ธต)๊ณผ Pooling Layer(ํ๋ง ๊ณ์ธต)์ด ์ด๋ฒ์ ์๋ก ๋ฑ์ฅํฉ๋๋ค.์ฐ๋ฆฌ๊ฐ ๋ณธ ์ง๊ธ๊น์ง์ Neural Network(์ ๊ฒฝ๋ง)์ ๋ชจ๋ Neuron๊ณผ ์ฐ๊ฒฐ๋์ด ์์์ต๋๋ค.์ด๋ฅผ Fully-Connected (FC) - ์์ ์ฐ๊ฒฐ ์ด๋ผ๊ณ ํ๋ฉฐ, ์์ ํ ์ฐ๊ฒฐ๋ Layer๋ 'Affine ๊ณ์ธต' ์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ๊ตฌํํ์ต๋๋ค.๋ง์ฝ Affine ๊ณ์ธต์ ์ฌ์ฉํ๋ฉด, Layer๊ฐ 5๊ฐ์ธ Fully-Connected Neural Network(FC ์ ๊ฒฝ๋ง)์ ์๋์ ๊ตฌ๋ฆผ๊ณผ..
๐ฅ๏ธ Deep_Learning (Basic)
์ฌ๋ฐ๋ฅธ ํ์ต์ ์ํด Machine Learning์์ Overfitting์ด ๋๋ ์ผ์ด ๋ง์ต๋๋ค. Overiftting(์ค๋ฒํผํ
)์ ์ ๊ฒฝ๋ง์ด Training data(ํ๋ จ ๋ฐ์ดํฐ)์๋ง ์ง๋์น๊ฒ ์ ์ฉ๋์ด์ ๊ทธ ์ธ์ ๋ฐ์ดํฐ์๋ ์ ๋๋ก ๋์ํ์ง ๋ชปํ๋ ์ํ์
๋๋ค.Overfitting (์ค๋ฒํผํ
)์ค๋ฒํผํ
์ ๋งค๊ฐ๋ณ์๊ฐ ๋ง๊ณ ํํ๋ ฅ์ด ๋์ ๋ชจ๋ธ์ธ ๊ฒฝ์ฐ, ํ๋ จ๋ฐ์ดํฐ๊ฐ ์ ์ ๊ฒฝ์ฐ์ ์ฃผ๋ก ์ผ์ด๋ฉ๋๋ค.์ด ๋ ์๊ฑด์ ์ถฉ์กฑํ์ฌ Overiftting(์ค๋ฒํผํ
)์ ์ผ์ผ์ผ ๋ณด๊ฒ ์ต๋๋ค.MNIST Dataset์ ํ๋ จ๋ฐ์ดํฐ์ค 300๊ฐ๋ง ์ฌ์ฉํ๊ณ , 7-Layer Network๋ฅผ ์ฌ์ฉํด์ Network์ ๋ณต์ก์ฑ์ ๋ํ๋ณด๊ฒ ์ต๋๋ค.๊ฐ Layer์ Neuron์ 100๊ฐ, Activation Function(ํ์ฑํ ํจ์)๋ ReLU ํจ์๋ฅผ ์ฌ..
๐ฅ๏ธ Deep_Learning (Basic)
Batch Normalization - ๋ฐฐ์น ์ ๊ทํBatch Normalization (๋ฐฐ์น ์ ๊ทํ)์ ๊ฐ๋
์ 2015๋
์ ์ ์๋ ๋ฐฉ๋ฒ์
๋๋ค.์ผ๋จ, Batch Normalization(๋ฐฐ์น ์ ๊ทํ)๊ฐ ์ฃผ๋ชฉ๋ฐ๋ ์ด์ ๋ ๋ค์์ ์ด์ ๋ค๊ณผ ๊ฐ์ต๋๋ค.Training(ํ์ต)์ ๋นจ๋ฆฌ ํ ์ ์์ต๋๋ค. ์ฆ, Training(ํ์ต) ์๋๋ฅผ ๊ฐ์ ํ๋ ํจ๊ณผ๊ฐ ์์ต๋๋ค.์ด๊น๊ฐ์ ํฌ๊ฒ ์์กดํ์ง ์๋๋ค๋ ํน์ง์ด ์์ต๋๋ค.๊ทธ๋ฆฌ๊ณ Overiftting์ ์ต์ ํ๋ ํน์ง์ด ์์ต๋๋ค. ์ฆ, Dropout๋ฑ์ ํ์์ฑ์ด ๊ฐ์ํฉ๋๋ค.Batch Normalization(๋ฐฐ์น ์ ๊ทํ)์ ๊ธฐ๋ณธ ์์ด๋์ด๋ ์์์ ๋งํ๋ฏ์ด ๊ฐ Layer(์ธต)์์์ Activation Value(ํ์ฑํ ๊ฐ)์ด ์ ๋นํ ๋ถํฌ๊ฐ ๋๋๋ก ์กฐ์ ํ๋ ๊ฒ์
๋๋ค. ํ๋ฒ ์์๋ฅผ ๋ณด๊ฒ ์ต..
๐ฅ๏ธ Deep_Learning (Basic)
Parameter(๋งค๊ฐ๋ณ์) ๊ฐฑ์ ์ ๊ฒฝ๋ง ํ์ต์ ๋ชฉ์ ์ Loss Function (์์ค ํจ์)์ ๊ฐ์ ๊ฐ๋ฅํ ๋ฎ์ถ๋ ๋งค๊ฐ๋ณ์๋ฅผ ์ฐพ๋๊ฒ์
๋๋ค. ์ด๋ ๊ณง ๋งค๊ฐ๋ณ์์ ์ต์ ๊ฐ์ ์ฐพ๋ ๋ฌธ์ ์ด๋ฉฐ, ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํธ๋๊ฒ์ Optimization(์ต์ ํ) ๋ผ๊ณ ํฉ๋๋ค.๊ทธ๋ฆฌ๊ณ ์ต์ ์ Parameter(๋งค๊ฐ๋ณ์) ๊ฐ์ ์ฐพ๋ ๋จ์๋ก Parameter(๋งค๊ฐ๋ณ์)์ Gradient(๊ธฐ์ธ๊ธฐ-๋ฏธ๋ถ)์ ์ด์ฉํ์ต๋๋ค.Parameter(๋งค๊ฐ๋ณ์)์ Gradient๋ฅผ ๊ตฌํด, ๊ธฐ์ธ์ด์ง ๋ฐฉํฅ์ผ๋ก Parameter(๋งค๊ฐ๋ณ์) ๊ฐ์ ๊ฐฑ์ ํ๋ ์ผ์ ๋ช ๋ฒ์ด๊ณ ๋ฐ๋ณตํด์ ์ ์ ์ต์ ์ ๊ฐ์ ๋ค๊ฐ๊ฐ์ต๋๋ค. ์ด๊ฒ์ด ํ๋ฅ ์ ๊ฒฝ์ฌ ํ๊ฐ๋ฒ - Stochastic Gradient Descent(SGD)๋ผ๊ณ ํฉ๋๋ค.๋ํ ํ๋ฅ ์ ๊ฒฝ์ฌ ํ๊ฐ๋ฒ - Stochastic G..
๐ฅ๏ธ Deep_Learning (Basic)
Activation Function (ํ์ฑํ ํจ์)Activation Function(ํ์ฑํ ํจ์)๋? ์ ๊ฒฝ๋ง์์ ๊ฐ Node & Neuron์์ Input Signal(์
๋ ฅ์ ํธ)์ ์ดํฉ์ Output Signal(์ถ๋ ฅ ์ ํธ)๋ก ๋ณํํ๋ ํจ์์
๋๋ค.๋ํ Nerual Network(์ ๊ฒฝ๋ง)์ Non-Linear ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ฒ ํด์ค๋๋ค.๋น์ ํ ๋ฌธ์ : ์
๋ ฅ, ์ถ๋ ฅ ๋ณ์๊ฐ์ ๊ด๊ณ๊ฐ ์ ํ์ด ์๋ ๋ฌธ์ ๋ฅผ ์๋ฏธํฉ๋๋ค. ์
๋ ฅ ๋ณ์๊ฐ ์์ ๋ณํ๊ฐ ์ถ๋ ฅ์ ๋น๋กํ์ง ์๊ฑฐ๋, ์์ธกํ๊ธฐ ์ด๋ ค์ด ๋ณํ๋ฅผ ์ผ์ผํค๋ ๊ฒฝ์ฐ์ ํด๋นActivation Function(ํ์ฑํ ํจ์)๋ ์๊ณ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ถ๋ ฅ์ด ๋ด๋๋๋ค, ์ด๋ฐ ํจ์๋ฅผ Step Function(๊ณ์ฐ ํจ์)๋ผ๊ณ ํฉ๋๋ค.๊ทธ๋์ Perceptron(ํผ์
ํธ๋ก )์์ Activation..
๐ฅ๏ธ Deep_Learning (Basic)
Feed-Forward Network Feed-Forward Networks๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์ธ๊ณต ์ ๊ฒฝ๋ง ๊ตฌ์กฐ์ค ํ๋๋ก, Input Layer(์
๋ ฅ์ธต)์์ Output Layer(์ถ๋ ฅ์ธต)์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์๋ฐฉํฅ์ผ๋ก ํ๋ฅด๋ ๊ตฌ์กฐ๋ฅผ ์๋ฏธํฉ๋๋ค. ์ฌ๊ธฐ์ Data๋ ๊ฐ Layer(์ธต)์ ์ง๋ ๋๋ง๋ค ๊ฐ์ค์น์ ์ํด ๋ณํ๋๊ณ , Activation Function(ํ์ฑํ ํจ์)๋ฅผ ํตํด ๋ค์ Layer(์ธต)์ผ๋ก ์ ๋ฌ๋ฉ๋๋ค ์ด๋ฌํ ๋คํธ์ํฌ๋ ์ํ ์ฐ๊ฒฐ์ด๋ ๋ณต์กํ Feedback ๋ฃจํ๊ฐ ์์ด์ ๊ณ์ฐ์ด ๋น๊ต์ ๊ฐ๋จํ๊ณ , ๋ค์ํ ๋ฌธ์ ์ ์ ์ฉ๋ ์ ์์ต๋๋ค. ์ ๋ฆฌํ์๋ฉด, ๋ฐ์ดํฐ๊ฐ ๋คํธ์ํฌ๋ฅผ ํตํด ํ ๋ฐฉํฅ์ผ๋ก๋ง ํ๋ฅธ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์
๋ ฅ ๋ฐ์ดํฐ๋ Input Layer(์
๋ ฅ์ธต)์์ ์์ํ์ฌ Hidden Layer(์๋์ธต)์ ๊ฑฐ์ณ..
๐ฅ๏ธ Deep_Learning (Basic)
์ด๋ฒ๊ธ์์๋ ๋จ์ํ Layer ๋ถํฐ ํ๋ฒ ๊ตฌํํด ๋ณด๊ฒ ์ต๋๋ค. ์์ ๊ธ์์๋ณธ ๊ณ์ฐ ๊ทธ๋ํ์ ๊ณฑ์
๋
ธ๋๋ฅผ 'MultiLayer', ๋ง์
๋
ธ๋๋ฅผ 'AddLayer'๋ผ๋ ์ด๋ฆ์ผ๋ก ๊ตฌํํฉ๋๋ค. ๊ณฑ์
๊ณ์ธต ๋ชจ๋ ๊ณ์ธต์ forward()์ backward()๋ผ๋ ๊ณตํต์ Method(์ธํฐํ์ด์ค)๋ฅผ ๊ฐ๋๋ก ๊ตฌํํฉ๋๋ค. forward()๋ Forward Propagation(์์ ํ), backward()๋ Back propagation(์ญ์ ํ)๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค. ํ๋ฒ ๊ตฌํํด ๋ณด๊ฒ ์ต๋๋ค. # coding: utf-8 class MulLayer: def __init__(self): self.x = None self.y = None # x์ y๋ฅผ ์ธ์๋ผ ๋ฐ๊ณ ๋ ๊ฐ์ ๊ณฑํด์ ๋ฐํ def forward(self, x, y): sel..