신경회로망 PPT

advertisement
Neural Networks
1
Neural Network
개요
 신경회로망(Neural Networks)
 생물학적
계산 체계를 이용하여 생물학적 정보체계 와 심리학,신경과학, 인
지과학, 시스템 이론 병합한 예측, 분류, 최적화 등 문제해결을 위한 도구로
이용
 기본
작업
학습(learning): 패턴 분류에 따라 신경망의 연결가중치 조정
 재생(recall): 학습된 가중치와 입력벡터와의 거리 계산하여 가장 가까운
클래스로 분류
→ 사람과 같은 학습 능력: 패턴 분류, 인식, 최적화, 예측
→ 기존 인공지능 문제 해결의 새로운 계산 틀 제공

 (인공)신경회로망

인간의 두뇌작용을 신경 세포들간의 연결관계로 모델링
→ 인간의 학습을 모델링
Neural Network
A part of Machine Learning
Learning
algorithm
Trained
Machine(Model)
TRAINING
DATA
Answer
Query
Neural Network
ANN leaning Task
Attrib2
Attrib3
Class
Learning
algorithm
Tid
Attrib1
1
Yes
Large
125K
No
2
No
Medium
100K
No
3
No
Small
70K
No
4
Yes
Medium
120K
No
5
No
Large
95K
Yes
6
No
Medium
60K
No
7
Yes
Large
220K
No
Learn
8
No
Small
85K
Yes
Model
9
No
Medium
75K
No
10
No
Small
90K
Yes
Model
10
Training Set
Tid
Attrib1
Attrib2
11
No
Small
55K
?
12
Yes
Medium
80K
?
13
Yes
Large
110K
?
14
No
Small
95K
?
15
No
Large
67K
?
10
Test Set
Attrib3
Class
Apply
Model
Neural Network
Successful Story
Example Problem:
Handwritten Digit Recognition
• Handcrafted rules will result in
large no. of rules and Exceptions
• Better to have a machine that
learns from a large training set
Wide variability of same numeral
Neural Network
Successful Story
• Learning to drive an
autonomous vehicle
– Train computer-controlled vehicles
to steer correctly
– Drive at 70 mph for 90 miles on public
highways
– Associate steering commands with
image sequence
– 1200 computer-generated images as
training examples
• Half-hour training
An additional information from previous image
indicating the darkness or lightness of the road
Neural Network
Successful Story

Learning to recognize spoken words
– Speech recognition/synthesis
– Natural language understanding/generation
– Machine translation
Neural Network
개요
 생물학적
뉴런
핵
세포체
신경절
수상돌기
 신경기능
축색돌기
탐구
생물학적 신경회로망: 인간의 생체 기능 연구(생물, 생리, 신경과학자)
→ 동물 생체 실험 → 학습능력의 원천 밝힘
 인공신경회로망  신경회로망의 기능, 구조를 H/W, S/W적으로 실현 →
기존의 시뮬레이션으로 구현된 알고리즘을 H/W화

Neural Network
역사
McCulloch와 Pitts - 신경세포들을 단순 연결한 신경회로망
은 산술 및 논리연산을 수행할 수 있다.
 (1949) Hebb의 법칙
 (1943)
최초의 인공 신경회로망의 학습규칙 제안
 신경회로망이 학습을 수행함을 증명

 50,
60 년대
단층의 인공세포의 신경회로망
 Rosenblatt, Widrow의 Perceptron- 일기예보, 심전도 해석, 인공시각
 69년 Minsky 등에 의해 한계 지적(퍼셉트론은 XOR 문제해결 불가)
 신경망 연구 침체 → 기호주의 AI 활성화

 80
년대 중반이후
기호주의 AI 한계
 Hopfield: 신경회로망  에너지 개념
 오류역전파 학습 알고리즘(Rumelhart, McCleland): 다층 퍼셉트론 학
습

→ 신경회로망 연구 부흥
Neural Network
신경망(Neural Network)
 과거에 수집된 데이터로부터 반복적인 학습과정을 거쳐
데이터에 내재되어 있는 패턴을 찾아내는 모델링 기법
 주택가격
예측모형을 구축하는데 사용된 데이터
속성 명
값의 범위
실제 값
방의 개수
1~6
4
연도
1945~1995
1980
난방
A,B
B
주차공간
0~3
1
거실
5~50
25
층수
1~3
2
크기
10~100
60
방향(동)
예,아니오
0
방향(서)
예,아니오
0
방향(남)
예,아니오
1
방향(북)
예,아니오
0
팔린 시기
0~23
8
가격
5,000~30,000
10,000
Backpropagation
역할
입력변
수
Input Layer
출력변
수
Hidden Layer
Output Layer
Hidden Layer의수가 많아지면 분류능력이 향상되어
더 많은 패턴을 인식할 수 있지만 Overfitting될 수도 있다.

Neural Network
신경망(Neural Network)
 신경망을 이용한 주택가격 평가모형
