강의자료

Download Report

Transcript 강의자료

인제대학교 특강, 2013.3.23
인공신경망의 기본이론
단국대학교 수공학연구실
1. Neural Network의 소개
Neural Network의 소개
(위키백과)
인공신경망(artificial neural network 뉴럴 네트워크)은 뇌기능의 특
성 몇 가지를 컴퓨터 시뮬레이션으로 표현하는 것을 목표로 하는 수
학 모델이다.
인공신경망은 시냅스의 결합으로 네트워크를 형성한 인공 뉴런(노
드)이 학습을 통해 시냅스의 결합 세기를 변화시켜, 문제 해결 능력
을 가지는 모델 전반을 가리킨다. 좁은 의미에서는 오차역전파법을
이용한 다층퍼셉트론을 가리키는 경우도 있지만, 이것은 잘못된 용
법으로, 인공신경망은 이에 국한되지 않는다.
인공신경망에는 감독신호(정답)의 입력에 의해서 문제에 최적화되
어 가는 감독학습과 감독신호를 필요로 하지 않는 무감독학습이 있
다. 명확한 해답이 있는 경우에는 감독학습이, 데이터 클러스터링에
는 무감독학습이 이용된다. 결과적으로 모두 차원을 줄이기 위해, 화
상이나 통계 등 다차원량의 데이터로, 선형 분리 불가능한 문제에
대해서, 비교적 작은 계산량으로 양호한 회답을 얻을 수 있는 것이
많다. 그 때문에, 패턴 인식이나 데이타마이닝 등, 다양한 분야에서
응용되고 있다.
1. Neural Network의 소개
수상돌기
Neural Network의 소개
뉴런
축색돌기
세포체
excitory
Dendrite
Soma
Synapse
Axon
: 다른 뉴런으로부터 신호를 받아 Soma로 전달
: Synapse의 신호를 펄스신호로 전환하여 Axon으로 신호전송
: Dendrite와 화학반응에 의하여 다른 뉴런으로 신호전달
: 다른 뉴런에 신호 전달
시냅스
생물학적 신경망
inhibitory
인공 신경망
Typical Neuron
(자극과 흥분을 전달
하는 신경계의 단위)
1. Neural Network의 소개
Neural Network의 장단점
Advantages:
A neural network can perform tasks that a linear program can not.
When an element of the neural network fails, it can continue without
any problem by their parallel nature.
A neural network learns and does not need to be reprogrammed.
It can be implemented in any application.
It can be implemented without any problem.
It is extremely energy efficient.
Disadvantages:
The neural network needs training to operate.
The architecture of a neural network is different from the architecture
of microprocessors therefore needs to be emulated.
Requires high processing time for large neural networks.
4/36
1. Neural Network의 소개
컴퓨터 연산과의 비교
von Neumann computer
Biological neural system
Process
Complex
High speed
One or a few
Simple
Low speed
A large number
Memory
Separate from a processor
Localized
Noncontent addressable
Integrated into processor
Distributed
Content addressable
Computing
Centralized
Sequential
Stored programs
Distributed
Parallel
Self-learning
Reliability
Very vulnerable
Robust
Expertise
Numerical and symbolic
manipulations
Perceptual problems
Operating
environment
Well-defined, well constrained Poorly defined,
unconstrained
5/36
1. Neural Network의 소개
Neural Network의 적용사례
Pattern recognition
Function approximation
Cluster Analysis
Prediction/Forecast
6/36
1. Neural Network의 소개
Neural Network의 적용사례
Optimization
Object retrieval
Control
7/36
1. Neural Network의 소개
Neural
Network 연
구사례
Ref) Guoqiang Zhang, B. Eddy Patuwo, Michael Y. Hu (1998). Forecasting with artificial neural networks: The state of the art,
International Journal of Forecasting, vol. 14, pp. 35–62
8/36
1. Neural Network의 소개
전통적 기법
과의 비교
cf.
- regression model
- Box-Jenkins
model (ARIMA)
Ref) Guoqiang Zhang, B. Eddy Patuwo, Michael Y. Hu (1998). Forecasting with artificial neural networks: The state of the art,
International Journal of Forecasting, vol. 14, pp. 35–62
9/36
1. Neural Network의 소개
전통적 기법
과의 비교
Ref) Guoqiang Zhang, B. Eddy Patuwo, Michael Y. Hu (1998). Forecasting with artificial neural networks: The state of the art,
International Journal of Forecasting, vol. 14, pp. 35–62
10/36
1.1 Neural Network의 분류
Neural Network의 분류
11/36
1.1 Neural Network의 분류
Neural Network의 분류
출력방법
지도학습, 비지도 학습(자율학습)
계층수
단층구조, 다층구조
입력층
출력층
입력층
중간층(은닉층)
출력층
I
out
I
H
out
I
out
I
H
out
I
out
I
H
out
< 단층구조 >
< 다층구조 >
Perceptron 학습
(McCulloch-Pitts, 1943)
전방향
입력층
출력층
w1i
w2i
Activation function
(활성화 함수)
출력값
목표출력값
wni
13/36
1.2 신경망의 활성화 함수
Neural Network의 활성화 함수 (Activation Function)
활성화함수
계단함수
Sigmoidal
함수
단층구조, 다층구조
2. 단층퍼셉트론(SLP)
단층퍼셉트론
Perceptron 학습
▷ 1958년 Frank Rosenblatt에 의해 제안 됨.
▷ 목표값과 출력값 간의 차이를 최소화가 목적
< 단층퍼셉트론 계산절차, 델타학습>
1. 가중치와 임계치 초기화
2. 가중합을 구하여 활성화 함수를 계산한다.
3. 목표값(d)와 출력값(y)값 간의 오차를 계산한다.
w(t+1) = w(t) + ηekxi
4. 목표값에 일치할때 까지 과정 2와 3을 반복수행
(t+1)시간에서의 가중치= (t)시간에서의 가중치 + 학습률 x 오차 x 입력값
1.3 Hebb 학습방법
단층퍼셉트론(Hebb 학습방법)
1. Hebb의 학습방법
▷ 1949년 D. Hebb에 의한 최초의 신경망 학습규칙
▷ 어떤 신경세포간의 활성이 목표출력값을 얻는데 계속적으로 공헌한다면,
두 신경세포간의 연결가중치를 증가 시켜주어야 한다.
< 감독학습 >
< 무감독학습 >
w(t+1) = w(t) + ηxidk
W(t+1)=w(t) + ηxiaj
(t+1)번째 시도에서의 가중치= (t)번째 시도에서의 가중치 + 학습률 x 입력값 x 목표값(출력뉴런의 활성값)
x1
x2
or
and
xor
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
Or 연산 : 입력값중 참값이 하나라도 있으면 결과값은 참이다.
And 연산: 입력값 모두가 참이어야 결과값은 참이다.
Xor 연산 : 입력값이 모두 거짓이거나 참이면 결과값은 거짓을
출력하지만, 둘 중 하나만 참이면 참값을 출력한다.
1.3 Hebb 학습방법
Hebb 학습방법 (OR연산)
S
N2-1
w1
N1-1
w2
N1-2
x1
x2
x1
x2
or
and
xor
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
< OR 연산 >
이와 같이 가중치를 조정하
여 원하는 결과값을 도출하
는 과정을 학습이라 한다.
w(t+1) = w(t) + ηxidk
* OR 연산의 신경망 학습
(w1, w2 = 0.5)
(학습률 = 0.1)
역치= 0.5
S= 0*0S=
+ 0*0
< θ (=0.5)
∴ y=0 -->목표값과
일치 OK
0*0.2= +0 0*0.2
= 0 < θ (=0.5)
∴ y=0 --> 목표값
일치 OK
S= 1*0 + 0*0 = 0 < θ (=0.5)
∴ y=0 -->목표값과 불일치 NG
0*0.2+ =
0.2 <
목표값과
불일치
NGOK
S= +
0*0.3
0*0.3
= 0θ (=0.5)
< θ (=0.5)∴ y=0 -->
∴ y=0
--> 목표값
일치
w1=S=0 1*0.2
+ 0.1*1*1=0.1
+ 0.1*1*1=0.3
w2= 0 w1=
+ 0.1*0*1=0.0
S=0.2
1*0.3
+ 0*0.3 = 0.3 < θ (=0.5)
∴ y=0 --> 목표값과 불일치 NG
S= 0*0.1 +
1*0
=
0
<
θ
(=0.5)
∴
y=0
-->
목표값과
불일치
S=
0*0.4
+
0*0.4
=
0
<
θ
(=0.5)
∴ y=0NG
--> 목표값 일치 OK
w2= 0.2
+ 0.1*0*1=0.2
w1=
0.3 + 0.1*1*1=0.4
w1= 0.1 + 0.1*0*1=0.1
S= 1*0.4
+
= 0.4 < θ
∴ y=0 불일치
--> 목표값과
+ 1*0.2
< 0*0.4
θ (=0.5)
∴ (=0.5)
y=0 -->목표값과
NG 불일치 NG
w2=
0.3 =+ 0.2
0.1*0*1=0.3
w2=S=0 0*0.3
+ 0.1*1*1=0.1
w1=
0.4 + 0.1*1*1=0.5
w1=
0.1*0*1=0.3
S= 1*0.1 +
1*0.1
= 0.2
θ (=0.5)
y=0
-->
불일치
NG ∴ 불일치
S==0*0.5
= 0목표값과
< ∴θ y=0
(=0.5)
y=0 -->NG
목표값 일치 OK
S=0.3+
0*0.4
+<1*0.3
0.3 <+∴θ0*0.5
(=0.5)
-->목표값과
w2= 0.4 + 0.1*0*1=0.4
w1= 0.1
+ 0.1*1*1=0.2
w2=
0.2
+ 0.1*1*1=0.3
w1=
0.4+ 0.1*0*1=0.4
S= 1*0.5 + 0*0.5 = 0.5 ≥ θ (=0.5)
∴ y=1 --> 목표값과 일치 OK
w2= 0.1 + 0.1*1*1=0.2
S= 0*0.5
+
1*0.4
= 0.4 < θ ∴(=0.5)
∴ y=0 일치
-->목표값과
불일치 NG
S= 1*0.3 w2=
+ 1*0.3
=
0.6
>
θ
(=0.5)
y=1
-->목표값과
OK
0.3 + 0.1*1*1=0.4
0*0.5
+ 1*0.5 = 0.5 ≥ θ (=0.5)
∴ y=1 --> 목표값과 일치 OK
w1= S=
0.5+
0.1*0*1=0.5
S= 1*0.4 + 1*0.4 = 0.8 > θ (=0.5)
∴ y=1 -->목표값과 일치 OK
+ 1*0.5 = 1.0 > θ (=0.5)
∴ y=1 -->목표값과 일치 OK
w2= S=
0.4 1*0.5
+ 0.1*1*1=0.5
S= 1*0.5 + 1*0.5 = 1.0 > θ (=0.5)
학습종료
∴ y=1 -->목표값과 일치 OK
1.3 Hebb 학습방법
Hebb 학습방법 (AND연산, 학습률=0.1)
S
N2-1
w1
N1-1
x1
w2
N1-2
x2
x1
x2
or
and
xor
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
w(t+1)AND
= w연산의
ηxidk
(t) + 신경망학습
(w1, w2 = 0.3)
(학습률 = 0.1)
역치= 0.5
< AND 연산 >
S=
S=
S=
S=
0*0 + 0*0 = 0 < θ (=0.5)
∴ y=0 -->목표값과 일치 OK
1*0 + 0*0 = 0 < θ (=0.5)
∴ y=0 -->목표값과 일치 OK
0*0 S=
+ 1*0
= 0+<0*0.1
θ (=0.5)
∴ y=0 -->∴목표값과
OK일치 OK
0*0.1
= 0 < θ (=0.5)
y=0 --> 일치
목표값
S==0*0.1
0*0.1 = 0 < ∴θy=0
(=0.5)
∴ y=0불일치
--> 목표값
1*0 + 1*0
0 < θ+(=0.5)
--> 목표값과
NG 일치 OK
S=
0*0.2=+0.1
0*0.2
=
0 < θ (=0.5)
∴목표값과
y=0 --> 목표값
일치 OK
S=
1*0.1
+
0*0.1
<
θ
(=0.5)
∴
y=0
-->
OK
w1= 0 + S=
0.1*1*1=0.1
S=0*0.1
0*0.3=+0.1
0*0.3
0 < θ (=0.5)
y=0일치
-->일치
목표값
1*0.1 +
< θ= (=0.5)
∴ y=0 --> ∴
목표값과
OK 일치 OK
S=
1*0.2
+
0*0.2
=
0.2
<
θ
(=0.5)
∴
y=0
-->
목표값과
일치
OK
w2= S=
0 +0*0.1
0.1*1*1=0.1
+ 1*0.1
= 0.1 +
< 0*0.3
θ (=0.5)
y=0
-->목표값과
OK
S=1*0.1
1*0.3
0.3 <∴ θ
(=0.5)
∴ y=0일치
--> 일치
목표값과
S= 0*0.1 +
= 0.1
< θ=(=0.5)
∴ y=0 -->목표값과
OK 일치 OK
0*0.2=+0.2
1*0.2
0.2 < θ (=0.5)
∴ y=0 -->목표값과
일치 OK
S= 1*0.1 S=
+ 1*0.1
< 1*0.3
θ=(=0.5)
-->목표값과
NG
S=1*0.1
0*0.3=+
0.3 <∴θy=0
(=0.5)
∴ y=0불일치
-->목표값과
일치 OK
S= 1*0.1 +
0.2 < θ=(=0.5)
∴ y=0 -->목표값과
불일치 NG
S= 1*0.2 + 1*0.2 = 0.4 < θ (=0.5)
∴ y=0 -->목표값과 불일치 NG
+ 1*0.3
= 0.6 > θ (=0.5)
∴ y=0 -->목표값과 일치 OK
w1= S=
0.1 1*0.3
+ 0.1*1*1
= 0.2
w1= 0.2 + 0.1*1*1 = 0.3
0.2 +=0.1*1*1
= 0.3
w2= 0.1 +w1=
0.1*1*1
0.2
w2= 0.2 + 0.1*1*1 = 0.3
w2= 0.2 + 0.1*1*1 = 0.3
학습종료
1.3 Hebb 학습방법
Hebb 학습방법 (AND연산, 학습률=0.2)
S
N2-1
w1
N1-1
x1
w2
N1-2
x2
x1
x2
or
and
xor
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
AND 연산의 신경망학습
w(t+1)(w1,
=w
+ ηx d
w2(t)= 0.4) i k
(학습률 = 0.2)
역치= 0.5
< AND 연산 >
S=
S=
S=
S=
0*0 + 0*0 = 0 < θ (=0.5)
∴ y=0 -->목표값과 일치 OK
S=
0*0.2
+
0*0.2
=
0
<
θ
(=0.5)
∴ y=0 -->일치
목표값
1*0 + 0*0 = 0 < θ (=0.5)
∴ y=0 -->목표값과
OK 일치 OK
0*0 S=
+ 1*0
= 0+ <0*0.2
θ (=0.5)
∴ y=0 -->
일치 OK 일치 OK
1*0.2
= 0.2 < θ (=0.5)
∴ 목표값과
y=0 --> 목표값과
1*0 S=
+ 1*0
= 0+ <1*0.2
θ (=0.5)
∴ y=0 -->∴ 목표값과
불일치 NG
0*0.2
=0*0.4
0.2 <
θ0 (=0.5)
y=0 -->목표값과
일치 OK
S=
0*0.4
+
=
<
θ
(=0.5)
∴
y=0
--> 목표값
일치 OK
w1= 0 + 0.2*1*1=0.2
1*0.2+ =0*0.4
0.4 <
(=0.5)
∴ y=0 ∴-->목표값과
불일치 일치
NG OK
w2=S=
0 +1*0.2
0.2*1*1=0.2
S= +1*0.4
= θ0.4
< θ (=0.5)
y=0 --> 목표값과
w1=
++
0.2*1*1
S= 0.2
0*0.4
1*0.4 =
= 0.4
0.4 < θ (=0.5)
∴ y=0 -->목표값과 일치 OK
w2=
++
0.2*1*1
S= 0.2
1*0.4
1*0.4 =
= 0.4
0.8 > θ (=0.5)
학습종료
∴ y=0 -->목표값과 일치 OK
1.3 Hebb 학습방법
Hebb 학습방법 (AND연산, 학습률=0.3)
S
N2-1
w1
w2
N1-1
N1-2
x2
x1
x1
x2
or
and
xor
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
< AND 연산 >
S=
S=
S=
S=
0*0.3
1*0.3
0*0.3
1*0.3
+
+
+
+
0*0.3
0*0.3
1*0.3
1*0.3
=
=
=
=
0 < θ (=0.5)
0 < θ (=0.5)
0 < θ (=0.5)
0.6 > θ (=0.5)
∴ y=0 -->목표값과 일치 OK
∴ y=0 -->목표값과 일치 OK
∴ y=0 --> 목표값과 일치 OK
∴ y=0 --> 목표값과 불일치 NG
학습종료
< 학습률에 따른 학습회수 비교 >
학습회수
η=0.1
η=0.2
η=0.3
5
3
1
AND 연산의 신경망학습
(w1, w2 = 0.3)
(학습률 = 0.3)
역치= 0.5
21/36
22/36
23/36
Decision boundary
24/36
Decision boundary (결정경계)
(0,1)
(1,1)
(0,0)
(1,0)
25/36
OR연산의 결정경계
(0,1)
(1,1)
(0,0)
(1,0)
26/36
27/36
28/36
29/36
AND연산의 결정경계
(0,1)
(0,0)
(1,1)
(1,0)
30/36
31/36
32/36
33/36
XOR연산의 결정경계
XOR
(0,1)
(0,0)
(1,1)
(1,0)
34/36
단층퍼셉트론의 한계
35/36
결정경계의 선형분리
검은머리와 금발머리를 가진 남자에 대한 체중과 신장변수의 선형분리
36/36
결정경계의 선형분리
검은머리와 금발머리를 가진 남자에 대한 체중과 신장변수의 선형분리
단층퍼셉트론으로는 학습불가능!
37/36
일반결정경계
38/36
3. 다층퍼셉트론 (Multilayer Perceptron, MLP)
다층퍼셉트론(Multilayer Perceptron, MLP)
정
의
입력층, 하나이상의 은닉층(중간층), 출력층의 구조
학습방법
역전파알고리즘(Back propagation)
▷ 단층퍼셉트론 XOR 문제 해결
▷ 출력층의 각 뉴런에서 발생된 출력오차를 각 층으로 역으로
특
징
전파시켜 나가면서 연결링크의 가중치를 변화를 주어 오차
최소화
▷ 오차최소화를 위해선 미분 가능한 활성화 함수만을 사용
( Sigmoidal function, Hyperbolic tangent function,…etc.)
x2
x1
x2
x1
x2
x1
3.1 MLP의 계산과정
MLP의 계산과정(1)
Feedforward(시그모이드 함수)
y1
y2
은닉층에서의 계산

