Download presentation
Presentation is loading. Please wait.
1
제 3 장 신경회로망(Neural Network)(2)
Kohonen 자기조직화지도 Boltzman 머신 카운터프로파게이션 ART 신경회로망의 구현사례 Slide 1 (of 47)
2
Kohonen Network 핀란드의 코호넨(T.Kohonen)교수 그룹에 의해 주도적으로 개발됨
- 비지도(자율) 신경망(Unsupervised neural network) - 위상적 순서화 성질(Topological ordering property) - 데이터 마이닝에서 다차원 자료의 시각화 기법으로 발전 Slide 2 (of 47)
3
Kohonen Network # SOM의 기능 (목표) 관찰치가 n인 P-차원 개체들을 입력받아
초기화 i번째 입력개체가 들어가서 이것과 가장 가까운 노드 가중치가 이것을 갖음 (hit or winner) 노드 가중치 업데이트 정지조건 노드 가중치 변화가 미미하거나 시간이 한계를 넘김 을 만족하면 stop 1 2 3 Slide 3 (of 47)
4
Kohonen Network 예 Population Segment 1 Segment 2 Segment 3
Slide 4 (of 47)
5
Kohonen Network 예 Figure 1
Screenshot of the demo program (left) and the colours it has classified (right) (red, green, blue 8개 색깔로 mapping하는 것) (source: Slide 5 (of 47)
6
Each cell represents a node in the lattice (40*40)
Figure 2 A simple Kohonen network The network is created from a 2D lattice of 'nodes', each of which is fully connected to the input layer. Figure 2 shows a very small Kohonen network of 4 X 4 nodes connected to the input layer (shown in green) representing a two dimensional vector. Each node has a specific topological position (an x, y coordinate in the lattice) and contains a vector of weights of the same dimension as the input vectors. That is to say, if the training data consists of vectors, V, of n dimensions: V1, V2, V3...Vn Then each node will contain a corresponding weight vector W, of n dimensions: W1, W2, W3...Wn The lines connecting the nodes in Figure 2 are only there to represent adjacency and do not signify a connection as normally indicated when discussing a neural network. There are no lateral connections between nodes within the lattice. Slide 6 (of 47) Figure 3 Each cell represents a node in the lattice (40*40)
7
: Best matching unit (winning node) : Raduis (처음에는 크게 시작함)
Slide 7 (of 47) 이웃반경 (Nc)의 크기가 시간이 지남에 따라서 점차 줄어든다 결국 BMU와 이웃한 노드들은 비슷하게 adjust 된다
8
Kohonen 자기조직화 지도 Unsupervised neural network model
Self-Organizing Feature Maps (SOM) - 주어진 입력 패턴에 대하여 정확한 해답을 미리 주지 않고 자기 스스로 학습할 수 있는 능력. 자기조직화 지도라고 함 신경 생리학적인 시스템을 본따서 모델링한 네트워크 Input Layer / Competitive Layer로 구성 모든 연결은 첫번째 층에서 두번째 층 뱡향으로 연결 The 2nd layer is fully connected. Slide 8 (of 47)
9
Kohonen Network Special Works 층내의 뉴런의 연결강도 벡터가 임의의 값으로 초기화
층내의 뉴런의 연결강도 벡터가 임의의 값으로 초기화 연결강도 벡터와 입력벡터가 0~1로 Normalized 된 값 이용 Slide 9 (of 47)
10
경쟁학습(Competitive Learning)
각각의백터 입력뉴런 각각의백터 m 차원공간에서의 한점 input vector: weight vector: 연결강도 벡터와 입력 벡터의 거리가 가장 가까운 뉴런만이 출력을 낼 수 있다.승자 독점(winner take all) best matching node Slide 10 (of 47)
11
Competitive Learning 학습방법 뉴런은 연결강도 벡터와 입력 벡터가 얼마나 가까운가 계산
승자 뉴런 (Winner take all) - 거리가 가장 가까운 뉴런 (경쟁상태에서 특권부여 ) - 출력 신호를 보낼 수 있는 뉴런 - 승자 뉴런과 인접한 뉴런들만이 제시된 입력벡터에 대해 학습 허용/연결 강도 조정 Slide 11 (of 47)
12
학습규칙 (Learning Rule(1))
뉴런의 연결강도 조정 입력패턴의 백터 조정된 후의 새로운 연결강도 조정되기 이전의 새로운 연결강도 백터 Slide 12 (of 47)
13
Learning Rule(2) Kohonen의 학습 규칙 연결강도 벡터와 입력 패턴의 차이를 구한다.
그것의 일정한 비율을 원래의 연결강도 벡터에 더한다. 승자 뉴런 과 이웃 반경 안에 드는 모든 뉴런 등도 유사 조정 훈련의 진행에 따라 이웃 반경은 줄어든다(그림 3.24). - 점점 적은 개수의 뉴런들이 학습 Slide 13 (of 47)
14
Learning Rule(3) Kohonen의 학습 코호넨의 학습은 단순히 연결강도 벡터와 입력패턴 벡터의 차이를
구한 다음 그것의 일정한 비율을 원래의 연결강도 벡터에 더하는 것. Slide 14 (of 47)
15
Learning Rule(4) Kohonen의 학습 최종적으로 승자뉴런만의 그것의 연결강도 조정 강조되어야 할 Issue
이런 과정들이 끝나면 다른 입력벡터가 들어 온다. 위의 과정을 반복 강조되어야 할 Issue 연결 강도 벡터와 입력벡터의 정규화 네트워크 크기 Slide 15 (of 47)
16
Self-organizing Feature Maps Algorithm
연결강도의 초기화 새로운 입력 백터 제시 입력 백터와 뉴런들과의 거리계산 최소거리의 뉴런선택 뉴런과 그 이웃들의 연결강도 조정 반복 종료 Slide 16 (of 47)
17
SOM Algorithms STEP 1 연결강도를 초기화한다.
N개의 입력으로부터 M개의 출력 뉴런 사이의 연결강도를 작은 임의값으로 초기화한다. STEP 2 새로운 입력벡터를 제시한다. STEP 3 입력벡터와 모든 뉴런들간의 거리를 계산한다 STEP 4 최소 거리에 있는 출력 뉴런을 선택한다. STEP 5 STEP2로 가서 반복한다. Slide 17 (of 47)
18
2차원 지도의 자기 조직화 지도 (a) (b) 네트워크의 초기 연결강도 경쟁층에서 인접한 연결강도
Slide 18 (of 47)
19
2차원 지도의 자기 조직화 과정 (a) (b) 네트워크의 처음 연결강도 백터 1000번의 훈련을 거친 연결강도
Slide 19 (of 47)
20
2차원 지도의 자기 조직화 과정 (a) (b) 6000번의 훈련을 거친 연결강도 20000번의 훈련을 거친 최종의 연결강도
Slide 20 (of 47)
21
2차원 지도의 자기 조직화 과정 Slide 21 (of 47) 주어진 입력 패턴에 대한 훈련네트워크의 반응
22
node Health, nutrition, educational service…data입력
Better quality of life Health, nutrition, educational service…data입력 This colour information can then be plotted onto a map of the world (distance matrix = u-matrix) node This makes it very easy for us to understand the poverty data Slide 23 (of 47)
23
코호넨 네트워크의 장점 구조상 수행이 상당히 빠른 모델 연속적인 학습이 가능 자기조직화를 통한 정확한 통계적 모델
여러 단계의 피드백이 아닌 단 하나의 전방 패스(feedforward flow)를 사용 잠재적으로 실시간 학습 처리를 할 수 있는 모델 연속적인 학습이 가능 입력데이터의 통계적 분포가 시간에 따라 변하면 코호넨 네트워크는 자동적으로 이런 변화에 적응 자기조직화를 통한 정확한 통계적 모델 인간의 두뇌 작용 고찰에 매우 유용한 모델 Slide 24 (of 47)
24
자기조직화 형상지도의 신경망 음성타자기에의 응용(1)
자기조직화 형상지도의 신경망 음성타자기에의 응용(1) 음성인식과 관련된 현재 상업적 제품의 한계 한정된 어휘 화자종속 신경망 음성타자기란 말을 글자로 실시간내에 변환 시켜주는 장치 말을 이해하는 것은 아님 신경망 기술과 전통적 신호처리 기술 및 인공지능 테크닉과 융합된 모습 코호넨의 실험에 의하면 92%~97% 정도 정확성을 가짐 Slide 25 (of 47)
25
자기조직화 형상지도의 신경망 음성타자기에의 응용(2)
자기조직화 형상지도의 신경망 음성타자기에의 응용(2) 핀란드말과 일본말에 적용 Slide 26 (of 47)
26
자기조직화 형상지도의 신경망 음성타자기에의 응용(3)
자기조직화 형상지도의 신경망 음성타자기에의 응용(3) 핀란드말 ‘humppila’에 대한 반응 Slide 27 (of 47)
27
볼쯔만머신(Boltzman Machine)
네트워크의 유동적 행위가 통계 열역학적 행동과 유사 Simulated annealing기법을 이용 Stochastic model Visible neuron + Invisible neuron으로 구성 Architecture: Input + Hidden (+Output) Slide 28 (of 47)
28
볼쯔만머신 vs 홉필드 네트워크 차이점 공통점 각 프로세싱 유니트는 +1, -1의 값만 가지며 대칭적 연결
각 유니트는 임의로 선택되며 한 순간에 하나의 유니트만 변화. self-feedback이 없다. 차이점 Stochastic neuron(볼쯔만) vs Deterministic model(홉필드) unsupervised learning(볼쯔만) vs Supervised learning of a probabilistic form(홉필드) 에너지가 증가하는 상태의 전이에 대해서도 허용하는 동작규칙 적용(볼쯔만)하나 홉필드는 에너지 감소방향으로만 변화 Slide 29 (of 47)
29
볼쯔만 머신의 학습 볼쯔만 머신의 학습 가시(visible)유니트와 은닉(hidden)유니트로나누어 가시유니트들의 상태의 평형분포를 원하는 확률분포로 일치하도록 학습한다. (a)자기 상기형: 학습시 제시되는 목표 분포를 그대로 따라서 학습하는 방법 (b)상호 상기형: 입력 유니트들의 상태를 고정했을 때의 출력 유니트들의 평형분포를 원하는 확률분포와 일치하도록 학습하는 형태 Slide 30 (of 47)
30
볼쯔만 머신의 응용분야 분산된 표현방식을 사용하므로 기존의 본 노이만 형에서의 병목현상이 없음 병렬처리 상태전이방법 사용
동기성 병렬처리 방법 비동기성 병렬처리 방법 VLIS 배치문제, 패턴인식, 최적화문제등에 적합 한 모델 Slide 31 (of 47)
31
카운터 프로파게이션 1987, Hecht Nielsen에 의해 제시된 혼합형 모 델로 중간층은 자율적 학습을 하는 경쟁적인 뉴런들로 이루어진 Kohonen 층을 사용하며, 상위층은 Grossberg 층으로 구성되어 있으며 은닉층과 완전 연결되어 있으나 경쟁하지는 않 는 구조는 갖는 신경회로망 모델 기존 네트워크의 결합 모델이므로 한 개의 학 습 알고리즘만을 사용하지 않고 각 층마다 다 른 학습 알고리즘을 사용함으로써 다른 네트워 크보다 더 빠른 학습을 가능하게 하는 특징을 갖음. 따라서 매우 정확함과 신속함을 요구하 는 분야에 적용가능 패턴매칭, 패턴분류, 통계적분석 및 데이터 압 축에 유용한 모델 EBP보다 정확성은 없고 경쟁층이 다소 불안 정하나, 모델의 단순성과 통계적 모델링을 사 용한다는 점이 주요 특징 (원래의 네트워크 구조: 5층으로 구성) Kohonen층 (3층의 네트워크 구조 예) Slide 32 (of 47)
32
ART(Adaptive Resonance Theory)
1976, 미국 보스턴 대학의 Stephen Grossberg와 그의 부인 Gail Carpenter가 개발한 모델로 가장 복잡한 신경회로망 모델 종류 ART-1(입력패턴이 이진수인 경우만 처리) ART-2(이진수와 아날로그 입력 데이타 모두 처리가능) ART-3(화학전달 물질을 ART 네트워크에 적용한 모델) 등으로 연구개발 됨 ART 모델 2개층으로 구성 입력과 출력층사이 양방향연결 출력층에는 억제성 측면연결형성 Slide 33 (of 47)
33
ART 시스템의 구조 ART와 다른 학습모델과의 비교 ART 시스템의 구조 이득제어(gain control)을 조정함으로써
다른 학습 모델들 온 라인 학습(on-line) 오프 라인 학습(off-line) 동적인 세계 정적인 세계 자기조직화(자율학습) 지도학습 많은 입력에 대한 메모리의 자기 조절 많은 입력에 대해 용량의 파산 가능 전체적인 메모리의 효과적인 이용 부분적인 메모리만 이용 비교적 빠른 학습 느린 학습 또는 진동으로 인한 파국 가능 근사매치 단계의 학습 미스매치 단계의 학습 여러 가지 에러에 대한 판단 기준 고정된 에러 판단 기준 이득제어(gain control)을 조정함으로써 F1이 상향적 입력패턴과 하양적 기대패턴 을 구별하고 이 패턴들을 매치 시키는 작업을 수행할 수 있다. Slide 34 (of 47)
34
신경회로망 시스템 예제 (http://www.geocities.com/CapeCanaveral/1624)
신경회로망을 이용한 비선형 함수의 근사해 구하는 방법 ( ion.htm) 문자인식 문제의 소스코드와 출력결과 프로젝트 사례1:오류역전파 알고리즘을 이용한 문자인식 문제 프로젝트 사례2: 홉필드 신경회로망 구현 문제 신경회로망 시뮬레이터 ( 공개된 신경회로망 소스코드 ( Slide 35 (of 47)
35
Multipayer Perceptron의 예
• 학습할 패턴의 수: 3개(ㄱ,ㄴ,ㄷ) (100)->( ) (010)->( ) (001)->( ) • 신경회로망 Topology w01 출력층 3개노드 w00 w02 w10 w01 중간층 2개노드 w00 w10 w11 Slide 36 (of 47) 입력층 9개노드
36
• Step 1: offset=0, 모든 w=1, eta=0.1로 초기화하고 시그모이드 함수 f 결정
• Step 2: 네트워크 topology와 학습패턴 결정 • Step 3: 전방향 학습과정 (계산식은 대략적인 값임, 수식만 유의할것) (1) 입력층 -> 은닉층의 출력값 Oㄱ0 = f( 1*1+1*1+1*1+0*1+0*1+1*1+0*1+0*1+1*1)=f(5)=0.4 Oㄱ1 = f( 1*1+1*1+1*1+0*1+0*1+1*1+0*1+0*1+1*1)=f(5)=0.4 (2) 은닉층- > 출력층의 출력값 Oㄱ0 = f(0.4*1+0.4*1) = f(0.8)=0.1 Oㄱ1 = f(0.4*1+0.4*1) = f(0.8)=0.1 Oㄱ2 = f(0.4*1+0.4*1) = f(0.8)=0.1 (3) 출력층 오차계산(델타) dㄱ0 = 0.1*(1-0.1)(1-0.1)= 0.081 dㄱ1 = 0.1*(1-0.1)(0-0.1)= dㄱ2 = 0.1*(1-0.1)(0-0.1)= (4) 은닉층 오차계산(델타) dㄱ0 = 0.4*(1-0.4)(0.081* * *1)= 0.015 dㄱ1 = 0.4*(1-0.4)(0.081* * *1)= 0.015 Slide 37 (of 47)
37
• Step 4: 가중치 수정하는 과정(역방향 학습과정) (1) 가중치 수정(은닉층 -> 출력층)
w00(t+1)=w00(t) + eta * d0 * o0 = 1+0.1*0.081*0.4 = w01(t+1)=w01(t) + eta * d1 * o0 = 1+0.1*-0.009*0.4 = w02(t+1)=w02(t) + eta * d2 * o0 = 1+0.1*-0.009*0.4 = (2) 가중치 수정(입력층 -> 은닉층) w00(t+1)=w00(t) + eta * d0 * o0 = 1+0.1*0.015*1 = w01(t+1)=w01(t) + eta * d1 * o0 = 1+0.1*0.015*1 = w10(t+1)=w10(t) + eta * d2 * o0 = 1+0.1*0.015*1 = w11(t+1)=w11(t) + eta * d9 * o0 = 1+0.1*0.015*1 = ………… • Step 5: 패턴 “ㄴ”에 대해서 수행하고 다시 패턴 “ㄷ”에 대해서 수행을 반복한다. 가중치값의 변화가 없거나 오차의 한계에 들어와서 거의 변화가 없을때까지 반복한다. 패턴 “ㄱ”->”ㄷ”까지 위의 과정을 전부 다하면 1 싸이클 돌았 다고 하며 이것을 전문 용어로 1 epoch라고 한다. Slide 38 (of 47)
38
<패턴 “ㄴ”에 대해서 반복 수행하는 과정> (1) 입력층 -> 은닉층의 출력값
Oㄴ0 = f(1* * * * *1.0015 +0* * * *1.0015)=f(5.008)=0.42 Oㄴ1 = f(5.008)=0.42 (2) 은닉층- > 출력층의 출력값 Oㄴ0 = f(0.42* * ) = f(0.843)=0.13 Oㄴ1 = f(0.42* *1.0364)=f(0.829)=0.11 Oㄴ2 = f(0.829)=0.11 (3) 출력층 오차계산(델타) dㄴ0 = 0.13*(1-0.13)(0-0.13)= dㄴ1 = 0.11*(1-0.11)(1-0.11)= dㄴ2 = 0.11*(1-0.11)(0-0.11)= (4) 은닉층 오차계산(델타) dㄴ0 = 0.42*(1-0.42)(0.13* * *1.0364) = 0.086 dㄴ1 = 0.086 Slide 39 (of 47)
39
(1) 가중치 수정(은닉층 -> 출력층) w00(t+1)=w00(t) + eta * d0 * o0
• 패턴 “ㄴ”에 대해 가중치 수정하는 과정 (1) 가중치 수정(은닉층 -> 출력층) w00(t+1)=w00(t) + eta * d0 * o0 = *0.0962*0.42 = w01(t+1)= *0.0871*0.42=1.0072 w02(t+1)= *0.0871*0.42=1.0072 ……… (2) 가중치 수정(입력층 -> 은닉층) = *0.086*1 = w01(t+1)= *0.086*1 = w10(t+1)= *0.086*0 = w11(t+1)= *0.086*0 = • 다시 패턴 “ㄷ”에 대해서 수행 반복한다. Slide 40 (of 47)
40
<패턴 “ㄷ”에 대해서 반복 수행하는 과정> (1) 입력층 -> 은닉층의 출력값
Oㄷ0 = f(1* * * * *1.0015 +0* * * *1.0101)=f(7.071)=0.5 Oㄷ1 = f(7.071)=0.5 (2) 은닉층- > 출력층의 출력값 Oㄷ0 = f(0.5* *1.0074) = f(1.0074)=0.2 Oㄷ1 = f(0.5* *1.0072)=0.2 Oㄷ2 = f(1.0074)=0.2 (3) 출력층 오차계산(델타) dㄷ0 = 0.2*(1-0.2)(0-0.2)= -0.04 dㄷ1 = 0.2*(1-0.2)(0-0.2)= -0.04 dㄷ2 = 0.2*(1-0.2)(1-0.2)= 0.13 (4) 은닉층 오차계산(델타) dㄷ0 = 0.5*(1-0.5)(0.2* * *1.0072) = 0.15 dㄷ1 = 0.15 Slide 41 (of 47)
41
(1) 가중치 수정(은닉층 -> 출력층) w00(t+1)=w00(t) + eta * d0 * o0
• 패턴 “ㄷ”에 대해 가중치 수정하는 과정 (1) 가중치 수정(은닉층 -> 출력층) w00(t+1)=w00(t) + eta * d0 * o0 = *-0.04*0.5 = 1.018 w01(t+1)= *-0.04*0.5=1.037 w02(t+1)= *0.13*0.5=1.013 (2) 가중치 수정(입력층 -> 은닉층) = *0.15*1 = 1.025 w01(t+1)= *0.15*1 = 1.025 w02(t+1)= *0.15*0 = w09(t+1)= *0.15*0 = • 1 epoch를 했으므로 다시 패턴 “ㄱ” 부터 “ㄷ”까지 가중치 차이가 거의 없을 때까지 반복한다. Slide 42 (of 47)
42
문자인식: 프로젝트사례 1 오류 역전파 알고리즘을 이용하여 문자인식을 아래의 사항을 고려하여 시뮬레이션 해보자 - 입력 패턴 영문 대문자, 영문 소문자, 숫자, 한글자음, 한글단모음, 특수문자 중 택일(인쇄체) 인식할 문자 수는 8 개 이상 패턴크기: 5*5 픽셀 이상 - 출력 패턴 입력층 노드수 : 25 개 이상 은닉층 노드수 : 임의로 출력층 노드수 : 패턴의 수 - 시뮬레이션시 택 1하여 학습속도와 지역 최소점과의 관계를 설명해보자 (가점사항) 은닉층의 노드 수 은닉층 수의 변화 학습율의 변화 모멘텀의 변화 weight변화시기(한 패턴입력 후 변화 또는 전체 패턴입력 후 변화) 입력패턴 적용방법(순서대로 또는 랜덤하게 입력패턴 적용) - 제출사항: 소스파일, 출력파일, 알고리즘, 네트워크 토폴로지, 입출력 패턴 및 테스트 패턴, 그에 따른 결과 Slide 43 (of 47)
43
프로젝트 구현 유형 1 <입력패턴> 1 * Learning pattern : 10 pattern ( ㄱ , ㄴ ㄷ
* Learning pattern : 10 pattern ( ㄱ , ㄴ ㄷ ㄹ ㅁ ㅂ ㅅ ㅇ ㅈ ㅍ ) ( ) ( ) ( ) ( ) input output ( ) Slide 44 (of 47)
44
프로젝트 구현 유형 1 <네트워크 토폴로지> … Output layer node: 10
Hidden layer node: 10 Input layer node: 25 전 방 향 역 ㄱ => 목표 출력값 => Hidden_o1 Output_o2 Delta_output3 Delta_Hidden4 Output_w5 Hidden_w6 ... Slide 45 (of 47)
45
프로젝트 구현 유형 1 => <실행결과> Noise pattern Output=>1000000000
1 Noise pattern Output=> => Output=> <C 실행결과 > Slide 46 (of 47)
46
유형 2와 유형 3의 출력결과 <유형 2의 출력결과> <유형 3의 출력결과>
<유형 2의 출력결과> <유형 3의 출력결과> Slide 47 (of 47)
Similar presentations