Presentation is loading. Please wait.

Presentation is loading. Please wait.

신경망(3).

Similar presentations


Presentation on theme: "신경망(3)."— Presentation transcript:

1 신경망(3)

2 동적 네트워크 RNN(Recurrent Neural Networks)은 피드백 연결을 통해 시간이 지체되는 것으로 Elman과 Jordan의 두 가지 유형 Elman 네트워크에서 은닉 층 출력은 더미 입력 노드에 의해 한 스텝 지체되는 피드백이 이루어짐 이 네트워크는 시간적 패턴뿐만 아니라 공간적 패턴 또한 학습 Jordan 네트워크는 Elman 네트워크와 유사한 순환 구조이지만, 은닉 층에서의 피드백이 아닌 출력 층에서 피드백이 이루어짐 순환 신경망은 피드백 연결에 따른 훈련이라는 측면에서 어려움 보통 사용되는 방법으로 RTRL(Real Time Recurrent Learning)과 BPTT (Back Propagation Through Time)를 들 수 있음 TDNN(Time Delayed Neural Network)은 현재 입력뿐만 아니라 과거 입력을 사용하는 방식으로 시간적인 행위를 학습할 수 있음 이것은 단순히 입력 신호를 지체하는 방식으로 수행

3 동적 네트워크 Elman 네트워크 및 TDNN

4 동적 네트워크 신경망 구조는 표준 다층 퍼셉트론이지만, RBF, PNN, GRNN 또는 다른 피드포워드 네트워크 구조를 사용할 수 있음 TDNN은 피드백 구조를 사용하지 않기 때문에 표준 알고리즘을 사용하여 쉽게 훈련 선형 시스템의 분석에 따른 함수 적용: fft(Fast Fourier Transform)와 psd(Power Spectral Density) 256개 시구간에서 3개의 상이한 주파수들을 갖는 사인 파의 조합으로 구성된 주기적인 신호에 관해 fft를 취하는 문장 t=1:512; % 시간 f1=0.06*(2*pi); f2=0.1*(2*pi); f3=0.4*(2*pi); sig=2*sin(f1*t)+sin(f2*t)+1.5*sin(f3*t); % 주기 신호 plot(t, sig), title('주기를 갖는 신호'),... ylabel('진폭'), xlabel('시간'), axis([ ])

5 동적 네트워크 출력 결과로 시간 및 진폭을 좌표로 하는 초기 신호

6 동적 네트워크 Y=fft(sig,256); % fft Pyy=Y.*conj(Y)/256; % fft의 표준화된 진폭
f=[1:128]/256; % y-축 변환 plot(f,Pyy(1:128)),... % 129에서 256까지의 점들은 대칭 title('힘 스펙트럼 분포'), ylabel('힘'), xlabel('주파수')

7 동적 네트워크 잡음은 대부분의 신호가 가지고 있는 고질적인 것
noisy_sig=sig+randn(size(sig)); % 가우스분포를 따르는 잡음 추가 plot(t,noisy_sig), title('잡음을 갖는 주기 신호'),… ylabel('진폭'), xlabel('시간'), axis([ ])

8 동적 네트워크 잡음을 갖는 신호에 관한 힘 스펙트럼 분포의 출력
Y=fft(noisy_sig, 256); Pyy=Y.*conj(Y)/256; f=[1:128]/256; plot(f,Pyy(1:128)), title('힘 스펙트럼 분포'), ylabel('힘'), xlabel('주파수')

9 동적 네트워크 psd()는 데시벨(dB) 척도를 갖는 힘 스펙트럼의 출력에 사용
이러한 신호처리 함수들의 사용은 주파수 영역으로부터 입력을 사용하는 신경망 또는 퍼지 시스템을 설계할 때 필요 psd(noisy_sig,256,1); % psd 그래프

10 적응 신호 처리 온라인 학습 신경망은 입력 또는 목표 신호의 변화에 적응할 수 있기 때문에 보통 적응성을 갖는 네트워크
적응성을 갖는 신경망에 관한 예로 단일 입력의 적응성을 갖는 transverse filter를 들 수 있음 이것은 단층 선형 뉴런을 갖는 TDNN의 특수한 경우에 해당

11 적응 신호 처리 TDNN이 하나의 FIR 필터로 사용되기 위한 문장
t=[250:1:400]; sig=sin(0.01*t)+sin(0.03*t)+0.2*randn(1,151); plot(t, sig), title('잡음을 갖는 주기 신호'), ylabel('진폭'), xlabel('시간')

12 적응 신호 처리 다소간 잡음을 갖는 신호가 PID 제어기 또는 다른 아날로그 장치의 입력으로 사용되기 위해서 여과될 필요가 있음 x=[0:9]'; xd=delay_in(x,3) xd = TDNN의 모의실험을 위해서 입력에 관한 지체된 값들을 포함하는 하나의 입력행렬을 구축해야 함 3의 지체를 갖는 하나의 TDNN에 관한 입력으로 10개 값을 갖는 하나의 입력벡터를 사용하려면, delay=3을 갖는 delay_in(x, d)의 함수를 호출 함수는 네트워크에 4개 입력을 사용하기 때문에 4개 행을 갖는 하나의 입력 벡터를 반환

