reţele neuronale artificiale în matlab - bel.utcluj.ro · reţele neuronale artificiale în...

9
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: - Din linia de comandă, folosind funcţii specifice Neural Network Toolbox - Folosind interfeţele grafice Neural Network Fitting Tool (nftool) Pentru exemplificare, se propune următoarea situație: Se cere proiectarea unei rețele neuronale care să estimeze nivelul de grăsime din corpul unui pacient (bodyfat level) pe baza a 13 valori măsurate în cabinetul medical. bodyfatInputs - a 13x252 matrix defining thirteen attributes for 252 people. 1. Age (years) 2. Weight (lbs) 3. Height (inches) 4. Neck circumference (cm) 5. Chest circumference (cm) 6. Abdomen 2 circumference (cm) 7. Hip circumference (cm) 8. Thigh circumference (cm) 9. Knee circumference (cm) 10. Ankle circumference (cm) 11. Biceps (extended) circumference (cm) 12. Forearm circumference (cm) 13. Wrist circumference (cm)

Upload: duongnhi

Post on 09-Dec-2018

262 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Reţele Neuronale Artificiale în MATLAB - bel.utcluj.ro · Reţele Neuronale Artificiale în MATLAB Programul MATLAB dispune de o colecţie de funcţii şi interfeţe grafice, destinate

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: - Din linia de comandă, folosind funcţii specifice Neural Network Toolbox - Folosind interfeţele grafice Neural Network Fitting Tool (nftool)

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

Se cere proiectarea unei rețele neuronale care să estimeze nivelul de grăsime din corpul unui pacient (bodyfat level) pe baza a 13 valori măsurate în cabinetul medical. bodyfatInputs - a 13x252 matrix defining thirteen attributes for 252 people. 1. Age (years) 2. Weight (lbs) 3. Height (inches) 4. Neck circumference (cm) 5. Chest circumference (cm) 6. Abdomen 2 circumference (cm) 7. Hip circumference (cm) 8. Thigh circumference (cm) 9. Knee circumference (cm) 10. Ankle circumference (cm) 11. Biceps (extended) circumference (cm) 12. Forearm circumference (cm) 13. Wrist circumference (cm)

Page 2: Reţele Neuronale Artificiale în MATLAB - bel.utcluj.ro · Reţele Neuronale Artificiale în MATLAB Programul MATLAB dispune de o colecţie de funcţii şi interfeţe grafice, destinate

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

2

bodyfatTargets - a 1x252 matrix of associated body fat percentages, to be estimated from the inputs. Aproximarea funcţiilor cu RNA folosind interfeţele grafice Se va folosi o pentru exemplicare setul de date numit bodyfat_dataset, disponibilă în Matlab. Se deschide intefaţa Neural Network Fitting Tool cu comanda nftool Apăsați Next. Selectați bodyfatInputs și bodyfatTargets ca în fereastra de mai jos:

Page 3: Reţele Neuronale Artificiale în MATLAB - bel.utcluj.ro · Reţele Neuronale Artificiale în MATLAB Programul MATLAB dispune de o colecţie de funcţii şi interfeţe grafice, destinate

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

3

Care sunt dimensiunile vectorilor bodyfatInputs și bodyfatTargets?

Page 4: Reţele Neuronale Artificiale în MATLAB - bel.utcluj.ro · Reţele Neuronale Artificiale în MATLAB Programul MATLAB dispune de o colecţie de funcţii şi interfeţe grafice, destinate

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

4

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.

Page 5: Reţele Neuronale Artificiale în MATLAB - bel.utcluj.ro · Reţele Neuronale Artificiale în MATLAB Programul MATLAB dispune de o colecţie de funcţii şi interfeţe grafice, destinate

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

5

Apăsați Next, Train.

Page 6: Reţele Neuronale Artificiale în MATLAB - bel.utcluj.ro · Reţele Neuronale Artificiale în MATLAB Programul MATLAB dispune de o colecţie de funcţii şi interfeţe grafice, destinate

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

6

Se va deschide fereastra de antrenare, Neural Network Training.

Page 7: Reţele Neuronale Artificiale în MATLAB - bel.utcluj.ro · Reţele Neuronale Artificiale în MATLAB Programul MATLAB dispune de o colecţie de funcţii şi interfeţe grafice, destinate

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

7

Antrenarea a durat 15 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.

Page 8: Reţele Neuronale Artificiale în MATLAB - bel.utcluj.ro · Reţele Neuronale Artificiale în MATLAB Programul MATLAB dispune de o colecţie de funcţii şi interfeţe grafice, destinate

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

8

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.

Page 9: Reţele Neuronale Artificiale în MATLAB - bel.utcluj.ro · Reţele Neuronale Artificiale în MATLAB Programul MATLAB dispune de o colecţie de funcţii şi interfeţe grafice, destinate

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

9

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 = [33 135 67 35 92 82 105 60 37 23 35 27 14]' 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.