๐ฅ๏ธ Deep Learning
์ด๋ฒ๊ธ์์๋ ๋จ์ํ 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..
๐ฅ๏ธ Deep Learning
Backpropagation (์ค์ฐจ์ญ์ ํ๋ฒ) Backpropagation(์ค์ฐจ์ญ์ ํ๋ฒ)์ Weight Parameter(๊ฐ์ค์น ๋งค๊ฐ๋ณ์)์ Gradient(๊ธฐ์ธ๊ธฐ)๋ฅผ ํจ์จ์ ์ผ๋ก ๊ณ์ฐํ๋ ๋ฐฉ๋ฒ์
๋๋ค. Backpropagation(์ค์ฐจ์ญ์ ํ๋ฒ)์ ์ดํดํ๋ ๋ฐฉ๋ฒ์ 2๊ฐ์ง๊ฐ ์์ต๋๋ค. ํ๋๋ ์์์ ํตํด์, ๋ค๋ฅธ ํ๋๋ ๊ณ์ฐ ๊ทธ๋ํ๋ฅผ ํตํ๊ฒ์
๋๋ค. ๋ณดํต์ ์์์ ํตํ์ง๋ง, ์ด๋ฒ์๋ ๊ณ์ฐ ๊ทธ๋ํ๋ก ์ฌ์ฉํด์ '์๊ฐ์ '์ผ๋ก ํ๋ฒ ์ดํดํด ๋ณด๊ฒ ์ต๋๋ค. ๊ณ์ฐ ๊ทธ๋ํ ๊ณ์ฐ ๊ณผ์ ์ ๊ทธ๋ํ๋ก ํ๋ฒ ๋ํ๋ด ๋ณด๊ฒ ์ต๋๋ค. ์ฌ๊ธฐ์์ ๊ทธ๋ํ๋ ์์๋ ๊ทธ๋ํ ์๋ฃ๊ตฌ์กฐ๋ก, ๋ณต์์ Node, Edge๋ก ํํ๋ฉ๋๋ค. ํ๋ฒ ๋ฌธ์ ๋ฅผ ๋ณด๋ฉด์ ์ดํดํด ๋ณด๊ฒ ์ต๋๋ค. Q.1 ํ๋น ๊ตฐ์ ์ํผ์์ 1๊ฐ์ 100์์ธ ์ฌ๊ณผ๋ฅผ 2๊ฐ ์์ต๋๋ค. ์ด๋ ์ง๋ถ ๊ธ์ก์ ๊ตฌ..
๐ฅ๏ธ Deep Learning
Gradient (๊ธฐ์ธ๊ธฐ) ๋ง์ฝ์ x0, x1์ ํธ๋ฏธ๋ถ์ ๋์์ ๊ณ์ฐํ๊ณ ์ถ๋ค๋ฉด ์ด๋ป๊ฒ ํ ๊น์? ๊ทธ๋ฌ๋ฉด ๋ชจ๋ ํธ๋ฏธ๋ถ์ ๋ฒกํฐ๋ก ์ ๋ฆฌ๋ฅผ ํด์ผ ํ๋๋ฐ, ๊ทธ ์ ๋ฆฌํ๊ฒ์ Grdient(๊ธฐ์ธ๊ธฐ)๋ผ๊ณ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด์ ์๋์ ์ฝ๋์ ๊ฐ์ด ๊ตฌํํ ์ ์์ต๋๋ค. def numerical_gradient(f, x): h = 1e-4 grad = np.zeros_like(x) # x์ ํ์์ด ๊ฐ์ ๋ฐฐ์ด์ ์์ฑ for idx in range(x.size): tmp_val = x[idx] # f(x+h) ๊ณ์ฐ x[idx] = tmp_val + h fxh1 = f(x) # f(x-h) ๊ณ์ฐ x[idx] = tmp_val - h fxh2 = f(x) grad[idx] = (fxh1 - fxh2) / (2*h) x[idx] = ..
๐ฅ๏ธ Deep Learning
์ด๋ฒ์๋ Neural Network(์ ๊ฒฝ๋ง) ํ์ต์ ๋ํ์ฌ ์ค๋ช
ํ๊ณ Pyhon์์ Mnist Dataset์ ์๊ธ์จ ์ซ์๋ฅผ ํ์ตํ๋ ์ฝ๋๋ฅผ ๊ตฌํํด ๋ณด๊ฒ ์ต๋๋ค. Data ์ฃผ๋ ํ์ต Machine Learning(ML)์ ์ค์ฌ์๋ Data(๋ฐ์ดํฐ)๊ฐ ์กด์ฌํฉ๋๋ค. ๋ฐ์ดํฐ๊ฐ ์ด๋๋ ์ ๊ทผ ๋ฐฉ์ ๋์ ์ฌ๋ ์ค์ฌ ์ ๊ทผ์์ ๋ฒ์ด๋ ์ ์์ต๋๋ค. ๊ทผ๋ฐ, ๋ณดํต ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๊ณ ํ๋ฉด ํจํด์ ์ฐพ์๋ด๊ธฐ ์ํ์ฌ ์ฌ๋์ ์๊ฐ์ ํ๊ณ ๊ฒฐ๋ก ์ ๋์ถํฉ๋๋ค. ๋ค๋ง Machine Learning(๊ธฐ๊ณ ํ์ต)์์๋ ์ฌ๋์ ๊ฐ์
์ ์ต์ํํ๊ณ , ์์งํ ๋ฐ์ดํฐ์ ํจํด์ ์ฐพ์ผ๋ ค๊ณ ์๋ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ Neural Network(์ ๊ฒฝ๋ง) & DL(๋ฅ๋ฌ๋)์ ๊ธฐ์กด Machine Learning(๊ธฐ๊ณ ํ์ต)์์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๋ณด๋ค ์ฌ๋์ ๊ฐ์
์ ๋ฐฐ์ ํ ์..
๐ฅ๏ธ Deep Learning
์ด๋ฒ์๋ Neural Network, ์ ๊ฒฝ๋ง์ ๋ฐํ์ฌ ์์๋ณด๊ฒ ์ต๋๋ค. Neural Network(์ ๊ฒฝ๋ง)์ ์ธ๊ณต์ง๋ฅ, ๋จธ์ ๋ฌ๋์์ ์ฌ์ฉ๋๋ ์ปดํจํ
์์คํ
์ ๋ฐฉ๋ฒ์ค ํ๋์
๋๋ค. ์ธ๊ฐ ๋๋ ๋๋ฌผ์ ๋์ ์๋ ์๋ฌผํ์ ์ ๊ฒฝ๋ง์์ ์๊ฐ์ ๋ฐ์ ์ค๊ณ๋์์ต๋๋ค. ์๋ฌผํ์ ๋ด๋ฐ์ด ์๋ก๊ฐ์ ์ ํธ๋ฅผ ๋ณด๋ด๋ ๋ฐฉ์์ ๋ชจ๋ฐฉํฉ๋๋ค. Perceptron (ํผ์
ํธ๋ก )๊ณผ Neural Network(์ ๊ฒฝ๋ง) Perceptron(ํผ์
ํธ๋ก )๊ณผ Neural Network(์ ๊ฒฝ๋ง)์ ๊ณตํต์ ์ด ๋ง์ต๋๋ค. ๊ทธ๋์ ๋ค๋ฅธ์ ์ ์ค์ ์ผ๋ก ๋ณด๋ฉด์ ์ค๋ช
ํด๋ณด๊ฒ ์ต๋๋ค. ์ ๊ฒธ๋ง๋ฅผ ๊ทธ๋ฆผ์ผ๋ก ๋ํ๋ด๋ฉด ์์ ๊ทธ๋ฆผ์ฒ๋ผ ๋์ต๋๋ค. ๋งจ ์ผ์ชฝ์ Input Layer(์
๋ ฅ์ธต), ์ค๊ฐ์ธต์ Hidden layer(์๋์ธต), ์ค๋ฅธ์ชฝ์ Output Layer(์ถ๋ ฅ์ธต)์ด๋ผ๊ณ ํฉ๋๋ค...
๐ฅ๏ธ Deep Learning
Perceptron(ํผ์
ํธ๋ก ) ์๊ณ ๋ฆฌ์ฆ์ ์ ๊ฒฝ๋ง(๋ฅ๋ฌ๋-DL)์ ๊ธฐ์์ด ๋๋ ์๊ณ ๋ฆฌ์ฆ์
๋๋ค. ๊ทธ๋์ Perceptron(ํผ์
ํธ๋ก )์ ๊ตฌ์กฐ๋ฅผ ๋ฐฐ์ฐ๋๊ฑด ์ ๊ฒฝ๋ง, DL-๋ฅ๋ฌ๋์ ๊ดํ ๊ฐ๋
๋ฐ ์์ด๋์ด๋ฅผ ๋ฐฐ์ฐ๋๋ฐ ๋์์ด ๋ฉ๋๋ค. Perceptron(ํผ์
ํธ๋ก ) ์ด๋? Perceptron(ํผ์
ํธ๋ก )์ ๋ค์์ ์ ํธ๋ฅผ Input(์
๋ ฅ)์ผ๋ก ๋ฐ์ ํ๋์ ์ ํธ๋ฅผ ์ถ๋ ฅํฉ๋๋ค. ์ฌ๊ธฐ์ ์ ํธ๋ ์ ๋ฅ๋ ๊ฐ๋ฌผ์ฒ๋ผ ํ๋ฆ์ด ์๋๊ฒ์ ์๊ฐํ๋ฉด ๋ฉ๋๋ค. Perceptron(ํผ์
ํธ๋ก ) ์ ํธ๋ Flow(ํ๋ฆ)์ ๋ง๋ค๊ณ ์ ๋ณด๋ฅผ ์ ๋ฌํฉ๋๋ค. ๋ค๋ง, ์ ํธ๋ 'ํ๋ฅธ๋ค / ์ ํ๋ฅธ๋ค (1์ด๋ 0)'์ 2๊ฐ์ง ๊ฐ์ ๊ฐ์ง ์ ์์ต๋๋ค. Perceptron(ํผ์
ํธ๋ก )์ ๋์์๋ฆฌ ํ๋ฒ Input(์
๋ ฅ)์ผ๋ก 2๊ฐ์ ์ ํธ๋ฅผ ๋ฐ์ Perceptron์ ์์ ๊ทธ๋ฆผ..
๐ฅ๏ธ Deep Learning
What is Matplotlib? Matplotlib์ ๋ฅ๋ฌ๋ ์คํ์ ํ ๋ ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ ๋ฐ ๋ฐ์ดํฐ๋ฅผ ์๊ฐํ ํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์
๋๋ค. Matplotlib์ ์ฌ์ฉํ๋ฉด ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ, ๋ฐ์ดํฐ ์๊ฐํ๊ฐ ์ฌ์์ง๊ณ , ์ฃผ๋ก ๋ฐ์ดํฐ ๋ถ์์ ํ ๋ ์ฌ์ฉํฉ๋๋ค. ๋ํ์ ์ผ๋ก๋ ์ , ๋ง๋ ๊ทธ๋ํ, ์ฐ์ ๋, ํ์คํ ๊ทธ๋จ ๋ฑ์ ๋ง๋ค์ ์์ต๋๋ค. Matplotlib์ ์ด์ฉํ์ฌ ๊ทธ๋ํ ๊ทธ๋ ค๋ณด๊ธฐ ๊ทธ๋ํ๋ฅผ ๊ทธ๋ฆด๋ ค๋ฉด Matplotlib ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ Pyplot ๋ชจ๋์ ์ด์ฉํฉ๋๋ค. ํ๋ฒ sin(์ฌ์ธ) ํจ์๋ฅผ ๊ทธ๋ฆฌ๋ ์๋ฅผ ํ๋ฒ ์ดํด ๋ณด๊ฒ ์ต๋๋ค. import numpy as np import matplotlib.pyplot as plt # ๋ฐ์ดํฐ ์ค๋น x = np.arange(0, 6, 0.1) # 0๋ถํฐ 6๊น์ง 0.1 ๊ฐ๊ฒฉ์ผ๋ก ์์ฑ y = ..
๐ฅ๏ธ Deep Learning
1. ์ ๊ฒฝ๋ง์ ํ์ต ๊ณผ์ ์ ๊ฒฝ๋ง์ ํ์ต ๊ณผ์ ์ ํฌ๊ฒ 2๊ฐ์ง๊ฐ ์์ต๋๋ค. ์์ ํ(Forward Pass), ์ญ์ ํ(Backward Pass)๊ฐ ์์ต๋๋ค. ๋จผ์ ์ด ํ์ต ๊ณผ์ ์ ๋ฐํ์ฌ ์ค๋ช
์ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. Forward Pass (์์ ํ) Forward Pass (์์ ํ)๋ input(์
๋ ฅ) data๊ฐ ์ ๊ฒฝ๋ง์ ๊ฐ์ธต์ ์ฐจ๋ก๋๋ก ํต๊ณผํ๋ฉด์ ์ต์ข
output ๊น์ง ๋๋ฌํ๋ ๊ณผ์ ์
๋๋ค. ์ด ๊ณผ์ ์ input layer(์
๋ ฅ์ธต)์์ output layer(์ถ๋ ฅ์ธต)๊น์ง ์์ฐจ์ ์ผ๋ก ์ด๋ฃจ์ด์ง๋ฉฐ, ์ต์ข
์ ์ผ๋ก ์์คํจ์ (loss function)์ ํตํด ์์ธก๊ฐ๊ณผ ์ค์ ๊ฐ์ ์ฐจ์ด๋ฅผ ๊ณ์ฐํฉ๋๋ค. ์ด ์ฐจ์ด๋ฅผ ์์ค(loss) or ์ค์ฐจ(Error)๋ผ๊ณ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ์ฐจ์ด๋ ์ ๊ฒฝ๋ง์ ์ฑ๋ฅ์ ์ธก์ ํ๋ ์งํ๊ฐ ๋ฉ๋๋ค. ์ ๋ฆฌํ..
๐ฅ๏ธ Deep Learning
Numpy๊ฐ ๋ญ์์? Python ์์ ๊ณผํ์ ๊ณ์ฐ & ์์น๋ฅผ ๊ณ์ฐํ๊ธฐ ์ํ ํต์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์
๋๋ค. NumPy๋ ๊ณ ์ฑ๋ฅ์ ๋ค์ฐจ์ ๋ฐฐ์ด ๊ฐ์ฒด์ ์ด๋ฅผ ๋ค๋ฃฐ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์์น ๊ณ์ฐ์ ์ํ ๋งค์ฐ ํจ๊ณผ์ ์ธ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ฉฐ, ์ด๋ ๋ฐ์ดํฐ ๋ถ์, ๋จธ์ ๋ฌ๋ ๋ฑ ๋ค์ํ ๋ถ์ผ์์ ์ฌ์ฉ๋ฉ๋๋ค. ๋ฅ๋ฌ๋์ ๊ณต๋ถํ ๋, ๋ฐฐ์ด์ด๋ ํ๋ ฌ์ ์ฌ์ฉํ ๋๊ฐ ๋ง์๋ฐ, numpy๋ฅผ ์ด์ฉํ๋ฉด ์ด ๋ฐฐ์ด์ด๋, ํ๋ ฌ์ ๊ตฌํํ ๋ ๋งค์ฐ ํธ๋ฆฌํฉ๋๋ค. ์ถ๊ฐ ๋ง์์ผ๋ก, ์ฌ๊ธฐ์๋ถํฐ๋ Jupyter Notebook์ ์ด์ฉํ์ฌ ์ฝ๋๋ธ๋ญ์ ์์ฑํ์๊ธฐ ๋๋ฌธ์, python Idle๋ ๋ค๋ฅธ Tool๋ก ์ด์ฉํ์๋ ๋ถ๋ค๊ณผ ๋์ค๋ ํ์์ด ๋ค๋ฅผ์๋ ์์ต๋๋ค. ์ฐธ๊ณ ๋ฐ๋ผ์! Numpy ์ด๋ป๊ฒ ๊ฐ์ ธ์์? numpy๋ ์ผ๋ฐ ํ์ด์ฌ ๋ด์ฅ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์๋๊ฒ์ด ์๋๊ณ , ์ธ..
๐ฅ๏ธ Deep Learning
๋ฅ๋ฌ๋์ ๊ณต๋ถํ๊ธฐ ์ํ์ฌ ํ์ํ ์ค๋น๋ฌผ ๋ฅ๋ฌ๋์ ๊ณต๋ถํ๋ฉด์ ์ต์ํ์ผ๋ก ํ์ํ ์ค๋น๋ฌผ์ด ์๋ค๋ฉด 3๊ฐ์ง๋ฅผ ์ ์ด๋ณผ์ ์์๊ฑฐ ๊ฐ์์. Python 3.X ๋ฒ์ , Numpy Library, Matplotlib Library ์
๋๋ค. Numpy Library Python ์์ ๊ณผํ์ ๊ณ์ฐ & ์์น๋ฅผ ๊ณ์ฐํ๊ธฐ ์ํ ํต์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์
๋๋ค. NumPy๋ ๊ณ ์ฑ๋ฅ์ ๋ค์ฐจ์ ๋ฐฐ์ด ๊ฐ์ฒด์ ์ด๋ฅผ ๋ค๋ฃฐ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์์น ๊ณ์ฐ์ ์ํ ๋งค์ฐ ํจ๊ณผ์ ์ธ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ฉฐ, ์ด๋ ๋ฐ์ดํฐ ๋ถ์, ๋จธ์ ๋ฌ๋ ๋ฑ ๋ค์ํ ๋ถ์ผ์์ ์ฌ์ฉ๋ฉ๋๋ค. Matplotlib Library ๋ฐ์ดํฐ๋ฅผ ์ฐจํธ๋ ํ๋กฏ์ผ๋ก ์๊ฐํํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์
๋๋ค. ๋ผ์ธ ํ๋กฏ, ์ค์บํฐ ํ๋กฏ, ํ์คํ ๊ทธ๋จ ๋ฑ ๋ค์ํ ํ๋กฏ์ ์ง์ํ๋ฉฐ, ๊ทธ๋ํ์ ๋ํ ์์ธํ ์ค์ ์ ํ ์ ์์ต๋..