SlideShare a Scribd company logo
1 of 22
네 번째 ML
Artificial Neural Network
(ANN)
네 번째 ML : 인공신경망
Source : https://www.youtube.com/watch?v=uXt8qF2Zzfo ,MIT 6.034 Artificial Intelligence 12a: Nueral Nets
by Pyson
인공신경망은 실제 신경회로를 동작 원리 모방하여
유사하게 작동하는 시스템임
Source : http://www.mysearch.org.uk/website1/html/106.Connectionist.html
실제 신경 회로에서는 일정 이상의 자극(Threshold)를
받으면 다음 신경으로 전기 신호를 전달해 줌
by Pyson
유사하게 입력의 합( 𝑖=1
𝑛
𝑥𝑖 𝑤𝑖 ) 이 일정 값(Threshold) 이상일 때
출력을 가지게 되는 시스템을 생각해볼 수 있음
Source : https://towardsdatascience.com/multi-layer-neural-networks-with-sigmoid-function-deep-learning-for-rookies-2-bf464f09eb7f
하나의 신경(a neuron)을 표현해보면,
by Pyson
Activation 함수를 Sigmoid를 도입하여,
신경회로망을 최적화 시킬 수 있음
(Sigmoid 대신 다른 함수도 가능함)
인공신경망 문제를 해결(w,b 최적화) 하기 위해,
수학적으로 Sigmoid라는 함수를 도입
시그모이드(Sigmoid) 함수
σ 𝑧 = 1
1+𝑒−𝑧
Z = 𝑤𝑖 𝑥𝑖 + 𝑏
입력값이 크면 1에
가까운 값을 출력
입력값이 작으면 0에
가까운 값을 출력
by Pyson
f ŷ 가 최소가 될 때, 가장 성능 좋은 시스템을 만들 수 있음
𝑓 ŷ =
1
2N
∗
𝑖=1
𝑛
(𝑦𝑖 − ŷ)2
𝑦𝑖 ∶ 𝑟𝑎𝑤 𝑣𝑎𝑙𝑢𝑒
ŷ ∶ 𝑝𝑟𝑒𝑑𝑖𝑐𝑡 𝑣𝑎𝑙𝑢𝑒,
ŷ =
1
1+𝑒−𝑧 , 𝑧 = 𝑤𝑖 𝑥𝑖 + 𝑏
Error(loss) 함수를 아래와 같이 가정해 보자,
by Pyson
Gradient Descent를 구하기 위해, 계산 결과로부터(뒤에서)
역으로 계산함  역전파법, Backpropagation
Error(loss) 함수를
Gradient Descent로 최적화 시키면,
𝛻 𝑓 =
𝜕𝑓 ŷ
𝜕𝑤
=
𝜕𝑓 ŷ
𝜕𝑧
𝜕𝑧
𝜕𝑤
σ 𝑧 = 1
1+𝑒−𝑧z𝑖 = 𝑤𝑖 𝑥𝑖 + 𝑏
𝜕𝑓 ŷ
𝜕𝑤𝑖
𝜕𝑓 ŷ
𝜕𝑧𝑖
𝜕𝑧
𝜕𝑤𝑖
ŷ
by Pyson
𝜕𝑓 ŷ
𝜕𝑤𝑖
=
𝜕𝑓 ŷ
𝜕𝑧
∗
𝜕𝑧
𝜕𝑤𝑖
,
𝜕𝑓 ŷ
𝜕𝑏
=
𝜕𝑓 ŷ
𝜕𝑧
∗
𝜕𝑧
𝜕𝑏
Error(loss) 함수를
Gradient Descent로 최적화 시키면,
𝛻 𝑓 =
𝜕𝑓 ŷ
𝜕𝑤 𝑖
=
𝜕𝑓 ŷ
𝜕𝑧
𝜕𝑧
𝜕𝑤 𝑖
= −
1
N
∗ 𝑖=1
𝑛
(𝑦𝑖 − ŷ) * σ 𝑧 1 − σ 𝑧 ∗ x
𝜕𝑓 ŷ
𝜕𝑧
=
𝜕
𝜕𝑧
1
2N
∗
𝑖=1
𝑛
(𝑦𝑖 − ŷ)2
=
1
N
∗
𝑖=1
𝑛
(𝑦𝑖 − ŷ)2−1
∗ −
𝜕ŷ
𝜕𝑧
𝜕ŷ
𝜕𝑧
=
𝜕
𝜕𝑧
(
1
1+𝑒−𝑧) =
𝜕
𝜕𝑧
(1 + 𝑒−𝑧
)−1
= (−1)(1 + 𝑒−𝑧
)−2
∗ (−𝑒−𝑧
)
=
𝑒−𝑧
(1+𝑒−𝑧)2
=
1+𝑒−𝑧−1
(1+𝑒−𝑧)2
=
1+𝑒−𝑧
(1+𝑒−𝑧)2
−
1
(1+𝑒−𝑧)2
=
1
1+𝑒−𝑧 −
1
(1+𝑒−𝑧)2
=
1
1+𝑒−𝑧 1 −
1
1+𝑒−𝑧 = σ 𝑧 1 − σ 𝑧 ,
σ 𝑧 = 1
1+𝑒−𝑧 , 𝑧 = 𝑤𝑥 + 𝑏
𝜕𝑧
𝜕𝑤𝑖
=
𝜕
𝜕𝑤𝑖
𝑤𝑖 𝑥 + 𝑏 = 𝑥
by Pyson
w2𝑖+1 = w2𝑖−ࢽ
𝜕𝐶
𝜕w2 𝑖+1
, w1𝑖+1 = w1𝑖- ࢽ
𝜕𝐶
𝜕w 𝑖+1
𝑥0
𝑤1
𝑧1
𝑤2
𝑧2𝑥1 𝑥2
두 개의 신경으로 만들어진
Neural Network가 있다고 가정하면,
𝐶 =
1
2
∗ (𝑦 − 𝑥2 )2
𝜕𝐶
𝜕𝑤2
=
𝜕𝐶
𝜕𝑥2
𝜕𝑥2
𝜕𝑧2
𝜕𝑧2
𝜕𝑤2
= (𝑥2−d) ∗ σ′ 𝑧2 ∗ 𝑥1
𝜕𝐶
𝜕𝑤1
=
𝜕𝐶
𝜕𝑥2
𝜕𝑥2
𝜕𝑧2
𝜕𝑧2
𝜕𝑥1
𝜕𝑥1
𝜕𝑧1
𝜕𝑧1
𝜕𝑤1
= (𝑥2−y) ∗ σ′ 𝑧2 ∗ 𝑤2 ∗ σ′ 𝑧1 ∗ 𝑥0
by Pyson
Input layer node 2 * Hidden Layer node 4 * output layer node 1
로 구성된 신경회로망
예제: XOR 연산자를 ANN으로 구현하기
XOR
Output
[0,1,1,0]
Hidden
Layer
Bias
1
1
Weight
1
Weight
2
X0
X1
X2
INPUT
0 1 0 1
0 0 1 1
by Pyson
Data 수(4) x node 수(4) 만큼 반복 계산하여 x1을 구한다.
첫 번째 입력(X0)에 대한 Layer 1 계산
1
Bias
1
w111
w121
b1
𝒙𝟏 𝟏𝟏
XOR
Output
𝑤111 𝑥011 + 𝑤121 𝑥012 + 𝑏1 = 𝒁𝟏 𝟏𝟏
σ 𝒁𝟏 𝟏𝟏 =
1
1+𝑒−𝑧211
= 𝒙𝟏 𝟏𝟏
𝒁𝟏 𝟏𝟏
𝒙𝟏 𝟏𝟐 𝑤112 𝑥011 + 𝑤122 𝑥012 + 𝑏2 = 𝒁𝟏 𝟏𝟐
σ 𝒁𝟏 𝟏𝟐 = 𝒙𝟏 𝟏𝟐
𝒙𝟏 𝟏𝟑
𝒙𝟏 𝟏𝟒
X0
X1
𝒙𝟏 𝟐𝟏
𝒙𝟏 𝟐𝟐
𝒙𝟏 𝟐𝟑
𝒙𝟏 𝟐𝟒
𝒙𝟏 𝟑𝟏
𝒙𝟏 𝟑𝟐
𝒙𝟏 𝟑𝟑
𝒙𝟏 𝟑𝟒
𝒙𝟏 𝟒𝟏
𝒙𝟏 𝟒𝟐
𝒙𝟏 𝟒𝟑
𝒙𝟏 𝟒𝟒
.
.
.
INPUT
𝑥011 𝑥021 𝑥031 𝑥041
𝑥012 𝑥022 𝑥032 𝑥042
0 1 0 1
0 0 1 1
by Pyson
z1 = 𝑤1 × 𝑥0 (4𝑋4 𝑚𝑎𝑡𝑟𝑖𝑥)
𝑥1 = σ 𝑧1 (4𝑋4 𝑚𝑎𝑡𝑟𝑖𝑥)
w1 =
𝑤1
11 𝑤1
21 𝑏1
𝑤1
12 𝑤1
22 𝑏2
𝑤1
13 𝑤1
23 𝑏3
𝑤1
14 𝑤1
24 𝑏4
𝑥0 =
𝑥011 𝑥021 𝑥031
𝑥012 𝑥022 𝑥032
1 1 1
𝑥041
𝑥042
1
=
0 1 0
0 0 1
1 1 1
1
1
1
z1 = 𝑤1 × 𝑥0
(4 x 3 ) * (3 x 4) => (4 x 4)
z1 =
𝑤1
11 𝑤1
21 𝑏1
𝑤1
12 𝑤1
22 𝑏2
𝑤1
13 𝑤1
23 𝑏3
𝑤1
14 𝑤12
4 𝑏4
×
𝑥011 𝑥021 𝑥031
𝑥012 𝑥022 𝑥032
1 1 1
𝑥041
𝑥042
1
=
𝑤111 𝑥011 + 𝑤121 𝑥012 + 𝑏1 ⋯ 𝑤111 𝑥041 + 𝑤121 𝑥042 + 𝑏1
⋮ ⋱ ⋮
𝑤114 𝑥011 + 𝑤124 𝑥012 + 𝑏4 ⋯ 𝑤114 𝑥041 + 𝑤124 𝑥042 + 𝑏4
Matrix로 하나씩 계산해보면,
𝑥1 = σ 𝑧1
(4x4 matrix)
by Pyson
Data 수(4) x node 수(1) 만큼 반복 계산하여 x2을 구한다.
두 번째 입력(X1)에 대한 Layer 2 계산
w21
w22
w23
w24
𝑤21 𝑥111 + 𝑤22 𝑥112 + 𝑤23 𝑥113 + 𝑤24 𝑥114 = 𝒁𝟐 𝟏
1
1 + 𝑒−𝑧21
= 𝒙𝟐 𝟏
XOR
Output
𝑥112
𝑥113
𝑥114
𝑥111
𝑤21 𝑥121 + 𝑤22 𝑥122 + 𝑤23 𝑥123 + 𝑤24 𝑥124 = 𝒁𝟐 𝟐
1
1 + 𝑒−𝑧22
= 𝒙𝟐 𝟐
𝑥21
𝑥22
𝑥23
𝑥24
X1
X2
by Pyson
z2 = 𝑤2 × 𝑥1 (1𝑋4 𝑚𝑎𝑡𝑟𝑖𝑥)
𝑥2 = σ 𝑧2 (1𝑋4 𝑚𝑎𝑡𝑟𝑖𝑥)
Matrix로 하나씩 계산해보면,
𝑥1 =
𝑥111 𝑥121 𝑥131
𝑥112 𝑥122 𝑥132
𝑥113 𝑥123 𝑥133
𝑥114 𝑥124 𝑥134
𝑥141
𝑥142
𝑥143
𝑥144
w2 = 𝑤21 𝑤22 𝑤23 𝑤24
z2 = 𝑤2 × 𝑥1
(1 x 4 ) * (4 x 4) => (1 x 4)
z2 = 𝑤21 𝑤22 𝑤23 𝑤24 ×
𝑥111 𝑥121 𝑥131
𝑥112 𝑥122 𝑥132
𝑥113 𝑥123 𝑥133
𝑥114 𝑥124 𝑥134
𝑥141
𝑥142
𝑥143
𝑥144
= 𝑤21 𝑥111 + 𝑤22 𝑥112 + 𝑤23 𝑥113 + 𝑤24 𝑥114 … 𝑤21 𝑥141 + 𝑤22 𝑥142 + 𝑤23 𝑥113 + 𝑤24 𝑥11
= 𝑧21 𝑧22 𝑧23 𝑧24
𝑥2 = σ 𝑧21 σ(𝑧22 ) σ(𝑧23 ) σ(𝑧24 )
(1x4 matrix)
by Pyson
w2𝑖+1 = w2𝑖−ࢽ
𝜕𝐶
𝜕w2 𝑖+1
, w1𝑖+1 = w1𝑖- ࢽ
𝜕𝐶
𝜕w 𝑖+1
𝑥0
𝑤1
𝑧1
𝑤2
𝑧2𝑥1 𝑥2
Matrix로 계산을 하게 되면,
𝐶 =
1
2
(𝑦 − 𝑥2 )2
𝜕𝐶
𝜕𝑤2
=
𝜕𝐶
𝜕𝑥2
𝜕𝑥2
𝜕𝑧2
𝜕𝑧2
𝜕𝑤2
= [(𝑥2−y) o σ′ 𝑧2 ] 𝑥1
𝑇 = ᅊ2 𝑥1
𝑇 (ᅊ2 = (𝑥2−y) o σ′ 𝑧2 )
𝜕𝐶
𝜕𝑤1
=
𝜕𝐶
𝜕𝑥2
𝜕𝑥2
𝜕𝑧2
𝜕𝑧2
𝜕𝑥1
𝜕𝑥1
𝜕𝑧1
𝜕𝑧1
𝜕𝑤1
= [𝑤2
𝑇
ᅊ2o σ′ 𝑧1 ] 𝑥0
𝑇
= ᅊ1 𝑥0
𝑇
https://en.wikipedia.org/wiki/Hadamard_product_(matrices)
by Pyson
# input, output(desire) data를 정한
다
# 𝛾, λ, 학습횟수를 정한다.
# w 값을 초기화 한다
# Gradient descent 함수를 구한다
# 루프를 반복하면서 w값을 업데이트 한다.
# 결과를 출력한다.
Pseudo Code
by Pyson
코딩 시간 !!!
by Pyson
시각화 자료1
http://www.emergentmind.com/neural-network
시각화 자료2
http://playground.tensorflow.org/
by Pyson
중간 노드의 값들을 보면 입력 이미지들의 특징들이 보임
(얼굴 윤곽, 눈, 코, 입, 얼굴 전체 등)
Deep learning
by Pyson
Deep learning
by Pyson
Deep Learning은 Machine Learning의 한 종류지만,
많은 데이터와, Computing power를 이용하여,
기존 ML을 능가하는 성능을 보여줌
Machine Learning vs Deep Learning
by Pyson
이번 스터디에서 배운것들
SVM
by Pyson
신경회로망
-끝-
Artificial Neural Network
(ANN)
- 끝 -

