INTELIGENTNO UPRAVLJANJE Primjena neuronskih mreža Vanr. Prof.dr. Lejla Banjanovic-Mehmedovic Neural Networks in Matlab net = newff(minmax(d), [h o], {'tansig', 'tansig'}, 'traincgf'); net = train(net, D, L); test_out = sim(net, testd); where: D is training data feature vectors (row vector) L is labels for training data testd is testing data feature vectors h is number of hidden units o is number of outputs 1
Neuronske mreže kao aproksimatori funkcija Ulaz: Pomoćna varijabla: Izlaz: i x i x i, x n i x, 1, 2 Skup podataka za treniranje: T zi z i z i,, z n i 1, 2, y i G x i z i G x1, y1,, xm, ym z T Definicija problema aproksimacije funkcije Problem aproksimacije je određivanje optimalnih vrijednosti parametara θ = θ * uz koje je funkcija F najbolja aproksimacija funkcije G: Kao mjera kvaliteta: F(, x), G( x) F(, x), G( x), R n( ) p F(, x), G( x) G( x) F(, x) G( ) F(, ) dx p x x C N v1 v1 Stone Weierstrassov-ova teorema Kolmogorov teorema 1 p 2 N 2 G( x( v)) F(, x( v)) G( x( v)) F(, x( v)) 2
Primjer 1. Problem računanja pritiska idealnog plina. p = nrt/v Način kreiranja uzoraka iz eksperimentalnih mjerenja. Ulazne varijable su masa i zapremina, a izlazna varijabla je pritisak, tj. ulazno-izlazni parovi za proces treniranja su oblika: G((n(i),V(i),p(i)). Primjer 1. Najveći zahtjevi u rješavanju datog problema: u određivanju strukture odgovarajuće neuronske mreže, forme aktivacionih funkcija, funkcija učenja. 3
Primjer 1: neuronske mreže kao aproksimatori funkcije % Postavljanje parametara treniranja n=1:100; % molarna masa [mol] p = nrt/v V=linspace(2,50,100); % zapremina [m^3] T=293.15; % konstanta - termodinamicka temperatura [K] (25 [C]) R=8.314472; %univerzalna plinska konstanta [J/(Kmol)] target = n*r*t./v; %prema zakonu za idealne plinove pv=nrt input = [n;v]; %ulazne varijable su masa i zapremina % Kreiranje neuronske mreže net = newff([min(n) max(n);min(v) max(v)],[5 1], {'logsig','purelin'},'trainlm'); % Parametri treniranja mreže. net.trainparam.show=nan; net.trainparam.epochs=100; net.trainparam.lr=0.05; net.trainparam.goal=1e-3; Primjer 1: neuronske mreže kao aproksimatori funkcije % Treniranje mreže. net=train(net,input(:,1:2:100),target(1:2:100)); input(: target(1:2:100)); % Testiranje trenirane mreže. output=sim(net,input); greska=(output-target)*100/max(target); % Prikaz rezultata plot(target,'o'); %zeljeni pritisak hold on plot(output, 'g*'); %dobijeni pritisak title('treniranje neuronske mreže'); 4
Primjer 2. Primjena neuronske mreže u aproksimaciji sljedeće složenije funkcije : y sin( x)cos(3 x) Primjer 2: neuronske mreže kao aproksimatori funkcije % Kreiranje neuronske mreže net2=newff([-pi pi], [50 1], {'tansig' 'purelin'}); % Postavljanje parametara treniranja net2.performfcn='mse'; net2.trainfcn='traingdx'; % algoritam ucenja opadajuci gradijent net2.trainparam.epochs=5000; % maksimalan broj epoha net2.trainparam.goal=0.0001; % ciljna greška % Definisanje uzoraka treniranja x=-pi:0.1:pi; y=sin(x).*cos(3*x); P=x; T=y; % Treniranje mreže [trained_net2, tr]=train(net2,p,t); % Testiranje trenirane mreže x_t=-pi:0.15:pi; y_t=sim(trained_net2,x_t); 5
Primjer 3: Aproksimacija funcije prema ulaznim uzorcima P1 = [1 1-2 -1 0]; P2 = [ 2-2 2 1 0]; % Ulazni uzorci P1 & P2 T = [0 1 0 1 0.5]; % Izlazna vrijednost T P = [P1; P2]; % kreiranje matrice ulaza net = newff([-2 2; -3 3],[5 1],{'tansig' 'purelin'}); % 2-5-1 Neur. mreža sa ulaznim opsegom Y = sim(net,p); net.trainparam.epochs = 100; % Treniranje određeni broj epoha net = train(net,p,t); YTrained = sim(net,p); u1 = -2:0.25:2; N1 = length(u1); u2 = -3:0.25:3; N2 = length(u2); for j = 1: N1 for i = 1: N2 y(i,j) = sim(net,[u1(j); u2(i)]); end; end; figure(2); plot3(p1,p2,t, 'ko', P1,P2,YTrained,'rx'); hold; mesh(u1, u2, y ); grid; hold off xlabel('p1'); ylabel('p2'); zlabel('y'); h=title('2-ulaza 5-slojeva 1-izlaz FF Neuron'); set(h,'fontsize',12); RBF MREŽE NEWRB dodaje neurone u skriveni sloj RBF mreže sve dok se ne dostigne specificirana srednja kvadratna greška. Radial basis funkcija za implementaciju u Matlabu: net = newrb(p,t,goal,spread, MN, DF) gdje su : P ulazni vektor podataka T ciljni vektor izlaza GOAL srednje kavadratna greška (default = 0.0) SPREAD širina radial basis funkcija (default = 1.0) MN maksimalan broj neurona, default Q. DF broj neurona koji se dodaje između prikaza, default = 25. 6
Primjer 4. RBF mreže kao aproksimatori Generisati ulazne podatke za funkciju 2 yx ( ) x 3x kada je 4 x 4 Izvršiti aprokimaciju sa RBF neuronskom mrežom. Rješavanje problema pomoću MATLAB/Neural Network Toolboxa % Generisanje podataka (ukupno dobivamo 41 podatak) x=-4:0.05:4; 05:4; y=x.*x+3*x; P=x;T=y; % Grafički prikaz podataka plot(p,t, o ) grid; xlabel( time (s) ); ylabel( output ); title( parabola ) 7
Rezultati treniranja RBF mreže net1=newrb(p,t,0.01); %Simulacija podataka a= sim(net1,p); %Grafički prikaz rezultata i greške plot(p,a-t,p,t) Treniranje unaprijednih neuralnih mreža Inkrementalno treniranje: [net,a,e]=adapt(net,p,t) adaptwb težine i pragovi se pridružuju vlastitim funkcijama learngd težine i pragovi se pomjeraju u smjeru negativnog gradijenta funkcije prefomanse; množenje negativnog gradijenta sa brzinom učenja lr leardgdm najbrži spust sa momentumom, (pored lr i mc), brža konvergencija shodno trendu greške površi 8
Treniranje Feedforward neuralnih mreža Batch mod [net,a,e]=train(net,p,t) Traingd ekvivalentan inkrementalnoj funkciji learngd Traingdm gradijentni spust sa momentumom, ekvivalent leargdm, sa nekim specifičnostima Brže treniranje Feedforward neuronskih mreža Traingda (adaptivna brzina učenja, drži veličinu koraka dovoljno velikom, koliko je proces učenja stabilan) Traingdx (kombinuje brzinu adaptivnog učenja sa momentumom) Trainrp (Rprop)- Rezilientna Backpropagacija 9
Konjugirani gradijentni algoritmi Traincgf (Fletcher Powell CG) ima najmanje zahtjeve storiranja nego ostali konjugirani gradijentni algoritmi. Traincgp (Polak-Ribiere CG) neznatno veći zahtjevi storiranja nego traincgf. Brža konvergencija na nekim problemima. Traincgb (Powell-Beale CG) neznatno veći zahtjevi storiranja nego traincgf. Generalno brža konvergencija. Trainscg (skalirani Conj. Grad.) - skalirani konjugirani gradijentni algoritmi. Jedini konjugirani gradijentni algoritam koji ne zahtjeva linijsku pretragu. Kvazi-Njutunovi algoritmi Trainbfg (BFGS kvazi Njutunov) zahtjeva storiranje aproksimirane Hesijan matrice i ima više proračuna pri svakoj iteraciji nego ostali konjugirani gradijentni algoritmi, ali obično konv. u nekoliko iteracija. Trainoss (1-step sekanta) kompromis izmedju konjugiranih gradijentnih i kvazi-newtunovih metoda. Trainlm (Levenberg-Marquardt) najbrži algoritam treniranja za mreže srednje veličine; ima ograničenja na memoriju, kada je trenirajući set velik. Trainbr Bayesova regularizacija; modifikacija LM algoritma; reducira teškoće odredjenja optimalne mrežne arhitekture. 10