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)