신경망 2
자율 학습 지금까지 소개된 신경망은 옳은 네트워크 행위를 정의하기 위해서 목표 신호가 요구되는 지도 학습 형태 자율 학습을 허용하는 간단한 규칙들의 집합을 소개 이들 규칙은 빈번하게 나타나는 패턴들간에 연상 학습이 가능하며 소개되는 학습 규칙은 경쟁 네트워크와 같은 보다 큰 네트워크의 틀을 위해 사용 일단 학습이 되면, 패턴인식 및 회상과 같은 유용한 작업을 네트워크가 행할 수 있음 입력 뉴런이 반응할 때, 단층 네트워크의 출력 뉴런이 반응을 보인다면, 두 개의 활성화된 노드들의 연결 강도는 강화 이것은 입출력 관계를 네트워크가 결합시키는 것으로 관계형 또는 연상형 네트워크라 함
연상 학습 연상 학습을 할 수 있는 가장 간단한 형태로 다음과 같이 하나의 입력에 관해 thresh 전달함수에 의한 뉴런 출력을 갖는 네트워크를 들 수 있음 출력 y와 입력 x의 관계: y=thresh(wx+b)=thresh(wx-0.5) 편의상 x의 값은 0 또는 1, 각각 자극이 없거나 또는 자극이 있는 상태이기 때문에 p로 표현; 자극 p=1과 반응 y=1의 연상 관계는 w의 값에 종속
연상 학습 입력에 관한 집합으로 무조건적인 자극을 들 수 있고, 또 다른 입력 형태는 조건적인 자극 무조건적인 자극은, 예를 들어 개가 종소리만 들으면 음식이 출현하는 것으로 연상되어 침을 흘리는 경우, 조건적인 자극은 음식이 출현되는 경우에만 개가 침을 흘리는 경우의 학습 무조건적인 자극은 p0, 조건적인 것은 p라 할 때, p0에 관한 가중치는 고정, p에 관련된 가중치는 적절한 학습에 따라 조정 다음은 바나나 인식 네트워크로 무조건적인 자극(바나나 모양)과 조건적인 자극(바나나 향기)을 가짐 여기서 조건적인 및 무조건적인 자극은 임의로 상술한 것이며, 단순히 학습 규칙을 나타내기 위한 것; 이러한 네트워크에 관해 무조건적인 및 조건적인 입력은 다음과 같다.
연상 학습 w0에 관해 -b보다 큰 값, w에 관해 -b보다 작은 값의 배정은 네트워크가 과일 모양에 관해서는 바나나임을 인식, 향기로는 바나나임을 인식하지 못함 이러한 조건을 만족하는 가중치는 w0=1, w=0, 바나나 연상의 입출력 함수: y=thresh(p0-0.5) 즉 네트워크는 바나나 향기에는 관계없이 바나나 모양에 대해서만 반응 만일 바나나 모양과 함께 바나나 향기에 관한 자극이 동시에 주어진다면, 네트워크 연결 강도는 강화되고, 추후 바나나 향기 자체만으로 바나나를 인식할 수 있음
헵 학습 헵 학습은 가장 오래되고 단순한 형태의 학습 규칙 이 규칙은 만약 연접 양쪽의 뉴런이 동시에 또 반복적으로 활성화되었다면 그 두 뉴런 사이의 연결강도가 강화된다는 관찰에 근거 수학적인 식 pj와 yi는 뉴런 j와 i의 출력; 이들은 wij에 의해 연결, 는 학습률, pj는 wij의 입력도 됨 연접의 변화가 인접한 두 뉴런의 상태에 의해서만 결정되기 때문에 학습은 국부적으로 일어남 벡터 표현
헵 학습 헵 학습은 여러 가지 변형된 형태로 사용되기도 하는데, 대표적인 것이 instar와 outstar 학습 모든 자율적인 규칙에 관해 학습은 시간 순서로 나타난 입력의 반응: p1, p2 , … , pQ 각 반복에서 출력은 입력 p의 반응으로 계산되고 나서 가중치 W는 헵 규칙에 따라 갱신 바나나 연상에 관한 헵 규칙의 적용으로 초기 가중치는 모양에만 반응하도록 하기 위해 w0=1, w0=0로 놓음 향기 센서가 작동될 때 모양 센서는 주기적으로(짝수 시간에서만) 작동된다고 할 때, 즉 시간 순서로 나타난 입력의 반응은 다음과 같은 집합으로 구성: {p10=0, p1=1}, {p20=1, p2=1}, … 헵 규칙을 적용하는 경우에 무조건적인 자극 p0에 관한 w0는 일정하고, w는 갱신됨 예를 들어 =1의 자율적인 헵 규칙: wq = wq-1 + yq pq
헵 학습 첫 번째 반복(q=1)에 따른 출력 여기서 향기 자체는 반응을 나타내지 못하고, 반응이 없는 경우에 헵 규칙은 가중치를 갱신하지 못함, 즉 두 번째 반복에서 바나나 모양과 향기가 탐지되고, 네트워크는 다음과 같은 반응을 나타냄 향기 자극과 반응이 동시에 나타나기 때문에 헵 규칙은 그들 간에 가중치를 증가시킴 세 번째 반복에서 모양에 따른 자극은 없지만, 네트워크는 임의적으로 반응; 바나나 향기와 그것의 반응 간에 유의한 관련
헵 학습 자율 헵 학습은 연상에 유용하지만 실제 적용에서 결점들이 있음 입력이 계속 출현되어서 가중치가 갱신되는 경우에만 명백하고, 가중치 는 계속 커지게 된다는 것과 가중치 감소 방법이 없다는 것 네트워크 입출력이 어떠한 잡음을 갖는 상태에서 학습될 경우에도 모든 가중치는 서서히 커지기 때문에 기억하는 것과 기억하지 못하는 것을 모두 허용하는 규칙이 필요; 헵 규칙의 개선을 위한 한 가지 방식은 가중치 감소 항을 고려하는 것, 즉 여기서 는 감쇠 비율로 1보다 작은 양의 상수, 가 0에 근접될 때, 학습은 표준 규칙에 대응 학습은 오래된 입력을 빠르게 잊게 되고, 최근의 패턴들만을 기억; 이것은 가중치 행렬이 무한히 커지는 것을 방지
헵 학습 최대 가중치 wijmax는 에 의해 결정; 이 값은 모든 q에 관해 yi와 pj을 모두 1로 놓으면 됨, 즉 바나나 연상 문제에 관해 0.1의 감쇄 비율을 사용하면, 향기 자극만 나타나는 첫 번째 반복과 같음: y1=0(어떠한 반응도 없음), w1=0 다음 반복 또한 동일한 결과를 생성; 여기서는 모든 자극이 출현되고, 네트워크는 모양에 대해서 반응하며, 향기 자극과 반응의 일치는 새로운 연상을 생성: y2=0(바나나), w2=1 세 번째 반복의 결과는 같지 않음; 네트워크는 향기에 관해서 반응하는 것으로 학습되고, 가중치는 계속 증가; 그렇지만, 가중치는 1.0이 아닌 0.9만 증가
헵 학습 감쇄 항은 가중치 값을 제한하기 때문에 연상이 아무리 자주 강요되더라도 결코 wijmax을 초과할 수 없음 wijmax = beta/alpha = 1/0.1 =10 새로운 규칙은 네트워크에 의해 학습된 연상이 잡음에 의해 가공되지 않도록 함; 어떠한 작은 난수들의 증가도 빠르게 쇠퇴 감소 항을 갖지 않는 경우에 뉴런이 흥분될 때마다 같은 양만큼 계속해서 증가 감소 항이 추가되는 경우에 가중치는 그것이 갖는 최대 값에 지수 적으로 접근 이러한 헵 규칙을 사용했을 때, 네트워크는 오래된 정보를 일정하게 잊게 되고, 계속적으로 새로운 정보를 학습하게 됨
헵 학습 오렌지 인식 네트워크
헵 학습 가중치 및 입력이 앞 그림과 같이 초기화된 4개 입력을 갖는 네트워크 alpha=beta=0.1의 자율 헵 학습 적용 w=[1 0 0 0]; % 가중치 벡터 x=[1 0 0 1]? % 입력벡터 alpha=beta=0.1의 자율 헵 학습 적용 a=0.1; % 망각 인자 b=0.1; % 학습 인자 yout=thresh(w*x-eps) % 출력 yout = 1 del_w=-a*w+b*x'*yout % 가중치 갱신 del_w = 0 0 0 0.1000 w=w+del_w % 새로운 가중치 w = 1.0000 0 0 0.1000 이러한 규칙은 함수 hebbian()을 사용하여 수행될 수 있음; cycles=100을 사용한 헵 학습 w=hebbian(x,w,a,b,100) w = 1.0000 0 0 1.0000
인스타 헵 규칙은 가중치 감소 구조를 사용하기 때문에 이전의 정보를 끊임없이 망각 보다 유용한 구조는 그것이 학습될 경우에만 망각하는 것 네트워크는 출력이 흥분될 경우에만(즉 y=1), 학습하기 때문에 출력이 흥분되는 경우에는 망각이 일어나야 함 학습과 망각 비율이 같은 경우의 헵 학습을 인스타 학습 인스타와 퍼셉트론은 유사성이 있지만, 상이한 함수를 실행하고, 다른 방식으로 분석 의사 결정 경계는 퍼셉트론에서 중요한 개념이지만, 인스타에서는 이것을 고려하지 않고, 대신에 헤밍 네트워크의 첫 번째 층에 있는 뉴런들처럼 패턴을 인식하는 인스타 능력을 분석 인스타 입출력 식
인스타 인스타는 가중치 벡터(가중행렬의 행)와 입력의 내적이 -b보다 크거나 같은 경우에만 흥분 헤밍 네트워크에서 일정한 길이의 두 벡터에 관해 내적은 그들이 같은 방향의 점들일 때 가장 크게 됨 두 벡터간에 각이 일 때, 내적은 각 가 0일 때 최대 p와 1w가 같은 길이인 경우에 p=1w이면 내적은 최대; 이러한 사실에 따라서 인스타는 p가 1w에 가까울 때 흥분 적절한 임계 값 b에 관해 인스타를 흥분 시키기 위해 입력 벡터가 가중치 벡터에 어느 정도 가까워져야 할 것인지 알 수 있음; b = -||1w|| ||p||이면, 인스타는 p가 1w과 정확히 같은 방향을 가리킬 때만 흥분 1w의 근방에 있는 어떠한 패턴에 반응하도록 하려면, b는 -||1w|| ||p||보다 큰 어떤 값으로 증가시켜야 함 b의 값이 커지면 커질수록 인스타가 흥분되는 패턴들이 보다 많게 됨 이러한 분석은 모든 입력 벡터가 같은 길이를 전제로 하고 있음
인스타 감쇄를 갖는 헵 규칙의 한 가지 문제는 반복적인 자극이 요구되거나 또는 연상되었던 것이 상실되는 것 보다 낫은 규칙은 인스타가 흥분되는 경우에만 가중치 감소를 허용하는 것 가중치는 계속 제한되면서 망각은 최소화 망각 문제를 제한하면서 가중치 감소의 이득을 얻기 위해서 yi(q)에 비례하는 감쇄 항을 추가할 수 있음
인스타 인스타 및 인스타 규칙의 기하학적 표현 와 를 같게 놓으면(새로운 가중치가 같은 비율로 오래된 값을 쇠퇴 시키도록 학습) 다음과 같고, 이것을 인스타 규칙이라 함 벡터 표현
인스타 인스타가 흥분 상태일 때 가중치 벡터는 입력 벡터를 향해 이동 =0: 새로운 가중치 벡터는 이전의 가중치 벡터와 같고(이동이 없음), =1: 새로운 가중치 벡터는 입력 벡터와 같음(최대 이동에 해당되는), =0.5: 새로운 가중치 벡터는 이전의 가중치 벡터와 입력 벡터간에 중간에 해당 인스타 규칙의 한 가지 특징은 입력 벡터들이 표준화된 경우에 그것이 특정한 벡터를 일단 학습하면, 가중치 또한 표준화 입력 벡터들이 표준화되는 경우에 망각의 최소화뿐만 아니라 표준화된 가중치 벡터들을 얻는 규칙을 발견할 수 있음 앞의 그림 (1)에서 R=3, b=-2인 경우에 따른 인스타 규칙의 적용 하나의 입력은 과일이 시각적으로 오렌지라는 것을 식별할 수 있는 무조건적인 자극이고, 또 다른 입력은 과일로부터 취해질 수 있는 3가지 측정값, 즉 조건적인 자극
인스타 이러한 네트워크 출력은 다음과 같고, 입력 벡터 p의 성분은 ±1로 제한되고, 이러한 제한은 입력 벡터가3의 제곱근의 길이를 갖는 표준화 된 것임을 보장 임계 값 b는 벡터 p의 길이 제곱근에 음수를 취한 -3보다 약간 큰 -2 네트워크가 오렌지의 모습과 그것의 반응간에 일정한 연상이 가능하기 위해서는 w0가 -b보다 커야 함
인스타 초기에 네트워크는 측정값들에 관한 어떠한 조합에 반응하지 않기 때문에 초기 값은 0의 값으로 시작될 수 있음 측정값에 관한 가중치는 인스타 규칙에 따라 갱신(=1) 훈련은 오렌지에 관한 반복적인 출현 값으로 구성되고, 측정은 매번 이루어질 것; 그렇지만 인스타 규칙의 작동을 데모하기 위해서 짝수 시간 단계에서만 옳게 작동되는 시각적인 시스템을 가정 초기에 W는 모두 0이기 때문에 인스타는 첫 번째 반복에서 오렌지의 측정값들에 반응하지 않음
인스타 뉴런이 반응하지 않기 때문에 그것의 가중치 1w은 인스타 규칙에 의해 변경되지 않음
인스타 세 번째 반복에서 시각적인 탐지가 실패하더라도 뉴런은 반응 측정값이 완전하게 학습되면, 가중치 변경은 중지(낮은 학습율은 보다 많은 반복을 필요로 함) 다음 문장은 인스타 네트워크의 학습: 가중치 벡터와 입력벡터는 표준화되어야 하고, 입력벡터의 인식을 위한 양의 상태가 되기 위해서 그들의 곱은 0.9보다 커야 됨
인스타 w=rand(1,4) % 가중치 벡터를 난수로 초기화 w = 0.9501 0.2311 0.6068 0.4860 x=[1 0 0 1]'; % 학습될 입력벡터 x=x/norm(x); % 입력 벡터의 표준화 w=w/norm(w); % 가중치 벡터의 표준화 yout1=thresh(w*x-0.9) % 초기 출력 yout1 = 0 a=0.8; % 학습 및 망각인자 w=instar(x,w,a,10) % 10번의 반복학습과 최종 가중치 벡터 w = 0.7071 0.0000 0.0000 0.7071 yout2=thresh(w*x-0.9) % 최종 출력 yout2 = 1 네트워크는 원하는 입력벡터를 인식할 수 있도록 학습; 식별을 위해 0.9의 판정 기준이 사용되었음
아웃 스타 인스타의 상대적인 네트워크로서 아웃스타 네트워크는 하나의 스칼라 입력과 벡터 출력을 가짐 하나의 자극과 반응 벡터를 관련시키는 방식으로 패턴을 회상하는 데 사용 이들 두 개의 네트워크 구조는 하나의 연상 기억 장치라 할 수 있음
아웃 스타 이러한 네트워크에 관한 입출력은 y=satlins(Wp); satlins 함수는 다음과 같고, 네트워크는 -1 또는 1의 값을 포함하는 하나의 벡터를 회상 네트워크가 하나의 자극(1의 입력)과 특정한 출력 벡터 y*을 연관시키도록 하고자 하는 경우에 W를 단순히 y*로 놓으면 됨 p가 1인 경우에 출력은 y*; 즉 y=satlins(Wp)=satlins(y*•1)=y*, 여기서y*의 성분은 크기에서 1보다 작거나 같다는 것을 전제로 함 유사하게 회상 네트워크는 원하는 벡터를 가중 행렬의 열로 놓는 방식으로 얻어질 수 있음 아웃스타 네트워크 또한 헵 학습을 사용; 다시 말해서 입출력이 모두 흥분 상태일 때 연결 가중치는 증가 역으로 아웃스타 학습 규칙의 유도는 가중치 감소 항이 네트워크의 입력에 비례하는 방식으로 제한할 수 있음
아웃 스타 를 와 같게 놓으면 아웃스타 규칙은 인스타 규칙의 역에 해당되는 성질; 학습은yi 대신에 pj가 0이 아닌 경우에 이루어지고, 학습이 이루어질 때마다 열 벡터 wj는 출력 벡터를 향해 이동 아웃스타 규칙의 벡터 표현 가중치 벡터 wj는 가중 행렬 W의 j-번째 열에 해당 아웃스타 규칙의 테스트를 위해 다음 그림과 같은 네트워크 훈련을 고려하면
Widrow-Hoff 학습 규칙 학습 목표는 비용함수가 최소값을 가지게 하는 연결강도를 찾는 것 접근 방법은 해석적으로 문제를 푸는 대신 임의의 출발점에서 계속 성능을 개선시켜나가면서 해를 찾는 것 비용함수가 주어지면 가중치 공간에서 비용함수가 나타내는 곡면에서 아래쪽으로 이동하게 하는 방향을 찾을 수 있음 일반적으로 경사 감소법(gradient-descent algorithm)은 E(w)의 경사의 비례하여 음의 방향으로 가중치를 변화시킴
아웃 스타 네트워크 출력 네트워크의 두 개 입력은 과일로부터 취해지는 측정 p0(무조건적인 자극)과 파인애플이 시각적으로 식별될 수 있음을 나타내는 신호 p(조건적인 자극)
아웃 스타 네트워크 출력은 현재 시험되고 있는 과일의 측정치들을 반영 =1인 경우에 아웃스타 규칙에 따른 가중행렬 W의 갱신 측정 시스템의 결함으로 인해 측정치들이 짝수 번째의 반복에서만 옳게 작동되는 것으로 가정 첫 번째 반복에서 파인애플이 나타났지만, 측정치들은 이용될 수 없고, 가중치들은 갱신된 후에도 변하지 않음
아웃 스타 두 번째 반복에서는 파인애플이 나타나고, 적절한 측정치가 얻어지는 경우에 해당; 네트워크 출력은 옳게 나타나고, 가중치들은 다음과 같이 갱신
아웃 스타 파인애플 형태와 측정치들이 모두 이용 가능하기 때문에 네트워크는 하나의 연상을 나타냄 이제 가중행렬은 측정치들에 관한 새로운 복사판으로 추후에 회상 될 수 있음 세 번째 반복에서 측정치들은 다시 사용될 수 없는 것이지만, 출력은 다음과 같고, 네트워크는 측정이 실패가 되더라도 그것이 보았던 파인애플의 측정치들을 회상하게 됨 파인애플이 다시 나타나지 않으면 가중치들은 갱신되지 않음
아웃 스타 v=[0 1 1 0]; x=1; w=rand(1,4); % 학습 벡터, 입력, 가중치 초기화 a=0.9; % 학습율 w=outstar(v, x, w, a, 10) % 네트워크의 10번 훈련 w = 0.0000 1.0000 1.0000 0.0000 yout=w*x % 훈련된 네트워크 출력 yout = 0.0000 1.0000 1.0000 0.0000 4개 성분을 갖는 3개 벡터의 학습 v1=[0 -1 0 0]'; v2=[1 0 -1 0]'; v3=[0 1 0 0]'; % 세 개의 벡터 v=[v1 v2 v3]; w=rand(4,3); % 초기 가중행렬 w=outstar(v, x, w, a, 10); % 네트워크의 10번 학습 x=[1 0 0; 0 1 0; 0 0 1]; % 3개 입력벡터 yout=w*x % 3개 출력벡터 yout = 0.0000 1.0000 0.0000 -1.0000 0.0000 1.0000 0.0000 -1.0000 0.0000 0.0000 0.0000 0.0000
BAM 쌍방향 연상기억장치(bi-directional associative memory: BAM)는 Kosko에 의해 제안된 크로스바 구조 예를 들어 3개 벡터 쌍 (a, b) a1=[1 -1 -1 -1 -1 1]'; a2=[-1 1 -1 -1 1 -1]'; a3=[-1 -1 1 -1 -1 1]'; b1=[-1 1 -1]'; b2=[1 -1 -1]'; b3=[-1 -1 1]'; 각 벡터 a는 벡터 b와 결합되고, 어떠한 벡터도 입력 또는 출력이 될 수 있음 하나의 BAM에서 벡터 성분은 +1 또는 -1, 3개의 상관행렬은 다음과 같이 생성 m1=a1*b1'; m2=a2*b2'; m3=a3*b3'; m=m1+m2+m3 % 가중치 행렬 m = -1 3 -1 3 -1 -1 -1 -1 3 1 1 1 -3 1 1
BAM A1=signum(m*b1) % b1에서 a1을 회상 A1' = 1 -1 -1 -1 -1 1 3개의 상관행렬이 모두 더해지는 방식으로 가중행렬이 생성 가중행렬은 어떠한 입력벡터의 연상과 관련된 벡터를 취하는 데 사용될 수 있음 이 행렬은 양방향으로의 변환을 실시할 수 있고, 결과 벡터는 [-1 1]의 범위로 제한, 즉 Ai=MBi, Bi=MTAi signum()은 이러한 목적에 부합, 예를 들어 각 벡터로부터 회상을 위한 문장 A1=signum(m*b1) % b1에서 a1을 회상 A1' = 1 -1 -1 -1 -1 1 B2=signum(m'*a2) % a2에서 b2를 회상 B2' = 1 -1 -1 가중행렬에 기억된 정보를 사용하여 연상이 가능
경쟁 학습 여러 개 출력 유니트가 동시에 활성화될 수 있는 헵 학습과는 달리 경쟁 학습에서는 한 번에 하나의 출력 유니트만 활성화; 이를 위해 출력 유니트들 간에 경쟁이 일어남(이것을 winner-take-all이라 하며, 경쟁 학습은 생물체 신경망에도 존재하는 것으로) 경쟁 학습은 입력 데이터 군집화 또는 분류에 사용; 비슷한 패턴들은 신경회로망에 의해 하나의 군집을 이루게 되고 이것은 하나의 유니트에 의해 표현 여기서 i는 출력 뉴런에 관한 인덱스, l은 입력 뉴런에 관한 인덱스; 입출력 뉴런간에 가중치(wil)는 작은 난수로 초기화되고, 지속적으로 표준화되어야 함
경쟁 학습 훈련이 종료되었을 때 입력벡터에 가장 가까운 가중치 벡터 wi*를 추구 가장 가까운 가중치 벡터는 입력벡터에 보다 가까워질 수 있도록 갱신 가중벡터가 변화되는 양은 학습율 에 의해 결정 훈련은 무작위 순서 또는 교대로 네트워크에 입력 벡터들을 반복적으로 적용하는 것 가중치들은 적용될 때마다 지속적으로 갱신되며, 가중치 벡터가 변하지 않을 때까지 계속; 따라서 학습율 는 궁극적으로 가중치 변화가 없거나 무시될 수 있을 정도가 될 때까지 감소
경쟁 학습 입력벡터(성분이 *로 구성된) 층들의 중심에 가중치 벡터가(+로 구성) 놓이는 것과 같음 경쟁학습에 관한 네트워크 구조
경쟁 학습 훈련 패턴 모두가 유한한 학습 이후에는 그것이 속한 범주를 벗어나지 않으면 그 시스템은 안정 안정성을 위한 한 가지 방법은 학습율을 0까지 점차로 줄여나가는 것이지만 인위적으로 학습율을 고정하는 것은 새로운 데이터에 적응하는 능력인 유연성(plasticity)에 문제를 일으킬 수 있음 이 문제는 Grossberg의 경쟁 학습에서의 안정성과 유연성의 딜레마 (stability- plasticity dilemma)로 알려져 있음
경쟁 학습 3개의 가중치 벡터가 이미 경쟁 네트워크에 저장되어 있다고 할 때, 하나의 입력벡터에 관한 네트워크 출력 w=[1 1;1 -1;-1 1]; % 층의 중심 x=[1;3]; % 분류될 입력 y=compete(x, w); % 분류 plot(w(:,1),w(:,2),'*') hold Current plot held plot(x(1),x(2),'+') plot(w(find(y==1),1),w(find(y==1),2),'o'),... title('Competitive Network Clustering'),... xlabel('Input 1'), ylabel('Input 2'), axis([-1.5 1.5 -1.5 3.5]) Current plot released
경쟁 학습 다음은 출력 결과로 *는 층 중심, 입력벡터는 +; 또한 그래프에서 층 1로 학습되었음을 알 수 있음 층 중심 1은 원으로 표시, +의 라벨을 갖는 입력벡터에 가장 가까운 것
경쟁 학습 경쟁 네트워크의 훈련 층 중심의 학습을 위해 인스타 학습 규칙을 사용하고, 한번에 하나의 출력만이 흥분되기 때문에 각 훈련 중에 경쟁에서 우세한 가중치들만이 갱신 차원 2의 11개 입력 벡터들을 3개 층으로 분류하는 문제 가중행렬은 무작위로 초기화되고, 네트워크는 20번 학습 x=[-1 5;-1.2 6;-1 5.5;3 1;4 2;9.5 3.3;... -1.1 5;9 2.7;8 3.7;5 1.1;5 1.2]'; plot(x(1,:),x(2,:),'*') plot(x(1,:),x(2,:),'*'),... title('훈련 데이터'), xlabel('입력 1'), ylabel('입력 2')
경쟁 학습 다음은 초기 훈련 데이터의 출력으로 이러한 데이터는 훈련을 위해 경쟁 네트워크로 보내짐 그림에서 네트워크가 3개 층을 가질 것이라는 사전 정보를 얻을 수 있을 것
경쟁 학습 대응되는 출력으로 첫 번째 가중치 벡터는 (10, 3)의 근방을 중심으로 하는 데이터 그룹을 향해 이동되지 않음 w=rand(3,2); a=0.8; w=trn_cmpt(x, w, a, 20); % 20번 학습 plot(x(1,:),x(2,:),'w*'),... title('훈련 데이터'), xlabel('입력 1'), ylabel('입력 2') hold Current plot held plot(w(:,1),w(:,2),'o') 대응되는 출력으로 첫 번째 가중치 벡터는 (10, 3)의 근방을 중심으로 하는 데이터 그룹을 향해 이동되지 않음 이러한 뉴런은 결코 흥분되지 않기 때문에 죽은 뉴런 죽은 뉴런의 취급을 위한 한 가지 방법은 경쟁에서 두드러질 수 있는 여분의 기회를 다소간 제공하는 것 경쟁에서 두드러질 수 있도록 임계 값을 증가시키는 것과 같은 이러한 임계 값의 증가를 나타내기 위해서 모든 경쟁 뉴런들에 하나의 임계 값을 더함
경쟁 학습 20번 학습된 데이터
경쟁 학습 뉴런이 경쟁에서 두드러지지 않을 때 임계 값은 증가되고, 뉴런이 부각되면 임계 값을 감소 competeb()는 이러한 임계 값을 갖는 경쟁 네트워크에 사용 dimension=2; % 입력공간의 차원 clusters=3; % 식별될 층의 개수 w=rand(clusters, dimension); % 가중치 초기화 b=0.1*ones(clusters,1); % 임계값 초기화 a=0.8; cycles=5; w=trn_cptb(x, w, b, a, cycles); % 네트워크 훈련 plot(x(1,:),x(2,:),'*'), title('훈련 데이터'), xlabel('입력 1'), ylabel('입력 2') hold Current plot held plot(w(:,1),w(:,2),'o')
경쟁 학습 다음은 출력 결과로 죽은 뉴런이 생존하게 되고, 세 번째 층의 중심
자기 조직화 특징 지도 자기 조직화 특징 지도(self-organizing feature map) 또는 Kohonen 네트워크는 고차원 입력벡터를 보다 작은 차원의 패턴으로 사영 하나의 특징 지도에서 출력의 기하학적인 배열 또는 위치는 입력 벡터들에 관한 정보를 포함 입력 벡터 x1과 x2가 보편적으로 유사한 것이라면, 그들의 출력은 아주 가깝게 위치될 것; 또한 아주 유사한 것이라면, 그들의 출력은 같아야 함 이러한 관계는 서너 가지의 상이한 알고리즘을 중의 하나를 실행하여 확인할 수 있음 일상적인 경쟁학습을 사용하는 경우에 출력 층의 가중치들을 살펴보면 가까운 뉴런들에 관한 것은 활성화, 멀리 떨어진 뉴런들에 관한 것은 억제되어 있음 또한 가깝게 이웃하고 있는 것들의 가중치들은 활성화된 뉴런의 가중치에 따라서 갱신되도록 함
자기 조직화 특징 지도 Kohonen 알고리즘은 입력 위상을 보존하는 방식으로 데이터 층을 나타냄 이러한 유사성은 경쟁학습에서 서로 간에 유클리드 거리인 것처럼 정의 Kohonen 알고리즘은 x 근방의 wi에 관해 w = (x-wi) 가중치 갱신은 흥분된 뉴런과 그것의 근방에 관해서만 행해짐(xi 근방의 wi) 흥분된 뉴런으로부터 거리의 함수로서 가중치를 갱신할 수 있으며, 이러한 유형의 함수로서 Mexican hat 함수를 들 수 있음 다음 그림은 단순히 mexhat을 상술한 결과의 그래프
자기 조직화 특징 지도 Mexican Hat 함수
자기 조직화 특징 지도 길이 5의 1차원 특징 지도로 데이터 조직화(아래 그림과 같은 2개 입력 네트워크에 관해 18개 입력 쌍을 조직화 시키는 과정) x=[1 2;8 9;7 8;6 6;2 3;7 7;2 2;5 4;3 3;8 7;... 4 4;7 6;1 3;4 5;8 8;5 5;6 7;9 9]'; plot(x(1,:),x(2,:),'*'),title('Training Data'),… xlabel('Input 1'), ylabel('Input 2')
자기 조직화 특징 지도 b=0.1*ones(5,1); w=rand(5,2); % 작은 초기 임계 값 및 가중치 초기화 tp=[0.7 20]; % 학습 율 및 20회 훈련 반복 [w,b]=kohonen(x,w,b,tp); % 자기 조직화 지도 훈련 ind=zeros(1,18); for j=1:18 y=compete(x(:,j),w); ind(j)=find(y==1); end [x;ind] ans = Columns 1 through 12 1 8 7 6 2 7 2 5 3 8 4 7 2 9 8 6 3 7 2 4 3 7 4 6 1 5 4 3 1 4 1 2 1 4 2 4 Columns 13 through 18 1 4 8 5 6 9 3 5 8 5 7 9 1 2 5 3 4 5
자기 조직화 특징 지도 분류 순서를 관측하기 위해서 서로 다른 기호를 사용한 분류 그래프를 나타내기 위한 문장 plot(w(:,1),w(:,2),'+') hold Current plot held plot(w(:,1),w(:,2),'-') index=find(ind==1); plot(x(1,index),x(2,index),'*') index=find(ind==2); plot(x(1,index),x(2,index),'o') index=find(ind==3); index=find(ind==4); index=find(ind==5); plot(x(1,index),x(2,index),'*'), axis([0 10 0 10]),... title('Self Organizing Map Output'), xlabel('Input 1'), ylabel('Input 2')
자기 조직화 특징 지도 결과적으로 네트워크는 데이터 층화 뿐만 아니라 서로 인접된 데이터가 다음 층에 인접하도록 구성 자기 조직화 지도는 입력벡터의 위상을 보존
PNN 확률적 신경망(Probabilistic Neural Network: PNN)은 신경망 구조로 구성된 베이지안 분류기 가장 보편적인 분류기의 하나로 Nearest Neighbor 분류기 가장 가깝게 인접하고 있는 것들을 같은 클래스의 패턴으로 분류 결점은 가끔 이상치가 출현할 수 있다는 것 PNN의 주된 이점은 학습 속도와 신뢰성이 있는 추정치를 얻기 위한 이론적인 기초 제공 가중치들은 반복적인 과정을 통해 훈련되지 않으며, 학습과정 중에 기억 단점으로 모든 훈련 패턴을 기억해야 하기 때문에 많은 기억장소와 연상 중에 모든 훈련패턴이 처리되어야 하기 때문에 긴 회상 주기를 필요로 함
PNN PNN은 적절한 연산을 위해 큰 대표적인 훈련집합과 적절한 너비 인자가 필요 이러한 인자를 적절히 선택해주는 루틴이 존재하지만, 반복적인 과정인 관계로 시간이 많이 소요 빠르게 훈련될 수 있지만 회상이 느리고 많은 기억장소가 필요 장점은 견고한 이론을 바탕으로 하고 있으며, 신뢰구간을 생성할 수 있다는 것 확률밀도함수의 추정량은 가우스 가중함수를 사용(n: 클래스의 사례 개수, xi: 클래스의 특정 사례, x: 입력, : 너비 인자)
PNN
PNN 훈련 데이터가 23, 12, 18개 성분을 모집단으로 하는 3개 클래스일 때, g(x)는 n=23, 12, 18을 갖는 3개 클래스 각각에 관한 확률밀도함수 추정에 사용 2개 클래스 중의 하나로 입력을 분류하는 PNN의 수행 훈련 데이터는 각 클래스 내에 4개 벡터를 가지는 2개 클래스로 구성 x=[-3 -2;-3 -3;-2 -2;-2 -3;3 2;3 3;2 2;2 3]; % 훈련 데이터 y=[1 1 1 1 2 2 2 2]'; % 훈련 데이터의 분류 xtest=[-0.5 1.5]; % 분류될 벡터 plot(x(:,1),x(:,2),'*') hold Current plot held plot(xtest(1),xtest(2),'o'), title('PNN 데이터'), axis([-4 4 -4 4]),... xlabel('입력 1'), ylabel('입력 2')
PNN 테스트 데이터 점은 pnn()을 사용하여 분류 a=3; % a는 너비 인자 classes=2; % x는 2개 분류를 가짐 [class,prob]=pnn(x, y, classes, xtest, a) % 테스트 입력의 분류 class = 2, prob = 0.1025 0.3114 입력벡터는 클래스 2로 분류되고, 소속함수 값은 0.3114로 출력 pnn()에서 호출되는 dista()는 유클리드 거리 제곱 계산; 하나의 입력 벡터 x=[-2.5 -2.5]를 사용하는 경우에 xtest=[-2.5 -2.5]; % 분류될 벡터 plot(x(:,1),x(:,2),'*') hold plot(xtest(1),xtest(2),'o'), axis([-4 4 -4 4]), xlabel('입력 1'), ylabel('입력 2') plot(xtest(1), xtest(2),'o'), title('PNN 데이터'), axis([-4 4 -4 4]),...
PNN a=3; classes=2; [class, prob]=pnn(x, y, classes, xtest, a)
RBF 신경망 RBF(radial basis function)는 범용 함수 근사자로 사용 다층 퍼셉트론의 은닉 층에 해당되는 층은 비 선형 지역적인 사영 이 층은 RBF 뉴런들을 포함, 전달함수로서 가우스 분포를 사용 이들 함수는 채택영역을 중심으로 하고 있으며, 채택영역은 지역적인 RBF 뉴런들이 활성화되는 입력공간의 영역
RBF 신경망 가우스형 전달함수: gj (x) =exp[-(x- j)2/j2], 여기서 x는 입력, j는 채택 필드에 해당되는 영역 중심, j는 채택 필드의 폭, gj(x)는 j번째 뉴런의 출력 출력 층은 전형적인 선형 뉴런들의 층으로 은닉 뉴런 출력의 선형변환 실시 이 층은 다층 퍼셉트론에서 선형 출력 층에 대응되지만, 가중치들은 역 전파 네트워크를 사용하여 훈련되는 것이 아니라 최소제곱 알고리즘을 사용하여 전개 출력 층은 임계 값들을 사용할 수도 있고, 그렇지 않을 수도 있음 채택영역은 입력 벡터들이 놓여있는 입력공간의 영역을 중심으로 하고 있으며, 유사한 입력 벡터들은 층으로 구분
RBF 신경망 입력 벡터 x가 채택 필드의 중심의 근방에 있는 것이라면, 그것에 관련된 은닉 뉴런은 활성화 입력벡터가 두 개의 채택필드 중심 사이에 위치하면서 채택 필드 폭 내에 속하는 것이라면, 은닉 층 뉴런들은 모두 부분 활성화 입력 벡터들이 모두 채택필드로부터 멀리 떨어져 있을 때 은닉 층의 활동은 없고, RBF 출력은 출력 층 임계 값들과 같음 RBF는 지도 학습적인 방식으로 훈련되는 지역적인 네트워크 이것은 전역적 네트워크인 다층 퍼셉트론과 대조 지역적인 것과 전역적인 것의 구별은 함수 근사에 의해 수용되어진 입력 표면의 크기로 결정 다층 퍼셉트론은 모든 입력이 하나의 출력을 의미하는 전역적 사영; RBF는 채택 필드 근방의 입력만 흥분되는 지역적인 사영
RBF 신경망 하나의 입력이 훈련 집합 근처에 있거나 또는 입력공간의 훈련되지 않은 영역에 있음을 인지할 수 있는 능력은 RBF의 장점 하나의 다층 퍼셉트론을 사용했을 때, 입력 데이터가 훈련되지 않은 영역에서 발생된 것인지 또는 훈련된 영역에서 발생된 것인지를 판단할 수 없음 RBF는 이러한 사항을 파악할 수 있도록 하기 때문에 안정성을 추구하는 문제 또는 경제성이 요구되는 문제에 적절함
RBF 신경망 RBF 수행 예 x=[-3:0.1:3]'; % 입력공간 y=gaussian(x,0,1); % 0을 중심으로 하는 RBF plot(x,y), grid, xlabel('input'), ylabel('output'),... title('Radial Basis Neuron')
RBF 신경망 RBF 설계는 광선형 기저 함수의 너비 선택을 요구 또 다른 선택으로 광선형 기저 뉴런들의 개수 너비는 채택 영역이 중첩은 되지만, 하나의 함수가 전체 입력공간을 지배하지 않도록 하는 것 이것은 대 여섯 개의 광선형 뉴런들이 각 입력에 관해 어떠한 흥분을 보이지만, 모든 광선형 뉴런들이 하나의 입력에 관해 높은 반응을 보이지 않도록 한다는 것을 의미 또 다른 선택으로 광선형 기저 뉴런들의 개수 RBF 수행은 훈련 알고리즘에 종속 MATLAB 툴 박스에서는 두 가지 훈련 알고리즘을 사용 첫 번째 알고리즘은 각 입력벡터가 광선형 기저 뉴런들의 중심이 되도록 하는 것 이것은 많은 패턴들을 갖는 입력 데이터에 관해 지나치게 큰 네트워크를 생성 두 번째 알고리즘은 현재 오차에 비교하여 훈련 오차를 줄이는 방식으로 광선형의 기저 뉴런들을 추가하는 것
RBF 신경망 지정된 오차한계를 사용하는 서너 개의 네트워크 구조가 있음 이들 구조는 네트워크 내에 있는 RBF의 개수 및 RBF 너비들의 상이한 조합으로 구성 아래 그림은 하나의 응용문제를 푸는 데 따른 허용 가능한 조합들의 영역 뉴런의 최대 개수는 입력 패턴 개수, 최소는 오차 허용한계 및 사영 복잡성과 관련
RBF 신경망 보다 복잡한 사영, 작은 허용한계는 많은 뉴런들을 요구 최소 너비는 입력 패턴들을 중복, 최대 너비는 전체 입력공간을 포함하지 않아야 함 큰 너비 사용은 잡음이 없는 데이터에 관해 좋은 결과, 잡음이 존재하는 현실 문제 경우에 적합하지 않음 시스템이 잡음과 무관하게 훈련이 잘 될 수 있는 이유는 선형방법이 두 번째 층의 가중치들을 푸는 데 사용되기 때문 회귀 방법은 오차를 최소화하지만, 큰 가중치와 지나친 과대 적합 과대 적합은 시스템에 잡음이 있는 경우에 명백히 드러남 보다 작은 너비 사용은 입력 벡터가 훈련공간 외부에 있다는 경고를 수반하는 좋은 작업 큰 너비 사용은 보다 작은 크기의 네트워크에 관해 빠른 수행
RBF 신경망 RBF 수행 예: 임의의 구간에서 함수 근사 x=[-10:1:10]'; % 입력 y=0.05*x.^3-0.2*x.^2-3*x+20; % 목표 출력 plot(x,y), xlabel('input'), ylabel('output'), title('Function to be Approximated') 너비: 4, 중심: w1; 대부분의 훈련 알고리즘은 광선형 기저 뉴런들의 위치 결정, 여기에서는 단순히 입력 공간을 포함시키는 것으로 width=6; w1=[-8 -5 -2 0 2 5 8]; % RBF 너비 및 채택 영역 중심 num_w1=length(w1); % 채택영역의 개수 a1=gaussian(x,w1,width); % 은닉 층 출력 w2=inv(a1'*a1)*a1'*y; % 출력 가중치 해를 위한 역 행렬 훈련공간 내외부에서 테스트 test_x=[-15:0.2:15]'; % 테스트 입력 y_target=0.05*test_x.^3-0.2*test_x.^2-3*test_x+20; % 테스트 출력 test_a1=gaussian(test_x,w1,width); % 은닉 층 출력 yout=test_a1*w2; % 네트워크 출력 plot(test_x,[y_target yout]),... title('Testing RBF Network'), xlabel('input'), ylabel('output')
RBF 신경망 출력 결과로 네트워크는 훈련영역에서 아주 잘 일반화되지만, 훈련영역 외부에서는 빈약한 결과 입력이 훈련영역에서 멀어짐에 따라 광선형 기저 뉴런들은 무 반응 이것은 네트워크가 훈련공간 외부에서 작동되는 것을 경고, 출력 값이 전혀 신뢰 가치가 없다는 것
RBF 신경망 뉴런 너비 크기와 뉴런 개수간에 균형 점 찾기 첫째는 폭을 작게 해서 중첩되지 않도록 하고, 뉴런 개수는 입력 개수와 같게 하는 것, 둘째는 너비 상수를 크게 해서 어떠한 잡음이 데이터에 더해지도록 하는 것 뉴런 너비가 작은 예로 뉴런들 간에 어떠한 중첩도 생기지 않도록 RBF의 너비를 0.2로 놓는 문장 x=[-10:1:10]'; % 입력 y=0.05*x.^3-0.2*x.^2-3*x+20; % 목표출력 width=0.2; w1=x'; % RBF 너비 및 중심 a1=gaussian(x,w1,width); % 은닉 층 출력 w2=inv(a1'*a1)*a1'*y; % 출력 가중치에 관한 해 test_x=[-15:0.2:15]'; % 테스트 입력 y_target=0.05*test_x.^3-0.2*test_x.^2-3*test_x+20; test_a1=gaussian(test_x,w1,width); % 은닉 층 출력 yout=test_a1*w2; % 네트워크 출력 plot(test_x,[y_target yout]), title('RBF 네트워크 테스트'),... xlabel('입력'), ylabel('출력')
RBF 신경망 출력 결과 너비 인자가 너무 작아 훈련 공간에서 일반화는 빈약 적절한 중첩으로 너비 인자는 입력 패턴들 간에 거리와 최소한 같을 필요가 있음
RBF 신경망 RBF의 너비가 대단히 큰 200을 사용하는 경우: 이러한 큰 너비 인자 사용은 각 RBF가 전체 입력공간을 지배 RBF들은 각 입력에 관해 모두 큰 반응을 보임 width=200; % RBF 너비 w1=[-8 -3 3 8]; % 채택 영역 중심 a1=gaussian(x, w1, width); % 은닉 층 출력 w2=inv(a1'*a1)*a1'*y; % 출력 가중치에 관한 해 test_x=[-15:0.2:15]'; % 테스트 입력 y_target=0.05*test_x.^3-0.2*test_x.^2-3*test_x+20; test_a1=gaussian(test_x, w1, width); % 은닉 층 출력 yout=test_a1*w2; % 네트워크 출력 plot(test_x,[y_target yout]),... title('RBF 네트워크 테스트’), xlabel('입력’), ylabel('출력’)
RBF 신경망 대응되는 출력 결과로 은닉 층의 반응 범위는 0.9919에서 1.0 출력 가중행렬에 관한 해는 계산이 힘든 소위 조건이 나쁜 문제
GRNN GRNN(Generalized Regression Neural Network)은 시스템 모델링 및 예측에 좋은 하나의 피드포워드 신경망 4개 층으로 구성 첫 번째 층은 입력 층으로 패턴 층과 완전 연결 두 번째 층은 패턴 층으로 각 입력패턴에 관해 하나의 뉴런을 가짐 이 층은 RBF의 첫 번째 층과 같은 함수를 실행; 즉 그것에 관한 출력은 입력이 저장된 패턴으로부터 계산된 거리 측도 세 번째 층은 덧셈에 관한 층으로 두 가지 유형의 뉴런들로 구성 하나는 S-덧셈 뉴런, 다른 하나는 단일 D-덧셈 뉴런(나눗셈) S-덧셈 뉴런은 패턴 층에 관한 가중된 출력들의 합을 계산, D-덧셈 뉴런은 패턴 뉴런들에 관한 가중되지 않은 출력들의 합을 계산 각 출력 뉴런에 관해 하나의 S-덧셈 뉴런이 있고, 단일 D-덧셈 뉴런이 존재
GRNN 네 번째는 출력 층으로 각 S-덧셈 뉴런 출력을 D-덧셈 뉴런 출력으로 나눔 GRNN에 관한 일반적인 다이아 그램
GRNN GRNN 출력은 다음과 같은 조건부 평균 GRNN의 학습단계는 PNN과 유사 여기서 지수함수는 너비 상수 을 갖는 가우스 함수 가우스 함수의 계산은 패턴 층에서 실행, 가중치 벡터와 덧셈들의 곱은 덧셈 층에서 실행, 나눗셈은 출력 층에서 실행 GRNN의 학습단계는 PNN과 유사 대부분의 신경망처럼 반복적으로 학습하지 않는 대신에 패턴 층에서 각 입력패턴을 저장하고, 덧셈 층에서 가중치들을 계산하는 방식으로 학습
GRNN 가중치 계산은 Wp = XT와 같고, 패턴 층의 가중치들은 입력패턴으로 놓이며, 덧셈 층의 가중행렬은 훈련중인 목표 출력을 사용 구체적으로 행렬은 패턴 층에 D-덧셈 뉴런을 연결한 1들의 벡터가 첨가된 목표 출력 값: Ws = [Y 1] GRNN 예: RBF에서 사용된 예를 사용 훈련패턴은 입력공간 전체에 영향을 미치는 5개 벡터로 제한, 너비 인자는 4를 사용 훈련 인자는 훈련공간에 영향을 주어야 하며, 집합은 최대 또는 최소에서의 값을 포함해야 함 입력 훈련벡터: [-10 -6.7 -3.3 0 3.3 6.7 10], 먼저 가중치 행렬을 계산 grnn_trn()은 이러한 목적에 사용
GRNN GRNN 훈련 데이터
GRNN 이제 훈련 데이터에 관해 GRNN의 실험을 행할 수 있고, grnn_sim()은 이러한 목적에 사용 x=[-10 -6.7 -3.3 0 3.3 6.7 10]'; % 입력 y_target=0.05*x.^3-0.2*x.^2-3*x+20; % 목표 출력 [Wp, Ws]=grnn_trn(x, y_target) % 가중행렬의 계산 Wp = -10.0000 -6.7000 -3.3000 0 3.3000 6.7000 10.0000 Ws = -20.0000 1.0000 16.0838 1.0000 25.9251 1.0000 20.0000 1.0000 9.7189 1.0000 5.9602 1.0000 plot(x,y_target), title('GRNN의 훈련 데이터'), … xlabel('입력'), ylabel('출력') 이제 훈련 데이터에 관해 GRNN의 실험을 행할 수 있고, grnn_sim()은 이러한 목적에 사용
GRNN x=[-10 -6.7 -3.3 0 3.3 6.7 10]'; a=2; y=grnn_sim(x,Wp,Ws,a); y_actual=0.05*x.^3-0.2*x.^2-3*x+20; plot(x,y_actual,x,y,'*'), title('GRNN의 일반화'), xlabel('입력'), ylabel('출력')
GRNN 네트워크의 회상 성능은 너비 인자에 매우 종속 작은 너비의 사용은 훈련 패턴에 관해 좋은 회상을 나타내지만, 일반성이 빈약 보다 큰 너비 인자의 선택은 보다 낫은 일반성을 나타내지만 회상이 빈약해지는 단점 좋은 너비 인자의 선택은 좋은 성능을 갖도록 함 위 예의 경우에는 2.5의 너비 사용이 좋은 회상을 나타냄 너비 인자에 관해 아주 작은 값인 0.5, 아주 큰 값인 5, 적절한 값인 2를 사용하는 경우 x=[-10:0.5:10]'; a=0.5; y=grnn_sim(x,Wp,Ws,a); y_actual=0.05*x.^3-0.2*x.^2-3*x+20; plot(x,y_actual,x,y,'*'),... title('GRNN의 일반화: a=0.5'), xlabel('입력'), ylabel('출력')
GRNN a=0.5와 5인 경우
GRNN 함수에 관한 어떠한 지식도 없다면, 그것의 대표성을 위해 큰 훈련집합을 선택해야 함 이것은 많은 패턴 뉴런을 사용하기 때문에 많은 기억장소와 긴 회상시간을 요구하지만 클러스터링의 사용은 대표적인 훈련집합을 선택해서 패턴 뉴런의 개수를 줄이도록 함
GRNN 너비 인자가 적절한 값인 2인 경우 x=[-10:0.5:10]'; a=2; y=grnn_sim(x,Wp,Ws,a); y_actual=0.05*x.^3-0.2*x.^2-3*x+20; plot(x,y_actual,x,y,'*'), title('GRNN의 일반화: a=2'),… xlabel('입력'), ylabel('출력')