More Related Content

What's hot

MNIST for ML beginners
MNIST for ML beginnersMNIST for ML beginners
MNIST for ML beginners홍배 김
 
05. k means clustering ( k-means 클러스터링)
05. k means clustering ( k-means 클러스터링)05. k means clustering ( k-means 클러스터링)
05. k means clustering ( k-means 클러스터링)Jeonghun Yoon
 
Flow based generative models
Flow based generative modelsFlow based generative models
Flow based generative models수철 박
 
08. spectal clustering
08. spectal clustering08. spectal clustering
08. spectal clusteringJeonghun Yoon
 
Lecture 2: Supervised Learning
Lecture 2: Supervised LearningLecture 2: Supervised Learning
Lecture 2: Supervised LearningSang Jun Lee
 
Neural network (perceptron)
Neural network (perceptron)Neural network (perceptron)
Neural network (perceptron)Jeonghun Yoon
 
세그먼트 트리 느리게 업데이트하기 - Sogang ICPC Team, 2020 Winter
세그먼트 트리 느리게 업데이트하기 - Sogang ICPC Team, 2020 Winter세그먼트 트리 느리게 업데이트하기 - Sogang ICPC Team, 2020 Winter
세그먼트 트리 느리게 업데이트하기 - Sogang ICPC Team, 2020 WinterSuhyun Park
 