S hi 
w hi x i  b h
i
whi
wkh
yk
f ( S hi ) 
1
1 e
 S hi
 yh
출력층에서의 계산
bh
bk
1
1
3층 MLP
ynk
S kh 

w kh y h  b k
h
f ( S kh ) 
1
1 e
 S kh
 yk
Adaline: Adaptive Linear Element
41/36
Adaline: Adaptive Linear Element
42/36
Steepest Decent Method
43/36
Steepest Decent Method
44/36
3.2 MLP의 Backpropagation
MLP의 Backpropagation
1. 연결강도 무작위 설정(-0.1<w<0.1, w≠0)
3.1 Shi계산
2. 데이터 입력
3.2 f(Shi)계산
3. 각 층의 출력 계산(yh,yk), 목표값과 출력값의 차이(ek) 계산
3.3 Skh계산
4. 출력층에서의 가중치 변화율 계산 Δwkh, Δbk
3.4 f(Skh)계산
5. 출력층의 가중치 업데이트 < wkh(t+1), bk(t+1) >
No
6. 은닉층에서의 가중치 변화율 계산 Δwhi, Δbh
7. 은닉층의 가중치 업데이트 <whi(t+1), bh(t+1) >
8.최대반복회수 이상 or e
p

e1  e 2  e 3       e n  
2
Yes
9. (8)의 조건을 만족하면 학습종료
2
2
2
3.5 ek계산
4. Neural Network의 학습능력
Neural Network의 학습능력
1. 비선형 함수 근사화 능력(Nonlinear function approximation capability)
▷ 비선형함수를 사용하여 은닉층의 은닉뉴런의 수가 증가할 수록 근사화 맵핑능력
하지만 은닉뉴런의 수가 많아지면 그 만큼 계산시간이 증가
2. 학습능력(Learning)
▷ 일정한 예측인자와 예측변수와의 관계를 반복적으로 학습하면 두 변수의 관계를
통하여 가중치가 결정됨
▷ 새로운 입력(예측인자)가 들어오면 가중치를 이용하여 예측변수의 예측이 가능
n
net  w1 x1  w 2 x 2  w 3 x 3       w n x n 