방수
연도
1) 마디를 연결하는 고리에 임의로 초기
난방
강도(Weight)값을 지정하여 초기 모형설정
주차공간
2) 입력 값 및 출력 값 변환
거실
3) 데이터 입력 후 실제 값과 비교
층수
4) 실제 값과 차이를 최소화 하도록 Weight
가격
크기
조절
5) 시험용 데이터를 이용하여 모형의 예측
방향(동)
방향(서)
방향(남)
방향(북)
팔린 시기
정확도 검증
6) 업무현장에 적용
7) 출력 값 변환
Neural Network
인공 신경망의 특징
 신경망은
새로운 데이터의 예제를 통해 학습한다.
쉽게 예측능력을 증가시킬 수 있다
 데이터들이
선형적인 관계와 비 선형적인 관계인지를 모르거나, 둘 다의
특징을 갖고 있는 것에 대해서 모델을 만들기 편리하다.

잡음(noisy)이 섞이거나 또는 불완전하고 일관성 없는 데이터를 다루기
에 적합하다.
 Neural
Network 모델은 이론적인 기초를 가지고 있지 않다. 결과에 대해
서 명백한 이유를 제시 어려움.
 효과적인
Neural Network모델을 만들기 위해서는 넓은 범위의 변수를 포
함하는 학습 데이터를 필요로 한다.
 만약에
학습데이터의 범위 밖의 입력 데이터가 들어 올 경우에는 예측능
력이 현저히 떨어질 수 있다.
Neural Network
신경망(Neural Network)
 장점
 입력,
출력마디에 이산형, 연속형 변수 모두 사용 가능하며 기법을 적용할
수 있는 문제의 영역이 Decision Tree나 통계에 비해 넓다.
 상용화된
데이터마이닝 제품이 많으며 제품 선택의 폭이 넓다.
 단점
 분류나
예측 결과만을 제공할 뿐 결과에 대한 근거를 설명하지 못한다.
 복잡한
학습과정을 거치기 때문에 모형 구축 시 많은 시간이 소요된다. 따
라서 입력변수의 수가 너무 많으면 통계나 Decision Tree를 이용하여 변수
를 선별 후 신경망을 구축하는 대안을 고려 할 수 있다.

다양한 Parameter값을 설정하는 작업이 전문성을 필요로 하기 때문에 비
전문가들이 사용하기에 어려움이 따른다.
Neural Network
Function Learning
 Map categorisation learning to numerical problem
 Each
category given a number
 Or a range of real valued numbers (e.g., 0.5 - 0.9)
 Function learning examples
 Input
= 1, 2, 3, 4 Output = 1, 4, 9, 16
 Here the concept to learn is squaring integers
 Input = [1,2,3], [2,3,4], [3,4,5], [4,5,6]
 Output = 1,
5,
11,
19
 Here the concept is: [a,b,c] -> a*c - b

The calculation is more complicated than in the first example
 Neural networks:
 Calculation
is much more complicated in general
 But it is still just a numerical calculation
Neural Network
인공 신경망의 원리
X1
X2
X3
Y
Input
1
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
X1
Black box
Output
X2
X3
Output Y is 1 if at least two of the three inputs are equal to 1.
Y
Neural Network
인공 신경망의 원리
X1
X2
X3
Y
1
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
Input
nodes
Black box
X1
X2
X3
Output
node
0.3
0.3
0.3

t=0.4
Y  I ( 0. 3 X 1  0 . 3 X 2  0 . 3 X 3  0 . 4  0 )
1
where I ( z )  
0
if z is t rue
ot herwise
Y
Neural Network
인공 신경망의 원리
 Model is an assembly of
inter-connected nodes and
weighted links
 Output node sums up each of
its input value according to
the weights of its links
Input
nodes
Black box
X1
Output
node
w1
w2
X2

Y
w3
X3
t
 Compare output node against
some threshold t
Perceptron Model
Y  I ( wi X i  t )
i
or
Y  sign( wi X i  t )
i
Neural Network
General Structure of ANN
x1
x2
x3
Input
Layer
x4
x5
Input
I1
I2
Hidden
Layer
I3
Neuron i
Output
wi1
wi2
wi3
Si
Activation
function
g(Si )
Oi
threshold, t
Output
Layer
Training ANN means learning
the weights of the neurons
y
Oi
Neural Network
Algorithm for learning ANN
 Initialize the weights (w0, w1, …, wk)
 Adjust the weights in such a way that the output of
ANN is consistent with class labels of training
examples
 Objective
function:
E  Yi  f ( wi , X i )
2
i
the weights wi’s that minimize the above objective
function
 Find

e.g., backpropagation algorithm
Neural Network
정의 및 특징
 신경회로망이
커지고 복잡해질수록 더 나은 기능 수행
다층 신경회로망: 입력층과 출력층 사이에 새로운 층 추가
→ 은닉층(hidden layer) 또는 중간층(internal layer)

 예를
통한 학습, 일반화, 연상기억, 결함 허용성의 특징을 보인다
예를 통한 학습 - 예를 계속적으로 제시함으로써 원하는 형태의 사상
(mapping)을 만듦 : 지도 학습/비지도 학습
 일반화 - 학습이 완료된 신경회로망은 학습되지 않은 입력에 대해서도 올
바른 결과를 출력
 연상기억 - 새로운 입력, 일부 유실된 정보 → 유사한 출력
 결함 허용성 - 일부 뉴런 고장, 단절 → 남아 있는 뉴런들에 의해 작동 보
장
 연결가중치 조정방법