Lecture 4: Neural Networks I
Lecture 4: Neural Networks ILecture 4: Neural Networks I
Lecture 4: Neural Networks ISang Jun Lee
 
Reinforcement learning v0.5
Reinforcement learning v0.5Reinforcement learning v0.5
Reinforcement learning v0.5SANG WON PARK
 
자바스크립트의 암묵적인 강제형변환과 타입캐스팅
자바스크립트의 암묵적인 강제형변환과 타입캐스팅자바스크립트의 암묵적인 강제형변환과 타입캐스팅
자바스크립트의 암묵적인 강제형변환과 타입캐스팅Junki Kim
 
딥러닝기본-신경망기초
딥러닝기본-신경망기초딥러닝기본-신경망기초
딥러닝기본-신경망기초jaypi Ko
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016Taehoon Kim
 
확통 회귀분석
확통 회귀분석확통 회귀분석
확통 회귀분석jaypi Ko
 
하스켈 성능 튜닝
하스켈 성능 튜닝하스켈 성능 튜닝
하스켈 성능 튜닝민석 이
 

What's hot (17)

MNIST for ML beginners
MNIST for ML beginnersMNIST for ML beginners
MNIST for ML beginners
 
05. k means clustering ( k-means 클러스터링)
05. k means clustering ( k-means 클러스터링)05. k means clustering ( k-means 클러스터링)
05. k means clustering ( k-means 클러스터링)
 