i 1
f ( net ) : activation function
wi xi
MLP의 고려사항
• 각층내의 연결과 입력층에서 출력층으로 직접적인 연결이 존재하지 않는 전방향
(Feedforward) 네트워크
• 단층퍼셉트론의 여러가지 단점들을 극복
- 단층 : 입력값의 결정구역을 두구역으로 나눌 수 있음.
- 2층 : 볼록한 개구역 혹은 오목한 폐구역을 형성
- 3층 : 이론상 어떠한 형태의 구역도 가능
• 시그모이드함수의 경우 결정영역이 직선이 아닌 완만한 곡선경계를 갖게되고, 미분이
가능하므로 은닉층을 학습할 수 있는 backpropagation 학습알고리즘의 사용이 가능함.
47/36
5. MLP의 고려사항
MLP의 고려사항
- 일반적으로 입력뉴런과 출력뉴런 보다 많게 설정
- 가능한 작은 수로 시작하여 오차가 줄어들 때까지 수를 늘린다
은닉층의 뉴런수
- 너무 적으면 학습능력 저하
- 너무 많으면 학습시간 오래 걸림
- (2nI+1) ~ (2nI0.5+nk) ; (Fletcher and Goss, 1993)
- 초기가중치는 -0.1<w<0.1로 설정
- w에 의하여 수렴속도에 차이가 있음
연결강도
(가중치)
- 하지만 연결강도의 값을 모르기 때문에 무작위 설정
- 초기 가중치를 모두 0으로 설정시 가중치값이 일정한 패턴으로
업데이트되는 경우가 있으므로 최소 오차값에 이르는 가중치값
의 변화에 제한이 있음
- 따라서 0이 아니 값으로 설정하는게 바람직
5. MLP의 고려사항
MLP의 고려사항
- 일반적으로 0< η<1 로 설정
학습률, η
- 연결강도의 변화량에 영향을 미침
-학습률이 너무 크면 불안정
- 다른 형태의 학습률
- 이전 (t-1)시간에서의 가중치 변화와 (t)시간에서의 가중치 변화
모멘텀, α
율 중에서 어디에 많이 비중을 두느냐를 결정짓는 것
-일반적으로 0.9를 많이 사용
(α를 0.9로 결정하면 (t-1)시간에서의 가중치 변화율을 90%활용
하게 되므로 (t)시간에서의 가중치 변화율에 대한 의존도 저하)
질문과 토론
3.2 MLP의 Backpropagation
MLP의 Backpropagation: 연결강도 변화
y1
y2
whi
wkh
yk
출력층에서의 연결강도(가중치)의 변화, △wkh
ek  d k  y k
E 
bh
bk
1
1
1
2
ynk

