Simularea Software a Rețelelor Neuronale MLP

Laborator
4/10 (2 voturi)
Domeniu: Calculatoare
Conține 1 fișier: doc
Pagini : 10 în total
Cuvinte : 3139
Mărime: 14.15KB (arhivat)
Publicat de: Octaviu Costea
Puncte necesare: 0

Extras din laborator

SIMULAREA SOFTWARE

A RETELELOR NEURONALE MLP

1. SCOPUL LUCRARII

În 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 într-un fisier text, dupa care ea este testata cu date de intrare noi, diferite de cele pe care le-a învatat. De asemenea, se studiaza caracteristicile generale ale simulatoarelor de retele neuronale.

2. BREVIAR TEORETIC

În general, o retea neuronala poate fi implementata în trei moduri distincte:

-simulata soft, pe un calculator secvential

-simulata soft pe un calculator paralel (un sistem cu mai multe procesoare)

-implementata hard

În privinta utilizarii simulatoarelor, pentru rezolvarea unei aplicatii concrete, trebuie avute în 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 învatare. Algoritmul de backpropagation foloseste eroarea între iesirile actuale (rezultate prin calcul, propagând înainte 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, plecând de la ultimul strat (cel de iesire), spre primul strat (cel de intrare).

-Alegerea intrarilor (numarul si tipul lor)

În general alegerea intrarilor este o problema dificila. Iesirile retelei sunt mai clar impuse de problema concreta analizata, pe când intrarile nu. O regula empirica de alegere a intrarilor este urmatoarea: "cu cât mai multe date, cu atât mai bine!" Aceasta regula se aplica atât la numarul intrarilor unei retele, ca si la numarul sabloanelor de antrenare.

Intrarile suplimentare nu afecteaza acuratetea rezultatelor furnizate de retea în problema concreta rezolvata, chiar daca anumite intrari se dovedesc a fi neimportante în determinarea iesirii corecte. Totusi, toate simulatoarele au o limita superioara de neuroni pe care-i suporta, si deci si de intrari.

Trebuie ca atunci când se strâng 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 strângerea unui numar suficient de date de intrare este si modalitatea de prezentare a acestora, retelei. Marea majoritate a simulatoarelor existente accepta intrari ce variaza între 0 si 1, sau intre -1 si +1. De aceea, datele reale trebuie sa fie preprocesate pentru a fi aduse în 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 în simulator, au drept rezultat obtinerea unei retele neuronale performante sau nu.

Se pot utiliza 2 tipuri de baza pentru intrari în 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 între o valoare minima si una maxima. De exemplu, între 0 si 1. Pentru datele de pe intrari de tip analogic, se recomanda ca gama lor de variatie sa nu fie prea mare (diferenta între valoarea maxima asteptata si valoarea minima asteptata). În acest scop, daca o intrare analogica are o plaja mare de valori, poate fi eventual înlocuita cu o alta intrare ce foloseste diferenta între valoarea analogica curenta si cea anterioara. În acest fel, aplicând diferenta, gama scade.

Cele mai multe retele ce rezolva probleme reale au atât intrari binare cât si intrari analogice. Tipul de intrare folosit (binara sau analogica) poate afecta performantele retelei.

Numarul de intrari corespunde numarului de neuroni din stratul de intrare.

-Alegerea iesirilor

În general, numarul iesirilor este direct impus de aplicatie. Sunt necesari un numar de neuroni de iesire egal cu numarul de clase distincte pe care trebuie sa le recunoasca reteaua. De exemplu, o retea neuronala care trebuie sa recunoasca cifrele zecimale, va avea la iesire 10 neuroni. O retea ce trebuie sa recunoasca literele mari ale alfabetului, la iesire va avea 27 de neuroni.

Unele din regulile ce se aplica intrarilor, se aplica si pentru iesiri. De exemplu, o retea neuronala ce face o predictie asupra rezultatului unui joc sportiv, ofera rezultate mai bune daca la iesiri nu se asteapta valoarea absoluta a scorului, ci un rezultat de tipul învingator / egal / învins.

-Alegerea numarului de strate ascunse si a numarului de neuroni din ele

O alta decizie care trebuie facuta în proiectarea unei retele neuronale pentru o aplicatie concreta, este alegerea numarului de straturi ascunse si alegerea numarului de neuroni din fiecare strat ascuns. În probleme de clasificare (si nu de aproximare sau de modelare), când la iesire reteaua recunoaste o clasa dintr-un set finit de clase posibile ( spre exemplu, recunoaste cifra 1 din 10 cifre posibile ), este suficient un singur strat ascuns. Se pot folosi eventual si mai multe straturi ascunse (desi este rar acest caz), pentru ca reteaua sa poata fi antrenata mai rapid.

Nu exista o formula dupa care sa se calculeze numarul de neuroni necesari într-un strat ascuns. Acest numar se determina experimental. De aici, si necesitatea folosirii simulatoarelor, care permit modificarea numarului de neuroni folositi. În general cel mult 2 straturi ascunse sunt suficiente pentru marea majoritate a aplicatiilor.

-Antrenarea retelei

Pentru a simplifica procesul de antrenare, un simulator ar trebui sa permita si antrenarea în trepte a retelei. Initial, eroarea de învatare a sabloanelor se seteaza cu o valoare mare. De exemplu, pentru o retea ce trebuie sa învete sabloanele cu o toleranta finala de 1%, pentru a micsora timpul de antrenare, putem fixa initial eroarea la 10%. În acest fel , se câstiga încredere ca reteaua converge. Apoi putem micsora aceasta eroare ( în trepte ), si sa reluam antrenarea cu ponderile gasite de la treapta precedenta. Repetam, pâna când se atinge eroarea impusa de 1%. Prin aceasta metoda de antrenare în trepte, adesea retelele neuronale converg mai rapid si generalizeaza mai bine.

În cazul în care dupa o alegere atenta a arhitecturii retelei, ea totusi nu converge sau generalizeaza prost, trebuie în general reanalizate sabloanele de antrenare folosite, modificându-le. Se poate însa reantrena reteaua cu aceleasi sabloane, dar prezentate în alta ordine. Sau se poate antrena reteaua în modul "batch": ajustarea ponderilor nu se mai face dupa fiecare sablon, ci, dupa prezentarea întregului set de sabloane.

De asemenea, atunci când sunt probleme de convergenta sau de generalizare, se poate încerca folosirea mai multor retele neuronale interconectate, în loc de una singura.

Preview document

Simularea Software a Rețelelor Neuronale MLP - Pagina 1
Simularea Software a Rețelelor Neuronale MLP - Pagina 2
Simularea Software a Rețelelor Neuronale MLP - Pagina 3
Simularea Software a Rețelelor Neuronale MLP - Pagina 4
Simularea Software a Rețelelor Neuronale MLP - Pagina 5
Simularea Software a Rețelelor Neuronale MLP - Pagina 6
Simularea Software a Rețelelor Neuronale MLP - Pagina 7
Simularea Software a Rețelelor Neuronale MLP - Pagina 8
Simularea Software a Rețelelor Neuronale MLP - Pagina 9
Simularea Software a Rețelelor Neuronale MLP - Pagina 10

Conținut arhivă zip

  • Simularea Software a Retelelor Neuronale MLP.doc

Alții au mai descărcat și

Arhitectura calculatoarelor - Intel vs AMD

Rezultatele din testul 3DS Max 7 SPECapc Test Testul alaturat consta in crearea modelelor 3D, modificarea si randarea scripturilor. Conform...

Autentificarea prin semnătură digitală

Introducere O semnatura digitala reprezinta o informatie care il identifica pe expeditorul unui document. Semnatura digitala este creata prin...

Sistem de Prognosticare a Unei Avarii

Acest sistem calculeaza gradul de avariere a unei cladiri în cazul unui cutremur, precum si posibila necesitate a reconstructiei cladirii (partiala...

Rețele Neuronale

Retele neuronale În cea mai general forma a sa, o retea neuronala este o masina proiectata pentru a modela felul în care creierul rezolva o...

Ai nevoie de altceva?