Flow based generative models
Flow based generative modelsFlow based generative models
Flow based generative models
 
08. spectal clustering
08. spectal clustering08. spectal clustering
08. spectal clustering
 
Linear algebra
Linear algebraLinear algebra
Linear algebra
 
SVM
SVMSVM
SVM
 
Lecture 2: Supervised Learning
Lecture 2: Supervised LearningLecture 2: Supervised Learning
Lecture 2: Supervised Learning
 
Neural network (perceptron)
Neural network (perceptron)Neural network (perceptron)
Neural network (perceptron)
 
세그먼트 트리 느리게 업데이트하기 - Sogang ICPC Team, 2020 Winter
세그먼트 트리 느리게 업데이트하기 - Sogang ICPC Team, 2020 Winter세그먼트 트리 느리게 업데이트하기 - Sogang ICPC Team, 2020 Winter
세그먼트 트리 느리게 업데이트하기 - Sogang ICPC Team, 2020 Winter
 
Lecture 4: Neural Networks I
Lecture 4: Neural Networks ILecture 4: Neural Networks I
Lecture 4: Neural Networks I
 
Reinforcement learning v0.5
Reinforcement learning v0.5Reinforcement learning v0.5
Reinforcement learning v0.5
 
자바스크립트의 암묵적인 강제형변환과 타입캐스팅
자바스크립트의 암묵적인 강제형변환과 타입캐스팅자바스크립트의 암묵적인 강제형변환과 타입캐스팅
자바스크립트의 암묵적인 강제형변환과 타입캐스팅
 
