신경망 (Neural Networks) (Lecture Note #23) Modified from the slides by SciTech Media 신경망 (Neural Networks) (Lecture Note #23) 인공지능 2002년 2학기 이복주 단국대학교 컴퓨터공학과
Outline 개요 Biological Motivation 역사 정의 및 특징 종류 Hopfield NN 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 을 만족하는 W0, W1은? W0 = 0.4, W1 = 0.2 f 함수의 경우: W0 = -0.3, W1 = 0.6 입력 출력 X0 X1 AND f XOR X0 W0 = 0.5 Y 입력 출력 1 1 1 1 1 X1 W1 1 1 1
단층 퍼셉트론 (Perceptron) XOR의 경우 → 만족하는 W0, W1 는 존재하지 않음
단층 퍼셉트론 (Perceptron) OR 예제 임계치 에 대한 다른 view: 그림 9.9 1단계: 가중치 임의로 초기화 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)에 의해 최소화 하는 방향으로 학습 p: p번째 학습 패턴 Ep: p번째 패턴에 대한 오차 dpj: p번째 패턴에 대한 j번째 요소 opj: 실제 출력의 j번째 요소
다층 퍼셉트론 2층 퍼셉트론 Opk dpk k M-1 …… …… pk Wkj k Opj 임계치 j pj L-1 j k M-1 …… …… pk Wkj k Opj 임계치 j pj L-1 j 임계치 Wji i N-1 …… …… Xp0 Xpi XpN-1
다층 퍼셉트론 학습 규칙 활성화 함수: 시그모이드 함수 1단계. 가중치와 임계치를 초기화 2단계. 입력과 목표 출력을 제시 f(x) = 1/(1+e-x) 1단계. 가중치와 임계치를 초기화 2단계. 입력과 목표 출력을 제시
다층 퍼셉트론 3단계. 제시된 입력벡터를 이용하여 은닉층 j번째 뉴런으로 입력값 계산 4단계. 시그모이드 함수를 사용하여 은닉층의 출력(Opj)을 계산 Opj = fj(netpj) Opk dpk k M-1 …… …… pk Wkj k Opj 임계치 j pj L-1 j 임계치 Wji i N-1 …… …… Xp0 Xpi XpN-1
다층 퍼셉트론 5단계. 은닉층의 출력을 이용하여 출력층 뉴런 k로의 입력값을 계산 6단계. 시그모이드 함수를 사용하여 출력층의 출력(Opk)을 계산 Opk = fk(netpk) Opk dpk k M-1 …… …… pk Wkj k Opj 임계치 j pj L-1 j 임계치 Wji i N-1 …… …… Xp0 Xpi XpN-1
다층 퍼셉트론 Opk dpk 7단계. 입력패턴의 목표출력(dpk)과 실제 출력 (Opk) 과의 오차값(pk)을 계산하고 출력층 오차합(E)을 학습패턴의 오차(Ep)로 누적 시킨다. k M-1 …… …… pk Wkj k Opj 임계치 j pj L-1 j 임계치 Wji i N-1 …… …… Xp0 Xpi XpN-1
다층 퍼셉트론 8단계. 출력층 오차값(pk)과 은닉층과 출력층의 가중치값(Wkj)을 이용하여 은닉층의 오차(pj)를 계산한다. Opk dpk k M-1 …… …… pk Wkj k Opj 임계치 j pj L-1 j 임계치 Wji i N-1 …… …… Xp0 Xpi XpN-1
다층 퍼셉트론 9단계. 4단계와 7단계에서 구한 은닉층 뉴런 j의 출력값(Opj)과 출력층의 오차 값(pk)을 사용하여 출력층의 가중치(Wkj)를 갱신한다(임계치도 조정) Opk dpk k M-1 …… …… pk Wkj k Opj 임계치 j pj L-1 j 임계치 Wji i N-1 …… …… Xp0 Xpi XpN-1
다층 퍼셉트론 10단계. 출력층에서와 마찬가지로 입력층과 은닉층의 가중치 값과 임계치값을 갱신한다. Opk dpk k M-1 k M-1 …… …… pk Wkj k Opj 임계치 j pj L-1 j 임계치 Wji 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 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) 개념 문제점 실수 데이터 학습 학습에 사용되지 않은 데이터에도 근사값 출력 오류역전파 (error backpropagation) 개념 은닉층의 학습을 위해 출력층에서 발생한 오류를 이용하여 은닉층 오차계산 다시 이 값을 입력층으로 역전파시켜 출력층의 오차가 원하는 수준이 될 때까지 반복 문제점 결과 해가 최적 보장 안됨 Local optimum vs. global optimum 이유: 경사하강 추적 (그림 9.16)
다층 퍼셉트론 실제 적용시 고려사항 지도학습에서 효율성 나타냄 → 보편적으로 많이 사용 문제점 (계속) 신경망 구조에 대한 기준 없음 몇 개의 은닉층, 은닉층에서 몇 개의 뉴런 너무 적으면 학습 능력 떨어짐 너무 많으면 학습 시간 오래 걸림; overfitting 문제 초기 가중치 문제 학습률 데이터의 개수 상위층의 목표값과 실제 출력값 간의 오류를 하위층으로 역전파시키는 것은 생물학적으로 타당하지 않음 (목표를 알지 못함) 오류 수렴까지 많은 회수의 학습 반복 실제 적용시 고려사항 최소평균제곱 비용함수의 국부 최적해를 위해 뉴런수를 증가 이득항(, )을 낮출 필요 있음 초기 가중치를 다르게 하여 여러 번 학습하는 방법 지도학습에서 효율성 나타냄 → 보편적으로 많이 사용
Summary 개요 Biological Motivation 역사 정의 및 특징 종류 Hopfield NN Perceptron 경쟁 학습 Self Organizing Map ART NN 응용