e
함수인 경우 ,
 w kh  
  w kh   e k f  ( S kh ) y hi
  kh y h
  e k y k (1  y k ) y hi
②출력층 : 항등함수 ( y  x )인 경우 ,
  w kh    kh y hi   e k f  ( S kh ) y hi
  e k y hi
E
 w kh


 w kh
2
k
  w kh y h  b k

 yh
k
 w kh
k
3층 MLP
①출력층 : 시그모이드
 S kh
E
E
 w kh
y k
 y k  w kj
1
2
  ek

  ek
 w kh
y k
 S kh
 S kh  w kh
E  (d k  y k ) y k
ek
y k
 2  e k  (  1) 
  ek
yk
 w kh
y k
 w kh
y k
 w kh
  w kh   e k f ( S kh ) y h   e k y k (1  y k ) y h
 kh  e k f ( S kh )이고 출력 S kh 가 시그모이드
f ( S kh ) 
e
 S kh
(1  e
 S kh
)
2

1
1 e
 S kh
(1 
함수를 통과하면
1
1 e
 S kh
)
 kh  e k f ( S kh )  e k f ( S kh )(1  f ( S kh ))  e k y k (1  y k )
3.2 MLP의 Backpropagation
MLP의 Backpropagation: 연결강도 변화
y1
y2
whi
wkh
yk
bh
bk
ynk
1
1
3층 MLP
출력층 연결강도(가중치)의 변화, △ bk
 b k  