딥러닝기본-신경망기초
딥러닝기본-신경망기초딥러닝기본-신경망기초
딥러닝기본-신경망기초
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
 
확통 회귀분석
확통 회귀분석확통 회귀분석
확통 회귀분석
 
하스켈 성능 튜닝
하스켈 성능 튜닝하스켈 성능 튜닝
하스켈 성능 튜닝
 
R_datamining
R_dataminingR_datamining
R_datamining
 

Similar to Python Machine Learning - ML04 Artificial Neural Network(인공신경망)

Code로 이해하는 RNN
Code로 이해하는 RNNCode로 이해하는 RNN
Code로 이해하는 RNNSANG WON PARK
 
해커에게 전해들은 머신러닝 #3
해커에게 전해들은 머신러닝 #3해커에게 전해들은 머신러닝 #3
해커에게 전해들은 머신러닝 #3Haesun Park
 
neural network 기초
neural network 기초neural network 기초
neural network 기초Dea-hwan Ki
 
2012-12-25 사조사2급실기-공식
2012-12-25 사조사2급실기-공식2012-12-25 사조사2급실기-공식
2012-12-25 사조사2급실기-공식Seok-kyu Kong 공석규
 
Random walk, brownian motion, black scholes equation
Random walk, brownian motion, black scholes equationRandom walk, brownian motion, black scholes equation
Random walk, brownian motion, black scholes equation창호 손
 
선형대수 08. 선형 변환 (Linear Transformation)
선형대수 08. 선형 변환 (Linear Transformation)선형대수 08. 선형 변환 (Linear Transformation)
선형대수 08. 선형 변환 (Linear Transformation)AHRA CHO
 
Linear algebra.pptx
Linear algebra.pptxLinear algebra.pptx
Linear algebra.pptxGeonWooYoo1
 

Similar to Python Machine Learning - ML04 Artificial Neural Network(인공신경망) (10)

DL from scratch(1~3)
DL from scratch(1~3)DL from scratch(1~3)
DL from scratch(1~3)
 
Cnn 강의
Cnn 강의Cnn 강의
Cnn 강의
 
Code로 이해하는 RNN
Code로 이해하는 RNNCode로 이해하는 RNN
Code로 이해하는 RNN
 
해커에게 전해들은 머신러닝 #3
해커에게 전해들은 머신러닝 #3해커에게 전해들은 머신러닝 #3
해커에게 전해들은 머신러닝 #3
 
neural network 기초
neural network 기초neural network 기초
neural network 기초
 
Super resolution
Super resolutionSuper resolution
Super resolution
 
2012-12-25 사조사2급실기-공식
2012-12-25 사조사2급실기-공식2012-12-25 사조사2급실기-공식
2012-12-25 사조사2급실기-공식
 
Random walk, brownian motion, black scholes equation
Random walk, brownian motion, black scholes equationRandom walk, brownian motion, black scholes equation
Random walk, brownian motion, black scholes equation
 
선형대수 08. 선형 변환 (Linear Transformation)
선형대수 08. 선형 변환 (Linear Transformation)선형대수 08. 선형 변환 (Linear Transformation)
선형대수 08. 선형 변환 (Linear Transformation)
 
Linear algebra.pptx
Linear algebra.pptxLinear algebra.pptx
Linear algebra.pptx
 

