primena matlab a

18
ПРИМЕНА МАТЛАБ-А У ПРОЈЕКТОВАЊУ НЕУРАЛНИХ МРЕЖА Neural Network Toolbox је колекција унапред дефинисаних функција изграђена на МАТЛАБ-нумеричкo рачунарског окружења. Ове унапред дефинисане функције се могу позивати од стране корисника за симулацију различитих типова модела неуронских мрежа. Neural Network Toolbox је корисна алатка за индустрију, образовање и истраживање, помаже кориснику да сазна шта функционише а шта не и омогућује да се развију и прошире области неуронских мрежа. За почетак је дат пример једне feedforward неуралне мреже, како се креира и који су параметри обуке: net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF) Аргументи које функција узима: PR R x Q1 Матрица минималних и максималних вредности улазних вектора- Q1 вектора са по R елемената Si Величина и-тог слоја, за Nl слојева TFi Трансфер функција и-тог слоја (default = 'tansig'). (‘logsig’, ‘purelin’); BTF Backpropagation network training function (default = 'trainlm').(‘trainbfg’, ‘trainrp’, ‘traingd’); BLF Backpropagation weight/bias learning function (default = 'learngdm'). (‘learngd’); PF Performance function (default = 'mse'). (‘msereg’); Пример формирања обучавајућег скупа за дату нелинеарну функцију: % Formiranje obučavajućeg skupa. x=0:0.01:3; y=exp(-0.5*x).*cos(2*x); % Dodavanje aditivnog šuma. yn=y+randn(size(y))*0.08; % Inicijalno formiranje neuralne mreže. net=newff([0 3], [2 1],{'tansig','purelin','trainlm'}); % Parametri obučavanja neuralne mreže. net.trainParam.epochs=1000; net.trainParam.goal=0.000001; % Obučavanje neuralne mreže.

Upload: dragan-lazic

Post on 13-Apr-2015

95 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Primena Matlab A

ПРИМЕНА МАТЛАБ-А У ПРОЈЕКТОВАЊУ НЕУРАЛНИХ МРЕЖА

Neural Network Toolbox је колекција унапред дефинисаних функција изграђена на МАТЛАБ-нумеричкo рачунарског окружења. Ове унапред дефинисане функције се могу позивати од стране корисника за симулацију различитих типова модела неуронских мрежа. Neural Network Toolbox је корисна алатка за индустрију, образовање и истраживање, помаже кориснику да сазна шта функционише а шта не и омогућује да се развију и прошире области неуронских мрежа.

За почетак је дат пример једне feedforward неуралне мреже, како се креира и који су параметри обуке:

net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF)

Аргументи које функција узима:

PR R x Q1 Матрица минималних и максималних вредности улазних вектора- Q1 вектора са по R елемената

Si Величина и-тог слоја, за Nl слојева TFi Трансфер функција и-тог слоја (default = 'tansig'). (‘logsig’, ‘purelin’); BTF Backpropagation network training function (default = 'trainlm').(‘trainbfg’,

‘trainrp’, ‘traingd’); BLF Backpropagation weight/bias learning function (default = 'learngdm'). (‘learngd’); PF Performance function (default = 'mse'). (‘msereg’);

Пример формирања обучавајућег скупа за дату нелинеарну функцију:

% Formiranje obučavajućeg skupa. x=0:0.01:3; y=exp(-0.5*x).*cos(2*x); % Dodavanje aditivnog šuma. yn=y+randn(size(y))*0.08; % Inicijalno formiranje neuralne mreže. net=newff([0 3], [2 1],{'tansig','purelin','trainlm'}); % Parametri obučavanja neuralne mreže. net.trainParam.epochs=1000; net.trainParam.goal=0.000001; % Obučavanje neuralne mreže.

Page 2: Primena Matlab A

net=train(net,x,yn); % Simulacija rada neuralne mreže. ym=sim(net,x); % Prikazivanje rezultata. figure(3); plot(x,y,x,yn,x,ym);

Preobučavanje neuralne mreže

net=newff([0 3], [20 1],{'tansig','purelin','trainlm'});

Posledica preobučavanja je dobijanje lošijih rezultata za novi set podataka koji se dovode na ulaz mreže. U ovom slučaju preobučavanje je posledica povećavanja broja čvorova u slojevima. Sa dva neurona u skrivenom sloju je promenjeno na 20.

