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 11 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 11 11 2 w12 x10 x02 x11x12 11 11 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( w000(0) + w101(0) + w202(0) + w303(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( w000(1) + w101(1) + w202(1) + w303(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( w000(2) + w101(2) + w202(2) + w303(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 iN01 Wji Xpi j 4단계. 시그모이드 함수를 사용하여 은닉층의 출력(ypj)을 계산 5단계.은닉층의 출력을 이용하여 출력층 뉴런 k로의 입력값을 계산 netpk Lj01Wkjypj 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문제, 그래프 색칠 하기, 채널 경로배정 문제를 해결 최근에는 정보여과, 데이터 마이닝 등에 응용