660 likes | 1.08k Views
Neural Networks. 개요. 신경회로망 (Neural Networks) 생물학적 계산 체계를 이용하여 생물학적 정보체계 와 심리학 , 신경과학 , 인지과학 , 시스템 이론 병합한 예측 , 분류 , 최적화 등 문제해결을 위한 도구로 이용 기본 작업 학습 (learning ): 패턴 분류에 따라 신경망의 연결가중치 조정 재생 (recall ): 학습된 가중치와 입력벡터와의 거리 계산하여 가장 가까운 클래스로 분류 → 사람과 같은 학습 능력 : 패턴 분류 , 인식 , 최적화 , 예측
E N D
개요 • 신경회로망(Neural Networks) • 생물학적 계산 체계를 이용하여 생물학적 정보체계 와 심리학,신경과학, 인지과학, 시스템 이론 병합한 예측, 분류, 최적화 등 문제해결을 위한 도구로 이용 • 기본 작업 • 학습(learning): 패턴 분류에 따라 신경망의 연결가중치 조정 • 재생(recall): 학습된 가중치와 입력벡터와의 거리 계산하여 가장 가까운 클래스로 분류 → 사람과 같은 학습 능력: 패턴 분류, 인식, 최적화, 예측 → 기존 인공지능 문제 해결의 새로운 계산 틀 제공 • (인공)신경회로망 • 인간의 두뇌작용을 신경 세포들간의 연결관계로 모델링 → 인간의 학습을 모델링
A part of Machine Learning Learning algorithm Trained Machine(Model) TRAINING DATA Answer ? Query
Attrib1 Attrib2 Attrib3 Class Tid No 1 Yes Large 125K No 2 No Medium 100K No 3 No Small 70K No 4 Yes Medium 120K Yes 5 No Large 95K No 6 No Medium 60K No 7 Yes Large 220K Yes 8 No Small 85K No 9 No Medium 75K Yes 10 No Small 90K 10 Apply Model Attrib1 Attrib2 Attrib3 Class Tid ? 11 No Small 55K ? 12 Yes Medium 80K ? 13 Yes Large 110K ? 14 No Small 95K ? 15 No Large 67K 10 ANN leaning Task Learning algorithm Learn Model Model Training Set Test Set
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
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
Successful Story • Learning to recognize spoken words – Speech recognition/synthesis – Natural language understanding/generation – Machine translation
개요 • 생물학적 뉴런 • 신경기능 탐구 • 생물학적 신경회로망: 인간의 생체 기능 연구(생물, 생리, 신경과학자) →동물 생체 실험 → 학습능력의 원천 밝힘 • 인공신경회로망 신경회로망의 기능, 구조를 H/W, S/W적으로 실현 → 기존의 시뮬레이션으로 구현된 알고리즘을 H/W화 핵 세포체 신경절 수상돌기 축색돌기
역사 • (1943) McCulloch와 Pitts - 신경세포들을 단순 연결한 신경회로망은 산술 및 논리연산을 수행할 수 있다. • (1949) Hebb의 법칙 • 최초의 인공 신경회로망의 학습규칙 제안 • 신경회로망이 학습을 수행함을 증명 • 50, 60 년대 • 단층의 인공세포의 신경회로망 • Rosenblatt, Widrow의 Perceptron- 일기예보, 심전도 해석, 인공시각 • 69년 Minsky 등에 의해 한계 지적(퍼셉트론은 XOR 문제해결 불가) • 신경망 연구 침체 → 기호주의 AI 활성화 • 80 년대 중반이후 • 기호주의 AI 한계 • Hopfield: 신경회로망 에너지 개념 • 오류역전파 학습 알고리즘(Rumelhart, McCleland): 다층 퍼셉트론 학습 → 신경회로망 연구 부흥
신경망(Neural Network) • 과거에 수집된 데이터로부터 반복적인 학습과정을 거쳐 데이터에 내재되어 있는 패턴을 찾아내는 모델링 기법 • 주택가격 예측모형을 구축하는데 사용된 데이터 Backpropagation Input Layer Hidden Layer Output Layer • Hidden Layer의수가 많아지면 분류능력이 향상되어 더 많은 패턴을 인식할 수 있지만 Overfitting될 수도 있다.
신경망(Neural Network) • 신경망을 이용한 주택가격 평가모형 방수 연도 1) 마디를 연결하는 고리에 임의로 초기 강도(Weight)값을 지정하여 초기 모형설정 2) 입력 값 및 출력 값 변환 3) 데이터 입력 후 실제 값과 비교 4) 실제 값과 차이를 최소화 하도록 Weight 조절 5) 시험용 데이터를 이용하여 모형의 예측 정확도 검증 6) 업무현장에 적용 7) 출력 값 변환 난방 주차공간 거실 층 수 가격 크기 방향(동) 방향(서) 방향(남) 방향(북) 팔린 시기
인공 신경망의 특징 • 신경망은 새로운 데이터의 예제를 통해 학습한다. 쉽게 예측능력을 증가시킬 수 있다 • 데이터들이 선형적인 관계와 비 선형적인 관계인지를 모르거나, 둘 다의 특징을 갖고 있는 것에 대해서 모델을 만들기 편리하다. • 잡음(noisy)이 섞이거나 또는 불완전하고 일관성 없는 데이터를 다루기에 적합하다. • Neural Network 모델은 이론적인 기초를 가지고 있지 않다. 결과에 대해서 명백한 이유를 제시 어려움. • 효과적인 Neural Network모델을 만들기 위해서는 넓은 범위의 변수를 포함하는 학습 데이터를 필요로 한다. • 만약에 학습데이터의 범위 밖의 입력 데이터가 들어 올 경우에는 예측능력이 현저히 떨어질 수 있다.
신경망(Neural Network) • 장점 • 입력, 출력마디에 이산형, 연속형 변수 모두 사용 가능하며 기법을 적용할 수 있는 문제의 영역이 Decision Tree나 통계에 비해 넓다. • 상용화된 데이터마이닝 제품이 많으며 제품 선택의 폭이 넓다. • 단점 • 분류나 예측 결과만을 제공할 뿐 결과에 대한 근거를 설명하지 못한다. • 복잡한 학습과정을 거치기 때문에 모형 구축 시 많은 시간이 소요된다. 따라서 입력변수의 수가 너무 많으면 통계나 Decision Tree를 이용하여 변수를 선별 후 신경망을 구축하는 대안을 고려 할 수 있다. • 다양한 Parameter값을 설정하는 작업이 전문성을 필요로 하기 때문에 비전문가들이 사용하기에 어려움이 따른다.
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
인공 신경망의 원리 Output Y is 1 if at least two of the three inputs are equal to 1.
인공 신경망의 원리 • 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 • Compare output node against some threshold t Perceptron Model or
General Structure of ANN Training ANN means learning the weights of the neurons
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: • Find the weights wi’s that minimize the above objective function • e.g., backpropagation algorithm
정의 및 특징 • 신경회로망이 커지고 복잡해질수록 더 나은 기능 수행 • 다층 신경회로망: 입력층과 출력층 사이에 새로운 층 추가 → 은닉층(hidden layer) 또는 중간층(internal layer) • 예를 통한 학습, 일반화, 연상기억, 결함 허용성의 특징을 보인다 • 예를 통한 학습- 예를 계속적으로 제시함으로써 원하는 형태의 사상(mapping)을 만듦 : 지도 학습/비지도 학습 • 일반화- 학습이 완료된 신경회로망은 학습되지 않은 입력에 대해서도 올바른 결과를 출력 • 연상기억- 새로운 입력, 일부 유실된 정보 → 유사한 출력 • 결함 허용성- 일부 뉴런 고장, 단절 → 남아 있는 뉴런들에 의해 작동 보장 • 연결가중치 조정방법 • 지도학습: 입력이 주어짐에 따라 원하는 출력값이 활성화 되도록 가중치를 조절 (Hopfield 학습규칙, 델타규칙, 오류 역전파 학습규칙) • 비지도학습: 목표값 없이 학습 데이터만 입력, 스스로 연결가중치들을 학습미리 결정된 해가 불필요(경쟁학습, ART 모델)
종류 • 신경회로망 모델 종류 입력형식 신경회로망 모델 학습방식 지도 학습 Hopfield network Counter propagation network 지도 학습 및 비지도 이진입력 학습을 결합한 학습 비지도 학습 ART model Perceptron Multilayer Perceptron 지도 학습 실수입력 Competitive learning SOM 비지도 학습
Hopfield 신경회로망 • 신경회로망의 동작: energy + dynamic system • 조직 • 모든 뉴런이 양방향으로 연결(자신 제외) • 전달(활성화)함수 : hard limiter 함수 사용 • 입력 : 2진수 • 출력 : +1, -1(양과 음의 에너지 상태를 표시) 0 1 2 N-1 I0 I1 I2 IN-1
Hopfield 신경회로망의 동작 규칙 • 1단계 : M개의 패턴을 이용하여 N개 뉴런 사이의 연결 가중치를 지정 • wij: 뉴런 i에서 뉴런 j로의 연결가중치 • Xsi: s 클래스에 속하는 학습패턴의 i번째 요소값(+1 or -1) • 2단계 : 미지의 입력패턴을 신경회로망에 제시 • 3단계 : 뉴런들의 출력과 가중치를 곱한 값을 합하여 전달함수를 통과 • 4단계 : 수렴(출력의 변화가 없음)할 때까지 3단계를 계속 반복 • 5단계 : 2단계로 분기
Hopfield 신경회로망의 예 • 예제 1) (1, 1, -1, -1)을 입력 하면 P0 , P1 중 어느 패턴에 수렴 할까? P0 = ( 1, 1, 1, -1), P1 = (1, -1, 1, -1)
Hopfield 신경회로망의 예 • 예제 1) 다음 2개의 4차원 학습패턴벡터의 경우 wij는 ? [1단계] X00, X01, X02, X03 P0 = ( 1, 1, 1, -1), X10, X11, X12, X13 P1 = (1, -1, 1, -1)
Hopfield 신경회로망 • 예제 1) (1, 1, -1, -1)을 입력 하면 P0 , P1 중 어느 패턴에 수렴 할까? P0 = ( 1, 1, 1, -1), P1 = (1, -1, 1, -1) [2단계] 주어진 패턴 (1, 1, -1, -1) 에 대해 Hopefield 알고리즘의 2단계에서 5단계까지를 실행한다 [3단계] i(0) : (1, 1, -1, -1) 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)
Hopfield 신경회로망 [3단계-반복] i(1) : (1, 1, 1, 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)
Hopfield 신경회로망 [3단계-반복] i(2) : (1, 1, 1, -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)
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 • 예제: 각 패턴 크기: (5x5) 대상 : {ㄱ, ㄴ, ㄷ, ㄹ}으로 학습 • 테스트 패턴: {ㄱ, ㄴ, ㄹ}으로 테스트 • 테스트 결과 • ㄱ, ㄴ: 제대로 인식 • ㄹ: ㄷ으로 오인식 • → 회로망 크기 vs 저장 가능한 패턴수 문제 • → Hopfield에서는 뉴런 수가 N인 경우, 0.15N개의 패턴 저장 가능 • (이 예제의 경우 25x0.15 = 3.75 → 4개 미만의 패턴 인식) • 수렴결과가 최적인지 보장 안됨 i(0) : (1, 1, -1, -1) i(1) : (1, 1, 1, 1) i(2) : (1, 1, 1, -1) i(3) : (1, 1, 1, -1) 입력: (1,1,-1,-1) 수렴
숫자를 인식하는 패턴 인식의 예 • IF – Then 으로 패턴 인식 • 물론 숫자 7을 인식하기 위해서 if - then으로 구성할 수도 있고, table 형식으로 구성할 수도 있다. x = GetBinaryFromImage();if( x == 111101001001 ) then return 7; • - 노이즈로 인해 이진수가 111001001001로 바뀌었다면 모든 경우의 수를 표현하기 어렵다. . • 숫자 7과 신경망 패턴 인식 • - 3 × 4 픽셀(pixel)로 구성된 이미지와 숫자 7과 신경망 구성이다. • 노이즈 처리가 용이 • 하나의 알고리즘으로 분류(classification)가 가능하다.
숫자를 인식하는 패턴 인식을 신경망 구축 • 이미지로부터 신경망의 노드가 처리할 수 있는 데이터로 변환 • 각 입력 노드 값을 설정하고 가중치(weight)가 적절히 설정 • 가장 큰 값인 7이 출력 노드에 표현될 것임 (즉, 임의의 이미지를 입력으로 하였을 때 가장 큰 값의 출력 노드가 그 이미지가 가리키고 있는 숫자인임) • "어떻게 가중치값을 설정할 것인가 ?“ 초기 신경망의 Weight 값은 보통 -1.0 ~ 1.0의 임의 값으로 설정하는 것이 보통임
숫자를 인식하는 패턴 인식을 신경망 구축 • 신경망에서의 학습이란 원하는 결과의 노드가 최대값이 나오도록 적절히 가중치를 설정하는 과정이다. 예) 111101001001이나 111001001001의 입력이 들어가도 출력 노드 7이 최대값이 되 도록 가중치를 설정하면 된다. • 학습에 사용되는 대표적인 알고리즘이 바로 역전파(back propagation) 알고리즘이다.
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
Unit Functions Sigma Function Step Function • 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)
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 {
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”
단층 퍼셉트론(Perceptron) • 눈의 망막을 모델화함(Rosenblatt) • 지도학습, 이진 & 아날로그 입력처리 • 알고리즘 : 전체 출력뉴런들에 대하여 계산된 출력값과 목표값과의 차이를 최소화시킴(Widrow-Hoff 규칙(델타규칙)이 유명) • →만일 계산된 출력값과 목표값 간에 차이가 없으면 연결 가중치는 변경되지 않으며, 차이가 있으면 차이를 줄이는 방향으로 가중치를 변경. • 학습단계 • 1단계. 가중치(Wi(0))와 임계치()를 초기화. • 2단계. 새로운 입력패턴(X0, X1, … )과 목표출력 패턴(d(t))을 제시 • 3단계. 하드리미터 함수를 사용하여 실제 출력값(y(t))을 계산 • 4단계. 가중치를 갱신 • 0< α < 1, 학습율(learning rate), d(t): 입력에 대한 목표 출력값 • 5단계. 2단계로 분기하여 반복 수행
AND 예제 • 뉴런에 입력되는 가중치의 합이 임계치( = 0.5 )를 초과하면 1, 아니면 0 • AND →W0, W1 : 0.3 or 0.4 입력 출력 X0 X1 AND f XOR X0 W0 0 0 0 0 0 = 0.5 Y 입력 출력 0 1 0 1 1 X1 W1 1 0 0 0 1 1 1 1 0 0
XOR 예제 X0 W0 입력 출력 → 만족하는 W0, W1는 존재하지 않음 → 간단한 XOR 문제도 해결하지 못함 • 이러한 문제를 해결하기 위해서 2개 또는 3개의 층(layer)을 사용 • 다층 퍼셉트론: 3층 퍼셉트론으로 어떤 문제도 해결가능 • 퍼셉트론은 다층 퍼셉트론 및 오류역전파 알고리즘의 기반 모델이 됨 = 0.5 Y X0 X1 AND f XOR 입력 출력 0 0 0 0 0 X1 W1 0 1 0 1 1 1 0 0 0 1 1 1 1 0 0 참고. XOR 는 배타적 논리합, 입력된 2개 중 1개만 참일 때 참이 된다.
Weight update Input Output calculation 역전파 (back propagation) • 오류역전파(error backpropagation) 개념 • 은닉층의 학습을 위해 출력층에서 발생한 오류를 이용하여 은닉층 오차계산 • 다시 이 값을 입력층으로 역전파시켜 출력층의 오차가 원하는 수준이 될 때까지 반복 • 이런 이유로 역전파 알고리즘이라고 한다. • 신경망의 처리 : 입력층 → 은닉층 → 출력층 • Weight 갱신의 학습방향: 출력층 → 은닉층 오차(e = y - d) Error(e) = y – d y: 데이터 입력에 대한 결과 값 d: 원 하는 값
Weight update Input Output calculation 역전파 (back propagation) • Back propagation은 다층(multilayer)이고, feedforward 신경망에서 사용되는 학습 알고리즘이며, 학습의 방법은 지도 학습 (supervised learning)이다. • 즉, 학습을 하기 위해서는 입력 데이터와 원하는 출력(d) 데이터가 있어야 한다. • 입력이 신경망의 가중치(weights)와 곱하고 더하는 과정을 몇 번 반복하면 입력의 결과값인 출력(y)이 나온다. 이 때 출력(y)은 학습 데이터에서 주어진 원하는 출력(d)와 다르다. 결국, 신경망에서는 (y - d)만큼의 오차(e = y - d)가 발생하며, 오차에 비례하여 출력층의 가중치를 갱신하고, 그 다음 은닉층의 가중치를 갱신한다. • 가중치를 갱신하는 방향이 신경망의 처리 방향과는 반대 방향이다. • 이런 이유로 역전파 알고리즘이라고 한다. • 신경망의 처리 : 입력층 → 은닉층 → 출력층 • 가중치 갱신의 학습방향: 출력층 → 은닉층 오차(e = y - d) y: 입력에 대한 결과 값 d: 원 하는 값 Error(e) = y – d
역전파 (back propagation) • 실제 적용시 고려사항 • 최소평균제곱 비용함수의 국부 최적해를 위해 뉴런수를 증가 • 이득항(, )을 낮출 필요 있음 • 초기 가중치를 다르게 하여 여러 번 학습하는 방법 • 문제점 • 상위층의 목표값과 실제 출력값 간의 오류를 하위층으로 역전파시키는 것은 생물학적으로 타당하지 않음 (목표를 알지 못함) • 오류 수렴까지 많은 회수의 학습 반복 • 지도학습에서 효율성 나타냄 → 보편적으로 많이 사용
역전파 (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.
.3 .1 1 3 5 -.1 .3 2 -.1 2 4 6 1 .5 Input Hidden Output 역전파 (back propagation Algorithm) Example
Error Backpropagation (계속) Step 3: Backward Propagation of error (<=) Output layer Hidden layer Step 4: Modify Weights
다층 퍼셉트론 • 신경망의 가장 일반적인 모델은 multilayer perceptron (MLP) 으로, 학습을 통한 지정된 출력을 요구하므로 supervised network 으로 알려져 있다. 이 모델의 목적은 출력의 지속적인 검증 및 학습을 통하여 기대되는 결과를 얻을 수 있도록 하는 것이다. .
Ex) Image를 scan 하는 OCR s/w • 원본 문서가 scan된 후 image 형태로 컴퓨터에 저장이 된다. OCR s/w 는 각각의 문자의 image format을 binary format (0, 1)으로 변경한 후, 신경망으로 전달되어 진다. 신경망에서는 가중치 값 및 function 에 의하여 새롭게 구성되는 output을 나타내게 된다. (ASCII 형태)
다층 퍼셉트론 (Multi-Layer Perceptron) • 입력층과 출력층 사이에 하나 이상의 은닉층을 가지는 전방향 신경회로망 • 단층 퍼셉트론의 문제점을 해결 → 효과적인 학습 알고리즘이 없어서 60-70년대 사용되지 않았다. • 80년대 중반 오류 역전파(EBP)알고리즘 학습규칙(Rumelhart) → 일반화된 델타 규칙(generalized delta rule) • 알고리즘 : 원하는 목표값(d)과 실제 출력값(y) 사이의 오차제곱합으로 정의된 비용함수(cost function) E의 값을 경사하강추적법(gradient-descent method)에 의해 최소화 하는 방향으로 학습 dpj: p번째 패턴에 대한 j번째 요소 ypj: 실제 출력의 j번째 요소 p: p번째 학습 패턴 Ep: p번째 패턴에 대한 오차
2층 퍼셉트론 0 k M-1 …… …… k Wkj 임계치 0 j L-1 j 임계치 Wji 0 i N-1 …… …… Xp0 Xpi XpN-1