– 지도학습: 입력이 주어짐에 따라 원하는 출력값이 활성화 되도록 가중치를
조절 (Hopfield 학습규칙, 델타규칙, 오류 역전파 학습규칙)
– 비지도학습: 목표값 없이 학습 데이터만 입력, 스스로 연결가중치들을 학습
미리 결정된 해가 불필요 (경쟁학습, ART 모델)
Neural Network
종류
 신경회로망 모델 종류
입력형식
이진입력
학습방식
신경회로망 모델
지도 학습
Hopfield network
지도 학습 및 비지도
학습을 결합한 학습
Counter propagation
network
비지도 학습
ART model
지도 학습
Perceptron
Multilayer Perceptron
비지도 학습
Competitive learning
SOM
실수입력
Neural Network
Hopfield 신경회로망
 신경회로망의
동작: energy + dynamic system
 조직
모든 뉴런이 양방향으로 연결(자신 제외)
 전달(활성화)함수 : hard limiter 함수 사용
 입력 : 2진수


출력 : +1, -1(양과 음의 에너지 상태를 표시)
0
1
2
N-1
I0
I1
I2
IN-1
Neural Network
Hopfield 신경회로망의 동작 규칙
1단계
: M개의 패턴을 이용하여 N개 뉴런 사이의 연결 가중치를 지정
 M 1 s s

Xi X j , i  j
w ij   
s 0

i j
 0,
(0  i, j  N  1)
뉴런 i에서 뉴런 j로의 연결가중치
 Xsi: s 클래스에 속하는 학습패턴의 i번째 요소값(+1 or -1)
 wij:
2단계
: 미지의 입력패턴을 신경회로망에 제시
3단계
: 뉴런들의
출력과 가중치를 곱한 값을 합하여 전달함수를 통과
M 1
μi (0)  xi , (0  i  N 1)

μi (t  1)  f h (
j 0
4단계
 1, if a  0
wij  μ j (t )), (0  j  N  1) where f h  
 1, if a  0
: 수렴(출력의 변화가 없음)할 때까지 3단계를 계속 반복
5단계 : 2단계로 분기
Neural Network
Hopfield 신경회로망의 예
 예제
1) (1, 1, -1, -1)을 입력 하면 P0 , P1 중 어느 패턴에 수렴 할까?
P0 = ( 1,
1,
1,
-1),
P1 = (1, -1,
1,
-1)
Neural Network
Hopfield 신경회로망의 예
예제
1) 다음 2개의 4차원 학습패턴벡터의 경우 wij는 ?
[1단계]
X00, X01, X02,
P0 = ( 1,
1,
1,
X10, X11, X12,
P1 = (1, -1,
1,
X03
-1),
X13
-1)
0
wij   0
2
 2
0 2  2
0 0
0
0 0  2
0  2 0 
w 00  w11  w 22  w33  0
w01  x00x10  x10x11
 11  1 1  0
w03  x00 x30  x10 x13
 1 1  1 1   2
w13  x10x30  x11x13
 1 1  (1)  1  0
w02  x00 x02  x10 x12
 11  11  2
w12  x10 x02  x11x12
 11 
11  0
w12  x10 x02  x11x12
 1 (1)  1 1   2
Neural Network
Hopfield 신경회로망
예제
1) (1, 1, -1, -1)을 입력 하면 P0 , P1 중 어느 패턴에 수렴 할까?
0 0
P0 = ( 1, 1, 1, -1),
P1 = (1, -1, 1, -1)
2  2
0
wij   0 0 0
 2 0 0  2
 2 0  2 0 
[2단계]
주어진 패턴 (1, 1, -1, -1) 에 대해 Hopefield 알고리즘의 2단계에서 5단계까지를 실행한다
μi (0)  xi , (0  i  N 1)
i(0) : (1, 1, -1, -1)
[3단계]
M 1

μi (t  1)  f h (
i 0
 1, if a  0
wij  μi (t )), (0  j  N  1) where f h (a)  
 1, if a  0
0(1) = fh( w000(0) + w101(0) + w202(0) + w303(0) )
= fh(0×1 + 0×1 + 2×-1 + (-2)×-1 ) = 1
같은 방법으로 반복하여 1(1) = 1, 2(1) = 1, 3(1) = 1
i(1) : (1, 1, 1, 1)
Neural Network
Hopfield 신경회로망
0
wij   0
2
 2
[3단계-반복]
0 2  2
0 0
0
0 0  2
0  2 0 
i(1) : (1, 1, 1, 1)
 1, if a  0
μi (t  1)  f h (  wij  μi (t )), (0  j  N  1) where f h (a)  
i 0
 1, if a  0
M 1
0(2) = fh( w000(1) + w101(1) + w202(1) + w303(1) )
= fh(0×1 + 0×1 + 2×1 + -2×1 ) = 1
같은 방법으로 반복하여 1(2) = 1, 2(2) = 1, 3(2) = -1
i(2) : (1, 1, 1, -1)
Neural Network
Hopfield 신경회로망
0
wij   0
2
 2
[3단계-반복]
0 2  2
0 0
0
0 0  2
0  2 0 
i(2) : (1, 1, 1, -1)
 1, if a  0