E
 bk

E
 bk
  ek
E  (d k  y k ) y k
ek

1
2
y k
  ek
 bk
y k
 bk
 2  e k  (  1) 
y k
y k
 bk
y k
 S kh
 S kh
 bk
 f  ( S kh )
 bk
y k
 bk
 S kh
 bk
nH
 S kh
 bk
  b k   e k f ( S kh )  
  bk   e k

kh

  w kh y h  b k
h 1
 bk
(출력층: 시그모이드 함수)
(출력층: 항등함수)
1
3.2 MLP의 Backpropagation
MLP의 Backpropagation: 연결강도 변화
y1
y2
yk
wkh
whi
bh
ek  d k  y k
E 
bk
1
은닉층에서의 연결강도(가중치)의 변화, △whi
ynk
1
3층 MLP
1
e
2
2
k
k
E
 w hi  
 w hi
y k
 w hi  
 w hi  
 w hi  
E
 w hi
 
E yk
yk yh
E
yk
E
yk
 w hi

 
y k
E
 y k  w hi
 y k  y h  S hi
 y h  S hi  w hi

yh
 y k  w hi
 S hi
nH
f  ( S hi ) x i

f  ( S kh ) w kh
k 1
nH
y k
y h
S
 f  ( S hi ), hi 
 w hi