0 0.5 1 1.5 2 2.5 3-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

1.2

analiticka f-jazasumljena merenjaizlaz neuralne mreze

0 0.5 1 1.5 2 2.5 3-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

1.2

analiticka funkcijazasumljena merenjaizlaz neuralne mreze

Page 3: Primena Matlab A

Jedna od karakteristika neuralnih mreza je sposobnost generalizacije. Međutim, neuralna mreža nije uvek u stanju da izvrši generalizaciju. Npr. ukoliko promenimo interval ulaznog signala, videćemo da izlaz mreze odstupa od zahtevanog. % Formiranje obučavajućeg skupa. x=0:0.01:4; y=exp(-0.5*x).*cos(2*x); % Dodavanje aditivnog šuma. yn=y+randn(size(y))*0.08; % Inicijalno formiranje neuralne mreže. net=newff([0 3], [2 1],{'tansig','purelin','trainlm'}); % Parametri obučavanja neuralne mreže. net.trainParam.epochs=1000; net.trainParam.goal=0.000001; % Obučavanje neuralne mreže. net=train(net,x,yn); % Simulacija rada neuralne mreže. ym=sim(net,x); % Prikazivanje rezultata. figure(3); plot(x,y,x,yn,x,ym);

0 0.5 1 1.5 2 2.5 3 3.5 4-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

1.2generalizacija

Page 4: Primena Matlab A

У следећим одељцима, демонстрираћемо употребу Neural Network Toolbox у циљу симулације неке од популарних модела неуронске мреже представљен у наставку. Ово укључује учења описана у наредној табели као у команде које се користе при сваком од њих .

Neural Network Model Commands Function Explanation

Transfer functions hardlim hardlims purelin logsig tansig satlin satlins

Hard limit transfer function Symmetric hard limit transfer function Linear transfer function Log sigmoid transfer function Hyperbolic tangent sigmoid transfer function Saturating linear transfer function Symmetric saturating'linear transfer function

Hebbian learning

learnh learnhd

Hebbian learning rule Hebbian learning rule with decay

Perceptron

initp trainp simup

Initialize a perceptron layer Train a perceptron layer with the perceptron rule Simulate a perceptron layer

Adaline

initlin adaptwh

Initialize a linear layer Adapt a linear layer with Widrow-Hoff rule

Back propagation initff

trainbp trainbpx trainlm simuff tbpl

Initialize a feedforward network up to three layers Train a feedforward network with back propagation Train a network with fast back propagation Train a network with Levenberg-Marquardt Simulate a feedforward network Train a one-layer feedforward back-propagation

network

Hopfield network

solvehop simuhop

Design a Hopfield network Simulate a Hopfield network

Instar learning

learnis

Instar learning rule

Competitive learning

inite trainc simuc nngenc

Initialize a competitive layer Train a competitive layer Simulate a competitive layer Generate clusters of data points

Page 5: Primena Matlab A

Learning vector quantization

initlvq trainlvq simulvq

Initialize an LVQ network Design an LVQ network Simulate an LVQ network

Self-organizing map

initsm trainsm simusm

Initialize a self-organizing map Train a self-organizing map Simulate a self-organizing map

Page 6: Primena Matlab A

Демонстрација различитих модела неуронских мрежа: Hebbian learning

У случају Hebbian закона обучавања узима се да је обучавајући сигнал једнак текућем излазном сигналу. Користећи улазни вектор димензије 200, путем Hebbian закона изучи мрежу са пет чворова и једним слојем са hardlim функцијом.

t=[1 0 0 0; 0 1 0 0; 0 0 1 1; 0 0 1 1; 0 1 0 0]; index=floor (rand (1, 200)*4)+1; p=t(:, index); % Define initial weights and biases. w=eye(5); b=-0.5*ones(5,1); % Train the network using the Hebbian learning rule. for i=1:200 input=p(:, i); output=input; dw=learnh(input, output, 1); w=w+dw; % Set the target output to be the same as the input Set the learning rate as 1. end; % Test the trained network. % Test the success N=0; for i=1:200 input=p(:,i); % output=hardlim(w*input+b) output=hardlim(w*input,b); if input==output N=N+1; end; end;

Page 7: Primena Matlab A