μi (t  1)  f h (  wij  μi (t )), (0  j  N  1) where f h (a)  
i 0
 1, if a  0
M 1
0(3) = fh( w000(2) + w101(2) + w202(2) + w303(2) )
= fh( 0×1 + 0×1 + 2×1 + (-2)×-1 ) = 1
같은 방법으로 반복하여 1(2) = 1, 2(2) = 1, 3(2) = -1
i(3) : (1, 1, 1, -1)
Neural Network
Hopfield 신경회로망 - 비고
 예제
2개의 4차원 학습패턴벡터: P0=(1,1,1,-1), P1=(1,-1,1,-1)일때 wij는?
 w00 = w11 = w22 = w33 = 0
 w01=X00X01+X10X11=1x1+1x(-1) = 0
 (0) : (1, 1, -1, -1)
0
wij   0
2
 2
 예제:
0 2  2
0 0
0
0 0  2
0  2 0 
i
 입력: (1,1,-1,-1) 
i(1) : (1, 1, 1, 1)
i(2) : (1, 1, 1, -1)
i(3) : (1, 1, 1, -1) 수렴
각 패턴 크기: (5x5) 대상 : {ㄱ, ㄴ, ㄷ, ㄹ}으로 학습
테스트 패턴: {ㄱ, ㄴ, ㄹ}으로 테스트
 테스트 결과

– ㄱ, ㄴ: 제대로 인식
– ㄹ: ㄷ으로 오인식
→ 회로망 크기 vs 저장 가능한 패턴수 문제
→ Hopfield에서는 뉴런 수가 N인 경우, 0.15N개의 패턴 저장 가능
(이 예제의 경우 25x0.15 = 3.75 → 4개 미만의 패턴 인식)
 수렴결과가
최적인지 보장 안됨
Neural Network
숫자를 인식하는 패턴 인식의 예
 IF – Then 으로 패턴 인식
물론 숫자 7을 인식하기 위해서 if - then으로 구성할 수도 있고, table 형식으로 구성할 수도
있다. x = GetBinaryFromImage();
if( x == 111101001001 )
then
return 7;
.
- 노이즈로 인해 이진수가 111001001001로 바뀌었다면 모든 경우의 수를 표현하기 어렵다.
 숫자 7과 신경망 패턴 인식
- 3 × 4 픽셀(pixel)로 구성된 이미지와 숫자 7과 신경망 구성이다.
- 노이즈 처리가 용이
- 하나의 알고리즘으로 분류(classification)가 가능하다.
Neural Network
숫자를 인식하는 패턴 인식을 신경망 구축

이미지로부터 신경망의 노드가 처리할 수 있는 데이터로 변환

각 입력 노드 값을 설정하고 가중치(weight)가 적절히 설정

가장 큰 값인 7이 출력 노드에 표현될 것임
(즉, 임의의 이미지를 입력으로 하였을 때 가장 큰 값의 출력 노
드가 그 이미지가 가리키고 있는 숫자인임)

"어떻게 가중치값을 설정할 것인가 ?“
초기 신경망의 Weight 값은 보통 -1.0 ~ 1.0의 임의 값으로 설정
하는 것이 보통임
Neural Network
숫자를 인식하는 패턴 인식을 신경망 구축

신경망에서의 학습이란 원하는 결과의 노드가 최대값이 나오도록
적절히 가중치를 설정하는 과정이다.
예) 111101001001이나
111001001001의 입력이 들어가도 출력 노드 7이 최대값이 되
도록 가중치를 설정하면 된다.

학습에 사용되는 대표적인 알고리즘이 바로 역전파(back
propagation) 알고리즘이다.
Neural Network
Perceptrons
 Multiple input nodes
 Single output node
 Takes
a weighted sum of the inputs, call this S
 Unit function calculates the output for the network
 Useful to study because
 We
can use perceptrons to build larger networks
 Perceptrons have limited representational abilities
 We
will look at concepts they can’t learn later
Neural Network
Step
Function
Sigma
Function
Unit Functions
 Linear Functions
 Simply
output the weighted sum
 Threshold Functions
 Output
low values
Until the weighted sum gets over a threshold
 Then output high values
 Equivalent of “firing” of neurons

 Step function:
 Output
+1 if S > T (Threshold)
 Output –1 otherwise
 Sigma function:
 Similar
to step function but differentiable (next lecture)
Neural Network
Example Perceptron
 Categorisation of 2x2 pixel black & white
