08:46:13 SPECIALIZAREA INFORMATIC DISCIPLINA: REELE NEURONALE 3. Realizarea unui program MATALB care folosete instruciunile de control. Rezolvare: %Instructiunidecontrol clearall closeall clc disp('repetareauneisecventedeinstructiunideunnr.deori:FOR') disp('') fori=1:1:4 disp('acesttextvafiafisatde4ori') end pause disp('') disp('executareaconditionataainstructiunilor:IF,ELSEIF,ELSE') disp('') nr=input('introducetiunnumar:') ifnr>10 disp('nr>10') elseifnr<10 disp('nr<10') else disp('nr=10') end pause disp('') disp('Repetareaunuigrupdeinst.deunnr.nedefinitdeori:WHILE') disp('') i=4 whilei>0 i=i1 end
FACULTATEA DE MATEMATICINFORMATIC 21.01.2015
08:46:13 SPECIALIZAREA INFORMATIC DISCIPLINA: REELE NEURONALE 4. Scriei un program MATLAB care s ilustreze posibilitile de creare a grafcelor 2D i 3D. n acest sens reprezentai o distribuie gaussian 2D respectiv 3D. Rezolvare: %Grafice2Dsi3D clearall closeall clc sigma=3; disp('grafic2D') x=1:.005:1; y=(1/2*pi*sigma^2)*exp((x.^2/2*sigma^2)); plot(x,y) title('Gaussian2D') xlabel('AxaOx') ylabel('AxaOy') pause disp('grafic3D') x=1:.01:1; y=1:.01:1; [X,Y]=meshgrid(x,y); Z=(1/2*pi*sigma^2)*exp((X.^2+Y.^2)/2*sigma^2); figure mesh(Z) title('Gaussian3D') xlabel('AxaOx') ylabel('AxaOy') zlabel('AxaOz')
FACULTATEA DE MATEMATICINFORMATIC 21.01.2015
08:46:13 SPECIALIZAREA INFORMATIC DISCIPLINA: REELE NEURONALE 5. Reprezentai grafc cteva dintre funciile de activare (denumite n MATLAB transfer functions) ale unui neuron disponibile n Neural Networks Toolbox. Indicaie: Pentru a cunoate totalitatea funciilor specifce, predefnite, disponibile pentru domeniul reele neuronale tastai help nnet. Dac se doresc amnunte despre o anumit funcie, acestea se pot obine prin: help denumirea_funciei. Rezolvare: %Reprezentarefunctiideactivare clearall closeall clc n=4:0.001:4; %functiedeactivaredetipsigmoid a1=logsig(n); %functiedeacticaredetiptreapta a2=hardlim(n); %functiedeactivaredetipliniar,cusaturatie a3=satlins(n); %functiedeactivareradiala a4=radbas(n); subplot(1,4,1) plot(n,a1,'linewidth',2,'color','b'); axis([441.11.1]) title('sigmoid') subplot(1,4,2) plot(n,a2,'linewidth',2,'color','b'); axis([441.11.1]) title('treapta') subplot(1,4,3) plot(n,a3,'linewidth',2,'color','b') axis([441.11.1]) title('liniar') subplot(1,4,4) plot(n,a4,'linewidth',2,'color','b'); axis([441.11.1]) title('radial')
FACULTATEA DE MATEMATICINFORMATIC 21.01.2015
08:46:13 SPECIALIZAREA INFORMATIC DISCIPLINA: REELE NEURONALE 6. Un neuron j primete semnale de la ali patru neuroni ale cror nivele de activare sunt: 0,1; 0,3; - 0,8; 0,5. Ponderile sinaptice ale neuronului j sunt: 0,9; 0,7; 0,1; 0,7. Calculai ieirea neuronului j n urmtoarele cazuri: a) neuronul este liniar; b) neuronul are o funcie de activare sigmoidal. Se consider pragul de activare k = 0,5. Indicaie: Modelul neuronului va f implementat folosind funciile de activare purelin pentru cazul neuronului liniar respectiv logsig pentru cazul neuronului neliniar. Rezolvare: %Implementareneuron clearall closeall clc %definirepragdeactivare theta=0.5 %x=vectordeintrare x=[0.10.30.80.5] %w=vectorulponderilorsinaptice w=[0.90.70.10.7] %y=iesireaneuronului y1=purelin(x*w'theta) y2=logsig(x*w'theta)
7. Perceptronul simplu poate f folosit la implementarea unor funcii logice.
Verifcai practic aceast afrmaie prin intermediul codului surs MATLAB aferent unui perceptron simplu care s efectueze funciile logice I, SAU i SAU EXCLUSIV. Justifcai comportamentul perceptronului simplu n cazul funciei SAU EXCLUSIV. Indicaie: La implementarea RNA se va folosi funcia newp, a crei descriere este oferit n continuare: NEWP - creeaz un perceptron Sintaxa: net = newp(pr,s,tf,lf) n care: PR Rx2, matrice de valori min i max pentru R intrri. S Numr de neuroni TF Funcie de transfer, implicit funcia prag ('hardlim'). LF Funcia de nvare, implicit 'learnp'. Rezolvare: %Implementareuneireteleneuronaledetipperceptronsimplu clearall closeall clc %tipardeintrare Pantr=[0011;0101] %tiparedeiesire T_SAU=[0111] T_SI=[0001] T_XOR=[0110] %seimplementeaza3RNAperceptron net1=newp([01;01],1); net2=newp([01;01],1); net3=newp([01;01],1); %seantreneaza3RNAperceptroninrezolvarea %problemelorSAU,SI,SAUEXCLUSIV %implicitnumaruldeepoci=100 %iarpentruamodificanr.epociseutilizeaza %net1.trainParam.epochs=20; net1=train(net1,Pantr,T_SAU); net2=train(net2,Pantr,T_SI); net3=train(net3,Pantr,T_XOR); %setesteazaperformanteleretelelorpentruvectoriideantrenament y1a=sim(net1,Pantr) y2a=sim(net2,Pantr) y3a=sim(net3,Pantr) %setesteazaperformanteleretelelorpentruvectoriidetest %astfelsepoatetestacapacitateadegeneralizarearetelelor Ptest=[0.10.20.90.8;0.20.70.10.9]; y1t=sim(net1,Ptest) y2t=sim(net2,Ptest) y3t=sim(net3,Ptest)
Observaie: Pentru reelele neuronale care implementeaz funciile I i SAU
logic se constat o funcionare corespunztoare att pentru tiparele de
antrenament ct i pentru cele de test. Pentru cazul SAU-EXCLUSIV se
constat imposibilitatea rezolvrii corecte a problemei, att pentru datele de atrenament ct i pentru cele de test. Explicaia provine din faptul c primele dou cazuri (I, SAU) reprezint probleme liniar separabile, pe cnd problema SAU-EXCLUSIV nu este liniar separabil. 8. Verifcai capacitatea de predicie liniar pentru o RNA ADALINE n cazul eantioanelor prelevate dintr-o funcie de tip sinusoidal, la care frecvena se modifc liniar n intervalul [0 6]. Considerai o predicie de ordinul 5, adic eantionul x(n) s fe prezis pe baza x(n-1), x(n-2), , x(n-5). Indicaie: La implementarea RNA se va folosi funcia newlin, a crei descriere este oferit n continuare: NEWLIN - creeaz un strat liniar Sintax: net = newlin(PR,S,ID,LR) n care: PR Rx2, matrice de valori min i max pentru R intrri. S Numrul de neuroni de ieire. ID Vectorul ntrzierilor, implicit = [0]. LR Rata de nvare, implicit = 0.01. Rezolvare: %Predictieliniara clearall closeall clc %generareasireprezentareafunctieitinta x=0:0.1:6*pi; fr=linspace(1,3,length(x)); y=sin(x.*fr); plot(x,y); holdon %vectorideintraresiiesirePrespectivT P=con2seq(y); T=P; %implementareareteleineuronale lr=0.1; intarzieri=[12345]; net=newlin(minmax(y),1,intarzieri,lr); %calcululesantionuluicurentdincele5esantioaneintarziate [net,ies,e]=adapt(net,P,T); %reprezentareagraficaarezultatelor plot(x,cat(2,ies{:}),':r'); xlabel('Timp'); ylabel('Predictie(rosu)TintaEroare(verde).'); title('SemnalelePredictie,TintasiEroare'); plot(x,cat(2,e{:}),'.g') holdoff