Artificial Neural Network - Kangwoncs.kangwon.ac.kr/~parkce/seminar/Artificial Neural... ·...
Transcript of Artificial Neural Network - Kangwoncs.kangwon.ac.kr/~parkce/seminar/Artificial Neural... ·...
Intelligent Software Lab.
Artificial Neural Network
박천음
강원대학교
Intelligent Software Lab.
Intelligent Software Lab. 2
Artificial Neural Network
• Input data
• Feed Forward
• Gradient
• Least Square Method
• Back Propagation
Intelligent Software Lab. 3
Input
• Input sentences• Sen1: what movies johnny depp is in?
• Sen2: what movies does johnny depp play in?
• Sen3: who has been married to julia roberts?
• Bag of words(size 16):
• Term vector:
Intelligent Software Lab. 4
Feed Forward
• Net activation (scalar, hidden unit ‘𝑗𝑗’)• input-to-hidden
1) 𝑛𝑛𝑛𝑛𝑡𝑡𝑗𝑗 = �𝑖𝑖=1
𝑑𝑑
𝑥𝑥𝑖𝑖𝑤𝑤𝑗𝑗𝑖𝑖 + 𝑤𝑤𝑗𝑗𝑗 = �𝑖𝑖=𝑗
𝑑𝑑
𝑥𝑥𝑖𝑖𝑤𝑤𝑖𝑖𝑗𝑗 ≡ 𝑤𝑤𝑗𝑗𝑇𝑇𝑥𝑥
• 𝑖𝑖: 𝑖𝑖𝑛𝑛𝑖𝑖𝑖𝑖𝑡𝑡 𝑙𝑙𝑙𝑙𝑙𝑙𝑛𝑛𝑙𝑙, 𝑗𝑗: ℎ𝑖𝑖𝑖𝑖𝑖𝑖𝑛𝑛𝑛𝑛 𝑙𝑙𝑙𝑙𝑙𝑙𝑛𝑛𝑙𝑙, 𝑤𝑤𝑗𝑗𝑖𝑖: 𝑖𝑖 → 𝑗𝑗의 𝑤𝑤𝑛𝑛𝑖𝑖𝑤𝑤ℎ𝑡𝑡• 𝑥𝑥:𝑖𝑖𝑛𝑛𝑖𝑖𝑡𝑡𝑢𝑢(= 𝑛𝑛𝑛𝑛𝑖𝑖𝑛𝑛), 𝑤𝑤:𝑤𝑤𝑛𝑛𝑖𝑖𝑤𝑤ℎ𝑡𝑡• 𝑥𝑥𝑗 = 1, 𝑤𝑤𝑗 = 0~1 (𝑏𝑏𝑖𝑖𝑙𝑙𝑢𝑢 𝑣𝑣𝑙𝑙𝑙𝑙𝑖𝑖𝑛𝑛)
𝑥𝑥𝑖𝑖
𝑥𝑥 𝑤𝑤
Intelligent Software Lab. 5
Feed Forward cont`
• Activation function (non-linear function)
2) 𝑙𝑙𝑗𝑗 = 𝑓𝑓 𝑛𝑛𝑛𝑛𝑡𝑡𝑗𝑗• → 𝑢𝑢𝑤𝑤𝑛𝑛 = 𝑢𝑢𝑖𝑖𝑤𝑤𝑛𝑛𝑖𝑖𝑠𝑠표현 함수 (𝜑𝜑)
3) 𝑓𝑓 𝑛𝑛𝑛𝑛𝑡𝑡 = 𝑢𝑢𝑤𝑤𝑛𝑛(𝑛𝑛𝑛𝑛𝑡𝑡) ≡ � 1, 𝑛𝑛𝑛𝑛𝑡𝑡 ≥ 0−1, 𝑛𝑛𝑛𝑛𝑡𝑡 < 0
𝑥𝑥𝑖𝑖
𝑙𝑙𝑖𝑖
𝑙𝑙𝑖𝑖
𝑓𝑓(𝑛𝑛𝑛𝑛𝑡𝑡𝑗𝑗)
Intelligent Software Lab. 6
Feed Forward cont`
• sgm function
logistic sigmoid
𝑓𝑓 𝑛𝑛𝑛𝑛𝑡𝑡 =1
1 + exp −𝑛𝑛𝑛𝑛𝑡𝑡𝜕𝜕𝑓𝑓 𝑛𝑛𝑛𝑛𝑡𝑡𝜕𝜕𝑛𝑛𝑛𝑛𝑡𝑡 = 𝑓𝑓 𝑛𝑛𝑛𝑛𝑡𝑡 1− 𝑓𝑓 𝑛𝑛𝑛𝑛𝑡𝑡
tanh
𝑓𝑓 𝑛𝑛𝑛𝑛𝑡𝑡 = tanh 𝑛𝑛𝑛𝑛𝑡𝑡 =𝑛𝑛𝑥𝑥 + 𝑛𝑛−𝑥𝑥
𝑛𝑛𝑥𝑥 + 𝑛𝑛−𝑥𝑥
𝑡𝑡𝑙𝑙𝑛𝑛ℎ𝑡 𝑛𝑛𝑛𝑛𝑡𝑡 = 1 − 𝑡𝑡𝑙𝑙𝑛𝑛ℎ𝑡 𝑛𝑛𝑛𝑛𝑡𝑡 2
hard tanh𝑓𝑓 𝑛𝑛𝑛𝑛𝑡𝑡 = 𝐻𝐻𝑙𝑙𝑙𝑙𝑖𝑖Tanh 𝑛𝑛𝑛𝑛𝑡𝑡
𝐻𝐻𝑙𝑙𝑙𝑙𝑖𝑖Tanh 𝑛𝑛𝑛𝑛𝑡𝑡 =−1 𝑖𝑖𝑓𝑓 𝑥𝑥 < −1𝑥𝑥 𝑖𝑖𝑓𝑓 − 1 ≤ 𝑥𝑥 ≤ 11 𝑖𝑖𝑓𝑓 𝑥𝑥 > 1
그림출처: Torch7 Documentation
Intelligent Software Lab. 7
Feed Forward cont`
• sgm function
SoftSign𝑓𝑓 𝑛𝑛𝑛𝑛𝑡𝑡 = 𝑆𝑆𝑛𝑛𝑓𝑓𝑡𝑡𝑆𝑆𝑖𝑖𝑤𝑤𝑛𝑛(𝑛𝑛𝑛𝑛𝑡𝑡)
𝑆𝑆𝑛𝑛𝑓𝑓𝑡𝑡𝑆𝑆𝑖𝑖𝑤𝑤𝑛𝑛 𝑛𝑛𝑛𝑛𝑡𝑡 =𝑙𝑙
1 + 𝑙𝑙
SoftMax𝑓𝑓 𝑛𝑛𝑛𝑛𝑡𝑡 = 𝑆𝑆𝑛𝑛𝑓𝑓𝑡𝑡𝑆𝑆𝑙𝑙𝑥𝑥(𝑛𝑛𝑛𝑛𝑡𝑡)
=exp 𝑛𝑛𝑛𝑛𝑡𝑡𝑖𝑖 − 𝑢𝑢ℎ𝑖𝑖𝑓𝑓𝑡𝑡∑𝑗𝑗 exp(𝑛𝑛𝑛𝑛𝑡𝑡𝑗𝑗 − 𝑢𝑢ℎ𝑖𝑖𝑓𝑓𝑡𝑡)
, 𝑢𝑢ℎ𝑖𝑖𝑓𝑓𝑡𝑡 = max𝑖𝑖(𝑛𝑛𝑛𝑛𝑡𝑡𝑖𝑖)
Rectifier𝑓𝑓 𝑛𝑛𝑛𝑛𝑡𝑡 = 𝑙𝑙𝑛𝑛𝑟𝑟𝑡𝑡 (𝑛𝑛𝑛𝑛𝑡𝑡)
𝑙𝑙𝑛𝑛𝑟𝑟𝑡𝑡 𝑛𝑛𝑛𝑛𝑡𝑡 = max(0,𝑛𝑛𝑛𝑛𝑡𝑡)
𝑠𝑠𝑙𝑙𝑥𝑥 0,𝑛𝑛𝑛𝑛𝑡𝑡 =𝑥𝑥 𝑖𝑖𝑓𝑓 𝑥𝑥 > 0
0.01𝑥𝑥 𝑛𝑛𝑡𝑡ℎ𝑛𝑛𝑙𝑙𝑤𝑤𝑖𝑖𝑢𝑢𝑛𝑛
그림출처: Wikipedia
Intelligent Software Lab. 8
Feed Forward cont`
• output layer (output unit ‘𝑘𝑘’)
• hidden-to-output
4) 𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘 = �𝑗𝑗=1
𝑛𝑛+1
𝑙𝑙𝑖𝑖𝑤𝑤𝑘𝑘𝑗𝑗 + 𝑤𝑤𝑘𝑘𝑗 = �𝑗𝑗=𝑗
𝑛𝑛𝐻𝐻
𝑙𝑙𝑗𝑗𝑤𝑤𝑘𝑘𝑗𝑗 = 𝑤𝑤𝑘𝑘𝑇𝑇𝑙𝑙
• 𝑘𝑘: 𝑛𝑛𝑖𝑖𝑡𝑡𝑖𝑖𝑖𝑖𝑡𝑡 𝑙𝑙𝑙𝑙𝑙𝑙𝑛𝑛𝑙𝑙, 𝑛𝑛𝐻𝐻: 𝑡𝑡ℎ𝑛𝑛 𝑛𝑛𝑖𝑖𝑠𝑠𝑏𝑏𝑛𝑛𝑙𝑙 𝑛𝑛𝑓𝑓 ℎ𝑖𝑖𝑖𝑖𝑖𝑖𝑛𝑛𝑛𝑛 𝑖𝑖𝑛𝑛𝑖𝑖𝑡𝑡𝑢𝑢• 𝑙𝑙𝑗 = 1 𝑏𝑏𝑖𝑖𝑙𝑙𝑢𝑢 𝑣𝑣𝑙𝑙𝑙𝑙𝑖𝑖𝑛𝑛 𝑖𝑖𝑛𝑛 ℎ𝑖𝑖𝑖𝑖𝑖𝑖𝑛𝑛𝑛𝑛
• output unit• 여기도 𝑢𝑢𝑤𝑤𝑛𝑛 . 적용5) 𝑧𝑧𝑘𝑘 = 𝑓𝑓(𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘)
𝑥𝑥𝑖𝑖
𝑙𝑙𝑖𝑖
𝑙𝑙𝑖𝑖𝑧𝑧𝑘𝑘
𝑓𝑓(𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘)
Intelligent Software Lab. 9
Feed Forward cont`
Input value
Emission value
Weight
Activation function
그림출처: Pattern Classification
Intelligent Software Lab. 10
Feed Forward cont`
𝑧𝑧𝑘𝑘 = 𝑙𝑙1 𝐴𝐴𝐴𝐴𝐴𝐴 𝐴𝐴𝑁𝑁𝑁𝑁 𝑙𝑙2 = 𝑥𝑥1 𝑁𝑁𝑂𝑂 𝑥𝑥2 𝐴𝐴𝐴𝐴𝐴𝐴 𝐴𝐴𝑁𝑁𝑁𝑁 𝑥𝑥1 𝐴𝐴𝐴𝐴𝐴𝐴 𝑥𝑥2= 𝑥𝑥1 𝑋𝑋𝑁𝑁𝑂𝑂 𝑥𝑥2
𝑥𝑥1 𝑥𝑥2
𝑙𝑙2𝑙𝑙1
𝑧𝑧𝑘𝑘
그림출처: Pattern Classification
Intelligent Software Lab. 11
Neural Network expression
StructureTypes of
Decision RegionsExclusive-OR
ProblemClasses with
Meshed regionsMost General
Region Shapes
Single-Layer
Two-Layer
Three-Layer
Half PlaneBounded ByHyperplane
Convex OpenOr
Closed Regions
Arbitrary(Complexity
Limited by No.of Nodes)
A
AB
B
A
AB
B
A
AB
B
BA
BA
BA
Intelligent Software Lab. 12
Gradient
• 각 변수로의 일차 편미분 값으로 구성되는 벡터• 벡터: 𝑓𝑓(. )의 값이 가파른 쪽의 방향을 나타냄• 벡터의 크기: 벡터 증가의 기울기를 나타냄
• 어떤 다변수 함수 𝑓𝑓(𝑥𝑥1, 𝑥𝑥2, … , 𝑥𝑥𝑛𝑛)가 있을 때, 𝑓𝑓의gradient는 다음과 같음
𝛻𝛻𝑓𝑓 = (𝜕𝜕𝑓𝑓𝜕𝜕𝑥𝑥1
,𝜕𝜕𝑓𝑓𝜕𝜕𝑥𝑥2
, … ,𝜕𝜕𝑓𝑓𝜕𝜕𝑥𝑥𝑛𝑛
)
• Gradient를이용한다변수 scalar 함수 𝑓𝑓의점 𝑙𝑙𝑘𝑘의근처에서의선형근사식 (using Taylor expansion)
𝑓𝑓 𝑙𝑙 = 𝑓𝑓 𝑙𝑙𝑘𝑘 + 𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 𝑙𝑙 − 𝑙𝑙𝑘𝑘 + 𝑛𝑛( 𝑙𝑙 − 𝑙𝑙𝑘𝑘 )
Intelligent Software Lab. 13
Gradient Descent
• Formula
𝑙𝑙 𝑘𝑘+1 = 𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 , 𝑘𝑘 ≥ 0
𝜂𝜂𝑘𝑘: 𝑙𝑙𝑛𝑛𝑙𝑙𝑙𝑙𝑛𝑛𝑖𝑖𝑛𝑛𝑤𝑤 𝑙𝑙𝑙𝑙𝑡𝑡𝑛𝑛
• Algorithm
𝒃𝒃𝒃𝒃𝒃𝒃𝒃𝒃𝒃𝒃 𝑖𝑖𝑛𝑛𝑖𝑖𝑡𝑡 𝑙𝑙, 𝑡𝑡ℎ𝑙𝑙𝑛𝑛𝑢𝑢ℎ𝑛𝑛𝑙𝑙𝑖𝑖 𝜃𝜃, 𝜂𝜂𝒅𝒅𝒅𝒅 𝑘𝑘 ← 𝑘𝑘 + 1
𝑙𝑙 ← 𝑙𝑙 − 𝜂𝜂𝛻𝛻𝑓𝑓 𝑙𝑙𝒖𝒖𝒃𝒃𝒖𝒖𝒃𝒃𝒖𝒖 𝜂𝜂𝛻𝛻𝑙𝑙 𝑘𝑘 < 0
𝒓𝒓𝒃𝒃𝒖𝒖𝒖𝒖𝒓𝒓𝒃𝒃 𝑙𝑙𝒃𝒃𝒃𝒃𝒅𝒅
출처: wikipedia
Intelligent Software Lab. 14
Gradient Descent cont`
• 𝜂𝜂(. ) 학습률 구하기• Gradient를이용한다변수 scalar 함수 𝑓𝑓의점 𝑙𝑙𝑘𝑘의근처에서의 2차근사식
𝑓𝑓 𝑙𝑙 ≅ 𝑓𝑓 𝑙𝑙𝑘𝑘 + 𝛻𝛻𝑓𝑓𝑇𝑇 𝑙𝑙 − 𝑙𝑙𝑘𝑘 +12𝑙𝑙 − 𝑙𝑙𝑘𝑘 𝑡𝑡𝐻𝐻 𝑙𝑙 − 𝑙𝑙𝑘𝑘
⇒ 𝑓𝑓 𝑙𝑙𝑘𝑘+1 ≅ 𝑓𝑓 𝑙𝑙𝑘𝑘 + 𝛻𝛻𝑓𝑓𝑇𝑇 𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 − 𝑙𝑙𝑘𝑘+
12𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 − 𝑙𝑙𝑘𝑘 𝑇𝑇𝐻𝐻 𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 − 𝑙𝑙𝑘𝑘
⇒ 𝑓𝑓 𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 +12𝜂𝜂𝑘𝑘2𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 𝑇𝑇𝐻𝐻𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘
⇒ 𝑓𝑓 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓𝑇𝑇𝛻𝛻𝑓𝑓 +12𝜂𝜂𝑘𝑘2𝛻𝛻𝑓𝑓𝑇𝑇𝐻𝐻𝛻𝛻𝑓𝑓
⇒ 𝑓𝑓 − 𝜂𝜂𝑘𝑘 𝛻𝛻𝑓𝑓 2 +12𝜂𝜂𝑘𝑘2𝛻𝛻𝑓𝑓𝑇𝑇𝐻𝐻𝛻𝛻𝑓𝑓
⇒ − 𝛻𝛻𝑓𝑓 2 + 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓𝑇𝑇𝐻𝐻𝛻𝛻𝑓𝑓
∴ 𝜂𝜂𝑘𝑘 =− 𝛻𝛻𝑓𝑓 2
𝛻𝛻𝑓𝑓𝑇𝑇𝐻𝐻𝛻𝛻𝑓𝑓
(𝑓𝑓 𝑙𝑙𝑘𝑘 = 𝑓𝑓)
(𝜂𝜂𝑘𝑘로 미분)
𝜂𝜂𝑘𝑘를구하면
𝛻𝛻𝑓𝑓𝑡𝑡𝛻𝛻𝑓𝑓 = 𝛻𝛻𝑓𝑓 2
Intelligent Software Lab. 15
Gradient Descent cont`
• 𝜂𝜂(. ) 학습률 구하기• Gradient를이용한다변수 scalar 함수 𝑓𝑓의점 𝑙𝑙𝑘𝑘의근처에서의 2차근사식
𝑓𝑓 𝑙𝑙 ≅ 𝑓𝑓 𝑙𝑙𝑘𝑘 + 𝛻𝛻𝑓𝑓𝑇𝑇 𝑙𝑙 − 𝑙𝑙𝑘𝑘 +12𝑙𝑙 − 𝑙𝑙𝑘𝑘 𝑇𝑇𝐻𝐻 𝑙𝑙 − 𝑙𝑙𝑘𝑘
⇒ 𝑓𝑓 𝑙𝑙𝑘𝑘+1 ≅ 𝑓𝑓 𝑙𝑙𝑘𝑘 + 𝛻𝛻𝑓𝑓𝑇𝑇 𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 − 𝑙𝑙𝑘𝑘+
12𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 − 𝑙𝑙𝑘𝑘 𝑇𝑇𝐻𝐻 𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 − 𝑙𝑙𝑘𝑘
Intelligent Software Lab. 16
Gradient Descent cont`
• 𝜂𝜂(. ) 학습률 구하기• Gradient를이용한다변수 scalar 함수 𝑓𝑓의점 𝑙𝑙𝑘𝑘의근처에서의 2차근사식
𝑓𝑓 𝑙𝑙 ≅ 𝑓𝑓 𝑙𝑙𝑘𝑘 + 𝛻𝛻𝑓𝑓𝑇𝑇 𝑙𝑙 − 𝑙𝑙𝑘𝑘 +12𝑙𝑙 − 𝑙𝑙𝑘𝑘 𝑇𝑇𝐻𝐻 𝑙𝑙 − 𝑙𝑙𝑘𝑘
⇒ 𝑓𝑓 𝑙𝑙𝑘𝑘+1 ≅ 𝑓𝑓 𝑙𝑙𝑘𝑘 + 𝛻𝛻𝑓𝑓𝑇𝑇 𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 − 𝑙𝑙𝑘𝑘+
12𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 − 𝑙𝑙𝑘𝑘 𝑇𝑇𝐻𝐻 𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 − 𝑙𝑙𝑘𝑘
⇒ 𝑓𝑓 𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 +12𝜂𝜂𝑘𝑘2𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 𝑇𝑇𝐻𝐻𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 (𝑓𝑓 𝑙𝑙𝑘𝑘 = 𝑓𝑓)
Intelligent Software Lab. 17
Gradient Descent cont`
• 𝜂𝜂(. ) 학습률 구하기• Gradient를이용한다변수 scalar 함수 𝑓𝑓의점 𝑙𝑙𝑘𝑘의근처에서의 2차근사식
𝑓𝑓 𝑙𝑙 ≅ 𝑓𝑓 𝑙𝑙𝑘𝑘 + 𝛻𝛻𝑓𝑓𝑇𝑇 𝑙𝑙 − 𝑙𝑙𝑘𝑘 +12𝑙𝑙 − 𝑙𝑙𝑘𝑘 𝑇𝑇𝐻𝐻 𝑙𝑙 − 𝑙𝑙𝑘𝑘
⇒ 𝑓𝑓 𝑙𝑙𝑘𝑘+1 ≅ 𝑓𝑓 𝑙𝑙𝑘𝑘 + 𝛻𝛻𝑓𝑓𝑇𝑇 𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 − 𝑙𝑙𝑘𝑘+
12𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 − 𝑙𝑙𝑘𝑘 𝑇𝑇𝐻𝐻 𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 − 𝑙𝑙𝑘𝑘
⇒ 𝑓𝑓 𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 +12𝜂𝜂𝑘𝑘2𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 𝑇𝑇𝐻𝐻𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘
⇒ 𝑓𝑓 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓𝑇𝑇𝛻𝛻𝑓𝑓 +12𝜂𝜂𝑘𝑘2𝛻𝛻𝑓𝑓𝑇𝑇𝐻𝐻𝛻𝛻𝑓𝑓
(𝑓𝑓 𝑙𝑙𝑘𝑘 = 𝑓𝑓)
𝛻𝛻𝑓𝑓𝑡𝑡𝛻𝛻𝑓𝑓 = 𝛻𝛻𝑓𝑓 2
Intelligent Software Lab. 18
Gradient Descent cont`
• 𝜂𝜂(. ) 학습률 구하기• Gradient를이용한다변수 scalar 함수 𝑓𝑓의점 𝑙𝑙𝑘𝑘의근처에서의 2차근사식
𝑓𝑓 𝑙𝑙 ≅ 𝑓𝑓 𝑙𝑙𝑘𝑘 + 𝛻𝛻𝑓𝑓𝑇𝑇 𝑙𝑙 − 𝑙𝑙𝑘𝑘 +12𝑙𝑙 − 𝑙𝑙𝑘𝑘 𝑇𝑇𝐻𝐻 𝑙𝑙 − 𝑙𝑙𝑘𝑘
⇒ 𝑓𝑓 𝑙𝑙𝑘𝑘+1 ≅ 𝑓𝑓 𝑙𝑙𝑘𝑘 + 𝛻𝛻𝑓𝑓𝑇𝑇 𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 − 𝑙𝑙𝑘𝑘+
12𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 − 𝑙𝑙𝑘𝑘 𝑇𝑇𝐻𝐻 𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 − 𝑙𝑙𝑘𝑘
⇒ 𝑓𝑓 𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 +12𝜂𝜂𝑘𝑘2𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 𝑇𝑇𝐻𝐻𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘
⇒ 𝑓𝑓 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓𝑇𝑇𝛻𝛻𝑓𝑓 +12𝜂𝜂𝑘𝑘2𝛻𝛻𝑓𝑓𝑇𝑇𝐻𝐻𝛻𝛻𝑓𝑓
⇒ 𝑓𝑓 − 𝜂𝜂𝑘𝑘 𝛻𝛻𝑓𝑓 2 +12𝜂𝜂𝑘𝑘2𝛻𝛻𝑓𝑓𝑇𝑇𝐻𝐻𝛻𝛻𝑓𝑓
(𝑓𝑓 𝑙𝑙𝑘𝑘 = 𝑓𝑓)
𝛻𝛻𝑓𝑓𝑡𝑡𝛻𝛻𝑓𝑓 = 𝛻𝛻𝑓𝑓 2
(𝜂𝜂𝑘𝑘로 미분)
Intelligent Software Lab. 19
Gradient Descent cont`
• 𝜂𝜂(. ) 학습률 구하기• Gradient를이용한다변수 scalar 함수 𝑓𝑓의점 𝑙𝑙𝑘𝑘의근처에서의 2차근사식
𝑓𝑓 𝑙𝑙 ≅ 𝑓𝑓 𝑙𝑙𝑘𝑘 + 𝛻𝛻𝑓𝑓𝑇𝑇 𝑙𝑙 − 𝑙𝑙𝑘𝑘 +12𝑙𝑙 − 𝑙𝑙𝑘𝑘 𝑇𝑇𝐻𝐻 𝑙𝑙 − 𝑙𝑙𝑘𝑘
⇒ 𝑓𝑓 𝑙𝑙𝑘𝑘+1 ≅ 𝑓𝑓 𝑙𝑙𝑘𝑘 + 𝛻𝛻𝑓𝑓𝑇𝑇 𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 − 𝑙𝑙𝑘𝑘+
12𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 − 𝑙𝑙𝑘𝑘 𝑇𝑇𝐻𝐻 𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 − 𝑙𝑙𝑘𝑘
⇒ 𝑓𝑓 𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 +12𝜂𝜂𝑘𝑘2𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 𝑇𝑇𝐻𝐻𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘
⇒ 𝑓𝑓 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓𝑇𝑇𝛻𝛻𝑓𝑓 +12𝜂𝜂𝑘𝑘2𝛻𝛻𝑓𝑓𝑇𝑇𝐻𝐻𝛻𝛻𝑓𝑓
⇒ 𝑓𝑓 − 𝜂𝜂𝑘𝑘 𝛻𝛻𝑓𝑓 2 +12𝜂𝜂𝑘𝑘2𝛻𝛻𝑓𝑓𝑇𝑇𝐻𝐻𝛻𝛻𝑓𝑓
⇒ − 𝛻𝛻𝑓𝑓 2 + 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓𝑇𝑇𝐻𝐻𝛻𝛻𝑓𝑓
(𝑓𝑓 𝑙𝑙𝑘𝑘 = 𝑓𝑓)
𝛻𝛻𝑓𝑓𝑡𝑡𝛻𝛻𝑓𝑓 = 𝛻𝛻𝑓𝑓 2
(𝜂𝜂𝑘𝑘로 미분)
Intelligent Software Lab. 20
Gradient Descent cont`
• 𝜂𝜂(. ) 학습률 구하기• Gradient를이용한다변수 scalar 함수 𝑓𝑓의점 𝑙𝑙𝑘𝑘의근처에서의 2차근사식
𝑓𝑓 𝑙𝑙 ≅ 𝑓𝑓 𝑙𝑙𝑘𝑘 + 𝛻𝛻𝑓𝑓𝑇𝑇 𝑙𝑙 − 𝑙𝑙𝑘𝑘 +12 𝑙𝑙 − 𝑙𝑙𝑘𝑘 𝑇𝑇𝐻𝐻 𝑙𝑙 − 𝑙𝑙𝑘𝑘
⇒ 𝑓𝑓 𝑙𝑙𝑘𝑘+1 ≅ 𝑓𝑓 𝑙𝑙𝑘𝑘 + 𝛻𝛻𝑓𝑓𝑇𝑇 𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 − 𝑙𝑙𝑘𝑘+
12 𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 − 𝑙𝑙𝑘𝑘 𝑇𝑇𝐻𝐻 𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 − 𝑙𝑙𝑘𝑘
⇒ 𝑓𝑓 𝑙𝑙𝑘𝑘 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 +12 𝜂𝜂𝑘𝑘
2𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘 𝑇𝑇𝐻𝐻𝛻𝛻𝑓𝑓 𝑙𝑙𝑘𝑘
⇒ 𝑓𝑓 − 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓𝑇𝑇𝛻𝛻𝑓𝑓 +12 𝜂𝜂𝑘𝑘
2𝛻𝛻𝑓𝑓𝑇𝑇𝐻𝐻𝛻𝛻𝑓𝑓
⇒ 𝑓𝑓 − 𝜂𝜂𝑘𝑘 𝛻𝛻𝑓𝑓 2 +12 𝜂𝜂𝑘𝑘
2𝛻𝛻𝑓𝑓𝑇𝑇𝐻𝐻𝛻𝛻𝑓𝑓⇒ − 𝛻𝛻𝑓𝑓 2 + 𝜂𝜂𝑘𝑘𝛻𝛻𝑓𝑓𝑇𝑇𝐻𝐻𝛻𝛻𝑓𝑓
∴ 𝜂𝜂𝑘𝑘 =− 𝛻𝛻𝑓𝑓 2
𝛻𝛻𝑓𝑓𝑇𝑇𝐻𝐻𝛻𝛻𝑓𝑓
(𝑓𝑓 𝑙𝑙𝑘𝑘 = 𝑓𝑓)
𝛻𝛻𝑓𝑓𝑡𝑡𝛻𝛻𝑓𝑓 = 𝛻𝛻𝑓𝑓 2
(𝜂𝜂𝑘𝑘로 미분)
𝜂𝜂𝑘𝑘를구하면
Intelligent Software Lab. 21
Gradient Descent cont`
• 𝐻𝐻는 𝑙𝑙에 종속 𝑙𝑙𝑘𝑘에 간접적으로 종속 됨
∴어떤 𝑙𝑙𝑘𝑘 근처에서 2차식을 전개할 때 𝜂𝜂𝑘𝑘의 최적 선정이 가능 함
• 즉, 기준함수 𝑓𝑓(𝑙𝑙)가 관심 영역 전체에 걸쳐 2차이면, 𝐻𝐻는 상수, 𝜂𝜂는 𝑘𝑘 − 𝑡𝑡ℎ에 독립적인 상수가 됨
• 어떤다변수함수 𝑓𝑓(𝑥𝑥1, 𝑥𝑥2, … , 𝑥𝑥𝑛𝑛)가 있을 때, 𝑓𝑓의 𝐻𝐻𝑛𝑛𝑢𝑢𝑢𝑢𝑖𝑖𝑙𝑙𝑛𝑛 𝑆𝑆𝑙𝑙𝑡𝑡𝑙𝑙𝑖𝑖𝑥𝑥는다음과 같음
𝐻𝐻 𝑓𝑓 =
𝜕𝜕2𝑓𝑓𝜕𝜕𝑥𝑥12
,𝜕𝜕2𝑓𝑓
𝜕𝜕𝑥𝑥1𝜕𝜕𝑥𝑥2, … ,
𝜕𝜕2𝑓𝑓𝜕𝜕𝑥𝑥1𝜕𝜕𝑥𝑥𝑛𝑛
𝜕𝜕2𝑓𝑓𝜕𝜕𝑥𝑥2𝜕𝜕𝑥𝑥1
,𝜕𝜕2𝑓𝑓𝜕𝜕𝑥𝑥12
, … ,𝜕𝜕2𝑓𝑓
𝜕𝜕𝑥𝑥2𝜕𝜕𝑥𝑥𝑛𝑛⋮
𝜕𝜕2𝑓𝑓𝜕𝜕𝑥𝑥𝑛𝑛𝜕𝜕𝑥𝑥1
,𝜕𝜕2𝑓𝑓
𝜕𝜕𝑥𝑥𝑛𝑛𝜕𝜕𝑥𝑥2, … ,
𝜕𝜕2𝑓𝑓𝜕𝜕𝑥𝑥𝑛𝑛2
Intelligent Software Lab. 22
Least Square Error
• 어떤 모델의 파라미터를 정의할 때 sample(입력된 데이터)와 𝑙𝑙𝑛𝑛𝑢𝑢𝑖𝑖𝑖𝑖𝑖𝑖𝑙𝑙𝑙𝑙2의 합이 최소가 되도록 하는 것
Intelligent Software Lab. 23
Least Square Error cont`
• 어떤추정된모델 𝑓𝑓 𝑥𝑥 = 𝑙𝑙𝑥𝑥 + 𝑏𝑏인경우• 𝑙𝑙𝑛𝑛𝑢𝑢𝑖𝑖𝑖𝑖𝑖𝑖𝑙𝑙𝑙𝑙에대해서살펴보면다음과같음
𝑙𝑙𝑛𝑛𝑢𝑢𝑖𝑖𝑖𝑖𝑖𝑖𝑙𝑙𝑙𝑙𝑖𝑖 = 𝑙𝑙𝑖𝑖 − 𝑓𝑓 𝑥𝑥𝑖𝑖• 즉, LSE의 파라미터를 추정한다는 것은 min(𝑙𝑙𝑛𝑛𝑢𝑢𝑖𝑖𝑖𝑖𝑖𝑖𝑙𝑙𝑙𝑙2)을구한다는 것
• 따라서 수식으로 표현하면
�𝑖𝑖=1
𝑛𝑛
𝑙𝑙2 = �𝑖𝑖=1
𝑛𝑛
𝑙𝑙𝑖𝑖 − 𝑓𝑓 𝑥𝑥𝑖𝑖2
• 위의 모델, 즉 직선인 경우
�𝑖𝑖=1
𝑛𝑛
𝑙𝑙2 = �𝑖𝑖=1
𝑛𝑛
𝑙𝑙𝑖𝑖 − 𝑙𝑙𝑥𝑥𝑖𝑖 + 𝑏𝑏𝑖𝑖 2
• 따라서 𝑙𝑙2을 최소화 하는 파라미터 a, b를 결정
Intelligent Software Lab. 24
Back Propagation
• Delta Rule에 기반한 방법• LSE를 기반으로 target(t)과 output(z)의 오차 제곱을 최소로함
• Credit assignment problem• NN의 Hidden layer에서 정답을 확인할 방법 없음
• 따라서 Back Prop.을 이용하여 weight 갱신
weight
output(z) : target(t)
compare차이발생: error(=scalar function)
∴weight들은이 error 값을줄이도록조절 weight는패턴별로학습
Intelligent Software Lab. 25
Back Propagation cont`
• 임의 패턴에 대한 학습률(training error)
9) 𝐽𝐽 𝑤𝑤 ≡12�𝑘𝑘=1
𝑐𝑐
𝑡𝑡𝑘𝑘 − 𝑧𝑧𝑘𝑘 2 =12
𝑡𝑡 − 𝑧𝑧 2
• 𝑡𝑡𝑘𝑘: 정답 출력(target), 𝑧𝑧𝑘𝑘: net 출력(train result)
• 𝑡𝑡, 𝑧𝑧: 길이가 c인 target, net의 출력 ‘vector’
• 𝑤𝑤: net의 모든 가중치 (training error)
• Back prop. training rule• gradient descent에 기반 (init: random weight)
10) ∆𝑤𝑤 = −𝜂𝜂𝜕𝜕𝐽𝐽𝜕𝜕𝑤𝑤
, 𝑛𝑛𝑙𝑙 11) ∆𝑤𝑤𝑝𝑝𝑝𝑝 = −𝜂𝜂𝜕𝜕𝐽𝐽
𝜕𝜕𝑤𝑤𝑝𝑝𝑝𝑝• 𝜂𝜂: 학습률(training error) 가중치 변화의 상대적 크기• 반복 m번일 때, gradient descent
기준함수(𝐽𝐽(𝑤𝑤))를 낮추도록 움직임12) 𝑤𝑤𝑚𝑚+1 = 𝑤𝑤𝑚𝑚 + ∆𝑤𝑤𝑚𝑚
Intelligent Software Lab. 26
Back Propagation cont`
• Back Prop. of Hidden-to-Output
• 𝑡𝑡𝑙𝑙𝑙𝑙𝑖𝑖𝑛𝑛𝑖𝑖𝑛𝑛𝑤𝑤 𝑛𝑛𝑙𝑙𝑙𝑙𝑛𝑛𝑙𝑙 "𝑤𝑤𝑘𝑘𝑗𝑗" 최적화 필요 (∴ 𝐽𝐽 𝑤𝑤 를 𝑤𝑤로 최적화)
• 𝑤𝑤𝑘𝑘𝑗𝑗가 𝑤𝑤𝑗𝑗𝑘𝑘에 외연적으로 종속되지 않음
• 즉, 𝐽𝐽는 𝑛𝑛𝑛𝑛𝑡𝑡에 의존적: (9) 12𝑡𝑡 − 𝑧𝑧 2, (5) 𝑧𝑧𝑘𝑘 = 𝑓𝑓(𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘)
• 𝑛𝑛𝑛𝑛𝑡𝑡은 𝑤𝑤에 의존적: (4) 𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘 = 𝑤𝑤𝑘𝑘𝑇𝑇𝑙𝑙• 따라서 chain rule 적용 가능
𝑖𝑖 𝑗𝑗 𝑘𝑘
𝑧𝑧: 𝑡𝑡 (𝑟𝑟𝑛𝑛𝑠𝑠𝑖𝑖𝑙𝑙𝑙𝑙𝑛𝑛)ℎ𝑖𝑖𝑖𝑖𝑖𝑖𝑛𝑛𝑛𝑛 − 𝑡𝑡𝑛𝑛 − 𝑛𝑛𝑖𝑖𝑡𝑡에대한𝑡𝑡𝑙𝑙𝑙𝑙𝑖𝑖𝑛𝑛𝑖𝑖𝑛𝑛𝑤𝑤 𝑛𝑛𝑙𝑙𝑙𝑙𝑛𝑛𝑙𝑙 "𝑤𝑤𝑘𝑘𝑗𝑗"를계산
Intelligent Software Lab. 27
Back Propagation cont`
• 𝑤𝑤𝑘𝑘𝑗𝑗최적화에 대한 𝜕𝜕𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘의 chain rule
13)𝜕𝜕𝐽𝐽𝜕𝜕𝑤𝑤𝑘𝑘𝑗𝑗
=𝜕𝜕𝐽𝐽
𝜕𝜕𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘𝜕𝜕𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘𝜕𝜕𝑤𝑤𝑘𝑘𝑗𝑗
Intelligent Software Lab. 28
Back Propagation cont`
• 𝑤𝑤𝑘𝑘𝑗𝑗최적화에 대한 𝜕𝜕𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘의 chain rule
13)𝜕𝜕𝐽𝐽𝜕𝜕𝑤𝑤𝑘𝑘𝑗𝑗
=𝜕𝜕𝐽𝐽
𝜕𝜕𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘𝜕𝜕𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘𝜕𝜕𝑤𝑤𝑘𝑘𝑗𝑗
• unit k의 ‘𝛿𝛿𝑘𝑘’: Delta rule [(𝑡𝑡𝑘𝑘 − 𝑧𝑧𝑘𝑘)]• unit의 net 활성화에 따라 전반적 에러가 어떻게 바뀌는지 묘사
(LSE, 오차)
14) 𝑖𝑖𝑛𝑛𝑙𝑙𝑡𝑡𝑙𝑙: −𝛿𝛿𝑘𝑘 =𝜕𝜕𝐽𝐽
𝜕𝜕𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘• 활성함수 𝑓𝑓(. )가 미분 가능하다 가정: (5) 𝑧𝑧𝑘𝑘 = 𝑓𝑓(𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘),
9 𝐽𝐽 = 12∑𝑘𝑘=1𝑐𝑐 𝑡𝑡𝑘𝑘 − 𝑧𝑧𝑘𝑘 2에 기반하여, 출력 unit에 대한 𝛿𝛿𝑘𝑘는 다음
과 같음
15) 𝛿𝛿𝑘𝑘 = −𝜕𝜕𝐽𝐽
𝜕𝜕𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘= −
𝜕𝜕𝐽𝐽𝜕𝜕𝑧𝑧𝑘𝑘
𝜕𝜕𝑧𝑧𝑘𝑘𝜕𝜕𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘
= 𝑡𝑡𝑘𝑘 − 𝑧𝑧𝑘𝑘 𝑓𝑓𝑓(𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘)
Intelligent Software Lab. 29
Back Propagation cont`
• 𝑤𝑤𝑘𝑘𝑗𝑗최적화에 대한 𝜕𝜕𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘의 chain rule
13)𝜕𝜕𝐽𝐽𝜕𝜕𝑤𝑤𝑘𝑘𝑗𝑗
=𝜕𝜕𝐽𝐽
𝜕𝜕𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘𝜕𝜕𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘𝜕𝜕𝑤𝑤𝑘𝑘𝑗𝑗
• 우변의 마지막 미분식은 (4) 𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘 = 𝑤𝑤𝑘𝑘𝑇𝑇𝑙𝑙를 이용𝜕𝜕𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘𝜕𝜕𝑤𝑤𝑘𝑘𝑗𝑗
= 𝑙𝑙𝑗𝑗
• Hidden-to-output의 weight를 위한 학습룰17) ∆𝑤𝑤𝑘𝑘𝑗𝑗 = 𝑡𝑡𝑘𝑘 − 𝑧𝑧𝑘𝑘 𝑓𝑓′ 𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘 𝑙𝑙𝑗𝑗
∴output unit이 선형일 경우• 즉, 𝑓𝑓 𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘 = 𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘, 𝑓𝑓′ 𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘 = 1• ∆𝑤𝑤𝑘𝑘𝑗𝑗 = 𝑡𝑡𝑘𝑘 − 𝑧𝑧𝑘𝑘 𝑙𝑙𝑖𝑖• 식 (17)은 LSE(Least Square Error)와 같음
• LSE: 𝑙𝑙𝑘𝑘+1 = 𝑙𝑙𝑘𝑘 + 𝜂𝜂𝑘𝑘 𝑏𝑏𝑘𝑘 − 𝑓𝑓(𝑙𝑙𝑘𝑘) 𝑙𝑙𝑘𝑘 , 𝑓𝑓 𝑙𝑙𝑘𝑘 = 𝑙𝑙𝑘𝑘𝑇𝑇𝑙𝑙𝑘𝑘
Intelligent Software Lab. 30
Back Propagation cont`
• Back Prop. of Input-to-Hidden
• 𝑡𝑡𝑙𝑙𝑙𝑙𝑖𝑖𝑛𝑛𝑖𝑖𝑛𝑛𝑤𝑤 𝑛𝑛𝑙𝑙𝑙𝑙𝑛𝑛𝑙𝑙 "𝑤𝑤𝑗𝑗𝑖𝑖" 최적화 필요 (∴ 𝐽𝐽 𝑤𝑤 를𝑤𝑤로 최적화)
𝑖𝑖 𝑗𝑗 𝑘𝑘
𝑧𝑧: 𝑡𝑡 (𝑟𝑟𝑛𝑛𝑠𝑠𝑖𝑖𝑙𝑙𝑙𝑙𝑛𝑛)
𝑖𝑖𝑛𝑛𝑖𝑖𝑖𝑖𝑡𝑡 − 𝑡𝑡𝑛𝑛 − ℎ𝑖𝑖𝑖𝑖𝑖𝑖𝑛𝑛𝑛𝑛에대한𝑡𝑡𝑙𝑙𝑙𝑙𝑖𝑖𝑛𝑛𝑖𝑖𝑛𝑛𝑤𝑤 𝑛𝑛𝑙𝑙𝑙𝑙𝑛𝑛𝑙𝑙 "𝑤𝑤𝑗𝑗𝑖𝑖"를계산
Intelligent Software Lab. 31
Back Propagation cont`
• Back Prop. of Input-to-Hidden
• (11) ∆𝑤𝑤𝑝𝑝𝑝𝑝 = −𝜂𝜂 𝜕𝜕𝐽𝐽𝜕𝜕𝑤𝑤𝑝𝑝𝑝𝑝과 chain rule 이용
18)𝜕𝜕𝐽𝐽𝜕𝜕𝑤𝑤𝑗𝑗𝑖𝑖
=𝜕𝜕𝐽𝐽𝜕𝜕𝑙𝑙𝑗𝑗𝑖𝑖
𝜕𝜕𝑙𝑙𝑗𝑗𝑖𝑖𝜕𝜕𝑛𝑛𝑛𝑛𝑡𝑡𝑗𝑗
𝜕𝜕𝑛𝑛𝑛𝑛𝑡𝑡𝑗𝑗𝜕𝜕𝑤𝑤𝑗𝑗𝑖𝑖
• 위 식에서 우변의 첫 항은 𝑤𝑤𝑘𝑘𝑗𝑗를 모두 포함
19)𝜕𝜕𝐽𝐽𝜕𝜕𝑙𝑙𝑗𝑗𝑖𝑖
=𝜕𝜕𝜕𝜕𝑙𝑙𝑗𝑗𝑖𝑖
12�𝑘𝑘=1
𝑐𝑐
𝑡𝑡𝑘𝑘 − 𝑧𝑧𝑘𝑘 2
= −�𝑘𝑘=1
𝑐𝑐
𝑡𝑡𝑘𝑘 − 𝑧𝑧𝑘𝑘𝜕𝜕𝑧𝑧𝑘𝑘𝜕𝜕𝑙𝑙𝑗𝑗
= −�𝑘𝑘=1
𝑐𝑐
𝑡𝑡𝑘𝑘 − 𝑧𝑧𝑘𝑘𝜕𝜕𝑧𝑧𝑘𝑘𝜕𝜕𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘
𝜕𝜕𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘𝜕𝜕𝑙𝑙𝑗𝑗
= −�𝑘𝑘=1
𝑐𝑐
𝑡𝑡𝑘𝑘 − 𝑧𝑧𝑘𝑘 𝑓𝑓′ 𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘 𝑤𝑤𝑘𝑘𝑗𝑗 = −�𝑘𝑘=1
𝑐𝑐
𝑤𝑤𝑘𝑘𝑗𝑗𝛿𝛿𝑘𝑘
9) 𝐽𝐽 𝑤𝑤 ≡12�𝑘𝑘=1
𝑐𝑐
𝑡𝑡𝑘𝑘 − 𝑧𝑧𝑘𝑘 2 =12 𝑡𝑡 − 𝑧𝑧 2
𝑧𝑧𝑘𝑘 = 𝑓𝑓 𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘
𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘 = �𝑗𝑗
𝑙𝑙𝑗𝑗𝑤𝑤𝑘𝑘𝑗𝑗
𝛿𝛿𝑘𝑘 = 𝑡𝑡𝑘𝑘 − 𝑧𝑧𝑘𝑘 𝑓𝑓′ 𝑛𝑛𝑛𝑛𝑡𝑡𝑘𝑘 𝑙𝑙𝑗𝑗
chain rule
𝛿𝛿𝑘𝑘
Intelligent Software Lab. 32
Back Propagation cont`
• unit k의 ‘𝛿𝛿𝑗𝑗’ (식(19)와 식(18)에서의 두 번째 식)
20) 𝛿𝛿𝑗𝑗 ≡ 𝑓𝑓′ 𝑛𝑛𝑛𝑛𝑡𝑡𝑗𝑗 �𝑘𝑘=1
𝑐𝑐
𝑤𝑤𝑘𝑘𝑗𝑗𝛿𝛿𝑘𝑘
𝑓𝑓′ 𝑛𝑛𝑛𝑛𝑡𝑡𝑗𝑗 =𝜕𝜕𝑙𝑙𝑗𝑗𝜕𝜕𝑛𝑛𝑛𝑛𝑡𝑡𝑗𝑗
=𝜕𝜕𝑓𝑓 𝑛𝑛𝑛𝑛𝑡𝑡𝑗𝑗𝜕𝜕𝑛𝑛𝑛𝑛𝑡𝑡𝑗𝑗
• Input-to-hidden의 weight 학습
21) ∆𝑤𝑤𝑗𝑗𝑖𝑖 = 𝜂𝜂𝑥𝑥𝑖𝑖𝛿𝛿𝑗𝑗 = 𝜂𝜂 �𝑘𝑘=1
𝑐𝑐
𝑤𝑤𝑘𝑘𝑗𝑗𝛿𝛿𝑘𝑘 𝑓𝑓′ 𝑛𝑛𝑛𝑛𝑡𝑡𝑗𝑗 𝑥𝑥𝑖𝑖
𝑥𝑥𝑖𝑖: 18 의마지막 =𝜕𝜕𝑛𝑛𝑛𝑛𝑡𝑡𝑗𝑗𝜕𝜕𝑤𝑤𝑗𝑗𝑖𝑖
=𝜕𝜕∑𝑖𝑖 𝑥𝑥𝑖𝑖𝑤𝑤𝑗𝑗𝑖𝑖𝜕𝜕𝑤𝑤𝑗𝑗𝑖𝑖
= 𝑥𝑥𝑖𝑖
Intelligent Software Lab. 33
결론
• Back propagation은 chain rule을 이용한 목적함수의미분 계산을 multi layer model에 적용한 gradient descent에 기반
• 모든 gradient descent와 마찬가지로 Back Prop.의 동작은 시작점에 의존
• 시작을 즉, weight init은 가급적 0을 피해야 함
• 식 (17)을 보면, unit k에서의 가중치 갱신은 (𝑡𝑡𝑘𝑘 − 𝑧𝑧𝑘𝑘)에 비례해야 함
• (𝑡𝑡𝑘𝑘 = 𝑧𝑧𝑘𝑘)는 weight 변화 X
• sigmoid function 𝑓𝑓𝑓(𝑛𝑛𝑛𝑛𝑡𝑡)는 항상 양의 수• (𝑡𝑡𝑘𝑘 − 𝑧𝑧𝑘𝑘)와 𝑙𝑙𝑗𝑗가 둘 다 양이면 output은 작고 가중치는 증가돼
야 함
Intelligent Software Lab. 34
결론
• weight 갱신은 입력 값에 비례해야 함• 𝑙𝑙𝑖𝑖 = 0 이면, hidden unit “j”는 output과 error에 영향을 주지않음 𝑤𝑤𝑗𝑗𝑖𝑖의 변경은 해당 패턴의 error에 영향 없음
• feed forward의 일반화를 사용한 Back prop.의 일반화• input unit들은 bias unit 포함
• input unit들은 hidden unit 뿐만 아니라 output unit들에도 직접 연결 가능 (그림 참조)
• 각 층마다 다른 비선형성이 있음• NN [i-to-h: sigmoid, h-to-o: ReLU]
• 각 unit들은 그 자신의 비선형성을 가짐
• 각 unit들은 다른 학습률(∆𝑤𝑤)을 가짐
Intelligent Software Lab.