images
Into
“bright” and “dark”
 Representation of this rule:
{
 If
it contains the no. of white pixels >= 2, it is “bright”
 Otherwise, it is “dark”
 Perceptron architecture:
Four input units, one for each pixel
One output unit: +1 for white,
-1 for dark
Neural Network
Example Perceptron
 Example calculation: x1=-1, x2=1, x3=1, x4=-1
 S = 0.25*(-1) + 0.25*(1) + 0.25*(1) + 0.25*(-1) = 0
 0 > -0.1, so the output from the ANN is +1
 So the image is categorised as “bright”
Neural Network
단층 퍼셉트론(Perceptron)
 눈의
망막을 모델화함(Rosenblatt)
 지도학습, 이진 & 아날로그 입력처리
 알고리즘 : 전체 출력뉴런들에 대하여 계산된 출력값과 목표값과의 차이를
최소화시킴(Widrow-Hoff 규칙(델타규칙)이 유명)
 →만일 계산된 출력값과 목표값 간에 차이가 없으면 연결 가중치는 변경되
지 않으며, 차이가 있으면 차이를 줄이는 방향으로 가중치를 변경.
 학습단계



1단계. 가중치(Wi(0))와 임계치()를 초기화.
2단계. 새로운 입력패턴(X0, X1, … )과 목표출력 패턴(d(t))을 제시
3단계. 하드리미터 함수를 사용하여 실제 출력값(y(t))을 계산
y (t )  f h (i  0 Wi (t ) X i (t )   )
N 1



Wi (t  1)  Wi  [d (t )  y(t )] X i (t ), (0  i  N 1)
4단계. 가중치를 갱신
0< α < 1, 학습율(learning rate), d(t): 입력에 대한 목표 출력값
5단계. 2단계로 분기하여 반복 수행
Neural Network
AND 예제
입력
X0
W0
 = 0.5
입력
X1
Y
X0
X1
AND
f
XOR
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
출력
W1

뉴런에 입력되는 가중치의 합이 임계치(

AND
0  W0  0  W1  0
0  W0  1  W1  W1
1  W0  0  W1  W0
1  W0  1  W1  W0  W1
→ W0, W1 : 0.3 or 0.4
출력
= 0.5 )를 초과하면 1, 아니면 0
 0.5
 0.5
 0.5
 0.5
Neural Network
XOR 예제
X0
W0
입력
 = 0.5
입력
X1
Y
출력
W1
0  W0  0  W1  0
0  W0  1  W1  W1
1  W0  0  W1  W0
1  W0  1  W1  W0  W1
 0.5
 0.5
 0.5
 0.5
출력
X0
X1
AND
f
XOR
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
→ 만족하는 W0, W1 는 존재하지 않음
→ 간단한 XOR 문제도 해결하지 못함



이러한 문제를 해결하기 위해서 2개 또는 3개의 층(layer)을 사용
다층 퍼셉트론: 3층 퍼셉트론으로 어떤 문제도 해결가능
퍼셉트론은 다층 퍼셉트론 및 오류역전파 알고리즘의 기반 모델이 됨
참고. XOR 는 배타적 논리합, 입력된 2개 중 1개만 참일 때 참이 된다.
Neural Network
역전파 (back propagation)
 오류역전파(error
backpropagation) 개념
은닉층의 학습을 위해 출력층에서 발생한 오류를 이용하여 은닉층 오차
계산
 다시 이 값을 입력층으로 역전파시켜 출력층의 오차가 원하는 수준이 될
때까지 반복

• 이런 이유로 역전파 알고리즘이라고 한다.
• 신경망의 처리 : 입력층 → 은닉층 → 출력층
• Weight 갱신의 학습방향: 출력층 → 은닉층
Weight update
Input
오차(e = y - d)
Output
Error(e) = y – d
calculation
y: 데이터 입력에 대한 결과 값
d: 원 하는 값
Neural Network
역전파 (back propagation)
•Back propagation은 다층(multilayer)이고, feedforward 신경망에서 사용되는 학습
알고리즘이며, 학습의 방법은 지도 학습 (supervised learning)이다.
•즉, 학습을 하기 위해서는 입력 데이터와 원하는 출력(d) 데이터가 있어야 한다.
•입력이 신경망의 가중치(weights)와 곱하고 더하는 과정을 몇 번 반복하면 입력
의 결과값인 출력(y)이 나온다. 이 때 출력(y)은 학습 데이터에서 주어진 원하는
출력(d)와 다르다. 결국, 신경망에서는 (y - d)만큼의 오차(e = y - d)가 발생하며,
오차에 비례하여 출력층의 가중치를 갱신하고,
그 다음
가중치를
• 이런 이유로
역전파은닉층의
알고리즘이라고
한다.갱
신한다.
• 신경망의 처리 : 입력층 → 은닉층 → 출력층
• 가중치
갱신의 반대
학습방향:
출력층
• 가중치를 갱신하는 방향이 신경망의 처리
방향과는
방향이다.
Weight update
→ 은닉층
오차(e = y - d)
y: 입력에 대한 결과 값
Input
Output
calculation
d: 원 하는 값
Error(e) = y – d
Neural Network
역전파 (back propagation)
 실제
적용시 고려사항
최소평균제곱 비용함수의 국부 최적해를 위해 뉴런수를 증가
 이득항(, )을 낮출 필요 있음
 초기 가중치를 다르게 하여 여러 번 학습하는 방법

 문제점
상위층의 목표값과 실제 출력값 간의 오류를 하위층으로 역전파시키는
것은 생물학적으로 타당하지 않음 (목표를 알지 못함)
 오류 수렴까지 많은 회수의 학습 반복

 지도학습에서
효율성 나타냄 → 보편적으로 많이 사용
Neural Network
역전파 (back propagation Algorithm)
step1: present input to network
step2: propagate forward the activation
compute network output and compare with target
step3: propagate backward the error
compute "error signal" d
step4: update weights
step5: repeat steps 1 ~ 4 for each training pattern
until the stopping condition is met.
Neural Network
역전파 (back propagation Algorithm)
Stoppingrule
 w E  0 또는 E  0 또는 w  0
Neural Network
역전파 (back propagation Algorithm) Example
.3
-.1
2
1
2
Input
1
.1
.3
-.1
3
5
4
6
.5
Hidden Output
 0.5  1 
Given x =  , t =  
1 
0 
1
with yi  (a i ) =
and  = 0.01and i  0 i
-a i
1+ e

step1: Presentx : x1  .5 and x2  1
step2 : Propagation of activation()
a3 =w31 x1  w32 x2
 (.3)(.5)  (2)(1)  2.15, y3   (2.15)  .9
a4  (.1)(.5)  (1)(1)  .95,
y4   (.95)  .7
a5  (.1)(.9)  (.1)(.7)  .02, y5   (.02)  .5
a6  (.3)(.9)  (.5)(.7)  .62, y6   (.62)  .65
Neural Network
Error Backpropagation (계속)
Step 3: Backward Propagation of error (<=)
Output layer
Hidden layer
d 5  (d 5  y5 )( y5 )(1  y5 )
 (1  .5)(.5)(1  .5)  .125
d 6  (d 6  y6 )( y6 )(1  y6 )
 (0  .65)(.65)(1  .65)  - .148
d 3  (d 5 w53  d 6 w63 )( y3 )(1  y3 )
 [(.125)(.1)  (.148)(.3)](.9)(1  .9)  - .002871
d 4  (d 5 w54  d 6 w64 )( y4 )(1  y4 )    
Step 4: Modify Weights
 w53  d5 y3  (.01)(.125)(.9)  .001125
 w63  d6 y3  (.01)(.143)(.9)  - .0013
...
etc.
Neural Network
다층 퍼셉트론

신경망의 가장 일반적인 모델은 multilayer perceptron (MLP) 으로, 학습을 통한 지정된 출력을
요구하므로 supervised network 으로 알려져 있다. 이 모델의 목적은 출력의 지속적인 검증 및
학습을 통하여 기대되는 결과를 얻을 수 있도록 하는 것이다.
.
Neural Network
 Ex) Image를 scan 하는 OCR s/w

