Sunteți pe pagina 1din 9

FACULTATEA DE MATEMATICINFORMATIC 21.01.

2015
08:46:13
SPECIALIZAREA INFORMATIC
DISCIPLINA: REELE NEURONALE

APLICAII MATLAB - REELE NEURONALE


1. Scriei un program MATLAB care s implementeze operaiile cu matrici.
Rezolvare:
%Operatiicumatrici
clearall
closeall
clc
disp('definireauneiconstante:x=2')
x=2
pause
disp('definireaunuivector:y=[12345]')
y=[12345]
pause
disp('def.uneimatr.:A=[123;456;789],B=[1076;320;245]')
A=[123;456;789]
B=[1076;321;245]
pause
disp('referireaunuielementaluneimatrici:A(2,1)')
A(2,1)
pause
disp('adunareaadouamatrici:C=A+B')
C=A+B
pause
disp('scadereaadouamatrici:D=AB')
D=AB
pause
disp('inmultireaadouamatrici:E=A*B')
E=A*B
pause
disp('inmultireaelementelorcorespondente:F=A.*B')
F=A.*B
pause
disp('ridicarealaputereax:G=A^x')
G=A^x
pause
disp('ridicarealaputereaelementelorcorespondente:H=A.^x')
H=A.^x
pause
disp('impartireaadouamatrici:I=A/B')
I=A/B
pause
disp('impartireaelem.corespondenteadouamatrici:J=A./B')
J=A./B
pause
disp('transpusauneimatrici:K=A`')
K=A'
pause
disp('schimbareadimensiuniiuneimatrici:reshape(A,1,9)')

FACULTATEA DE MATEMATICINFORMATIC 21.01.2015


08:46:13
SPECIALIZAREA INFORMATIC
DISCIPLINA: REELE NEURONALE
L=reshape(A,1,9)

2. Scriei un program MATLAB care s genereze vectori/matrici i s afeze


informaii referitoare la acetia/acestea.
Rezolvare:
%Generareavectorilorsimatricilor
clearall
closeall
clc
disp('generareauneimatricinulecu2liniisi4coloane:zeros(2,4)')
A=zeros(2,4)
pause
disp('gener.uneimatriciunitatecu3liniisi2coloane;ones(3,2)')
ones(3,2)
pause
disp('gener.uneimatriciidenticecu3liniisi3coloane:eye(3)')
eye(3)
pause
disp('generareaunuivectorcupasliniar:a=1:0.1:2')
a=1:0.1:2
pause
disp('generareaunuivectorcupaslogaritmicb=logspace(1,3,5)')
b=logspace(1,3,5)
pause
disp('afisareadimensiuniloruneimatrici:size(A)')
A
size(A)
pause
disp('afisareadimensiuniiunuivector:length(x)')
a
length(a)

FACULTATEA DE MATEMATICINFORMATIC 21.01.2015


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)

FACULTATEA DE MATEMATICINFORMATIC 21.01.2015


08:46:13
SPECIALIZAREA INFORMATIC
DISCIPLINA: REELE NEURONALE

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

FACULTATEA DE MATEMATICINFORMATIC 21.01.2015


08:46:13
SPECIALIZAREA INFORMATIC
DISCIPLINA: REELE NEURONALE

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

FACULTATEA DE MATEMATICINFORMATIC 21.01.2015


08:46:13
SPECIALIZAREA INFORMATIC
DISCIPLINA: REELE NEURONALE

S-ar putea să vă placă și