nk


k 1
 y kh  S kh
 S kh  y h
nk


 (  w hi x i  b h )
i 1
 w hi
 xi
f  ( S kh ) w kh
k 1
 w hi    e k f  ( S hi ) x i  f  ( S kh ) w kh
k 1
f  ( S hi ) x i
nI
y h
f  ( S hi ) x i
y k
nH
y k
 S kh
 f  ( S kh
S
), kh 
y h
 (  w kh y h  b k )
h 1
y h
 w kh
3.2 MLP의 Backpropagation
MLP의 Backpropagation: 연결강도 변화
y1
y2
whi
wkh
bh
bk
1
1
3층 MLP
yk
ynk
은닉층에서의 연결강도(가중치)의 변화, △whi
E
 w hi  
 
 w hi
hi
 w hi
 S kh
yh

i
h
 xi
k
 w kh
  w kh y h  b k

yh

E
 S hi
nk
 w kh
k
 
 S hi  w hi
 hi  
 w x b
S
hi
 S hi
E
 
k 1
E

hi
1
2
 w hi
(d k  yk )
 S kh  y h
kh
w kh f  ( S hi )
k 1
 kh  e k f ( S kh )  e k f ( S kh )( 1  f ( S kh ))
1. 출력층: 시그모이드
함수
n
  hi