원본 문서가 scan된 후 image 형태로 컴퓨터에 저장이 된다. OCR s/w 는 각각의 문자의 image
format을 binary format (0, 1)으로 변경한 후, 신경망으로 전달되어 진다. 신경망에서는 가중치 값
및 function 에 의하여 새롭게 구성되는 output을 나타내게 된다. (ASCII 형태)
Neural Network
다층 퍼셉트론 (Multi-Layer Perceptron)
 입력층과
출력층 사이에 하나 이상의 은닉층을 가지는 전방향 신경
회로망
 단층 퍼셉트론의 문제점을 해결 → 효과적인 학습 알고리즘이 없어
서 60-70년대 사용되지 않았다.
 80년대 중반 오류 역전파(EBP)알고리즘 학습규칙(Rumelhart)
→ 일반화된 델타 규칙(generalized delta rule)
 알고리즘
: 원하는 목표값(d)과 실제 출력값(y) 사이의 오차제곱합으
로 정의된 비용함수(cost function) E의 값을 경사하강추적법
(gradient-descent method)에 의해 최소화 하는 방향으로 학습
E   Ep ,
p
(E p 
1
2
 (d pj  y pj ) )
2 j
p: p번째 학습 패턴
Ep: p번째 패턴에 대한 오차
dpj: p번째 패턴에 대한 j번째 요소
ypj: 실제 출력의 j번째 요소
Neural Network
 2층 퍼셉트론
0
……
k
……
M-1
k
Wkj
0
j
임계치
L-1
j
임계치
Wji
0
Xp0
……
i
Xpi
……
N-1
XpN-1
Neural Network
 학습
규칙
활성화 함수: 시그모이드 함수
1단계. 가중치와 임계치를 초기화
2단계. 입력과 목표 출력을 제시
3단계. 제시된 입력벡터를 이용하여 은닉층 j번째 뉴런으로 입력값 계산
netpj  iN01 Wji Xpi   j
4단계. 시그모이드 함수를 사용하여 은닉층의 출력(ypj)을 계산
5단계.은닉층의 출력을 이용하여 출력층 뉴런 k로의 입력값을 계산
netpk  Lj01Wkjypj  k
6단계. 시그모이드 함수를 사용하여 출력층의 출력(ypk)을 계산
7단계. 입력패턴의 목표출력(dpk)과 실제 출력 (ypk) 과의 오차값(dpk)을 계
산하고 출력층 오차합(E)을 학습패턴의 오차(Ep)로 누적 시킨다.
d pk  (d pk  y pk )f k (netpk )  (d pk  y pk ) y pk (1  y pk )
'
1 2
E  E  E p , ( E p  M
k 1 d pk )
Neural Network
8단계. 출력층 오차값(dpk)과 은닉층과 출력층의 가중치값(Wkj)을 이용하여
은닉층의 오차(dpj)를 계산한다.
1
M 1
d pj  f j' (net pj ) M
k 0 d pk Wkj   k 0 d pk Wkjy pj (1  y pj )
9단계. 4단계와 7단계에서 구한 은닉층 뉴런 j의 출력값(ypj)과 출력층의 오
차 값(dpk)을 사용하여 출력층의 가중치(Wkj)를 갱신한다(임계치도 조정)
Wkj ( t  1)  Wkj ( t )   d pk y pj
k ( t  1)  k ( t )   d pk
10단계. 출력층에서와 마찬가지로 입력층과 은닉층의 가중치 값과 임계치
값을 갱신한다.
W ji (t  1)  W ji (t )   d pj X pi
 j (t  1)   j (t )   d pj
