280 likes | 799 Views
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).
E N D
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) • 눈의 망막을 모델화함 (Rosenblatt) • 지도학습, 이진 & 아날로그 입력처리 • 알고리즘: 전체 출력뉴런들에 대하여 계산된 출력값과 목표값과의 차이를 최소화시킴 (Widrow-Hoff 규칙(델타규칙)이 유명) • 만일 계산된 출력값과 목표값 간에 차이가 없으면 연결 가중치는 변경되지 않으며, 차이가 있으면 차이를 줄이는 방향으로 가중치를 변경. • 학습단계 • 1단계. 가중치(Wi(0))와 임계치()를 초기화. • 2단계. 새로운 입력패턴(X0, X1, … )과 목표출력 패턴(d(t))을 제시 • 3단계. 하드리미터 함수를 사용하여 실제 출력값(y(t))을 계산 • 4단계. 가중치를 갱신 • 5단계. 2단계로 분기하여 반복 수행
단층 퍼셉트론 (Perceptron) • AND, XOR 예제 • 뉴런에 입력되는 가중치의 합이 임계치를 초과하면 1, 아니면 0 • AND • 을 만족하는 W0, W1은? W0 = 0.4, W1 = 0.2 • f 함수의 경우: W0 = -0.3, W1 = 0.6 입력 출력 X0 X1 AND f XOR X0 W0 0 0 0 0 0 = 0.5 Y 0 1 0 1 1 입력 출력 1 0 0 0 1 X1 W1 1 1 1 0 0
단층 퍼셉트론 (Perceptron) • XOR의 경우 → 만족하는 W0, W1는 존재하지 않음 → 간단한 XOR 문제도 해결하지 못함
단층 퍼셉트론 (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 얻음
단층 퍼셉트론 (Perceptron) • 프로그램 (p. 241)
단층 퍼셉트론 (Perceptron) • 선형 분리성 (linear separability): 그림 9.10 • (a) 2X0 + X1 = 2.5 • 이러한 문제를 해결하기 위해서 2개 또는 3개의 층(layer)을 사용 • 다층 퍼셉트론: 3층 퍼셉트론으로 어떤 문제도 해결가능 • 퍼셉트론은 다층 퍼셉트론 및 오류역전파 알고리즘의 기반 모델이 됨
다층 퍼셉트론 (Multi-Layer Perceptron) • 입력층과 출력층 사이에 하나 이상의 은닉층을 가지는 전방향 신경회로망 • 단층 퍼셉트론의 문제점을 해결 → 효과적인 학습 알고리즘이 없어서 60-70년대 사용되지 않았다 • 80년대 중반 오류 역전파 (EBP) 알고리즘 학습규칙(Rumelhart) → 일반화된 델타 규칙 (generalized delta rule) • 알고리즘: 원하는 목표값(d)과 실제 출력값(o) 사이의 오차제곱합으로 정의된 비용함수(cost function) E의 값을 경사하강추적법(gradient-descent method)에 의해 최소화 하는 방향으로 학습 dpj: p번째 패턴에 대한 j번째 요소 opj: 실제 출력의 j번째 요소 p: p번째 학습 패턴 Ep: p번째 패턴에 대한 오차
다층 퍼셉트론 • 2층 퍼셉트론 Opk dpk 0 k M-1 …… …… pk Wkj k Opj 임계치 0 j pj L-1 j 임계치 Wji 0 i N-1 …… …… Xp0 Xpi XpN-1
다층 퍼셉트론 • 학습 규칙 • 활성화 함수: 시그모이드 함수 • f(x) = 1/(1+e-x) • 1단계. 가중치와 임계치를 초기화 • 2단계. 입력과 목표 출력을 제시
다층 퍼셉트론 • 3단계. 제시된 입력벡터를 이용하여 은닉층 j번째 뉴런으로 입력값 계산 • 4단계. 시그모이드 함수를 사용하여 은닉층의 출력(Opj)을 계산 • Opj = fj(netpj) Opk dpk 0 k M-1 …… …… pk Wkj k Opj 임계치 0 j pj L-1 j 임계치 Wji 0 i N-1 …… …… Xp0 Xpi XpN-1
다층 퍼셉트론 • 5단계. 은닉층의 출력을 이용하여 출력층 뉴런 k로의 입력값을 계산 • 6단계. 시그모이드 함수를 사용하여 출력층의 출력(Opk)을 계산 • Opk = fk(netpk) Opk dpk 0 k M-1 …… …… pk Wkj k Opj 임계치 0 j pj L-1 j 임계치 Wji 0 i N-1 …… …… Xp0 Xpi XpN-1
다층 퍼셉트론 Opk dpk • 7단계. 입력패턴의 목표출력(dpk)과 실제 출력 (Opk) 과의 오차값(pk)을 계산하고 출력층 오차합(E)을 학습패턴의 오차(Ep)로 누적 시킨다. 0 k M-1 …… …… pk Wkj k Opj 임계치 0 j pj L-1 j 임계치 Wji 0 i N-1 …… …… Xp0 Xpi XpN-1
다층 퍼셉트론 • 8단계. 출력층 오차값(pk)과 은닉층과 출력층의 가중치값(Wkj)을 이용하여 은닉층의 오차(pj)를 계산한다. Opk dpk 0 k M-1 …… …… pk Wkj k Opj 임계치 0 j pj L-1 j 임계치 Wji 0 i N-1 …… …… Xp0 Xpi XpN-1
다층 퍼셉트론 • 9단계. 4단계와 7단계에서 구한 은닉층 뉴런 j의 출력값(Opj)과 출력층의 오차 값(pk)을 사용하여 출력층의 가중치(Wkj)를 갱신한다(임계치도 조정) Opk dpk 0 k M-1 …… …… pk Wkj k Opj 임계치 0 j pj L-1 j 임계치 Wji 0 i N-1 …… …… Xp0 Xpi XpN-1
다층 퍼셉트론 Opk dpk • 10단계. 출력층에서와 마찬가지로 입력층과 은닉층의 가중치 값과 임계치값을 갱신한다. 0 k M-1 …… …… pk Wkj k Opj 임계치 0 j pj L-1 j 임계치 Wji 0 i N-1 …… …… Xp0 Xpi XpN-1
다층 퍼셉트론 • 11단계. 모든 학습패턴에 대하여 전부 학습 할 때까지 2단계로 분기하여 반복 수행한다. • 12단계. 출력층의 오차합 E가 허용값 이하이거나 최대 반복회수보다 크면 종료, 그렇지 않으면 2단계로 가서 반복한다.
다층 퍼셉트론 • 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이 출력된다고 봄
다층 퍼셉트론 • 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
다층 퍼셉트론 • 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
다층 퍼셉트론 • 예제 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
다층 퍼셉트론 • 예제 9.5: y = 0.5(cos(8x) + sin(4x) –x + 0.8) 인 시스템 (계속) • 20000번 반복 후 얻어진 퍼셉트론: 그림 9.15 • 학습에 사용 안된 0.23을 입력: 0.547 출력 실제 함수값=0.55
다중 퍼셉트론 • 특징 • 실수 데이터 학습 • 학습에 사용되지 않은 데이터에도 근사값 출력 • 오류역전파 (error backpropagation) 개념 • 은닉층의 학습을 위해 출력층에서 발생한 오류를 이용하여 은닉층 오차계산 • 다시 이 값을 입력층으로 역전파시켜 출력층의 오차가 원하는 수준이 될 때까지 반복 • 문제점 • 결과 해가 최적 보장 안됨 • Local optimum vs. global optimum • 이유: 경사하강 추적 (그림 9.16)
다층 퍼셉트론 • 문제점 (계속) • 신경망 구조에 대한 기준 없음 • 몇 개의 은닉층, 은닉층에서 몇 개의 뉴런 • 너무 적으면 학습 능력 떨어짐 • 너무 많으면 학습 시간 오래 걸림; overfitting 문제 • 초기 가중치 문제 • 학습률 • 데이터의 개수 • 상위층의 목표값과 실제 출력값 간의 오류를 하위층으로 역전파시키는 것은 생물학적으로 타당하지 않음 (목표를 알지 못함) • 오류 수렴까지 많은 회수의 학습 반복 • 실제 적용시 고려사항 • 최소평균제곱 비용함수의 국부 최적해를 위해 뉴런수를 증가 • 이득항(, )을 낮출 필요 있음 • 초기 가중치를 다르게 하여 여러 번 학습하는 방법 • 지도학습에서 효율성 나타냄 → 보편적으로 많이 사용
Summary • 개요 • Biological Motivation • 역사 • 정의 및 특징 • 종류 • Hopfield NN • Perceptron • 다층 perceptron • 경쟁 학습 • Self Organizing Map • ART • NN 응용