reţele neuronale artificiale în matlab - bel.utcluj.ro · rna sunt compuse din elemente simple,...

7
Inteligență computațională în sisteme decizionale complexe – Laborator 1 1 Reţele Neuronale Artificiale în MATLAB Programul MATLAB dispune de o colecţie de funcţii şi interfeţe grafice, destinate lucrului cu Reţele Neuronale Artificiale, grupate sub numele de Neural Network Toolbox. În cele ce urmează, se va descrie modul de lucru cu funcţiile de bază şi cu cu interfeţele grafice. RNA sunt compuse din elemente simple, care operează în paralel. RNA sunt inspirate de sistemul nervos uman. Cunoştinţele unei RNA sunt stocate sub formă de valori numerice asociate conexiunilor dintre neuroni, denumite ponderi. Antrenarea sau instruirea unei RNA înseamnă modificarea/ajustarea valorilor ponderilor. Cel mai des, RNA sunt antrenate astfel încât pentru o intrare dată, să returneze la ieşire o valoare cât mai apropiată de ieşirea dorită, procedeu exemplificat în figura de mai jos. Pentru antrenare, este necesar un set de date de antrenare (perechi intrare - ieşire). Cele trei tipuri de probleme care se pot rezolva cu reţele neuronale sunt: - Aproximare de funcţii (function fitting) - Clasificare (clustering) - Optimizare (optimization) 1. Aproximare de funcţii cu RNA Aproximarea funcţiilor cu RNA se poate rezolva în Matlab în trei moduri: - Din linia de comandă, folosind funcţii specifice Neural Network Toolbox - Folosind interfeţele grafice de antrenare Neural Network Tool (nntool) şi Neural Network Fitting Tool (nftool) Pentru exemplificare, se propune următoarea situație: Se cere proiectarea unei rețele neuronale care să estimeze (prezică) prețul (valoarea) unei case (în mii de dolari), considerând 13 aspecte geografice și imobiliare. Se consideră un set de date cu 506 exemple de case, cu cele 13 aspecte asociate lor, și valorile lor de pe piață. Filename: house_dataset Estimate the median value of owner occupied homes in Boston suburbs given 13 neighborhood attributes. An estimator can be found by Fitting the inputs and targets This data set has 506 samples. "housingInputs" is a 13x506 matrix with these rows: 1. per capita crime rate by town 2. proportion of residential land zoned for lots over 25,000 sq.ft. 3. proportion of non-retail business acres per town 4. 1 if tract bounds Charles river, 0 otherwise 5. nitric oxides concentration (parts per 10 million) 6. average number of rooms per dwelling

Upload: others

Post on 30-Aug-2019

25 views

Category:

Documents


0 download

TRANSCRIPT

Inteligență computațională în sisteme decizionale complexe – Laborator 1

1

Reţele Neuronale Artificiale în MATLAB

Programul MATLAB dispune de o colecţie de funcţii şi interfeţe grafice, destinate lucrului cu Reţele Neuronale

Artificiale, grupate sub numele de Neural Network Toolbox. În cele ce urmează, se va descrie modul de lucru cu funcţiile de bază şi cu cu interfeţele grafice.

RNA sunt compuse din elemente simple, care operează în paralel. RNA sunt inspirate de sistemul nervos uman. Cunoştinţele unei RNA sunt stocate sub formă de valori numerice asociate conexiunilor dintre neuroni, denumite ponderi. Antrenarea sau instruirea unei RNA înseamnă modificarea/ajustarea valorilor ponderilor.

Cel mai des, RNA sunt antrenate astfel încât pentru o intrare dată, să returneze la ieşire o valoare cât mai apropiată de ieşirea dorită, procedeu exemplificat în figura de mai jos. Pentru antrenare, este necesar un set de date de antrenare (perechi intrare - ieşire).

Cele trei tipuri de probleme care se pot rezolva cu reţele neuronale sunt: - Aproximare de funcţii (function fitting) - Clasificare (clustering) - Optimizare (optimization)

1. Aproximare de funcţii cu RNA

Aproximarea funcţiilor cu RNA se poate rezolva în Matlab în trei moduri: - Din linia de comandă, folosind funcţii specifice Neural Network Toolbox - Folosind interfeţele grafice de antrenare Neural Network Tool (nntool) şi Neural Network Fitting Tool (nftool)

Pentru exemplificare, se propune următoarea situație:

Se cere proiectarea unei rețele neuronale care să estimeze (prezică) prețul (valoarea) unei case (în mii de dolari), considerând 13 aspecte geografice și imobiliare. Se consideră un set de date cu 506 exemple de case, cu cele 13 aspecte asociate lor, și valorile lor de pe piață. Filename: house_dataset Estimate the median value of owner occupied homes in Boston suburbs given 13 neighborhood attributes. An estimator can be found by Fitting the inputs and targets This data set has 506 samples. "housingInputs" is a 13x506 matrix with these rows: 1. per capita crime rate by town 2. proportion of residential land zoned for lots over 25,000 sq.ft. 3. proportion of non-retail business acres per town 4. 1 if tract bounds Charles river, 0 otherwise 5. nitric oxides concentration (parts per 10 million) 6. average number of rooms per dwelling

Inteligență computațională în sisteme decizionale complexe – Laborator 1

2

7. proportion of owner-occupied units built prior to 1940 8. weighted distances to five Boston employment centres 9. index of accessibility to radial highways 10. full-value property-tax rate per $10,000 11. pupil-teacher ratio by town 12. 1000(Bk - 0.63)^2, where Bk is the proportion of blacks by town 13. % lower status of the population "housingTargets is a 1x506 matrix of median values of owner-occupied homes in $1000's. ---------- This data is available from the UCI Machine Learning Repository. Aproximarea funcţiilor cu RNA din linia de comandă

Pentru lucrul cu funcţii din linia de comandă, găsiţi mersul de lucru în Help-Neural Network Toolbox-Fitting a Function-

Using Command Line Functions. Aproximarea funcţiilor cu RNA folosind interfeţele grafice Se va folosi o pentru exemplicare setul de date numit housing, disponibilă în Matlab. load housing Se deschide intefaţa Neural Network Fitting Tool cu comanda nftool

Inteligență computațională în sisteme decizionale complexe – Laborator 1

3

Apăsați Next. Selectați p și t din fereastra de mai jos:

Care sunt dimensiunile vectorilor p, respectiv t?

Datele de intrare și cele de referință sunt mapate în intervalul [-1, 1]. Apăsați Next.

Care este procentul din setul de date total, al datelor de antrenare, testare, validare?

Apăsați Next. Fereastra următoare permite selectarea numărului de neuroni de pe stratul ascuns.

Inteligență computațională în sisteme decizionale complexe – Laborator 1

4

Apăsați Next, Train.

Se va deschide fereastra de antrenare, Neural Network Training.

Inteligență computațională în sisteme decizionale complexe – Laborator 1

5

Antrenarea a durat 14 epoci. Interfața oferă posibilitatea afișării graficelor erorii medii pătratice, a regresiei (corelația dintre valorile dorite – targets, și valorile obținute; corelație R apropiată de 1 – apropiere foarte mare a valorilor obținute de cele dorite).

Vizualizați toate tipurile de grafice disponibile din interfață.

Notă: valorile medii pentru MSE și R sunt disponibile după antrenare în fereastra principală, secțiunea Results.

Apăsați Next. Dacă rezultatele nu au fost satisfăcătoare, se poate relua antrenarea rețelei, sau se poate modifica numărul de neuroni de pe stratul ascuns, respectiv dimensiunea setului de date. Se pot realize și teste suplimentare.

Inteligență computațională în sisteme decizionale complexe – Laborator 1

6

Apăsați Next. Ultima fereastră a interfeței oferă posibilitatea salvării sub diferite forme a rezultatelor obținute și prelucrarea lor ulterioară. Se poate genera și modelul Simulink al rețelei.

Inteligență computațională în sisteme decizionale complexe – Laborator 1

7

Exerciții: 1. Vizualizați graficele disponibile din interfață. Cât de bună este rețeaua neuronală creată? 2. Utilizând rețeaua neuronală salvată acum în workspace (net), evaluați valoarea de ieșire a acesteia pentru vectorul de

valori de intrare: IN = [0.005 15 5.2 1 0.48 6.2 63.6 5.13 7 222 17.2 395.1 7.1] sim(net, IN’) Instrucțiunea sim(net, IN’) permite evaluarea rețelei neuronale net pentru valorile din vectorul de intrare IN. Semnul ‘ (apostrof) transformă vectorul de intrare din vector linie în vector coloană, pentru a putea fi aplicat la intrarea rețelei neuronale.