신경망 (Neural Networks) (Lecture Note #23)

26
1 신신신 신신신 (Neural Networks) (Neural Networks) (Lecture Note #23) (Lecture Note #23) 인인인인 2002 인 2 인인 인인인 인인인인인 인인인인인인 Modified from the slides by SciTech Media

description

Modified from the slides by SciTech Media. 신경망 (Neural Networks) (Lecture Note #23). 인공지능 2002 년 2 학기 이복주 단국대학교 컴퓨터공학과. Outline. 개요 Biological Motivation 역사 정의 및 특징 종류 Hopfield NN Perceptron 다층 perceptron 경쟁 학습 Self Organizing Map ART NN 응용. 단층 퍼셉트론 (Perceptron). - PowerPoint PPT Presentation

Transcript of 신경망 (Neural Networks) (Lecture Note #23)

Page 1: 신경망  (Neural Networks) (Lecture Note #23)

1

신경망 신경망 (Neural Networks)(Neural Networks)(Lecture Note #23)(Lecture Note #23)

인공지능2002 년 2 학기

이복주단국대학교 컴퓨터공학과

Modified from the slidesby SciTech Media

Page 2: 신경망  (Neural Networks) (Lecture Note #23)

2

OutlineOutline

개요 Biological Motivation 역사 정의 및 특징 종류 Hopfield NN Perceptron 다층 perceptron 경쟁 학습 Self Organizing Map ART NN 응용

Page 3: 신경망  (Neural Networks) (Lecture Note #23)

3

단층 퍼셉트론 단층 퍼셉트론 (Perceptron)(Perceptron) 눈의 망막을 모델화함 (Rosenblatt) 지도학습 , 이진 & 아날로그 입력처리 알고리즘 : 전체 출력뉴런들에 대하여 계산된 출력값과

목표값과의 차이를 최소화시킴 (Widrow-Hoff 규칙 ( 델타규칙 ) 이 유명 )

만일 계산된 출력값과 목표값 간에 차이가 없으면 연결 가중치는 변경되지 않으며 , 차이가 있으면 차이를 줄이는 방향으로 가중치를 변경 .

학습단계– 1 단계 . 가중치 (Wi(0)) 와 임계치 () 를 초기화 .– 2 단계 . 새로운 입력패턴 (X0, X1, … ) 과 목표출력 패턴 (d(t)) 을 제시– 3 단계 . 하드리미터 함수를 사용하여 실제 출력값 (y(t)) 을 계산

– 4 단계 . 가중치를 갱신

– 5 단계 . 2 단계로 분기하여 반복 수행

1

0))()(()(

N

i iih tXtWfty

)10(),()]()([)1( NitXtytdWtW iii

Page 4: 신경망  (Neural Networks) (Lecture Note #23)

4

단층 퍼셉트론 단층 퍼셉트론 (Perceptron)(Perceptron) AND, XOR 예제

– 뉴런에 입력되는 가중치의 합이 임계치를 초과하면 1, 아니면 0– AND

– 을 만족하는 W0, W1 은 ? W0 = 0.4, W1 = 0.2– f 함수의 경우 : W0 = -0.3, W1 = 0.6

= 0.5

X0

X1

W0

W1

출력Y

입력

출력입력

X0 X1 AND f

0 0 0 0

0 1 0 1

1 0 0 0

1 1 1 0

5.0115.0015.0105.0000

1010

010

110

10

WWWWWWWWWW

WW

XOR

0

1

1

0

Page 5: 신경망  (Neural Networks) (Lecture Note #23)

5

단층 퍼셉트론 단층 퍼셉트론 (Perceptron)(Perceptron)

– XOR 의 경우

→ 만족하는 W0, W1 는 존재하지 않음 → 간단한 XOR 문제도 해결하지 못함

5.0115.0015.0105.0000

1010

010

110

10

WWWWWWWWWW

WW

Page 6: 신경망  (Neural Networks) (Lecture Note #23)

6

단층 퍼셉트론 단층 퍼셉트론 (Perceptron)(Perceptron)

OR 예제– 임계치 에 대한 다른 view: 그림 9.9

• y(t) = fh(i=0..NWi(t)Xi(t)), WN(t) = , XN(t) = -1

– 1 단계 : 가중치 임의로 초기화• W0 = 0.2, W1 = -0.1, W2 ( 즉 ) = 0.3

– 2 단계 : 패턴 제시 , W 계산• X = (0, 0, -1), d = 0• X = (0, 1, -1), d = 1• X = (1, 0, -1), d = 1• X = (1, 1, -1), d = 1

– 3 단계 : W0 = 0.2, W1 = 0.1, W2 = 0.1 얻음)10(),()]()([)1( NitXtytdWtW iii

Page 7: 신경망  (Neural Networks) (Lecture Note #23)

7

단층 퍼셉트론 단층 퍼셉트론 (Perceptron)(Perceptron)

프로그램 (p. 241)

Page 8: 신경망  (Neural Networks) (Lecture Note #23)

8

단층 퍼셉트론 단층 퍼셉트론 (Perceptron)(Perceptron)

선형 분리성 (linear separability): 그림 9.10– (a) 2X0 + X1 = 2.5

이러한 문제를 해결하기 위해서 2 개 또는 3 개의 층 (layer) 을 사용– 다층 퍼셉트론 : 3 층 퍼셉트론으로 어떤 문제도 해결가능– 퍼셉트론은 다층 퍼셉트론 및 오류역전파 알고리즘의 기반 모델이

Page 9: 신경망  (Neural Networks) (Lecture Note #23)

9

다층 퍼셉트론 다층 퍼셉트론 (Multi-Layer Perceptron)(Multi-Layer Perceptron)

입력층과 출력층 사이에 하나 이상의 은닉층을 가지는 전방향 신경회로망

단층 퍼셉트론의 문제점을 해결 → 효과적인 학습 알고리즘이 없어서 60-70 년대 사용되지 않았다

80 년대 중반 오류 역전파 (EBP) 알고리즘 학습규칙 (Rumelhart) → 일반화된 델타 규칙 (generalized delta rule) 알고리즘 : 원하는 목표값 (d) 과 실제 출력값 (o) 사이의

오차제곱합으로 정의된 비용함수 (cost function) E 의 값을 경사하강추적법 (gradient-descent method) 에 의해 최소화 하는 방향으로 학습

))(2

1(,

2 j

pjpjpp

p odEEE

p: p 번째 학습 패턴

Ep: p 번째 패턴에 대한 오차

dpj: p 번째 패턴에 대한 j 번째 요소

opj: 실제 출력의 j 번째 요소

Page 10: 신경망  (Neural Networks) (Lecture Note #23)

10

다층 퍼셉트론다층 퍼셉트론

2 층 퍼셉트론

0 k M-1

0 j L-1

0 i N-1

………… …………

………… …………

임계치

임계치

Xp0 Xpi XpN-1

Wji

Wkj k

j

Opj

Opk

pk

pj

dpk

Page 11: 신경망  (Neural Networks) (Lecture Note #23)

11

다층 퍼셉트론다층 퍼셉트론

학습 규칙– 활성화 함수 : 시그모이드 함수

• f(x) = 1/(1+e-x)

– 1 단계 . 가중치와 임계치를 초기화– 2 단계 . 입력과 목표 출력을 제시

Page 12: 신경망  (Neural Networks) (Lecture Note #23)

12

다층 퍼셉트론다층 퍼셉트론

– 3 단계 . 제시된 입력벡터를 이용하여 은닉층 j번째 뉴런으로 입력값 계산

– 4 단계 . 시그모이드 함수를 사용하여 은닉층의 출력 (Opj)을 계산

• Opj = fj(netpj)

1

0

N

i jpijipj XWnet

0 k M-1

0 j L-1

0 i N-1

………… …………

………… …………

임계치

임계치

Xp0 Xpi XpN-1

Wji

Wkj k

j

Opj

Opk

pk

pj

dpk

Page 13: 신경망  (Neural Networks) (Lecture Note #23)

13

다층 퍼셉트론다층 퍼셉트론

– 5 단계 . 은닉층의 출력을 이용하여 출력층 뉴런 k 로의 입력값을 계산

– 6 단계 . 시그모이드 함수를 사용하여 출력층의 출력 (Opk)을 계산

• Opk = fk(netpk)

1

0

L

j kpjkjpk OWnet

0 k M-1

0 j L-1

0 i N-1

………… …………

………… …………

임계치

임계치

Xp0 Xpi XpN-1

Wji

Wkj k

j

Opj

Opk

pk

pj

dpk

Page 14: 신경망  (Neural Networks) (Lecture Note #23)

14

다층 퍼셉트론다층 퍼셉트론

– 7 단계 . 입력패턴의 목표출력 (dpk) 과 실제 출력 (Opk) 과의 오차값 (pk) 을 계산하고 출력층 오차합 (E) 을 학습패턴의 오차 (Ep) 로 누적 시킨다 .

)(,

)1()()()(1

1

2

'

M

k pkpp

pkpkpkpkpkkpkpkpk

EEEE

OOOdnetfOd

0 k M-1

0 j L-1

0 i N-1

………… …………

………… …………

임계치

임계치

Xp0 Xpi XpN-1

Wji

Wkj k

j

Opj

Opk

pk

pj

dpk

Page 15: 신경망  (Neural Networks) (Lecture Note #23)

15

다층 퍼셉트론다층 퍼셉트론

– 8 단계 . 출력층 오차값 (pk) 과 은닉층과 출력층의 가중치값 (Wkj) 을 이용하여 은닉층의 오차 (p

j) 를 계산한다 .

)1()(1

0

1

0

'pjpjkj

M

k pkkj

M

k pkpjjpj OOWWnetf

0 k M-1

0 j L-1

0 i N-1

………… …………

………… …………

임계치

임계치

Xp0 Xpi XpN-1

Wji

Wkj k

j

Opj

Opk

pk

pj

dpk

Page 16: 신경망  (Neural Networks) (Lecture Note #23)

16

다층 퍼셉트론다층 퍼셉트론

– 9 단계 . 4 단계와 7 단계에서 구한 은닉층 뉴런 j 의 출력값 (Opj) 과 출력층의 오차 값 (pk) 을 사용하여 출력층의 가중치(Wkj) 를 갱신한다( 임계치도 조정 )

pkkk

pjpkkjkj

ttOtWtW

)()1()()1(

0 k M-1

0 j L-1

0 i N-1

………… …………

………… …………

임계치

임계치

Xp0 Xpi XpN-1

Wji

Wkj k

j

Opj

Opk

pk

pj

dpk

Page 17: 신경망  (Neural Networks) (Lecture Note #23)

17

다층 퍼셉트론다층 퍼셉트론

– 10 단계 . 출력층에서와 마찬가지로 입력층과 은닉층의 가중치 값과 임계치값을 갱신한다 .

pjjj

pipjjiji

ttXtWtW

)()1()()1(

0 k M-1

0 j L-1

0 i N-1

………… …………

………… …………

임계치

임계치

Xp0 Xpi XpN-1

Wji

Wkj k

j

Opj

Opk

pk

pj

dpk

Page 18: 신경망  (Neural Networks) (Lecture Note #23)

18

다층 퍼셉트론다층 퍼셉트론

– 11 단계 . 모든 학습패턴에 대하여 전부 학습 할 때까지 2단계로 분기하여 반복 수행한다 .

– 12 단계 . 출력층의 오차합 E 가 허용값 이하이거나 최대 반복회수보다 크면 종료 , 그렇지 않으면 2 단계로 가서 반복한다 .

Page 19: 신경망  (Neural Networks) (Lecture Note #23)

19

다층 퍼셉트론다층 퍼셉트론

XOR 를 풀 수 있는 2 층 퍼셉트론의 예 : 그림 9.13

– X1 = 1, X2 = 0 일 때 출력 • f(x) = 1/(1+e-x)• 숨김 neuron 의 출력 : 1/(1+ e6.4 + 2.2) = a• 출력 neuron 의 출력 : 1/(1+e4.2 +9.4*a + 6.3) = 0.877 1 에 근사하므로 1 이 출력된다고 봄

Page 20: 신경망  (Neural Networks) (Lecture Note #23)

20

다층 퍼셉트론다층 퍼셉트론

XOR 문제를 풀기 위한 2 층 퍼셉트론 디자인 : 그림 9.12

– 초기치는 그림처럼 설정됨– 입력 = (1, 1), 목표 출력 = 0 일 때 임계치와 가중치

• O4 = O5 = 1• O2 = 1/(1+ e-(0.2*1 + 0.3*1 + 0.1*(-1)) = 0.6• O3 = 1/(1+ e-((-0.1)*1 + 0.1*1 + (-0.2)*(-1)) = 0.55• O1 = 1/(1+ e-(0.2*0.6 + (-0.3*0.55) + 0.4*(-1)) = 0.391 1 = (dpk – Opk)Opk(1-Opk) = (0-0.391)*0.391*(1-0.391)= -0.093 2 = k=0..M-1pkWkjOpj(1-Opj) = (-0.093)*0.2*0.6*(1-0.6) = -0.004 3 = (-0.093)*(-0.3)*0.55*(1-0.55) = 0.007

Page 21: 신경망  (Neural Networks) (Lecture Note #23)

21

다층 퍼셉트론다층 퍼셉트론

• Wkj(t+1) = Wkj(t) + pkOpj • W12 = 0.2 + 0.3*(-0.093)*0.6 = 0.2 – 0.017 = 0.183• W13 = -0.3 + 0.3*(-0.093)*0.55 = -0.3 – 0.315 = -0.315• Wji(t+1) = Wji(t) + pjOpi • W24 = 0.2 + 0.3*(-0.004)*1 = 0.2 – 0.001 = 0.199• W25 = 0.3 + 0.3*(-0.004)*1 = 0.3 – 0.001 = 0.299• W34 = -0.1 + 0.3*0.007*1 = 0.1 + 0.002 = -0.098• W35 = 0.1 + 0.3*0.007*1 = 0.1 + 0.002 = 0.102

Page 22: 신경망  (Neural Networks) (Lecture Note #23)

22

다층 퍼셉트론다층 퍼셉트론 예제 9.5: y = 0.5(cos(8x) + sin(4x) –x + 0.8) 인 시스템

– 입력 값을 0.1 에서 0.95 까지 변화 시키면서 출력 관측 후 얻어진 데이터 이용하여 퍼셉트론 학습

• Internal layer 에 6 개의 뉴론을 배치

– 학습된 퍼셉트론이 위의 함수와 같은 행동을 보이는지 조사– 그림 9.14: (a) 1000 회 (d) 20000 회

– Function approximation

Page 23: 신경망  (Neural Networks) (Lecture Note #23)

23

다층 퍼셉트론다층 퍼셉트론

예제 9.5: y = 0.5(cos(8x) + sin(4x) –x + 0.8) 인 시스템 ( 계속 )– 20000 번 반복 후 얻어진 퍼셉트론 : 그림 9.15

• 학습에 사용 안된 0.23 을 입력 : 0.547 출력 실제 함수값 =0.55

Page 24: 신경망  (Neural Networks) (Lecture Note #23)

24

다중 퍼셉트론다중 퍼셉트론

특징– 실수 데이터 학습– 학습에 사용되지 않은 데이터에도 근사값 출력

오류역전파 (error backpropagation) 개념– 은닉층의 학습을 위해 출력층에서 발생한 오류를 이용하여 은닉층

오차계산– 다시 이 값을 입력층으로 역전파시켜 출력층의 오차가 원하는

수준이 될 때까지 반복 문제점

– 결과 해가 최적 보장 안됨• Local optimum vs. global optimum• 이유 : 경사하강 추적 ( 그림 9.16)

Page 25: 신경망  (Neural Networks) (Lecture Note #23)

25

다층 퍼셉트론다층 퍼셉트론 문제점 ( 계속 )

– 신경망 구조에 대한 기준 없음• 몇 개의 은닉층 , 은닉층에서 몇 개의 뉴런• 너무 적으면 학습 능력 떨어짐• 너무 많으면 학습 시간 오래 걸림 ; overfitting 문제

– 초기 가중치 문제– 학습률– 데이터의 개수– 상위층의 목표값과 실제 출력값 간의 오류를 하위층으로 역전파시키는 것은 생물학적으로 타당하지 않음 ( 목표를 알지 못함 )

– 오류 수렴까지 많은 회수의 학습 반복 실제 적용시 고려사항

– 최소평균제곱 비용함수의 국부 최적해를 위해 뉴런수를 증가– 이득항 (, ) 을 낮출 필요 있음– 초기 가중치를 다르게 하여 여러 번 학습하는 방법

지도학습에서 효율성 나타냄 → 보편적으로 많이 사용

Page 26: 신경망  (Neural Networks) (Lecture Note #23)

26

SummarySummary

개요 Biological Motivation 역사 정의 및 특징 종류 Hopfield NN Perceptron 다층 perceptron 경쟁 학습 Self Organizing Map ART NN 응용