Retele neuronale: Notiuni introductive

Created by Alin Brindusescu on 2011-01-16 16:30:45

Domeniul retelelor neuronale a avut o viata zbuciumata cunoscind perioade in care activitatea de cercetare a fost exprem de intensa si perioade in care acesta a fost declarat complet "mort" pentru ca apoi sa revina in forta stirnind chiar mai mult interes, atit in rindul cercetatorilor cit si a publicului larg prin multitudinea de aplicatii practice pe care le are sau le poate avea.

Putina istorie
Pe la sfirsitul secolului XIX inceputul secolului XX au fost facuti primi paside catre cercetatori ca si Hermann von Helmholz, Ernest Mach si Ivan Pavlov care emit teorii asupra procesul de invatare, conditionarii, etc. Aceste teorii nu au adus nici un fel de modele matematice si nu pot fi considerate ca un inceput pentru domeniul retelelor neuronale.
Adevaratul inceput al acestui domeniu se situeaza la inceptul anilor ''40 cind Warren McCulloch si Walter Pitts pun in evidenta primul model formal al neuronului evidentiind capacitatea de calcul a acestuia si posibilitatea de implementare cu ajutorul circuitelor electronice.

Fig. 1. Citeva repere pe axa timpului

Pe la sfirsitul anilor ''40 Hebb, avind la baza teoriile lui Pavlov, enunta principiul adaptarii permeabilitatii sinaptice conform caruia de fiecare data cind o conexiune sinaptica este folosita permeabilitatea ei creste. Acest principiu sta la baza procesului de invatare prin modificarea ponderilor sinaptice.
In ani ''50 apare si plima aplicatie practica, Frank Rosenblatt realizeaza o implementare hard, numita perceptron, utilizata in recunoasterea caracterelor. Tot in ani ''50 Bernard Windrow si Ted Hoff dezvolta algoritmi de invatare pentru retele neuronale liniare cu un singur nivel de unitati functionale. Algoritmi sint bazati pe minimizarea erorii pe setul de date de antrenare.
In anul 1969 Marvin Minsky si Seymor Papert publica o carte numita "Perceptrons" care pune in evidenta limitarile la care sint supuse retelele neuronale cu un singur nivel de unitati functionale. Acesta parea a fi sfirsitul atit de noului domeniu al retelelor neuronale. Dupa publicarea acestui material, corelata cu lipsa unor echipamente de calcul digital suficient de puternice, face ca o mare parte din companiile care investeau in cercetarile din acest domeniu sa se reorienteze, iar o mare parte dintre cercetatori abandoneaza cercetarile.
Ani ''70 sint mult mai linistit si doar citiva cercetatori mai sint cu adevarat activi in domeniu. Printre ei merita amintiti Teuvo Kohonen, Sames Anderson precum si Stephen Grossberg (foarte activ in cercetarea retelelor cu auto-organizare).
Anii ''80 aduc pe linga noi descoperiri in domeniul retelelor neuronale si calculatoare digitale mai puternice capabile sa ajute cercetatorii in demersurile lor. Astfel ca la inceputul anilor ''80 o data cu o noua abordare a retelelor folosind formalismul fizicii statistice prin punerea in evidenta a a analogiei intre retelele recurente (destinate memorarii asociative) si sistemele de spini magnetici propusa de John Hopfield se marcheaza inceputul unei noi perioade de interes in domeniu caracterizata prin extinderea domeniilor de aplicabilitate si volumul mare de implementari soft si hard folosite in aplicatiile practice.
Astfel ca descrierea intr-o maniera accesibila a algoritmul de invatare al retelelor cu mai multe nivele bazat pe ideea minimizarii unei functii de eroare calculata pornind de la un set de antrenare de catre David Rumelhart si James McClelland nu face sa dea deci un impuls cercetarilor din domeniu. Algoritmul este cunoscut sub denumirea de backpropagation provenita de la faptul ca pentru determinarea ajustarilor ce vor fi aplicate ponderilor se propaga prin retea in sens invers un semnal de eroare.

Putina biologie
Pentru a putea citi aceste informatii dumneavoastra folositi o retea de 1011 neuroni biologici cu un numar de 104 conexiuni pe element. Cu toate ca neuroni biologici sint mult mai lenti decit circuitele electronice, avind un timp de raspuns de 10-3 ms fata de 10-9 ms cit au unele circuite electronice, datorita structuri puternic paralele pot procesa informatia mult mai repede si mai bine decit orice circuit electronic.

Fig. 2. Retea de neuroni biologici

nModul de functionare al neuronilor biologici este inca intens studiat, cu toate acestea pina in acest moment nu se cunosc inca multe din fenomenele care au loc in procesul de invarare. Cu toate ca la nivel biologic procesele care au loc la nivelul creierului sint mult mai complexe se pot evidentia citeva asemanari intre cele doua retele (arificiale si biologice). Astfel partile componente atit la nivel biologic dar si artificial, sint unitati simple care realizeaza diferite operati aritmetice puternic interconectate. De asemenea functionarea celor doua sisteme este determinata de conexiunile existente.

Fig. 3. Retea de neuroni artificiali

