LUCRARE DE LABORATOR NR. 5
SIMULAREA SOFTWARE
A RETELELOR NEURONALE MLP ( II )
1. SCOPUL LUCRARII
In aceasta lucrare se studiaza o retea neuronala multi-layer perceptron ( MLP ), antrenata pentru recunoasterea de forme, care are intrari analogice. Reteaua este antrenata cu sabloanele salvate intr-un fisier text, dupa care ea este testata cu date de intrare noi, diferite de cele pe care le-a invatat. De asemenea, se studiaza caracteristicile generale ale simulatoarelor de retele neuronale.
2. BREVIAR TEORETIC
In general, o retea neuronala poate fi implementata in trei moduri distincte:
-simulata soft, pe un calculator secvential
-simulata soft pe un calculator paralel (un sistem cu mai multe procesoare)
-implementata hard
In privinta utilizarii simulatoarelor, pentru rezolvarea unei aplicatii concrete, trebuie avute in vedere urmatoarele aspecte:
-Alegerea tipului de retea neuronala
Majoritatea retelelor neuronale utilizate practic sunt de tipul perceptron multistrat ( MLP ) si utilizeaza algoritmul de backpropagation pentru invatare. Algoritmul de backpropagation foloseste eroarea intre iesirile actuale (rezultate prin calcul, propagand inainte valorile de pe intrari, specificate de sabloane) si iesirile asteptate (cele impuse de sablonul curent), pentru a ajusta fiecare pondere. Ajustarea ponderilor se face secvential, plecand de la ultimul strat (cel de iesire), spre primul strat (cel de intrare).
-Alegerea intrarilor (numarul si tipul lor)
In general alegerea intrarilor este o problema dificila. Iesirile retelei sunt mai clar impuse de problema concreta analizata, pe cand intrarile nu. O regula empirica de alegere a intrarilor este urmatoarea: "cu cat mai multe date, cu atat mai bine! " Aceasta regula se aplica atat la numarul intrarilor unei retele, ca si la numarul sabloanelor de antrenare.
Intrarile suplimentare nu afecteaza acuratetea rezultatelor furnizate de retea in problema concreta rezolvata, chiar daca anumite intrari se dovedesc a fi neimportante in determinarea iesirii corecte. Totusi, toate simulatoarele au o limita superioara de neuroni pe care-i suporta, si deci si de intrari.
Trebuie ca atunci cand se strang date si se definesc intrarile retelei, sa nu se furnizeze retelei 2 vectori similari de intrari, care sa dea la iesire rezultate conflictuale. Spre exemplu, o retea ce recunoaste diverse fructe, ar putea sa identifice "mar " sau "pruna " (deci conflictual), bazat pe intrarile "rotund " si "rosu ".
Pentru a rezolva conflictul, trebuie introduse intrari aditionale ( marime, gust, etc.).
La fel de importanta ca si strangerea unui numar suficient de date de intrare este si modalitatea de prezentare a acestora, retelei. Marea majoritate a simulatoarelor existente accepta intrari ce variaza intre 0 si 1, sau intre -1 si +1. De aceea, datele reale trebuie sa fie preprocesate pentru a fi aduse in aceasta gama. Cele mai multe simulatoare realizeaza chiar ele aceasta preprocesare. Modul cum se aleg intrarile semnificative pentru retea si modul de setare al parametrilor in simulator, au drept rezultat obtinerea unei retele neuronale performante sau nu.
Se pot utiliza 2 tipuri de baza pentru intrari in retele neuronale:
-intrari booleene (de tipul TRUE/FALSE)
Astfel, pentru o imagine alb-negru ce trebuie recunoscuta de retea, intrarile ( "0" - pixel alb, "1" - pixel negru ) sunt de tip boolean. Aceste intrari se mai cheama si intrari binare.
-intrari analogice sunt cele care iau valori continue intre o valoare minima si una maxima. De exemplu, intre 0 si 1. Pentru datele de pe intrari de tip analogic, se recomanda ca gama lor de variatie sa nu fie prea mare (diferenta intre valoarea maxima asteptata si valoarea minima asteptata). In acest scop, daca o intrare analogica are o plaja mare de valori, poate fi eventual inlocuita cu o alta intrare ce foloseste diferenta intre valoarea analogica curenta si cea anterioara. In acest fel, aplicand diferenta, gama scade.
Cele mai multe retele ce rezolva probleme reale au atat intrari binare cat si intrari analogice. Tipul de intrare folosit (binara sau analogica) poate afecta performantele retelei.