11단계. 모든 학습패턴에 대하여 전부 학습 할 때까지 2단계로 분기하여
반복 수행한다.
12단계. 출력층의 오차합 E가 허용값 이하이거나 최대 반복회수보다 크면
종료, 그렇지 않으면 2단계로 가서 반복한다.
Neural Network
다음 중 좋아하는 도형을 한 가지만 골라 보라.
Neural Network
경쟁학습 (Competitive Learning)
 경쟁학습
 알고리즘
: 입력벡터들을 신경회로망에 계속적으로 제시하면서 자율
적으로 연결가중치를 변경시키는 방법
 단순하면서 하드웨어 구현 시 구조 간단

통계학의 k-means 군집화 알고리즘을 기초: 주어진 데이터를 k개의 클
래스로 어느 오차수준 이하로 구분될 때까지 반복 → 패턴분류
 단순





구조
한 개의 입력층과 한 개의 출력층
입력층과 출력층이 완전 연결
입력층과 출력층 뉴런사이엔 흥분적으로 연결
출력층의 뉴런들간에는 억제적으로 연결
출력뉴런들은 승자 뉴런이 되기 위해 경쟁하고 오직 승자만이 학습함
Neural Network
단순 경쟁학습 신경회로망의 구조
억제연결
흥분연결
Neural Network
자기조직화(self-organizing) 알고리즘
 초기
경쟁학습은 매번 승자뉴런만을 학습시키므로 초기 가중치벡터들의 분
포에 따라 전혀 학습이 이루어지지 않은 출력뉴런들이 생기는 문제점
 자기조직화(self-organizing)




알고리즘
인접한 출력뉴런들은 비슷한 기능을 수행할 것이라는 예측(뇌의 위치에 따라 인
지 종류가 다름)
기존의 경쟁학습을 개선하여 입력벡터와 가장 가까운 출력뉴런의 이웃뉴런들을
함께 학습 시키는 알고리즘
승자뉴런뿐만 아니라 위상적으로 이웃한 뉴런들도 함께 학습
학습규칙
–
–
–
–
–
–
–
1단계. 연결가중치를 초기화
2단계. 새로운 입력패턴을 입력뉴런에 제시한다.
3단계. 입력벡터와 모든 출력뉴런들과의 거리(입력-가중치)를 계산
4단계. 최소거리를 가지는 승자뉴런을 구한다.
5단계. 그 승자뉴런과 이웃한 출력뉴런에 연결된 가중치들을 갱신한다.
6단계. 2단계로 가서 새로운 입력벡터를 처리한다.
7단계. 지정된 학습회수까지 2단계부터 6단계의 과정을 반복
Neural Network
.

인간의 대뇌피질은 생각하고, 말하고, 듣고 그리고 판단하는 인간의 중요한 기
능을 처리하는 곳이다. 그러한 대뇌피질은 각각의 기능을 맡는 구역(region)이
정해져 있다. 뇌를 다쳐서 다른 건 멀정한데 과거의 기억을 잃어 버린다던가, 혹
은 말만 못한다던가 하는 것, 이런 이유는 바로 대뇌피질의 각 구역마다 맡은 기
능이 존재하기 때문이다. 이러한 특징을 ordered feature maps이라 한다.
바로 이러한 대뇌피질을 닮았다. SOM은 신경망(neural network)의 일
종이며, 자율(unsupervised)학습과 경쟁 학습 방법을 이용한다.
 SOM은
Propagation Net 은 이미지 데이터를 입력으로, 그리고 그 이미지 데이
터가 나타내는 숫자를 출력으로 하여 입력, 출력의 쌍으로 하여 지도 학습
(supervised leaning)을 시킨다. 하지만 SOM은 그렇지 않다.
 Back