k
 f  ( S hi )  [( d k  y k ) f  ( S kh ))] w kh
k 1
  w hi  
hi
xi
2. 출력층: 항등 함수
nk
  hi  f  ( S hi )  [( d k  y k ) ] w kh
k 1
 S hi
 S kh  y h  S kh
nk

 
 S hi
2
3.2 MLP의 Backpropagation
MLP의 Backpropagation: 연결강도 변화
y1
y2
출력층 연결강도(가중치)의 변화, △ bh
whi
wkh
yk
 b h  
bh
bk
ynk
y k
1
1
3층 MLP
 bh


1. 출력층: 시그모이드함수
nH
  b h     e k  
f  ( S kh ) w kh

  b h   f ( S hi )  e k f ( S kh ) w kh

k 1
nH
k 1
E
 bh
 
E y k
 y k  bh
y k y h
 y h  bh
nH
 S hi
 y k  y h  S hi
 bh
 y h  S hi  b h
y k
y h
y k
y h
f  ( S hi )

  w hi x i  b h
h 1
 bh
1
 S hi
 bh
f  ( S hi )
2. 출력층: 항등함수
nH
  b h    f  ( S hi )  e k w kh
k 1
y k
y h
nk


k 1
 y kh  S kh
 S kh
y h
nk


f  ( S kh ) w kh
k 1
nH
y k
 S kh
 f  ( S kh
S
), kh 
y h
 (  w kh y h  b k )
h 1
y h
 w kh
3.2 MLP의 Backpropagation
MLP의 Backpropagation: 연결강도 변화 정리
y1
y2
wkh
whi
bh
bk
1
yk
  b k   e k f ( S kh )  
kh
  bk   e k
(출력층: 시그모이드 함수)
(출력층: 항등함수)
nk
ynk
1
3층 MLP
  hi  f  ( S hi )
 [( d
k
 y k ) f  (S kh ))] w kh
(출력층: 시그모이드 함수)
k 1
nk
  w hi    x i  f  ( S hi )
 [( d
k
 y k ) f  (S kh ))] w kh
k
 y k ) ] w kh
k 1
nk
  w hi    x i  f  ( S hi )
①출력층
: 시그모이드
함수인 경우 ,
  w kh   e k f  ( S kh ) y hi
 
kh
yh
  e k y k (1  y k ) y hi