Calcul inteligent
Calculul neuronal (o alta denumire folosita pentru retele neuronale) alaturi de calculul fuzzy, calculul evolutiv si alte metode de calcul in care cercetarile sint in stadiu incipient (calcul molecular, calcul membranar, calcul cuantic) face parte dintr-un domeniu mult mai larg numit calcul inteligent. Toate aceste directii ale calcului inteligent incearca sa implementeze modele din lumea fizica si biologica pentru a putea rezolva anumite tipuri de probleme. Apare firesc intrebarea: de ce este nevoie de astfel de abordari in rezolvare problemelor? Cu toata progresele intregistrate in matematica si evolutia sistemelor de calcul din ultimi ani anumite tipuri de probleme nu se pot inca modela matematic sau implementarea acestora ar necesita timpi de calcul inacceptabili. Din acest punct de vedere am putea incadra problemele in doua clase:

  • probleme "rau-puse" - fie nu se cunoaste inca un algoritm care sa duca la un rezultat, fie timpul necesar rularii unui astfel de agoritm este inacceptabil;
  • probleme "bine-puse" - li se poate asocia un model formal pe baza caruia se poate dezvolta o metoda de rezolvare cu caracter algoritmic cu timpi de executie acceptabili.
Calculul inteligent este un domeniu al Inteligentei Artificiale care se ocupa cu rezvoltarea de tehnici de rezolvare a problemelor "rau-puse".
Calculul neuronal, ca parte a calcului inteligent se ocupa in general de rezolvarea problemelor de asociere (clasificare, aproximare, predictie, etc.). Principial pot reprezenta orice functie calculabila, dar ceea ce este mult mai important este ca pot invata orice astfel de functie pornind de la exemple.
Clase de probleme care se pot rezolva cu ajutorul retelelor neuronale:
  • Clasificare si recunoastere: pornind de la o descriere sintetica a unui obiect ii vom asocia un indicator al clasei careia apartine obiectul. Ex: recunoasterea caracterelor, recunoasterea vorbirii, clasifiacarea semnalelor (ex: clasificarea electrocardiogramelor in normale sau patologice), etc.
  • Gruparea si categorizarea datelor: similara problemei de clasificare cu diferenta ca antrenarea retelei se realizeaza pornind doar de la datele de intrare, fara a specifica si clasele carora le apartin. Clasele sint construite pornind doar de la similaritati existente in datele de intrare. Ex: analiza datelor si compresia datelor.
  • Aproximare si estimare: extragerea dependentei functionale dintre doua marimi pornind de la un set de valori ale celor doua marimi (in general valorile sint alterate de zgomot).
  • Predictie: aproximarea urmatoarei valori din serie. Ex: predictia evolutiei stocurilor, predictia in meteorologie, etc.
  • Optimizare: in determinarea unei valori care satisface anumite restrictii si care optimizeaza o functie obiectiv deoarece e suficient sa se obtina solutii suboptimale. Ex: proiectarea circuitelor electronice, alocrea resurselor, probleme de rutare in retea, etc.
  • Stocarea si regasirea informatiei dupa continut: RN permit stocarea informatiei astfel incit aceasta sa fie ulterior regasita pornind de la indicii legate de continut (indiciile pot fi portiuni din informatia stocata). Ex: proiectarea bazelor de date multimedia.
  • Modelare si control adaptiv: Controlul unui sistem dinamic se refera la a determinarea un semnal de control, u(t), care asigura producerea unui semnal de iesire dorit y(t). Reteaua neuronala este antrenata pornind de la un model de referinta.
  • Prelucrarea si analiza semnalelor.
Pina acum am discutat despre istorie, despre neuroni biologici, despre tipurile de probleme care pot fi rezolvate, dar totusi ce este o retea neuronala?
O retea neuronala este un ansamblu de unitati functionale amplasate in nodurile unui graf orientat si intre care circula semnale de-a lungul arcelor grafului.
Elemente definitorii:
  • Arhitectura: modul de amplasare si interconectare al unitatilor functionale. Determina fluxul informational
  • Functionarea: modul in care fiecare unitate functionala in parte si reteaua neuronala ca ansamblu transforma semnalele de intrare in semnale de iesire. Influentata de modul de interconectare al unitatilor functionale (arhitectura).
  • Adaptarea: specifica modul de stabilire al parametrilor ajustabili astfel incit reteaua sa fie capabila sa rezolve anumite probleme. Reguli de modificare a parametriolor -> algoritm de aplicare a acestor reguli.
O prezentare aferenta acestui subiect este disponibila aici.




Biblioigrafie:

  1. Daniela Zaharie, "Curs Retele neuronale"
  2. Ben Krose and Patrick van der Smagt, "An introduction to Neural Network", Amsterdam, 1996, University of Amsterdam.
  3. Nikola K. Kasabov, "Foundation of Neural Networks, Fuzzy systems, and Knowledge Engineering", Cambridge, The MIT Press, 1998.
  4. Bernard Widrow and Michael A. Lehr, "30 Years of adaptive neural networks:Perceptron, Madaline, and Backpropagation",Proceedings of the IEEE, vol. 78 no.9,September 1990.
  5. Dave Anderson and George McNeill,"ARTIFICIAL NEURAL NETWORKS TECHNOLOGY", Kaman Sciences Corporation, 1992, New York.
  6. Dumitrescu, D., Costin, H. - Retele neuronale; teorie si aplicatii. Teora, Bucuresti, 1996.


Comments: work in progress!

Search

Ads