Када су свих 200 вектора коришћени као улаз за обучавање мреже, на излазу мреже смо добили жељен резултат. Међутим, правило Hebbian учења може довести до великих вредности тежинског вектора (види променљиву " w "). Начин да се реши овај проблем је да се користи за учење Хебова правило са пропадањем како би смањили тежински вектор по стопи. Могуће је заменити команду "learnh" у претходном програм са "learnhd" да би се видела разлика између правила Hebbian учења са и без распада.

Perception Learning Rule У овом примеру, ћемо дизајнираћемо један LTU perceptron ради класификације шест тачака у дводимензионални простору, у две класе као што је и приказано: {[-1; 0 , [-1.5; -1 , [-1; -2 : класа 1, {[2; 0 , [2.5; -1 , [1; -2 : класа 2. Пример је аналитички приказан на страни 225, (Example 10.1)

% P defines six 2-elerment input vectors. P=[-1.0 -1.5 -1.0 2.0 2.5 1.0; 0.0 -1.0 -2.0 0.0 -1.0 -2.0]; % T defines the target vectors. T=[1 1 1 0 0 0]; % '1' represents class 1 and '0' class 2. [w, b]=initp(P, T); %Define an initial perceptron layer. % Train the network using the perceptron learning rule. [w, b, epochs, errors]=trainp (w, b, P, T, -1); % w: weight, b: bias. % Test whether [-1.0; O.O] is correctly classified as class 1. a=sirnup ([-1.0; O.O], w, b) Као што је приказано на слици, функција одлуке је утврђена како би класификовала шест дво-димензионална вектора. Дакле, ово је линеарно решив проблем и може се применити perception earning rule врло успешно. Урађен је тест, где је улазни вектор [-1, 0] исправно класификован као класа 1

Page 8: Primena Matlab A

Резултати симулације за Perception Learning Rule

Adaline Learning Rule Дат је улазни сигнал u = 0.6 sin (2*pi*k/T) + 1.2 cos (2*pi*k/T) као и излаз y = 2.5u + 2, gde je T = 10 perioda i k pripada skupu {1, 2,..., 100}. Determiniši izlaz koristeci neuralne mreze Како је зависност улазног и излазног сигнала линеаран, користићемо адаптивну линеарну мрежу са Adaline learning rule. % Define the input/output training signals. for k=1:100 u(k)=0.6*sin(2*pi*k/10)+1.2*cos(2*pi*k/10); y(k)=2.5*u(k)+2; end; [w, b]=initlin (u, y); % Define the initial Adaline network. % Train the network using the Adaline learning rule. [o, e, w, b]=adaptwh(w, b, u, y, 1.0); % Set the learning rate tо 1 % Plot the output signal (target output - network output). plot(y,'b'); hold on; plot(o,'r'); Сигнал улаза и излаза је приказан на слици и указује на то да излаз мреже скоро са поклапањем прати жељени сигнала након десетог корака. Ова демонстрација указује на то да линеарна мрежа може да научи да предвиди линеаран сигнала веома брзо.

-3 -2 -1 0 1 2 3 4

-2.5

-2

-1.5

-1

-0.5

0

0.5

Vectors to be Classified

P(1)

P(2)

Page 9: Primena Matlab A

Adaline learning rule

Back Propagation Rule У овом примеру, проучићемо ефекте стопе учења, почетног тежинског вектора, као и офсет вектора на проблем локалног минимума са једно-улазно, једно-излазом feedforward мрежом са back-propagation rule. Претпоставимо улазно-излазне податаке за обуку: (-6,0), (-6.1,0), (-4.1,0.97), (-4,0.99), (4,0.01), (4.1,0.03), (6, 1), (6,1, 1). Користити back-propagation rule за тренирање мреже са једним чвором и посматрати како се понаша са промењеном стопом учења, почетним тежинским вектором, као и офсет вектором. % Define P as input vectors and T as target vectors. P=[-6.0 -6.1 -4.1 -4.0 +4.0 +4.1 +6.0 +6.1]; T=[+0 +0 +.97 +.99 +.1 +.03 +1.0 +1.0]; % Plot error surface graph and contour. w_range=-1:0.1:1; b_range=-2.5:0.25:2.5; ES=errsurf(P,T, w_range, b_range, 'logsig'); plotes(w_range, b_range, ES, [60 30]); pause; % Choose initial weight, bias and learning rate. w=input(' Please input initial weight:'); b=input(' Please input initial bias:'); lr=input(' Please input learning rate:'); % Train the BP network using 'tbp1.' tp=[10 200 0.1 lr]; [w, b, epochs, error]=tbp1(w, b, 'logsig', P, T, tp, w_range, b_range, ES, [60 30]);

0 10 20 30 40 50 60 70 80 90 100-5

0

5

10

15

Page 10: Primena Matlab A

Hopfield propagation rule У овом примеру користити дискретну Hopfield мрежу за складиштење четири тачке квилибријума, (1, 1), (1, -1), (-1, 1) и (-1, -1) % Define 4 equilibrium points (1, 1), (1, -1), (-1, 1) and (-1, -1). t=[1 1 -1 -1;... 1 -1 1 -1]; % Build a Hopfield network to store the 4 equilibrium points. [w, b]=solvehop(t) pause; % Test the network. color='rgbmy'; for i=1:40 a=rands(2, 1)*2; [a, p]=simuhop(a, w, b, 30); %Evolve for 30 time steps. plot(p(1, 1), p(2, 1), 'wo', p(1, :), p(2, :),color (rem(i, 5)+1)); hold on; drawnow; end; Након дизајнирања Hopfield мреже, случајни улазни су доведени на улаз како би се проверио рад исте. Резултати приказују да су свих 40 тест примера конвергирали ка једној од тачки еквилибријума .

Hopfield network

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

Page 11: Primena Matlab A

Instar Learning Rule У овом примеру користимо Instar мрежу како би препознали вектор V = [0.2673,0.5345, -O.8018] који је зашумљен. Другим речима, желимо респрепознати вектор V од вектора P = V + шум. % Define a normalized prototype vector. V=[0.2673; 0.5345; -0.8018]; % Add noise to the prototype vector. P=rands(3, 200)*0.1 + V*ones(1, 200); P=normc(P); % Plot the normalized input vector on a sphere surface. hold on; [x, y, z]=sphere(10); h=surf(x*0.9, y*0.9, z*0.9, x.^2.*y.^2.*z.^2); % set(h, 'face', 'interp'); plot3(P(1, :)*0.99, P(2, :)*0.99, P(3, :)*0.99, '.k','markersize',10); view([160 -20]); colormap(cool); title('Normalized vector space'); % Set the initial weight vector of the instar network. w=[-0.8133 0.1474 -0.5628]; % Show the initial weight vector on the graph with marker' +' . plot3 (w(1), w(2), w(3), 'w+', 'markersize', 10, 'erasemode', 'none'); pause; %Train the network using the ins tar learning rule. lr=0.05; % Set the learning rate. for q=1:200 p=P(:, q); % Pick the qth input vector. a=tansig(w*p); % Calculate network output. dw=learnis(w, p, a, lr); % Apply learning rule. w=w+dw; % Update weights. plot3 (w(1) ,w(2) ,w(3) , 'r.' , 'markersize' ,10, 'erasemode' , 'none') ; end plot3(w(1),w(2),w(3),'w+','markersize',10,'erasemode','none'); % Renormalize the weights and compare them with V. w =normr (w) V На слици можемо видети пут којим се тежински вектор креће за време Instar учења. Након симулације, тежински вектор: w = 0.2763 0.5295 -0.8021

Page 12: Primena Matlab A

је апроксимативно исти као и вектор: V = 0.2673 0.5345 -0.8018

Instar learning rule.

LVQ Learning Rule У овом примеру ћемо помоћу LVQ мреже да класификујемо улазне векторе у две класе као сто је задато:

[-3.0], [-2, 1], [-2, -1], [2, 1], [2, -1], [3, 0]: класа 1, [0,4], [0, 3], [0,2], [0, 1], [0, -1], [0, -2], [0, -3], [0, -4]: класа 2.

% , Define 14 2-element input vectors. p=[-3 -2 -2 +0 +0 +0 +0 +0 +0 +0 +0 +2 +2 +3; +0 +1 -1 +4 +3 +2 +1 -1 -2 -3 -4 +1 -1 +0]; % , Define the classes these vectors fall into. c=[1 1 1 2 2 2 2 2 2 2 2 1 1 1]; % , Use 'ind2vec' to obtain the network target output vectors. t=ind2vec(c);

-1-0.8-0.6-0.4-0.200.20.40.60.81 -1

-0.5

0

0.5

1

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Normalized vector space

Page 13: Primena Matlab A

% , plot these training data points. colormap(hsv); plotvec(p, c); alabel('P(1)', 'P(2)', 'Input Vectors'); % , Initialize a 4-node LVQ layer. , w1:competitive-layer weights, w2: linear-layer weights. [w1, w2]=initlvq(p,4, t); % , Train a competitive layer using the instar learning rule. tp=[20, 500, 0.05]; [w1, w2]=trainlvq(w1, w2, p, t, tp); pause;% Test whether [0; 1] is correctly classified as class 2. a=simulvq([0;4], w1, w2)

Слика приказује улазни вектор и коначан тежински вектор компетитивног слоја. На слици, светли означени + представља класу 1, док тамни + представлја класу 2. Светло означени о представља тежински вектор класе 1, док танми о представља тежински вектор класе 2. Тренирани компетативни слој је тестиран на једном улазном вектору [0; 1] који је тачно сврстан у класу 2.

LQV leaming rule.

-3 -2 -1 0 1 2 3-4

-3

-2

-1

0

1

2

3

4

P(1),W1(1)

P(2)

,W1(

2)

LVQ: 500 cycles

Page 14: Primena Matlab A

Self-Organizing Feature Map Овај пример приказује како дводимензионална самоорганизујућа мапа може бити обучена. За почетак се на улаз доведе вектор помоћу функције "rands" а онда се рачуна удалјеност између неурона помоћу Manhattan distance neighborhood function "nbman". Неоурони су преорјентисани на дво-димензионалној мапи димензија 9 X9. На крају, мапа је тренирана помоћу команде "trainsm". % , 1000 data points are created and plotted in a square input space. p=rand(2, 500)*0.25; plot(p(1, :), p(2, :), '+r'); % , Define the 81 x 81 neighborhood matrix for a layer with 9 x 9 nodes % , arranged in 2 dimensions. m=nbman(9, 9); % , Initialize a self-organizing feature map with size of 9 x 9. w=initsm(p, 9*9); % w: initial weight. clg; % Train a self-organizing feature map. w=trainsm(w, m, p, [1000, 5000]); pause % Classify input vector p=[0.2; 0.3]. p=[0.2; 0.1]; a=simusm(p, w, m) Након 5000 циклуса тренирња, мапа се раширила по површини равномерно, одражавајући подједнаку расподелу улазног вектора. Када је улазни вектор [0.2; 0.1] доведен на улаз мреже неурон класе 21 је као излаз имао 1 док су сви остали неурони имали 0.5. Ово Указује на то да је улазни вектор најближи класи 21. a = (12,1) 0.5000 (20,1) 0.5000 (21,1) 1.0000 (22,1) 0.5000 (30,1) 0.5000

Page 15: Primena Matlab A

Резултат симулације за мапу са особином само-организације

DEMONSTRATION OF NEURAL NETWORK APPLICATION Adaptive Noise Cancelation Using the Adaline Network Једна од најинтересантнијих примена адаптивних мрежа је за укидање шума. Коришћењем адаптиве мреже, могуће је одузети сметње из излазног сигнала, ако се сигнал који је у корелацији са сметње може измерити. Додатно, како се укидање звука заснива на одузиманјем а не на филтрацији, сметнје се могу уклонити чак и уколико се догоде на истим фреквенцијама као и жељени сигнал. Појава овог типа се дешава у пилотској кабини у ваздухопловству. Док је авион у ваздуху и када се пилот обраћа путницима, порука је зашумљена од стране мотора авиона. Тако да се сигнал који је збир корисног сигнала(глас пилота) и шума(бука мотора) преноси преко микрофона до путника. Једно од решенја је трениранје неуралне мреже да предвиди комбиновани сигнал из сигнала мотора. Како мрежа прима само сигнал мотора као улаз, она може да предвиди дисторзију звука мотора у комбинованом сигналу. Стога у овом случцају, грешка предикције неуралне мреже ће бити пилотов глас. Предпоставићемо да је комбиновани сигнал "пилот + 3 X мотор", где пилот представлја пилотов глас а мотор шум од стране мотора. Користићемо Adaline network за укидање шума.

0 0.05 0.1 0.15 0.2 0.250

0.05

0.1

0.15

0.2

0.25

W(i,1)

W(i,

2)

Page 16: Primena Matlab A

% Define pilot voice, engine noise and combined signal. time=0:0.01:12; pilot=randn(1, length(time)); engine=randn(1, length(time)); pick=pilot+3*engine; pause % Initialize the Adaline network. [w, b]=initlin(engine,pick); pause % Train the Adaline network. [y, nerror, w, b]=adaptwh(w, b, engine, pick, 0.01); pause % Plot the error signal. clg; plot((nerror-pilot)); grid; xlabel('Time Step'); ylabel('Difference'); title('Difference between Network Error and Actual Pilot Voice');

Укидање шума помоћу Adaline мреже

На слици је приказана разлика између грешке неуралне мреже и пилотовог гласа, што указује на то да Adaline network може да репродукује пилотов глас после само неколико секунди.

0 200 400 600 800 1000 1200 1400-8

-6

-4

-2

0

2

4

6

Time Step

Diff

eren

ce

Difference between Network Error and Actual Pilot Voice

Page 17: Primena Matlab A

Nonlinear System Identification Овај пример користи back-propagation network за идентификацију нелинеарног система:

Где је излаз система у к-том тренутку a је ограничена функција улаза.Систем је стабилан у опсегу Нека је идентификациони модел дат на следећи начин:

Где је back-propagation network са улазима i и излазом . Циљ је истренирати back-propagation network тако да када је сигнал

доведен на улаз неуралне мреже и нелинеарног система, излаз мреже буде веома близак излазу . % Define initial values yp(1)=yp(2)=0. yp(1)=0; yp(2)=0; % Create 501 random input data from the input space [-2 2]. u=rands(1, 501)*2; % Use 501 random input data to obtain training patterns. for k=2:501 yp(k+1) = yp (k) * (yp(k-1) +2) * (yp (k) +2.5) / (8.5 +yp(k)^2 + yp(k-1)^2)+u(k); out(k-1)=(yp(k+1)-u(k))/10; in(k-1)=yp(k)/10; end; nno=out(1:499); nni=[in(1:499); in(2:500)]; % Build the initial BP network with 10 nodes in the first hidden layer % 20 nodes in the second layer and one output node. [w1, b1, w2, b2, w3, b3]=initff(nni, 10, 'tansig', 20, 'tansig', 1, 'tansig'); % Train the BP network until sse=0.05 (sum-squared error). tp=[50, 2000, 0.05, 0.1, 1.05, 0.7, 0.35, 1.04]; for i=1:30 [w1, b1, w2, b2, w3, b3, epochs, error] = trainbpx(w1, b1, 'tansig', w2, b2, 'tansig', w3, b3, 'tansig',nni, nno, tp); save a:\ bp3.mat wl bl w2 b2 w3 b3 end; load bp3.mat; % Load the learned weights and biases out_p(1)=0; out_p(2)=0; out_oo(1)=0; % initial values. pause % Test the BP network.

Page 18: Primena Matlab A

for k=2:500 if k<=200 u(k)=2*cos(2*pi*k*0.01) ; else u(k)=1.2*sin(2*pi*k*0.05) ; out_nn(2) =0; % Define end; out_p(k+1)=out_p (k)* (out-p(k-l)+2)*(out_p(k)+2.5)/(8.5+out_p(k)^2+out-p(k-1)^2)+u(k); out_nn(k+1)=10*simuff([out_p(k)/10;out_p(k-1)/lO], w1, b1,'tansig',w2, b2, 'tansig',w3, b3, 'tansig')+u(k); end; % Plot the plant output and NN output. plot(1:501, out_p, 'y'); hold on; plot(1:501, out_nn, '- - r'); grid; axis ([0, 400, -4, 9]); xlabel('Time Step'); ylabel('Plant Output_NN_Output - -'); Након тренирања back-propagation network њена способност предикције је тестирана на улазном сигналу

за

за Као што се може видети на слици мрежа је у задовољавајућој мери успела да предвиди нелинеарни систем.

Идентификација нелинеарног система користећи back-propagation мрежу