②출력층
: 항등함수 ( y  x )인 경우 ,
  w kh    kh y hi   e k f  ( S kh ) y hi
  e k y hi
 [( d
(출력층: 항등함수)
k 1
nH
  b h     e k   f  ( S kh ) w kh
k 1
nH
( 출력층: 시그모이드함수 )
  b h   f ( S hi )  e k f ( S kh ) w kh
k 1
nH
  b h    f  ( S hi )  e k w kh
k 1
( 출력층: 항등함수 )
3.2 MLP의 Backpropagation
MLP의 Backpropagation: 연결강도 update
y1
y2
whi
wkh
bh
bk
1
yk
ynk
1
3층 MLP
연결강도 Update
w kh ( t  1)  w kh ( t )   w kh   ( w kh ( t )  w kh ( t  1))
b k ( t  1)  b k ( t )   b k   ( b k ( t )  b k ( t  1))
w hi ( t  1)  w hi ( t )   w hi   ( w hi ( t )  w hi ( t  1))
b h ( t  1)  b h ( t )   b h   ( b h ( t )  b h ( t  1))
여기서 ,  : 모멘텀 변수 ( 0    0 . 9 )
3.2 MLP의 Backpropagation
MLP의 Backpropagation: 연결강도 update
0
wh1
wh2
wk1
wk2
1
1
wh3
wh4
wk3
wk4
0
1
1
-1
0
1
1
0
1
S h 2  ( 0  0 )  (1  1)  1  2  f  S h 2
S h 2  x1 w h 2  x 2 w h 4  1  f  S h 2
S k 1  (1  1)  ( 2  0 )  1  2  f  S k 1 
S k 2  S h1 w k 2  S h 2 w k 4  1  f  S k 2

ek 1  1  2   1

ek 1  0  2   2
w k 1 ( t  1)  1  0 . 1  (  1)  1  0 . 9
w k 2 ( t  1)   1  0 . 1  (  2 )  1   1 . 2

w k 3 ( t  1)  0  0 . 1  (  1)  2   0 . 2
w kh ( t  1)  w kh ( t )   e k f  S h 1 
w k 4 ( t  1)  1  0 . 1  (  2 )  2  0 . 6
b k ( t  1)  b k ( t )   e k
b k 1 ( t  1)  1  0 . 1   1  0 . 9
b k 2 ( t  1)  1  0 . 1   1  0 . 9
nk
w hi ( t  1)  w kh ( t )   x1
e
i 1
e
i 1
k
w kh
w h 1 ( t  1)   1  [ 0 . 1  0  {(  1  1)  (  2   1)}]   1
w h 2 ( t  1)  0  [ 0 . 1  0  {(  1  0 )  (  2  1)}]  0
w h 3 ( t  1)   1  [ 0 . 1  1  {(  1  1)  (  2   1)}]  0 . 1
nk
b h ( t  1)  b h ( t )  

S k 2  (1   1)  ( 2  1)  1  2  f  S k 2

S k 1  S h1 w k 1  S h 2 w k 3  1  f  S k 1 
ek 1  0  f S k 2
-1
0
0
1
S h 1  ( 0   1)  (1  0 )  1  1  f  S h 1 
1
S h 1  x1 w h 1  x 2 w h 3  1  f  S h 1 
ek 1  1  f S k 1 
0
1
1
1
1
1
1
k
w kh
w h 4 ( t  1)  1  [ 0 . 1  1  {(  1  0 )  (  2  1)}]  0 . 8
b h 1 ( t  1)  1  [ 0 . 1  {(  1  1)(  2   1)}  1 . 2
b h 2 ( t  1)  1  [ 0 . 1  {(  1  0 )(  2  1)}  0 . 8
3.2 MLP의 Backpropagation
MLP의 Backpropagation: 연결강도 update
0.9
1.2
0
1
-1
0.9
0
-1.2
0.1
-0.2
0.8
1
0
0.6
0.8
S h 1  ( 0   1)  (1  0 . 1)  1 . 2  1 . 3  f  S h 1 
0.9
S h 2  ( 0  0 )  (1  0 . 8 )  0 . 8  1 . 6  f  S h 2 
S k 1  (1 . 3  0 . 9 )  (1 . 62   0 . 6 )  0 . 9  1 . 75  f  S k 1 
S k 2  (1 . 3   1 . 2 )  (1 . 62  0 . 6 )  0 . 9  0 . 3  f  S k 2 
e k 1  1  1 . 75   0 . 75
ek 1  0  0 .3   0 .3
∴ 1회 학습결과 목표값에 조금 더 가까워지는 것을 알 수 있다.
6. Reference
Reference
[1] 인공지능시스템 I(신경회로망의 구조 및 사용법), 정슬지음
[2] 신경망을 이용한 파고계의 결츨치 보안(정인길, 2002.12)
[3] Development of Bias-correction techniques for numerical wheather forcasts
(JORGE A. Ramírez)
[4] Understanding neural networks and fuzzy logic,(STAMATION V. Kartalopoulos)
[5] Artificial Neural Networks(Ajith Abraham)