자율(unsupervised)과 경쟁(competitive) 학습을 한다. 이미지 데이터를 입력하
였을 때, SOM의 출력 노드 중에서 다른 출력 노드와 비교해서 가장 강하게 반
응하는 노드가 있을 것이며, 그러한 출력 노드를 더욱 더 강하게 반응하게끔 반
복적으로 학습시키는 것이다. 즉, SOM에서는 BPN처럼 출력노드를 미리 기능
적으로 정하지 않는다. 입력에 대해 자연스럽게 반응하는 출력 노드를 선택하
여 반복 학습을 시켜면, 후에는 결과적으로 어떤 출력 노드가 반응되는지를 조
사하면 거꾸로 입력을 알 수 있게 되는 것이다.
Neural Network
자기조직화 (Self-Organizing Feature Map) 신경회로망
경쟁층
0
1
N-1
입력층
Neural Network
Self-Organizing Feature Map (SOM) algorithm
[단계 1] 연결강도를 초기화한다.
N개의 입력으로부터 M개의 출력 뉴런 사이의 연결강도를 임의의 값으로 초기화
초기의 이웃반경은 아래 그림에서와 같이 모든 뉴런들이 포함될 수 있도록 충분히
크게 잡았다가 점차로 줄어든다.
[단계 2] 새로운 입력벡터를 제시한다.
[단계 3] 입력벡터와 모든 뉴런들간의 거리를 계산한다.
입력과 출력 뉴런 j사이의 거리 dj는 (식 2)와 같이 계산한다.
N-1
2
dj =  (Xi(t) - Wij(t))
(식 2)
i=0
여기서 xi (t)는 시각 t에서의 i번째 입력벡터이고,
wij (t)는 시각 t에서의 i번째 입력벡터와 j번째 출력 뉴런 사이의 연결강도이다.
[단계 4] 최소 거리에 있는 출력 뉴런을 선택한다.
최소 거리 dj인 출력 뉴런 j*를 선택한다.
Neural Network
[단계 5] 뉴런 j*와 그 이웃들의 연결강도를 재조정한다.
뉴런 j*와 그 이웃 반경내의 뉴런들의 연결강도를 다음식에 의해 재조정한다.
wij(t+1)=wij (t)+α(xi(t)-wji(t))
(식 3)
여기서 j는 j*의 이웃 반경내의 뉴런이고,
i는 0에서 N-1까지의 정수값이다.
α는 0과 1사이의 값을 가지는 이득항(gain term)인데 시간이 경과함에 따라
점차 작아진다.
[단계 6] 단계 2로 가서 반복한다.
이웃반경의 크기 조정
Neural Network
예제
d0
d2
d1
출력층
0.2
0.9
0.3
0.5
1.0
0.8
(단, 학습률은 0.5)
입력층
0.1
0.9
[단계 1] 연결강도를 초기화
 [단계 2] 새로운 입력벡터를 제시, 입력: X=(0.1, 0.9)
 [단계 3] d0 = (0.1-0.5)2 + (0.9-0.9)2 = 0.16, d1 = 0.05, d2 = 0.02(승자뉴런)
 [단계 4] d2 = 0.02(승자뉴런) 선택
 [단계 5] d2의 연결 가중치 조정

W02(t+1) = 0.2+0.5(0.1-0.2) =0.15
W12(t+1) = 0.8+0.5(0.9-0.8) =0.85
→ 제시된 입력과 가장 유사한 출력뉴런의 가중치벡터가 입력을
향하여 이동
Neural Network
ART 모델
 적응

공명 이론(Adaptive Resonance Theory)
안정-적응(stability-plasticity)에 의한 자율 정규화
– 중요한 사건에 대해서 이를 내부적으로 잘 표현(적응)
– 중요치 않은 사건은 현재 학습된 내용에 손상을 주지않고 안정된(stable) 상
태로 남는다

입력이 들어오면 기존의 학습된 지식과 유사한 지를 비교
– 만일 비슷하면 새로운 입력을 기존의 학습된 내용과 결합시켜 학습된 지식을
수정하고,
– 다르다면 입력패턴을 새로운 지식으로 받아들여서 기억장소에 저장하게 됨.
 구성
집중 부시스템(attentional subsystem): 이전에 학습된 사실과 비슷한
입력이 주어질 경우, 이에 대해 안정성 있게 대응
 지시 부시스템(orienting subsystem): 주어진 입력이 학습되어 있는 것
인지 아닌지를 판별 → 아니면 집중 부시스템에 알려 새로운 사실 학습토
록함
 이들 두 시스템에 의해 안정-적응 조절

Neural Network
 학습
규칙
1단계. 신경회로망의 학습 요소들을 초기화
2단계. 새로운 입력을 제시
3단계. 매칭 점수를 계산
4단계. 입력패턴과 가장 잘 매칭이 되는 대표벡터를 선정
5단계. 유사도를 검사 → 유사도가 경계치를 넘으면 7단계, 아니면 6단계
6단계. 최상으로 매칭된 대표벡터를 억제 시킨 후 3단계로 분기
7단계. 최상으로 매칭된 대표벡터를 적응
8단계. 6단계에서 억제 시킨 뉴런들을 모두 복원시킨 후에 2단계로 분기하
여 반복 수행
 임의의
순서의 패턴에 대해 실시간으로 인식코드를 자율 구성하는
특성
→ 인간의 학습구조를 가장 잘 모방
 구조 복잡 → 실제 문제에 적용이 어렵다.
Neural Network
신경회로망 응용
 화상처리,
문자인식, 음성인식 등의 패턴인식에 많이 응용
 패턴인식:
미리 알고 있는 사실과 자료에 따라 미지의 입력을 클래스
별로 분류하는 기술
 연상기억:
일부 유실 되거나 변형이 가하여진 자료로부터 완전한 정
보를 추출하는 기술
 최적화
문제: 기존의 디지털 컴퓨터로는 다차 함수 시간 안에 풀 수
없는 NP문제이다. 알고리즘적 한계가 있으므로 Hopfield 신경회로
망이나 Kohonen 신경회로망 등을 사용하여 TSP문제, 그래프 색칠
하기, 채널 경로배정 문제를 해결
 최근에는
정보여과, 데이터 마이닝 등에 응용
Download