Python Machine Learning - ML04 Artificial Neural Network(인공신경망)

  • 1. 네 번째 ML Artificial Neural Network (ANN) 네 번째 ML : 인공신경망 Source : https://www.youtube.com/watch?v=uXt8qF2Zzfo ,MIT 6.034 Artificial Intelligence 12a: Nueral Nets
  • 2. by Pyson 인공신경망은 실제 신경회로를 동작 원리 모방하여 유사하게 작동하는 시스템임 Source : http://www.mysearch.org.uk/website1/html/106.Connectionist.html 실제 신경 회로에서는 일정 이상의 자극(Threshold)를 받으면 다음 신경으로 전기 신호를 전달해 줌
  • 3. by Pyson 유사하게 입력의 합( 𝑖=1 𝑛 𝑥𝑖 𝑤𝑖 ) 이 일정 값(Threshold) 이상일 때 출력을 가지게 되는 시스템을 생각해볼 수 있음 Source : https://towardsdatascience.com/multi-layer-neural-networks-with-sigmoid-function-deep-learning-for-rookies-2-bf464f09eb7f 하나의 신경(a neuron)을 표현해보면,
  • 4. by Pyson Activation 함수를 Sigmoid를 도입하여, 신경회로망을 최적화 시킬 수 있음 (Sigmoid 대신 다른 함수도 가능함) 인공신경망 문제를 해결(w,b 최적화) 하기 위해, 수학적으로 Sigmoid라는 함수를 도입 시그모이드(Sigmoid) 함수 σ 𝑧 = 1 1+𝑒−𝑧 Z = 𝑤𝑖 𝑥𝑖 + 𝑏 입력값이 크면 1에 가까운 값을 출력 입력값이 작으면 0에 가까운 값을 출력
  • 5. by Pyson f ŷ 가 최소가 될 때, 가장 성능 좋은 시스템을 만들 수 있음 𝑓 ŷ = 1 2N ∗ 𝑖=1 𝑛 (𝑦𝑖 − ŷ)2 𝑦𝑖 ∶ 𝑟𝑎𝑤 𝑣𝑎𝑙𝑢𝑒 ŷ ∶ 𝑝𝑟𝑒𝑑𝑖𝑐𝑡 𝑣𝑎𝑙𝑢𝑒, ŷ = 1 1+𝑒−𝑧 , 𝑧 = 𝑤𝑖 𝑥𝑖 + 𝑏 Error(loss) 함수를 아래와 같이 가정해 보자,
  • 6. by Pyson Gradient Descent를 구하기 위해, 계산 결과로부터(뒤에서) 역으로 계산함  역전파법, Backpropagation Error(loss) 함수를 Gradient Descent로 최적화 시키면, 𝛻 𝑓 = 𝜕𝑓 ŷ 𝜕𝑤 = 𝜕𝑓 ŷ 𝜕𝑧 𝜕𝑧 𝜕𝑤 σ 𝑧 = 1 1+𝑒−𝑧z𝑖 = 𝑤𝑖 𝑥𝑖 + 𝑏 𝜕𝑓 ŷ 𝜕𝑤𝑖 𝜕𝑓 ŷ 𝜕𝑧𝑖 𝜕𝑧 𝜕𝑤𝑖 ŷ
  • 7. by Pyson 𝜕𝑓 ŷ 𝜕𝑤𝑖 = 𝜕𝑓 ŷ 𝜕𝑧 ∗ 𝜕𝑧 𝜕𝑤𝑖 , 𝜕𝑓 ŷ 𝜕𝑏 = 𝜕𝑓 ŷ 𝜕𝑧 ∗ 𝜕𝑧 𝜕𝑏 Error(loss) 함수를 Gradient Descent로 최적화 시키면, 𝛻 𝑓 = 𝜕𝑓 ŷ 𝜕𝑤 𝑖 = 𝜕𝑓 ŷ 𝜕𝑧 𝜕𝑧 𝜕𝑤 𝑖 = − 1 N ∗ 𝑖=1 𝑛 (𝑦𝑖 − ŷ) * σ 𝑧 1 − σ 𝑧 ∗ x 𝜕𝑓 ŷ 𝜕𝑧 = 𝜕 𝜕𝑧 1 2N ∗ 𝑖=1 𝑛 (𝑦𝑖 − ŷ)2 = 1 N ∗ 𝑖=1 𝑛 (𝑦𝑖 − ŷ)2−1 ∗ − 𝜕ŷ 𝜕𝑧 𝜕ŷ 𝜕𝑧 = 𝜕 𝜕𝑧 ( 1 1+𝑒−𝑧) = 𝜕 𝜕𝑧 (1 + 𝑒−𝑧 )−1 = (−1)(1 + 𝑒−𝑧 )−2 ∗ (−𝑒−𝑧 ) = 𝑒−𝑧 (1+𝑒−𝑧)2 = 1+𝑒−𝑧−1 (1+𝑒−𝑧)2 = 1+𝑒−𝑧 (1+𝑒−𝑧)2 − 1 (1+𝑒−𝑧)2 = 1 1+𝑒−𝑧 − 1 (1+𝑒−𝑧)2 = 1 1+𝑒−𝑧 1 − 1 1+𝑒−𝑧 = σ 𝑧 1 − σ 𝑧 , σ 𝑧 = 1 1+𝑒−𝑧 , 𝑧 = 𝑤𝑥 + 𝑏 𝜕𝑧 𝜕𝑤𝑖 = 𝜕 𝜕𝑤𝑖 𝑤𝑖 𝑥 + 𝑏 = 𝑥
  • 8. by Pyson w2𝑖+1 = w2𝑖−ࢽ 𝜕𝐶 𝜕w2 𝑖+1 , w1𝑖+1 = w1𝑖- ࢽ 𝜕𝐶 𝜕w 𝑖+1 𝑥0 𝑤1 𝑧1 𝑤2 𝑧2𝑥1 𝑥2 두 개의 신경으로 만들어진 Neural Network가 있다고 가정하면, 𝐶 = 1 2 ∗ (𝑦 − 𝑥2 )2 𝜕𝐶 𝜕𝑤2 = 𝜕𝐶 𝜕𝑥2 𝜕𝑥2 𝜕𝑧2 𝜕𝑧2 𝜕𝑤2 = (𝑥2−d) ∗ σ′ 𝑧2 ∗ 𝑥1 𝜕𝐶 𝜕𝑤1 = 𝜕𝐶 𝜕𝑥2 𝜕𝑥2 𝜕𝑧2 𝜕𝑧2 𝜕𝑥1 𝜕𝑥1 𝜕𝑧1 𝜕𝑧1 𝜕𝑤1 = (𝑥2−y) ∗ σ′ 𝑧2 ∗ 𝑤2 ∗ σ′ 𝑧1 ∗ 𝑥0
  • 9. by Pyson Input layer node 2 * Hidden Layer node 4 * output layer node 1 로 구성된 신경회로망 예제: XOR 연산자를 ANN으로 구현하기 XOR Output [0,1,1,0] Hidden Layer Bias 1 1 Weight 1 Weight 2 X0 X1 X2 INPUT 0 1 0 1 0 0 1 1
  • 10. by Pyson Data 수(4) x node 수(4) 만큼 반복 계산하여 x1을 구한다. 첫 번째 입력(X0)에 대한 Layer 1 계산 1 Bias 1 w111 w121 b1 𝒙𝟏 𝟏𝟏 XOR Output 𝑤111 𝑥011 + 𝑤121 𝑥012 + 𝑏1 = 𝒁𝟏 𝟏𝟏 σ 𝒁𝟏 𝟏𝟏 = 1 1+𝑒−𝑧211 = 𝒙𝟏 𝟏𝟏 𝒁𝟏 𝟏𝟏 𝒙𝟏 𝟏𝟐 𝑤112 𝑥011 + 𝑤122 𝑥012 + 𝑏2 = 𝒁𝟏 𝟏𝟐 σ 𝒁𝟏 𝟏𝟐 = 𝒙𝟏 𝟏𝟐 𝒙𝟏 𝟏𝟑 𝒙𝟏 𝟏𝟒 X0 X1 𝒙𝟏 𝟐𝟏 𝒙𝟏 𝟐𝟐 𝒙𝟏 𝟐𝟑 𝒙𝟏 𝟐𝟒 𝒙𝟏 𝟑𝟏 𝒙𝟏 𝟑𝟐 𝒙𝟏 𝟑𝟑 𝒙𝟏 𝟑𝟒 𝒙𝟏 𝟒𝟏 𝒙𝟏 𝟒𝟐 𝒙𝟏 𝟒𝟑 𝒙𝟏 𝟒𝟒 . . . INPUT 𝑥011 𝑥021 𝑥031 𝑥041 𝑥012 𝑥022 𝑥032 𝑥042 0 1 0 1 0 0 1 1
  • 11. by Pyson z1 = 𝑤1 × 𝑥0 (4𝑋4 𝑚𝑎𝑡𝑟𝑖𝑥) 𝑥1 = σ 𝑧1 (4𝑋4 𝑚𝑎𝑡𝑟𝑖𝑥) w1 = 𝑤1 11 𝑤1 21 𝑏1 𝑤1 12 𝑤1 22 𝑏2 𝑤1 13 𝑤1 23 𝑏3 𝑤1 14 𝑤1 24 𝑏4 𝑥0 = 𝑥011 𝑥021 𝑥031 𝑥012 𝑥022 𝑥032 1 1 1 𝑥041 𝑥042 1 = 0 1 0 0 0 1 1 1 1 1 1 1 z1 = 𝑤1 × 𝑥0 (4 x 3 ) * (3 x 4) => (4 x 4) z1 = 𝑤1 11 𝑤1 21 𝑏1 𝑤1 12 𝑤1 22 𝑏2 𝑤1 13 𝑤1 23 𝑏3 𝑤1 14 𝑤12 4 𝑏4 × 𝑥011 𝑥021 𝑥031 𝑥012 𝑥022 𝑥032 1 1 1 𝑥041 𝑥042 1 = 𝑤111 𝑥011 + 𝑤121 𝑥012 + 𝑏1 ⋯ 𝑤111 𝑥041 + 𝑤121 𝑥042 + 𝑏1 ⋮ ⋱ ⋮ 𝑤114 𝑥011 + 𝑤124 𝑥012 + 𝑏4 ⋯ 𝑤114 𝑥041 + 𝑤124 𝑥042 + 𝑏4 Matrix로 하나씩 계산해보면, 𝑥1 = σ 𝑧1 (4x4 matrix)
  • 12. by Pyson Data 수(4) x node 수(1) 만큼 반복 계산하여 x2을 구한다. 두 번째 입력(X1)에 대한 Layer 2 계산 w21 w22 w23 w24 𝑤21 𝑥111 + 𝑤22 𝑥112 + 𝑤23 𝑥113 + 𝑤24 𝑥114 = 𝒁𝟐 𝟏 1 1 + 𝑒−𝑧21 = 𝒙𝟐 𝟏 XOR Output 𝑥112 𝑥113 𝑥114 𝑥111 𝑤21 𝑥121 + 𝑤22 𝑥122 + 𝑤23 𝑥123 + 𝑤24 𝑥124 = 𝒁𝟐 𝟐 1 1 + 𝑒−𝑧22 = 𝒙𝟐 𝟐 𝑥21 𝑥22 𝑥23 𝑥24 X1 X2
  • 13. by Pyson z2 = 𝑤2 × 𝑥1 (1𝑋4 𝑚𝑎𝑡𝑟𝑖𝑥) 𝑥2 = σ 𝑧2 (1𝑋4 𝑚𝑎𝑡𝑟𝑖𝑥) Matrix로 하나씩 계산해보면, 𝑥1 = 𝑥111 𝑥121 𝑥131 𝑥112 𝑥122 𝑥132 𝑥113 𝑥123 𝑥133 𝑥114 𝑥124 𝑥134 𝑥141 𝑥142 𝑥143 𝑥144 w2 = 𝑤21 𝑤22 𝑤23 𝑤24 z2 = 𝑤2 × 𝑥1 (1 x 4 ) * (4 x 4) => (1 x 4) z2 = 𝑤21 𝑤22 𝑤23 𝑤24 × 𝑥111 𝑥121 𝑥131 𝑥112 𝑥122 𝑥132 𝑥113 𝑥123 𝑥133 𝑥114 𝑥124 𝑥134 𝑥141 𝑥142 𝑥143 𝑥144 = 𝑤21 𝑥111 + 𝑤22 𝑥112 + 𝑤23 𝑥113 + 𝑤24 𝑥114 … 𝑤21 𝑥141 + 𝑤22 𝑥142 + 𝑤23 𝑥113 + 𝑤24 𝑥11 = 𝑧21 𝑧22 𝑧23 𝑧24 𝑥2 = σ 𝑧21 σ(𝑧22 ) σ(𝑧23 ) σ(𝑧24 ) (1x4 matrix)
  • 14. by Pyson w2𝑖+1 = w2𝑖−ࢽ 𝜕𝐶 𝜕w2 𝑖+1 , w1𝑖+1 = w1𝑖- ࢽ 𝜕𝐶 𝜕w 𝑖+1 𝑥0 𝑤1 𝑧1 𝑤2 𝑧2𝑥1 𝑥2 Matrix로 계산을 하게 되면, 𝐶 = 1 2 (𝑦 − 𝑥2 )2 𝜕𝐶 𝜕𝑤2 = 𝜕𝐶 𝜕𝑥2 𝜕𝑥2 𝜕𝑧2 𝜕𝑧2 𝜕𝑤2 = [(𝑥2−y) o σ′ 𝑧2 ] 𝑥1 𝑇 = ᅊ2 𝑥1 𝑇 (ᅊ2 = (𝑥2−y) o σ′ 𝑧2 ) 𝜕𝐶 𝜕𝑤1 = 𝜕𝐶 𝜕𝑥2 𝜕𝑥2 𝜕𝑧2 𝜕𝑧2 𝜕𝑥1 𝜕𝑥1 𝜕𝑧1 𝜕𝑧1 𝜕𝑤1 = [𝑤2 𝑇 ᅊ2o σ′ 𝑧1 ] 𝑥0 𝑇 = ᅊ1 𝑥0 𝑇 https://en.wikipedia.org/wiki/Hadamard_product_(matrices)
  • 15. by Pyson # input, output(desire) data를 정한 다 # 𝛾, λ, 학습횟수를 정한다. # w 값을 초기화 한다 # Gradient descent 함수를 구한다 # 루프를 반복하면서 w값을 업데이트 한다. # 결과를 출력한다. Pseudo Code
  • 18. by Pyson 중간 노드의 값들을 보면 입력 이미지들의 특징들이 보임 (얼굴 윤곽, 눈, 코, 입, 얼굴 전체 등) Deep learning
  • 20. by Pyson Deep Learning은 Machine Learning의 한 종류지만, 많은 데이터와, Computing power를 이용하여, 기존 ML을 능가하는 성능을 보여줌 Machine Learning vs Deep Learning