13 적응 신호 처리 함수는 입력에 영을 삽입할 수 없기 때문에 3개 패턴들로 축소
5개 지체를 갖는 TDNN을 사용하여 수행되는 선형 신경망 FIR 필터를 가정 이러한 필터는 잡음 데이터의 처리를 위해 사용 d=5; % 지체 수 x=delay_in(sig',d); % 지체 입력행렬의 구축 w=[ ]'; % 가중행렬 y=x*w; % 출력 계산 td=t(d:length(sig)-1); plot(td, sig(d:length(sig)-1), td, y'),... title('잡음을 갖는 주기 신호와 여과된 신호'), ylabel('진폭'), xlabel('시간')

14 적응 신호 처리 신경망 필터는 잡음이 큰 부분을 제거
실제 하나의 윈도우에 관해 선형 가중평균을 계산하는 방식으로 이러한 연산을 실행 예에서 윈도우는 6시간의 긴 구간을 가지며, 이러한 필터는 온라인으로 특정 응답 속성을 나타내기 위해 훈련될 수 있음

15 적응 처리기와 신경망 FIR에 관한 예는 시간적인 행위를 모형으로 나타낸다는 의미에서 하나의 동적 네트워크
하나의 신경망에 관한 인자가 시간에 따라서 변한다는 의미에서 동적일 수 있음 이러한 사항은 네트워크가 시간에 따라 경향을 학습할 수 있음을 의미 시간적인 행위가 필요한 경우에 신경망은 TDNN 또는 시간적인 지체가 없는 사영일 수도 있음 속성들이 시간에 따라 변하지 않는 시스템은 오프라인으로 훈련된 신경망을 사용할 수 있음 사용된 예는 시스템 출력이 현재 입력에만 의존하기 때문에 정적인 사영을 요구하지만, 하나의 인자가 시변적인 것이기 때문에 적응성을 갖도록 훈련

16 적응 처리기와 신경망 적응성을 갖는 시스템 식별을 위해 사용되는 단순 선형 네트워크
가중치들은 하나의 시변적인 시스템에 관한 선형 계수 선형 신경망은 시변적인 계수들을 따르면서 온라인으로 적응성을 가지면서 훈련

17 적응 처리기와 신경망 시스템 모형: y = 2x1-3x2-1+0.01t
초기 임계 항은 -1, 이 항은 시간이 200초에 도달될 때 +1로 변화 두 개의 입력을 갖는 단순 선형 네트워크는 이러한 시스템의 추정을 위해 온라인으로 훈련될 수 있음 두 개의 가중치 계수들은 2와 -3로 수렴되는 반면에 임계 값은 –1서 +1을 향해 이동 학습율 선택은 학습 속도와 네트워크의 안정성에 영향 보다 큰 학습율 사용은 빠른 학습을 진행할 수 있으나 안정성이 떨어지고, 보다 낮은 학습율 사용은 학습 속도는 떨어지나 안정된 시스템을 구축할 수 있음

18 적응 처리기와 신경망 w=[0 0 0]; % 가중치 및 임계 값을 0으로 초기화
Weights=[]; % 시간에 관한 가중치 및 임계 값들을 저장 lr=0.4; % 학습율 for i=1:200 % 200초 동안 실험 x=rand(2,1); % 시스템은 랜덤한 입력을 가짐 y=2*x(1)-3*x(2) *i; % 시스템 시뮬레이션 [w]=adapt(x,y,w,lr); % 네트워크 훈련 Weights=[Weights w']; % 가중치 및 임계 값을 저장 end plot(Weights'), title('시간에 관한 가중치 및 임계 값 근사'),... xlabel('시간'), ylabel('가중치 및 임계 값'),... text(50,2.5,'W1'), text(50,-2.5,'W2'), text(50,0,'B1')

19 적응 처리기와 신경망 출력 결과는 대략 30초에 걸쳐서 네트워크가 시스템을 적절히 식별하고 있음을 나타내며, 임계 값은 시간에 따른 시변적인 인자를 적절히 추적하고 있음 학습 영역에 관한 이러한 유형은 사용된 FIR 필터를 훈련시키는 데 사용될 수 있음

20 신경망 제어 지도 학습 제어, Direct Inverse 제어, 신경망 적응 제어, 시간을 통한 역전파, Adaptive Critic 방법이 있음 지도 학습적인 제어에서 신경망은 주어진 입력 및 플랜트 조건들에 관해 다른 제어기(기계 또는 인간)와 같은 기능을 수행하도록 훈련 신경망 제어기가 훈련된 후에 그것은 제어기를 대체할 수 있음

21 신경망 제어 Direct inverse 제어에서 신경망은 플랜트의 역기능을 모형으로 나타낼 수 있도록 훈련; 이러한 전개는 시스템 식별문제와 유사 신경망은 역모형을 학습한 후에 하나의 전향적인 제어기처럼 사용될 수 있음 이러한 접근방법은 역함수로 근사 또는 모형으로 나타낼 수 있는 경우에만 사용, 즉 함수가 F일 때, F(F-1)=1이기 때문에 출력 y(k)는 입력 u(k)을 근사

22 신경망 제어 플랜트 모형이 온도 효과 등에 기인된 시간에 따라 변할 때, 신경망 적응 제어는 최적
MRAC는 제어기/플랜트 조합이 목표 플랜트처럼 실행되도록 제어기 특성들을 적응시킴

23 신경망 제어 플랜트가 신경망과 오차 항 사이에 있어서 오차 감소를 위해 제어기 오차를 직접 조정할 방법이 없기 때문에 간접 제어가 사용 간접적인 적응 제어에서 하나의 신경망 식별모형이 비 선형 플랜트를 모형으로 나타내기 위해 사용될 수 있음 필요한 경우에 이 모형은 플랜트를 이끌고 나갈 수 있도록 갱신되어야 함 오차 신호는 플랜트 응답이 목표 모형의 응답과 같게 되도록 신경망 제어기를 훈련시키기 위해 식별모형을 통해 역으로 전파될 수 있음 이 방법은 2개의 신경망을 사용하는 데 하나는 시스템 식별을 위한 것이고, 다른 하나는 MRAC를 위한 것

24 신경망 제어 BPTT(Back Propagation Through Time)는 시스템이 제어 가능한 경우에 유한 번의 단계를 통해 하나의 상태에서 다른 상태로 이동될 수 있도록 함 먼저 하나의 시스템 식별 신경망 모형은 오차 신호가 제어기로 전파될 수 있도록 훈련 그리고 나서 BPTT 영역에서 제어기가 훈련될 수 있으며, BPTT 훈련은 다음 두 가지 단계로 진행 ① 플랜트 이동 단계(다음 그림과 같은 k개 시간 단계들로 표현)

25 신경망 제어 ② 가중치 조정 단계(제어기 가중치들은 최종 상태가 목표 상태에 접근되도록 함) 오직 하나의 제어기가 있기 때문에 하나의 가중치 집합만이 조정되고, 성능이 바람직한 상태가 될 때까지 많은 반복 수행이 필요 보편적으로 의사결정이 정확한 결론이 없이 이루어지지만, 그것이 갖는 효과에 관한 근사 값은 얻어질 수 있음 이러한 근사는 제어 시스템의 변경에 사용될 수 있으며, 이러한 유형의 학습을 재강요 학습이라 함 하나의 판정치는 제어기의 활동 결과를 평가 그것이 좋은 것이라면 활동은 다시 강요되고, 빈약한 것이라면 활동을 약화시키게 됨 이것은 시행 착오적인 방법이라 할 수 있고, 제어 활동의 식으로 평가 시스템의 기울기 변화를 이용할 수 없을 경우에 적극적인 탐사를 위해 사용

26 신경망 제어 신경망 기반 적응성을 갖는 평가 시스템(Adaptive Critic System: ACS)은 상태 x(k)의 유틸리티 J(k)를 추정하기 위해 사용 이러한 유틸리티는 상태의 적합함에 관한 측도, 또한 ACS는 두 번째 신경망을 사용하여 좋은 상태를 생성하는 시스템에 관한 입력 u(k)를 얻기 위한 재 강요 학습을 수행시킬 수 있음

27 시스템 식별 시스템 식별은 경험적 데이터에 근거하여 하나의 동적 시스템에 관한 수학적인 모형을 구축하는 것
신경망 기반 모형에서 가중치와 임계 값들은 모형 출력이 측정된 출력과 유사하도록 조정 기존 방법에서는 차분 방정식(ARX 또는 ARMAX) 또는 상태 공간 표현에 관한 계수들을 추정하기 위해 회귀 기법 사용 하나의 동적인 모형은 출력이 시스템의 과거 상태에 종속 기존의 기본적인 동적 모형은 차분 방정식 형태; 가장 보편적인 차분 방정식으로 ARX 모형을 들 수 있음 ARX 모형은 외부 입력을 갖는 자기 회귀적인 모형으로 Equation Error Model이라 함 이 모형은 현재 출력을 예측하기 위해서 과거 입출력을 사용하며, 다음과 같은 ARX 모형을 가정

28 시스템 식별 계수들은 다음 집합으로 표현 계수에 관한 해는 회귀 식을 사용하여 얻어질 수 있고, 이러한 형태는 다음 그림과 같음

29 시스템 식별 이러한 모형은 극점(A(q)의 근)이 동적 모형과 잡음 모형에서 공통적인 것으로 가정, 또한 하나의 선형 모형이라 할 수 있음 시스템 식별의 기본 단계 ① 실험에 의한 입출력 데이터 수집 ② 경쟁이 될 수 있는 구조 선택과 추정 ③ 모형의 타당성 검토와 최적 모형 선택

30 시스템 식별 단계들은 보통 다음과 같은 일반적인 절차들을 사용
하나의 실험을 설계하고 데이터를 수집; 이러한 데이터는 훈련집합이 시스템을 자극할 수 있는 입력의 전체집합을 대표할 수 있는 것 특이 값들을 제거하는 방식으로 데이터 여과 하나의 모형 구조 선택 구조에 관한 최적 인자 결정 모형의 성질 조사 성질이 채택 가능하면 중지하고, 그렇지 않으면 세 번째 단계로 이동

31 시스템 식별 병렬형 식별구조와 직렬형 식별의 두 가지 신경망 구조가 사용될 수 있음
병렬형은 네트워크 출력으로부터 그것에 관한 입력까지 직접적인 피드백 사용; 앞으로의 출력 추정을 위해 현재 출력 추정치 사용 이러한 피드백은 안정성을 보장하지 않으며, 동적인 BP 훈련을 요구; 이러한 구조는 실제 플랜트 출력이 이용 가능하지 않은 경우에만 사용

32 시스템 식별 직렬형 구조는 피드백 대신에, 앞으로 시스템 출력을 추정하기 위해 실제 플랜트 출력 사용(정적인 BP 훈련이 사용되고, 안정성과 수렴이 보장) 일단 일반적인 모형 구조가 선택되면, 모형 차수 선택 모형 차수는 회귀에 사용될 과거 신호 개수; 이것은 시스템에 관한 지식 또는 경험으로 추정; 그리고 나서 네트워크 시스템 식별 모형이 훈련되고 시험 가능 오차 항은 입력과 독립인 백색 잡음과정을 가지며, 자기상관 함수 및 입력과의 교차상관 함수를 사용하여 테스트

33 시스템 식별 잔차와 출력들의 지체된 입력간에 지나친 상관성은 지체된 입력 또는 출력들이 추정 오차를 감소하는 데 사용될 수 있는 정보 만일 잔차 출력이 시차를 갖는 입력 신호와 높은 상관을 가진다면, 시차를 갖는 입력 신호가 하나의 입력으로 포함되어야 함 이것은 모형에 관한 입력으로 사용될 시차를 갖는 입력 개수를 실험적으로 결정하는 데 사용될 수 있는 한 가지 방법 예를 들어 하나의 2차 시스템이 한 단위의 시간 구간씩 지체되는 입력만을 사용하는 신경망으로 식별되고자 하면, 두 단위시간 구간이 시차된 입력과 출력간에 교차상관이 커야 함 이것은 추정 오차의 감소를 위해 사용될 수 있는 두 단위시간 구간의 시차를 갖는 입력에 정보가 있음을 의미

34 시스템 식별 ARX 모형 예: y(t)-1.5y(t-T)+0.7y(t-2T)=0.9u(t-2T)+0.5u(t-3T)+e(t)
시스템 식별을 위한 기본 단계들은 기존 및 신경망 모형과 같음 ARX 구조는 보통 다음과 같이 정의 (y(t-T) y(t-2T))를 포함하기 위해 지체된 출력들의 개수 시스템의 시간 지체(이러한 경우에 입력은 2T에 관한 출력에 영향을 미치지 않음) (u(t-2T) u(t-3T))를 사용하기 위한 지체된 입력들의 개수 신경망 구조는 같은 입력에 의해 정의되지만, 네트워크 은닉 층 및 은닉 뉴런 개수와 형을 포함하는 네트워크 구조에 의해 정의

35 물탱크 시스템 식별 탱크 시스템에 관한 비 선형모형
T: 시뮬레이션 시간, y(1): 탱크(수위)의 현재 상태 y(2): 입력신호(밸브에 관한 전압), dy: tank_mod(t, y)로 주어지는 출력 시스템 식별모형 설계를 위해 입출력 데이터는 탱크 작동 범위 및 입력 조건에 관해 수집(작동상태: 탱크 수위, 입력: 입구 밸브의 제공 전압) tank_mod(t, y)에서 정의되는 상태와 입력 범위 Y(1): 탱크 수위(0-36인치), Y(2): 제어 밸브에 제공되는 전압(-4.51볼트) 모든 가능한 작동 조건을 위해 입력/상태의 모든 조합에 관한 탱크 모형 시뮬레이션 x1=[0:3:36]'; x2=[-4.5:0.5:1]'; % 수준 범위 및 입력 전압의 범위 x=combine(x1,x2); % 입력 조합 dx=zeros(length(x1)*length(x2),1); % 수준 변화 벡터 for i=1:size(dx) % 모든 조합에 관한 시스템 시뮬레이션 temp=tank_mod(1,x(i,:)); dx(i)=temp(1,1); end save tank_dat x dx % 훈련 데이터 저장

36 물탱크 시스템 식별 combine()은 입력들의 결합을 위해 사용 훈련 데이터 tank_dat를 사용한 신경망 훈련
서식: x=COMBINE(x1, x2), 여기서 x1과 x2는 입력 벡터 훈련 데이터 tank_dat를 사용한 신경망 훈련 신경망 모형의 입력은 상태 x(k)와 밸브 액추에이터 u(k)에 전달되는 전압, 출력은 탱크의 수위 변화 출력 dx를 갖는 탱크 모형의 사용과 입력 x(k)와 u(k)를 갖는 신경망 훈련은 하나의 순환 또는 시간 지체 신경망을 사용하지 않아도 됨

37 물탱크 시스템 식별 BP 훈련 스크립트는 5개 은닉 뉴런을 갖는 단층 신경망 훈련에 사용될 수 있음
훈련 데이터 파일은 입력 x(k)와 u(k)를 갖고, 상태 변화인 dx가 목표 load tank_dat % 탱크 역모형 시뮬레이션 데이터 t=dx'; x=x'; % 상태 변화, 상태 및 입력 전압 save tank_sys x t; % 신경망 훈련 서식으로 탱크 데이터 bptrain 스크립트는 탱크 시스템 식별모형을 훈련하고, 가중치들은 MAT-파일인 sys_wgt.mat에 저장 load tank_sys % 탱크 훈련 데이터 load sys_wgt % 식별 모형에 관한 신경망 가중치 [inputs, pats]=size(x); output=linear(W2*[ones(1,pats); logistic(W1*[ones(1,pats);x])]); subplot(2,1,1), plot([t;output]'), title('시스템 식별 결과'), ylabel('실제 및 추정된 출력'),... subplot(2,1,2), plot(output-t),... % 오차 계산 ylabel('오차'), xlabel('패턴 개수')

38 물탱크 시스템 식별 출력 결과로 상단 그림은 신경망이 훈련집합에 관해 옳은 출력을 보인다는 것, 하단 그림은 오차 수준들이 아주 작음을 나타냄

39 물탱크 시스템 식별 사인형태의 입력에 관한 출력 비교 시간 구간은 해석적인 모형의 통합적인 시간 구간과 같아야 함
t=[0:1:40]; x(1)=15; X(1)=15; % 시간, 초기 탱크 수준과 추정량 u=sin(0.2*t)-1.5; % 밸브 제어를 위한 입력 전압 load sys_wgt; % ID 모형을 위한 신경망 가중치 for i=1:length(u) % 시스템 시뮬레이션 temp=tank_mod(1,[x(i),u(i)]); % 상태 변화를 계산 dx(i)=temp(1,1); estimate=linear(W2*[1;logistic(W1*[1;x(i);u(i)])]); x(i+1)=x(i)+dx(i); % 실제 상태의 갱신 X(i+1)=X(i)+estimate; % 상태 추정치의 갱신 end plot(t,[x(1:length(u));X(1:length(u))]),... title('탱크 모형의 시뮬레이션 테스팅'), xlabel('시간'), ylabel('탱크 수준')

40 물탱크 시스템 식별

41 물탱크 시스템 식별 이러한 시뮬레이션은 개회로 병렬형의 식별 모드로 운영
즉 현재의 상태 입력에 관해 사용된 값은 신경망 추정치 이러한 구조는 시간에 따른 오차 구축에 사용될 수 있음 폐회로 구조가 선택될 때 추정치는 훨씬 더 낫음 t=[0:1:40]; % 시뮬레이션 시간, 초기 탱크 수준 및 추정량 x(1)=15; x(1)=15; u=sin(0.2*t)-1.5; % 밸브 제어를 위한 입력 전압 load sys_wgt; % ID 모형을 위한 신경망 가중치 [inputs, pats]=size(x); for i=1:length(u) % 시스템 시뮬레이션 temp=tank_mod(1,[x(i),u(i)]); % 상태 변화를 계산 dx(i)=temp(1,1); estimate=linear(W2*[1;logistic(W1*[1;x(i);u(i)])]); x(i+1)=x(i)+dx(i); x(i+1)=x(i)+estimate; % 상태 추정치 갱신 end plot(t,[x(1:length(u));X(1:length(u))]),... title('탱크 모형의 시뮬레이션 테스팅'), xlabel('시간'), ylabel('탱크 수준')

42 물탱크 시스템 식별 탱크 문제의 직접적인 역 제어를 위한 하나의 역 신경망 시스템 식별모형 사용 예
각 시뮬레이션 시간 구간에서 실제 상태가 사용되기 때문에 오차 구축이 필요 없고, 신경망은 실제 시스템을 보다 가깝게 추적 탱크 문제의 직접적인 역 제어를 위한 하나의 역 신경망 시스템 식별모형 사용 예 앞에서 구축된 데이터를 역 시스템 모형의 훈련을 위해 사용 즉 작동 상태는 탱크 수위, 입력은 밸브에 미치는 전압 상태 및 입력은 tank_mod(t, y)에서 정의 직접적인 역 신경망 제어기 구축을 위해서 탱크의 역 과정을 모형으로 나타내는 신경망을 훈련시킬 필요가 있음 신경망 역모형에 관한 입력은 상태 x(k)와 상태의 바람직한 변화 dx, 출력은 밸브 액추에이터에 가해지는 입력 전압 u(k) 출력 dx를 갖는 탱크 모형의 사용과 입력 dx를 갖는 신경망 훈련은 순환 또는 시간 지체 신경망을 필요로 하지 않음

43 물탱크 시스템 식별 역 시스템 식별

44 물탱크 시스템 식별 BP 훈련을 위한 스크립트는 5개 은닉 뉴런들을 갖는 단층 신경망 훈련을 위해 사용될 수 있음
훈련 데이터 파일은 옳게 구축되어야 하며, 입력은 상태 x와 상태 변화 dx, 목표는 입력 u load tank_dat; t=x(:,2)'; % 밸브 액추에이터 전압 x=[x(:,1) dx]'; % 상태 및 상태의 바람직한 변화 save tank_trn x t; % 신경망 훈련 서식으로의 탱크 데이터 bptrain 스크립트는 역 모형 훈련, 가중치는 tank_wgt.mat에 저장 load tank_trn; % 탱크 훈련 데이터 load tank_wgt; % 역 시스템 ID 모형을 위한 신경망 가중치 [inputs, pats]=size(x); output=linear(W2*[ones(1,pats);... logistic(W1*[ones(1,pats);x])]); plot(output-t),... % 탱크 해석학적 모형과 NN 모형의 비교 title('훈련 결과'), xlabel('패턴 개수'), ylabel('오차')

45 물탱크 시스템 식별

46 물탱크 시스템 식별 신경망은 훈련된 후에 직접적인 역 제어 틀에 옮겨질 수 있음
역 탱크 모형 제어기에 관한 입력은 현재 상태 및 목표 상태, 제어기 출력은 밸브 액추에이터에 관한 전압 입력 역 제어기에 관한 시뮬레이션: tank_sim() 시뮬레이션 출력은 신경망으로 제어된 탱크의 수위 응답 이 시뮬레이션에서 바람직한 수위는 10에서 20인치로 변화 tank_sim(10, 20)

47 물탱크 시스템 식별 40초 동안 tank_sim()의 수행; 이 제어기는 보다 빠른 응답을 나타내며, 퍼지 제어기보다는 작은 정상상태 오차 hold tankdemo(10,20), text(2,18,'신경망'), text(18,18,'퍼지 시스템') The tank and controller are simulated for 40 seconds

48 물탱크 시스템 식별 탱크 수위 응답의 비교

49 신경망의 수행과 선택 문제해결을 위한 신경망의 수행에 있어서 서너 가지 선택적인 것들이 존재
훈련 및 시험 데이터 네트워크 구조 훈련 방법 데이터 변환 방법 및 오차 목표 모든 신경망 구현의 90% 정도가 다층 퍼셉트론을 훈련하는 BP를 사용하고 있기 때문에 BP에 초점

50 신경망 훈련 방법 네트워크 훈련의 흐름도

51 신경망 훈련 방법 신경망 훈련 및 시험을 위해서는 먼저 사용될 데이터를 수집 또는 생성
일단 이러한 데이터가 수집되면, 데이터를 훈련용과 시험용으로 구분 훈련 데이터는 입력공간을 대표할 수 있는 것으로 네트워크가 작동되도록 함 어떠한 조건에 관해 훈련 데이터가 없다면, 네트워크 출력은 그러한 입력에 관해 신뢰할 수 없음 훈련이 가능한 빠르게 진행될 수 있도록 훈련 데이터는 작게 유지될 필요가 있으며, 입력공간을 충분히 나타내기 위해서 많은 훈련집합이 필요

52 신경망 훈련 방법 훈련집합이 선정되면 신경망 구조를 선택
어떤 설계자들은 목표 오차에 이르는 훈련을 위해 충분한 자유도(은닉 뉴런의 개수)를 갖는 아주 큰 네트워크를 선택하고 나서, 일단 네트워크를 훈련 다음 단계로 훈련이 가능한 가장 작은 네트워크로 축소시켜 나가는 방식을 사용 다른 설계자들은 반대로 작은 네트워크로 시작해서 목표 오차에 이르는 적절한 네트워크를 구축 여기에서는 초기 아주 작은 네트워크 구조로 시작해서 확장해 나가는 방법을 사용

53 신경망 훈련 방법 네트워크 구조가 선택되면 가중치와 임계 값들의 초기화와 네트워크 훈련
네트워크는 다음과 같은 이유로 인해 목표 오차에 도달되지 않을 수도 있음 훈련이 지역적인 최소 점에 빠지는 경우 바람직한 입출력 모형을 적합시킬 수 없는 자유도를 가지는 경우 훈련 데이터가 원하는 사영을 실행할 수 없는 불충분한 정보인 경우 첫 번째는 가중치와 임계 값을 다시 초기화 시킨 다음에 네트워크를 훈련 두 번째는 은닉 뉴런 또는 은닉 층을 추가해서 네트워크 훈련을 재개할 필요가 있으며 세 번째는 훈련 데이터의 조정이 필요 네트워크 훈련을 시도할 때, 오차 목표에 도달되는 가장 작은 네트워크로 종료, 그렇지 않을 경우에 과적합 문제가 발생

54 신경망 훈련 방법 일단 바람직한 오차 목표를 갖는 가장 작은 네트워크가 발견되면, 테스트 데이터로 시험
시험 데이터 또한 작동 영역을 대표할 수 있어야 함 네트워크 테스트는 테스트 데이터가 네트워크에 출현되는 것을 나타내며 오차가 다시 계산 목표 오차에 도달되면 테스트는 종료되고, 그렇지 않은 경우에는 다음 두 가지의 원인이 있음 불완전한 훈련집합에 의한 빈약한 일반화 불완전한 훈련집합에 의한 과대 적합 또는 네트워크 구조에 있어서 불필요한 자유도 빈약한 테스트 성능의 원인은 교차 검증에 의하지 않고서는 명백하지 않게 됨 만일 불완전한 테스트 집합이 빈약한 성능의 원인이라면, 높은 오차 수준들을 갖는 테스트 패턴들이 훈련집합에 추가되고, 새로운 테스트 집합이 선택되고, 네트워크는 다시 훈련되어야 함 훈련 및 테스트를 위한 데이터가 충분하지 않다면, 데이터는 다시 수집되고, 재 생성될 필요가 있음

55 훈련 및 시험 데이터 선택 신경망 훈련 데이터는 네트워크 작동이 기대되는 전체 영역을 대표할 수 있는 방식으로 선택
보통 많은 양의 데이터가 수집되고, 그 중의 일부가 네트워크의 훈련에 사용 수집된 데이터의 또 다른 일부는 네트워크의 옳은 일반화를 위한 시험 데이터로서 사용 만일 네트워크가 대 여섯 개 데이터 점들 상에서 잘 일반화되지 못한다면, 그 데이터는 훈련 데이터에 추가되어야 하고, 네트워크는 다시 훈련되어야 함 이러한 과정은 네트워크 성능이 인정될 때까지 반복 훈련 데이터는 신경망 성능이 작동 영역의 외부에서는 신뢰할 수 없는 것이기 때문에 작동 영역으로 한계(네트워크의 외삽 능력)

56 훈련 및 시험 데이터 선택 네트워크가 훈련 영역을 벗어난 점에서 사용될 경우
예를 들어 f(x)=2+3x-0.4x2의 근사를 위해 사용될 네트워크의 훈련 데이터를 생성하는 코드 x=0:10; t=2+3*x-0.4*x.^2; save data11 x t; plot(x,t), title('함수 근사에 관한 훈련 데이터'),... xlabel('입력'), ylabel('출력') 단일 은닉 층의(2개의 로지스틱 은닉 뉴런을 갖는) 네트워크를 사용하고, 오차 평균이 0.2 또는 5000번의 반복 수행에 도달할 때까지 훈련 bptrain을 사용하여 훈련시키고, zscore에 의한 변환을 사용할 경우에 따른 결과는 만족스럽지 않음

57 훈련 및 시험 데이터 선택 초기 훈련 load weight11; subplot(2,1,1), semilogy(RMS),...
title('BP 훈련 결과'), ylabel('RMS 오차'), subplot(2,1,2),... plot(LR), xlabel('학습율'), ylabel('반복 횟수')

58 훈련 및 시험 데이터 선택 네트워크의 훈련에 이어서 훈련 영역의 내부에서 일반화를 위한 성능 검토
참고로 데이터 변환이 훈련에 사용되었을 때, 같은 변환이 네트워크의 어떠한 입력 데이터에도 사용되어야 함 x=0:0.01:10; y=2+3*x-0.4*x.^2; load weight11; x=zscore(x,xm,xs); output=linear(W2*[ones(size(x));... logistic(W1*[ones(size(x));X])]); plot(x, y, x, output), title('함수 근사에 따른 증명'),... xlabel('입력'), ylabel('출력')

59 훈련 및 시험 데이터 선택 함수 근사에 따른 성능 검토

60 훈련 및 시험 데이터 선택 훈련 데이터의 내부 영역에서는 네트워크가 잘 일반화되고 있음 훈련 영역의 외부에서의 외삽
x=-5:0.1:15; y=2+3*x-0.4*x.^2; load weight11; X=zscore(x,xm,xs); output=linear(W2*[ones(size(x)); logistic(W1*[ones(size(x));X])]); plot(x, y, x, output), title('함수 근사에 따른 외삽'),... xlabel('입력'), ylabel('출력') 출력 결과에서 네트워크는 훈련영역 [0, 10]에서 아주 잘 일반화되고 있지만, 그 밖의 영역에서는 매우 빈약한 상태 이것은 네트워크가 훈련된 이외의 영역에서는 옳게 작동된다는 것을 보장할 수 없다는 것

61 훈련 및 시험 데이터 선택

62 과대 적합 과대 적합은 훈련 데이터에 관한 네트워크 오차 수준이 테스트 데이터의 오차 수준보다 유의하게 낫게 나타나는 경우에 명백해짐 이러한 과대 적합은 학습될 모형의 배후 함수 관계보다는 오히려 잡음과 같은 훈련 데이터의 특이성에 네트워크가 적응하고 있음을 뜻함 과대 적합의 감소 방식 최소 필요한 개수로 자유도(뉴런 개수)를 감소 잡음 자체가 수그러질 수 있을 정도로 훈련 데이터 크기 증가 과대 적합이 나타나기에 앞서 훈련을 중지

63 과대 적합 앞에서 소개된 함수 근사의 예에서 20% 정도의 잡음을 추가한 경우
x=0:1:10; y=2+3*x-0.4*x.^2; randn('seed',3); t=2+3*x-0.4*x.^2+0.2*randn(1,11).*(2+3*x-0.4*x.^2); save data12 x t; plot(x,y,x,t), title('잡음을 갖는 훈련 데이터'),... xlabel('입력'), ylabel('출력') 단일 은닉 층의(2개 로지스틱 은닉 뉴런을 갖는) 네트워크를 사용하고, 오차 평균이 0.2 또는 5000번의 반복 수행에 따른 BP 훈련 결과는 오차 목표에 도달되지 못함(RMS=1.276) 오차가 1.27이하가 되도록 훈련시킬 수 있지만, 네트워크가 잡음을 학습하는 것이기 때문에 이러한 과정은 나타낼 필요가 없음

64 과대 적합

65 과대 적합 함수 근사 테스트 x=0:10; y=2+3*x-0.4*x.^2; load data12; load weight12;
X=zscore(x, xm, xs); output=linear(W2*[ones(size(x)); logistic(W1*[ones(size(x));X])]); plot(x, y, x, output, x, t), title('함수 근사 증명'),... xlabel('입력'), ylabel('출력') 출력 결과에서 완만한 선은 실제 함수, 절단된 선은 잡음을 갖는 데이터, 완만한 선에 가까운 선은 네트워크 근사 신경망 근사는 완만하고, 원래 함수를 잘 반영

66 과대 적합 이제 함수 근사에 필요한 것보다 많은 뉴런을 추가(즉 4개의 은닉 뉴런 사용)
이에 따른 BP 훈련 결과 또한 5000번의 반복 내에서 목표 오차에 도달되지 않음(RMS=0.4709) x=0:10; y=2+3*x-0.4*x.^2; load data12 load weight13 x=zscore(x, xm, xs); output=linear(W2*[ones(size(x)); logistic(W1*[ones(size(x));X])]); plot(x, y, x, output, x, t), title('함수 근사 증명'),... xlabel('입력'), ylabel('출력') 출력 결과에서 잉여 인자가 네트워크에 사용될 때, 근사가 심하게 과대 적합 따라서 보다 작은 개수의 뉴런을 사용하여 오차 목표에 도달되는 훈련을 시킬 필요가 있음

67 과대 적합

68 과대 적합 6의 근방으로 평균화되는 출력들에 관해 20% 정도의 잡음을 포함하는 11개 훈련 데이터를 포함하는 함수는 0.2*6=1.2의 RMS 오차 목표를 가질 수 있음 이것은 예에 관해 적절하게 훈련된 경우에 따른 근사 값 적정 수준이 넘는 뉴런을 가지고 있는 네트워크의 훈련 중에 오차 목표에 도달되어 훈련이 중단된다면, 모형의 과대 적합 가능성은 줄어들게 됨 4개 은닉 뉴런을 가지고 있는 신경망에 관해 오차 목표 1.2를 가지고 훈련될 경우에 BP 훈련은 151epoch에서 중단(RMS=1.1944) 오직 두 개의 뉴런을 사용하는 것보다 훨씬 빠르게 학습된 결과를 가짐; 이것에 관한 일반성의 검증

69 과대 적합 x=0:10; y=2+3*x-0.4*x.^2; load data12; load weight14;
x=zscore(x, xm, xs); output=linear(W2*[ones(size(x)); logistic(W1*[ones(size(x));X])]); plot(x, y, x, output, x, t), title('함수 근사 증명'),… xlabel('입력'), ylabel('출력') 출력된 그래프에서 훈련된 네트워크는 적정 개수의 뉴런을 갖지 않는 것보다 훨씬 좋게 일반화 실제 신호가 미지일 때, 오차 목표는 신호의 여과를 통해 평활화된 신호와 잡음을 갖는 신호의 차이를 계산하는 방식으로 발견될 수 있음 이러한 차이는 신호에 있는 많은 잡음을 대략 근사 시키는 것에 해당

70 과대 적합

71 과대 적합 훈련 데이터에 잡음이 있을 때, RMS 오차 목표를 계산하는 방법을 사용할 필요가 있음
데이터 내에 잡음이 지배적이라면, 훈련 집합의 패턴 수 증가는 과대 적합을 감소시킬 수 있음 이러한 것을 나타내는 예: 테스트 집합의 크기는 51로 증가 x=0:0.2:10; randn('seed',100); y=2+3*x-0.4*x.^2; t=2+3*x-0.4*x.^2+0.2*randn(1,size(x,2)).*(2+3*x-0.4*x.^2); save data13 x t; plot(x, y, x, t), title('잡음을 갖는 훈련 데이터')

72 과대 적합 이러한 데이터에 관해 5개 은닉 뉴런들을 갖는 BP-네트워크의 출력은 오차 목표에 도달되지 못함(RMS=1.063)

73 과대 적합 그래프 출력에서 모형에 아주 많은 뉴런들이 있었지만 네트워크는 잘 일반화되고 있음
x=0:0.2:10; y=2+3*x-0.4*x.^2; load data13; load weight15; x=zscore(x, xm, xs); output=linear(W2*[ones(size(x)); logistic(W1*[ones(size(x));x])]); plot(x, y, x, output, x, t), title('5개 뉴런을 갖는 함수 근사 증명'),... xlabel('입력'), ylabel('출력') 그래프 출력에서 모형에 아주 많은 뉴런들이 있었지만 네트워크는 잘 일반화되고 있음 보다 대표적인 훈련집합의 사용은 신호에 있는 잡음을 평균하는 것과 같은 것임을 시사 네트워크는 입력이 2인 영역에서 처지는 현상; 이것을 피하기 위해서는 보다 많은 샘플을 사용하거나 또는 은닉 뉴런들의 개수를 감소시켜야 함

74 과대 적합 과대 적합의 감소를 위한 마지막 방법은 교차 검증: 이것은 훈련 중에 과대 적합의 검토를 하는 것으로 2개 데이터 집합을 사용 하나는 훈련에, 다른 하나는 과대 적합의 검토에 사용 과대 적합이 있는 경우에 훈련 데이터가 아닌 다른 것이 좋은 것이 되기 때문에 이러한 과대 학습 행위에 관한 테스트를 위해 검토 데이터가 사용

75 과대 적합 각 반복 훈련에서 RMS 오차들은 테스트 집합과 검토 집합에 관해 모두 계산
만일 네트워크가 적정 뉴런의 개수를 초과할 경우에 훈련 오차는 계속해서 감소, 검토 오차 수준이 중지되고 증가하기 시작하는 점이 훈련 중에 존재 스크립트 cvtrain은 이러한 행위의 검토에 사용 11개의 잡음을 갖는 데이터를 검토 데이터로 할 때 x=0:1:10; y=2+3*x-0.4*x.^2; randn('seed',5); % 시드 변경 tc=2+3*x-0.4*x.^2+0.2*randn(1,11).*(2+3*x-0.4*x.^2); % 검토 데이터 load data12; % 훈련 데이터 save data14 x t tc; plot(x, y, x, t, x, tc), title('훈련 데이터 및 검토 데이터')

76 과대 적합 cvtrain을 사용한 1000번의 반복 훈련: BP 훈련은 최소 RMS가 , 최소 검토 RMS가 , 240epoch에서 최적의 가중행렬이 존재 load weight16; semilogy(RMS), hold, semilogy(RMSc),... title('교차 검정의 훈련 결과'), ylabel('RMS 오차'),... text(600,2, '오차 검토'), text(600,0.5, '훈련 오차')

77 과대 적합 오차는 모두 초기에 감소, 검토 오차는 증가, 최적 가중행렬은 검토 오차가 최소인 점에서 나타남, 최소인 점 이후부터는 네트워크는 과대 적합을 보이는 것이라 할 수 있음 이러한 훈련 방법은 실제 훈련 RMS 오차 목표를 찾는 데 사용; 예에서 오차 목표는 검토 오차가 최소인 점, 즉 min(RMSc) ans =


Download ppt "신경망(3)."

Similar presentations


Ads by Google