Sunteți pe pagina 1din 104

CURS SISTEME FUZZY SI RETELE NEURONALE

STRUCTURA ORE

EVALUARE

OBS. Lucrarile neefectuate se recupereaza.

Plata lucrarilor recuperate se face la caseria universitati.

1
PARTEA I

SISTEME FUZZY

Metodele de conducere conventionala se bazeaza pe o modelare corespunzatoare a


sistemului supus reglarii si o tratare analitica cu ajutorul functiilor de transfer sau a ecuatiilor de
stare. În majoritatea cazurilor, o tratare completa a problemei conducerii impune cunostinte
avansate de matematica si sisteme de conducere.
In contrast cu tehnicile conventionale, metodele fuzzy de conducere ofera solutii mult mai
pragmatice, cu evidente facilitati de aplicare In domenii diverse, impunând cunostinte de nivel
acceptabil in domeniul sistemelor, logica de control si tehnologie.
Utilizarea logicii fuzzy în implementarea unor sisteme de conducere in conditiile absentei
unei informatii totale asupra sistemului a reprezentat, de asemenea, unul din factorii care au
determinat larga raspandire a controlului fuzzy in cele mai diverse domenii. Am asistat si
asistam la o adevarata explozie a tehnicilor de implementare de tip fuzzy atat in problemele
clasice de control cat si in domeniul sistemelor expert, ale inteligentei artificiale sau in
complexele probleme de decizii in domeniul economic.
Conceptul de Logica Fuzzy a fost introdus pentru prima data de Lotfi A. Zadeh de la
Universitatea din California, Berkley, in 1965 în lucrarea Fuzzy Sets . La acea epoca, de
afirmare a calculatoarelor numerice bazate pe logica exacta 0, 1, un astfel de concept parea
neverosimil. Zadeh, prin aceasta logica fuzzy a impus o alta modalitate de tratare a problemelor
in care marimile ce determina evolutia unui sistem nu au frontierele clar definite, 0 sau 1, alb sau
negru, aceasta putand fi asociate unei anumite zone incerte, "gri". De fapt, logica fuzzy da o
noua interpretare a "logicii cu mai multe valori" formulata de Lukasievici . De exemplu,
sistemele ternare (cu trei valori logice 0, 1/2, 1) au fost studiate in nenumarate lucrari de algebra
de comutatie, dar Zadeh a introdus conceptul de multime fuzzy, "vaga" pentru cazurile când
frontiera valorii 1/2 are o caracteristica incerta.
Primele aplicatii ale acestui nou concept au aparut in jurul anilor 1975 în domeniile
economic si medicina. Ulterior, japonezii au introdus metodele fuzzy în sistemele de control cu
aplicatii diverse în industrie sau în echipamente electrocasnice.
Sfarsitul secolului trecut marcheaza o crestere spectaculoasa a metodelor fuzzy datorata
atat noilor domenii de aplicatie: robotica, inteligenta artificiala, industrie usoara, industria
materiilor compozite, navigatie, economie, etc., cât si extinderii geografice a noilor utilizatori în
SUA si Europa.
PRINCIPIUL LOGICII FUZZY
Logica fuzzy poate fi interpretata ca un concept de implementare a logicii umane in
problemele de tip ingineresc. In limbajul uman exista diferite tipuri de inceritudini numite
frecvent "incertitudini lexicale" care identifica imprecizia in evaluarea unor concepte sau in
stabilirea unor concluzii. Sa consideram universul X definit de multimea valorilor unghiulare ale
2
unui brat de robot in coordonate cilindrice. In jurul pozitiei de echilibru a bratului se pot defini
urmatoarele etichete lingvistice: ZERO, POZITIV MEDIE, POZITIV MARE, NEGATIV
MEDIE, NEGATIV MARE, ceea ce corespunde unei delimitari in coordonate unghiulare ca cea
sugerata in figura 1. Acestora li se pot asocia functiile de apartenenta reprezentate in figura 2.

Fig. 1. Delimitari in coordonate unghiulare

Elementele prezentate mai sus permit introducerea conceptului de "multime fuzzy" si


identificarea elementelor sale specifice. O multime clasica (multime crisp) este definita ca o
colectie de elemente sau obiecte xÎX care poate fi finita, numarabila sau nu. Daca consideram
acum o submultime A, AÍX, un element x poate sa "apartina lui A" sau sa "nu apartina lui A".
Daca xÎA atunci declaratia "apartine lui A" este adevarata, in caz contrar fiind falsa.

O multime fuzzy este o multime de perechi ordonate:

(1)

unde este functia de apartenenta a lui x in . De exemplu, sa consideram pozitia


bratului . Pentru cele 5 variabile lingvistice reprezentate în Figura 2, pozitia va
fi definita prin:

(2)

(3)

3
(4)

(5)

(6)

Deci, multimea fuzzy asociata multimii POZITIV MARE va fi:

(7)

Pentru submultimea ZERO obtinem:

(8)

In mod similar pot fi construite submultimile fuzzy pentru celelalte functii de apartenenta
prezentate in figura 2.

Fig. 2 Submultimile fuzzy pentru celelalte functii de apartenenta

O notatie destul de frecvent intalnita in literatura de specialitate pentru un univers de


discurs discret si finit este data de:

(9)

iar in cazul universului de discurs continuu si infinit se utilizeaza:

4
(10)

FUNCŢII DE APARTENENTA
Exemplele precedente au pus in evidenta importanta cunoasterii functiei de apartenenta in
conditiile definirii corecte a unei multimi fuzzy. Conform elementelor prezentate anterior,
considerand X un univers de discurs si o submultime A a lui X, atunci submultimii fuzzy i se
asociaza functia caracteristica, functia de apartenenta:

prin care este specificat gradul prin care x este un membru al submultimii A.
Formele cele mai des intalnite ale functiilor de apartenenta in aplicatii industriale sunt
cele triunghiulare si trapezoidale (figura 3) .

Fig. 3 Funcţii de apartenenta triunghiulare si trapezoidale


Gradul de apartenenta este exprimat, in aceste cazuri, prin relatii liniare. In mod normal,
aceste functii sunt definite prin punctele de referinta M1, M2, M3 sau M1, M2, M3, M4, respectiv.
Sunt utilizate de asemenea si alte forme (figura 4).

5
Fig. 4 Funcţii de apartenenta "clopot"

definite prin relatiile:

; (11)

respectiv:

; (12)

unde x0 defineste pozitia varfului pentru μ=1 iar a reprezinta largimea domeniului.

O functie de apartenenta care deriva din caracteristica trapezoidala si cea definita de


relatia (12) poate fi determinata de relatiile :

; (13)

; (14)

; (15)

Forma acestei functii este prezentata în figura 5.

6
Fig. 5 Funcţia de apartenenta pentru relatiile 13,14,15.

Forma generala a unei functii de apartenenta este prezentata in figura 6. In structura


reprezentarii distingem urmatoarele zone:

  baza functiei de apartenenta definita ca acea regiune a universului de discurs pentru care
.

  suportul corespunde acelei regiuni a universului pentru care .

  frontierele functiei de apartenenta sunt definite ca acele regiuni pentru care


. Punctelor de pe frontiera le sunt asociate o "anumita incertitudine".

Fig. 6 Forma generala a unei functii de apartenenta

7
STRATEGIA DE CONTROL LINGVISTICA
Sa reconsideram cazul comenzii unui brat de robot (figura 1). Sa presupunem ca dorim sa
miscam bratul din pozitia initiala ( ) in pozitia de origine, dorita ( ). Conducerea
conventionala a bratului este bazata pe procesarea erorii,

(16)
utilizand regulatoare standarde PI sau PID (Fig.7).

Fig. 7 Sistem de conducere conventional


Algoritmul de control al bratului determină o lege de variatie a cuplului de actionare M(t)
astfel încat eroarea stationară a sistemului sa tinda catre valoarea zero.

(17)
O astfel de abordare impune o analiza exacta a miscării bratului, determinarea ecuatiilor
diferentiale ce guverneaza miscarea precum si calculul corespunzator al parametrilor
regulatorului in scopul obtinerii performantelor dorite.
O tratare cu totul diferita de procedura de control conventionala este oferita de asa numita
"strategie de control lingvistica". Un operator uman poate realiza un control cu performante
acceptabile printr-o evaluare euristica a pozitiei (a erorii de urmarire) si luarea unor decizii
corespunzatoare. În esenta, un operator va actiona dupa urmatoarele reguli:
1.                        Porneste bratul din pozitia initiala cu o valoare "medie" a cuplului M.
2.                        Daca distanta fata de pozitia dorita "mare", creste valoarea cuplului la o
valoare "mare".
3.                        Daca distanta este "medie" el micsoreaza valoarea cuplului la o valoare
"medie".
4.                        Daca distanta este "zero" valoare cuplului este redusa la "zero" sau se
poate impune chiar o valoare "negativa zero" astfel încât sa fie realizata oprirea în pozitia dorita.

Regulile precizate impun introducerea unor multimi fuzzy corespunzatoare pe universul


de discurs reprezentat de "cuplul de actionare". Conventional acestea vor fi notate prin:
NEGATIV ZERO, POZITIV ZERO, MEDIE, MARE si carora li se va asocia functii de
apartenenta de tip triunghiular (figura 8).

8
Fig. 8 Functii de apartenenta ale cuplului de actionare

Scrise într-un formalism specific controlului fuzzy, regulile de mai sus sunt specificate
prin asa numitele "reguli If-Then".

Regula 1 If Unghiul=POZITIV MARE

Then Cuplul=MARE

Regula 2 If Unghiul=POZITIV MEDIU

Then Cuplul=MEDIE

Regula 3 If Unghiul=ZERO

Then Cuplul=NEGATIV ZERO

Regulile prezentate mai sus definesc asa numitul mecanism de "inferenta" ce reprezinta o
etapa importanta în introducerea conceptului "fuzzy" într-un sistem de conducere. Evident,
aceste reguli au, în acest exemplu, o forma simpla, corespunzând problemei tratate.

Sa presupunem ca miscarea bratului din pozitia initiala pâna în pozitia dorita face parte
dintr-un ciclu tehnologic de preluare a unei piese supusa unui proces de tratare termica.
Introducând o noua variabila TEMPERATURA , asociindu-i acesteia domeniile:
TEMPERATURĂ JOASĂ, TEMPERATURĂ MEDIE, TEMPERATURĂ MARE si asociindu-
le functiile de apartenenta din figura 9, regulile prezentate mai sus vor introduce conditii
suplimentare. Aceste conditii sunt impuse în corpului regulii prin operatori sI (AND), respectiv
SAU (OR), în functie de logica interpretarii.

9
Astfel, noile reguli vor avea forma:

Regula 1 IF Unghiul=POZITIV MARE AND Temperatura =

TEMPERATURA JOASĂ

THEN Cuplul=POZITIV ZERO

Regula 2 IF Unghiul=POZITIV MEDIU AND Temperatura =

TEMPERATURĂ MEDIE

THEN Cuplul=MARE

Fig. 9 Functii de apartenenta ale variabilei Temperatura

Regula 1 se interpreteaza astfel: daca piesa ce urmeaza a fi preluata nu este suficient


incalzita (TEMPERATURĂ JOASĂ) atunci miscarea bratului nu este necesara
(Cuplu=POZITIV ZERO).

Pentru Regula 2 avem urmatoarea interpretare: daca Temperatura atinge valoarea necesara
(domeniul TEMPERATURĂ MEDIE) si daca bratul are pozitia initiala (Unghiul=POZITIV
MARE) atunci bratul este pus în miscare (Cuplu=MARE) pentru prinderea piesei, etc.

Desigur, în alte situatii pot apare si operatori de tipul SAU (OR) sau negatie (NOT) care
implementeaza în concept fuzzy logica clasica.

x OPERATORI IN LOGICA FUZZY


Operatorii uzuali NEGAŢIE, sI, SAU sunt tratati in logica fuzzy prin aplicarea regulilor
"min", "max" asupra functiilor de apartenenta.

10
Operatorul SAU (OR)

Se vor considera trei multimi fuzzy , , , definite pe acelasi univers de discurs X.


Operatorul SAU corespunde operatiei de reuniune:

(18)
In tratarea fuzzy, operatorul este realizat prin functia de maxim aplicata la nivelul
functiilor de apartenenta (figura 10):

(19)

În cazul în care variabilele sunt diferite, procedura se pastreaza:

(20)

Evident ca anumite proprietati ale algebrei logice conventionale (booleene),


comutativitatea si idempotenta se pastreaza.

(21)

(22)

Operatorul SAU poate fi construit si prin operatia aritmetica de adunare, mai precis de
mediere

(23)

11
Fig. 10 Operatorul SAU realizat prin "maximum"

Divizarea prin 2 s-a impus pentru a exclude eventualele depasiri a valorii 1 a functiilor
rezultate prin însumare.

Operatorul SI (AND)

Ca si In algebra conventionala acest operator se obtine prin operatia de intersectie realizata


la nivelul functiilor de apartenenta prin operatorul "minim":

(24)

(25)

In figura 11 este prezentat operatorul sI prin operatia de "minim" aplicata functiilor de


apartenenta.

Toate proprietatile descrise mai sus se regasesc si la acest operator:

(26)

(27)

12
(28)

In foarte multe aplicatii, operatorul sI este realizat prin operatia aritmetica de Inmultire:

(29)

Fig.11 Operator SI realizat prin operatia "minimum"

Operatorul NEGAŢIE (NOT)

Acest operator realizeaza complementul functiei de apartenenta în raport cu 1 (figura 11):

(30)

(31)

13
PROPRIETATI GENERALE ALE UNUI SISTEM DE CONDUCERE
ÎN LOGICA FUZZY

Sistemele conventionale de conducere ale unui robot (ale componentelor sale mecanice) se
încadreaza în configuratia clasica a sistemelor de reglare (figura 12).

Fig. 12
Sistem

conventional de conducere

Intr-o astfel de structura, valoare dorita a variabilei de pozitie (de referinta) qd este
comparata cu valoarea reala masurata de traductor (qT). Eroarea rezultata este procesata intr-un
regulator care genereaza marimea de comanda a sistemului de actionare u si prin aceasta este
determinata miscarea elementului mecanic (bratul robotului):

Regulatoarele uzuale utilizate in aceste sisteme sunt de tipul P, PI si PID, ele asigurand, in
conditii de alegere corespunzatoare a parametrilor regulatorului, performantele de control dorite.

Fig. 13 Sistem de conducere în logica fuzzy

Un sistem de conducere în logica fuzzy (SCLF) respecta configuratia generala a oricarui


sistem de conducere, rolul regulatorului conventional fiind preluat de un Controler în Logica
Fuzzy (CLF) (fig. 14).

Un CLF va implementa, deci, un algoritm de conducere care, prin procesarea erorii e (sau
a unui vector eroare ) sa determine performantele calitative dorite
pentru întregul sistem de conducere, în mod curent obtinerea unei erori stationare zero.

14
In contrast cu regulatorul standard, CLF nu implementeaza o relatie mate-matica bine
definita (algoritmul de reglare) ci utilizeaza inferente cu mai multe re-guli bazate pe variabile
lingvistice si care sunt tratate prin operatori în logica fuzzy.

Configuratia generala a unui CLF cuprinde trei parti (figura 14) :

  Fuzificare

  Inferente (baza de reguli)

  Defuzificare.

Fig. 14 Structura unui CLF

Blocul de fuzificare transforma datele de intrare, eroarea sistemului, In marimi fuzzy,


atribuind acestor marimi variabile lingvistice si asociindu-le functii de apartenenta
corespunzatoare.

Blocul de inferente reprezinta partea principala a unui CLF. Acest bloc genereaza legea de
control sub forma unei familii de reguli logice de tipul IF...THEN ce descriu relatiile între
intrarea e (eroare) si iesirea u a controlerului. Adaptând un model direct, aceste reguli
implementeaza de fapt o lege de forma generala:

(32)

Din considerente practice, implementarea unei astfel de legi pentru este extrem de
complexa si dificil de aplicat. În mod curent, legea de control de mai sus capata forma
simplificata:

15
(33)

sau:

(34)

Existenta unei legi de conducere nu înseamna ca CLF poate fi definit printr-o functie de
transfer sau printr-o ecuatie de diferente. Legea de control este generata prin baza de reguli
IF...THEN sub forma:

(35)

si deci iesirea actuala se obtine sub forma:

(36)

un astfel de CLF este numit CLF-Mamdani dupa numele cercetatorilor Mamdani si


Assilian care l-au propus prima data (figura 15) .

Fig.15

Fiecare din regulile bazei este caracterizata printr-o parte IF numita "antecedent" si o parte
THEN numita "consecinta". Antecedentul unei reguli contine setul de conditii, consecinta
contine concluzia. Modul în care opereaza CLF-ul este urmatorul: daca conditiile antecedentului
sunt satisfacute, atunci concluzia, consecinta, este activa. Deci CLF-ul poate fi privit ca un
sistem care are ca intrari variabilele incluse în antecedentele regulilor si ca iesire variabila
inclusa în consecinta. Deci, se va putea defini eroarea e(k) si variatia ei Δe(k) ca intrari în sistem,
iar iesirea poate fi reprezentata de variatia Δu(k) (figura 16). Un exemplu de regula poate fi
urmatorul:

IF e(k) este POZITIV AND Δe(k) este ZERO

THEN Δu(k) este POZITIV

...

16
Este evident ca intrarile si iesirile unui CLF sunt stari, sau substari ale Intregului sistem
controlat, deci CLF poate fi privit si ca un controler de variabila de stare guvernat de o familie
de reguli si un mecanism de inferenta fuzzy.

Ultimul bloc al unui CLF, blocul de defuzificare, asigura formarea unor semnale crisp,
prin metode specifice, compatibile cu sistemele de actionare utilizate în controlul robotilor.

Elementele prezentate mai sus pot pune in evidenta caracteristicile generale ale sistemelor
conduse prin metode bazate pe logica fuzzy si permit identificarea avantajelor si dezavantajelor
acestor noi concepte de conducere.

Avantajele esentiale pot fi sumarizate in urmatoarele :

  nu se impune un model precis al sistemului condus;

  strategia de conducere se bazeaza pe operatori lingvistici si o baza de reguli usor de


implementat;

  pot fi conduse procese complexe cu neliniaritati dificil de modelat;

  implementarea se poate realiza tehnologic relativ facil fie prin proiectarea unor
configuratii particulare de controlere, fie prin utilizarea unor procesoare dedicate.

Dezavantajele utilizarii acestor sisteme sunt:

  nu exista o metodica precisa pentru realizarea tuturor fazelor implementarii unui CLF:
fuzificare, inferente, defuzificare, în multe situatii solutiile adoptate având un caracter euristic,
artizanal, nesistematic;

  dificultatea demonstrarilor, în toate cazurile, a stabilitatii sistemelor;

  posibilitatea aparitiei ciclurilor limita datorita functionarii pe caracteristici neliniare;

  performantele sistemului condus pot sa nu fie întotdeauna la nivelul dorit;

  imposibilitatea implementarii practice a unui CLF cu un numar mare de variabile de


intrare (peste 4) datorita dimensiunii bazei de reguli implicata.

In orice caz, este evident ca sistemele de conducere in logica fuzzy reprezinta o


alternativa clara fata de sistemele de conducere conventionale. Acest lucru este demonstrat de
numeroasele aplicatii în economie si industrie, de volumul cercetarilor pe plan mondial în
aceasta directie, de eforturile tehnologice pentru a pune la dispozitie resursele software si
hardware specializate.

17
FUZIFICAREA MARIMILOR IN CLF

Dupa prezentarea generala a caracteristicilor de baza în SCLF, vom aborda in detaliu


principalele aspecte ale procedurilor de implementare a unui CLF.Interfatarea pe intrare a unui
astfel de controler este realizata prin blocul de fuzificare. Acesta trebuie sa asigure:

  Conversia marimilor de intrare (eroare) e într-o forma digitala compatibila cu


procesarea ulterioara în logica fuzzy. Daca eroarea e este un semnal continuu, se impune o
conversie analog-numerica corespunzatoare. De asemenea, daca e este un semnal numeric, o
procesare numerica suplimentara este necesara pentru asigurarea performantelor dorite.

  Formarea variabilelor ce vor determina conditiile antecedentului în baza de reguli a


CLF. În general, asa cum s-a aratat anterior, o prima variabila de intrare este eroarea e(k), dar
impunerea unor conditii complexe necesita generarea si a altor variabile de intrare. Acestea pot
fi definite prin marimea de eroare evaluata la câteva momente de timp, e(k-1), e(k-2),..., e(k-v)
sau de alte variabile de stare ale sistemului condus, cum ar fi viteza sau acceleratia bratului
mecanic (pentru controlul unui sistem robot).

  Exprimarea variabilelor de intrarea ca multimi fuzzy. In acest sens, marimilor fizice li se


atribuie variabile lingvistice, variabile fuzzy si functii de apartenenta. Se determina totodata
universul de discurs pe care este definita fiecare variabila.

18
Fig. 16 Functii de apartenenta ale variabilelor de intrare în CLF

Functiile de apartenenta utilizate în sistemele de conducere au forme triunghiulare sau


trapezoidale. De asemenea, universul de discurs este frecvent ales ca [-1,1] iar variabilele de
intrare astfel definite sunt considerate normalizate. Este evident ca aceasta impune utilizarea
unor factori de scala corespunzatori pentru fiecare variabila.

In figura 16 a sunt reprezentate functiile de apartenenta a cinci multimi fuzzy ce reprezinta


etichetele lingvistice ale erorii: NM, NI, Z, PI, PM (NEGATIV MARE, NEGATIV INFERIOR,
ZERO, POZITIV INFERIOR, POZITIV MARE, respectiv). Rangul de operare al erorii,
universul sau de discurs, se presupune [-1,1]. Se observa ca trei multimi au functii de
apartenenta triunghiulare iar doua, trapezoidale.

In mod analog, in figura 16 b sunt reprezentate cele trei functii de apartenenta ale
multimilor fuzzy asociate etichetelor lingvistice ale variatiei erorii Δe: N,Z,P (NEGATIV,
ZERO, POZITIV) al carui univers de discurs este de asemenea normalizat.

In figura 16 c sunt prezentate functiile de apartenenta ale multimilor fuzzy ce reprezinta


acceleratia miscarii ( ), in conditiile in care baza de reguli ce urmeaza a fi stabilita impune
introducerea acestor variabile. Sunt definite sapte multimi fuzzy asociate etichetelor NM, NS,

19
NI, Z,PI, PS, PM (NS=NEGATIV SUPERIOR, PS=POZITIV SUPERIOR). Universul de
discurs nu mai este normalizat si este utilizat chiar domeniul de variatie al variabilei de stare,
acceleratia .

Cele trei exemple prezentate mai sus ilustreaza faptul ca alegerea functiilor de apartenenta
nu poate sa fie supusa unor reguli foarte precise. Acestea pot fi alese simetrice sau nesimetrice ,
triunghiulare sau trapezoidale, echidistante sau nu, pe universul de discurs normalizat sau nu.
Totusi, indiferent de modalitatile de alegere se impun categoric respectarea urmatoarelor
conditii:

, (37)

, (38)

Semnificatia acestor conditii va fi ilustrata mai târziu dar o analiza elementara indica ca
relatia (37) impune ca pentru orice punct din universul de discurs, U sa fie definita cel putin o
functie . A doua conditie este determinata de o anumita comoditate în calculele numerice
ale CLF.

Fig. 17 Forme ale functiilor de apartenenta

In figura 16 sunt prezentate câteva tipuri de functii de apartenenta care nu respecta


conditiile (37), (38). Astfel de forme nu pot determina o implementare corecta a conceptului de
logica fuzzy. Se remarca ca functiile descrise în figura 17 verifica cele doua conditii (37), (38),
modelul lor servind ca referinta pentru implementari curente. Trebuie subliniat faptul ca, în
functie de problema abordata, pot fi utilizate si alte tipuri de functii de apartenenta, cu forme
specifice, particulare, care sa ofere anumite facilitati în generarea bazei de reguli .

20
Fig. 18 Functii de apartenenta pentru variabilele de iesire

Pentru a evita eventualele confuzii ulterioare mentionam ca particularitatile specificate mai


sus sunt valabile pentru functiile de apartenenta asociate numai variabilelor de intrare într-un
CLF. Variabilelor de iesire, marimile crisp, li se asociaza de asemenea functii de apartenenta,
dar acestora nu li se mai impun restrictiv conditiile (37), (38). Procesul de generare ale acestor
variabile este defuzificarea si va fi discutat ulterior. Functiile de apartenenta utilizate pot fi de
tipul celor prezentate in figura 17, dar pot avea si forma aparte ca în figura 18 .b. Functiile de
apartenenta din figura 18.a pot intra în categoria "normale", acestea respectând conditiile (37),
(38), dar cele din figura 18.b, functii numite "singleton", nu verifica nici una din conditii. Aceste
functii sunt utilizate frecvent în conditiile in care se doreste obtinerea, in procesul de
defuzificare, a unei relatii simplificate pentru variabilele de iesire.

BAZA DE REGULI

Partea principala a unui CLF, cea care implementeaza algoritmul de conducere al


sistemului este baza de reguli (blocul de inferente) a sistemului. Asa cum am aratat în
paragrafele anterioare, fiecare regula este formata din doua parti: partea IF numita si antecedent
si o parte THEN numita consecinta.

IF

21
THEN

IF

THEN

Antecedentul contine conditia sau conditiile (variabile de intrare) care activeaza regula.
Daca mai multe variabile formeaza conditiile de activare, acestea sunt legate prin AND.
Consecinta permite generarea variabilei sau a variabilelor de iesire activate ca urmare a
îndeplinirii conditiilor regulii.

Fig. 19 Sistem de conducere al unui brat robot

Pentru a fixa ideile vom analiza baza de reguli pentru un sistem de conducere al unui brat
in miscare de translatie (figura 19).

Se va construi baza de reguli pentru un CLF cu doua variabile de intrare e(k) si Δe(k) si o
variabila de iesire u(k). Se va presupune ca universul de discurs este normalizat atât în ceea ce
priveste variabilele de intrare cât si pe cea de iesire, iar functiile de apartenenta au forma din
figura 20.

22
Fig.20 Functiile de apartenenta pentru e, Δe,u

Formarea corecta a bazei de reguli depinde de ordinul sistemului condus si de


performantele dorite. In principiu, nu exista o procedura sistematica pentru determinarea
regulilor, acestea fiind determinate în mare masura de abilitatea si experienta proiectantului.
Totusi, pentru cazul analizat, regulile pot fi stabilite relativ usor, acestea fiind determinate de
conditia evolutiei stabile a sistemului catre o dreapta de comutare . Detaliile asupra acestei
metode vor fi tratate ulterior.

In sinteza, baza de reguli pentru exemplul discutat, contine noua reguli in forma
urmatoare:

Regula 1 IF e este N AND Δe este P

THEN u este Z

Aceasta regula sugereaza ca in conditiile în care eroarea este negativa si variatia ei este
pozitiva, comanda generata u poate fi zero, evolutia sistemului ducand catre domeniul e=0.
Celelalte reguli au interpretari similare.

Regula 2 IF e este Z AND Δe este P

THEN u este N

Regula 3 IF e este P AND Δe este P

THEN u este N

Regula 4 IF e este N AND Δe este Z

THEN u este P

Regula 5 IF e este Z AND Δe este Z

THEN u este Z

Regula 6 IF e este P AND Δe este Z

THEN u este N

23
Regula 7 IF e este N AND Δe este N

THEN u este P

Regula 8 IF e este Z AND Δe este N

THEN u este P

Regula 9 IF e este P AND Δe este N

THEN u este Z

Se remarca ca fiecare regula este definita prin operatorul logic AND (SI) ce defineste
intersectia conditiilor logice asociate regulii. Desi, neformulat explicit, baza de reguli contine si
operatorul OR (SAU) aplicat ca operator reuniune intrinsec pe multimea regulilor bazei.

Exemplu anterior poate fi rescris sub forma urmatoare:

Regula 1 ............................................ , OR

Regula 2 ............................................ , OR

Regula 9 ............................................ .

Descrierea de mai sus a bazei de reguli este asa numita "descriere lingvistica". Ea este
utilizata frecvent în conditiile în care dimensiunea bazei este rezonabila, numarul de variabile de
intrare în CLF nedepasind valoare trei. In mod frecvent, baza de date poate fi reprezentata sub
forma tabelara si printr-o matrice de inferenta. De exemplu, regulile stabilite mai sus pot fi
redate sintetic ca in Tabelul 1.

N Z P

24
P Z N N
Z P Z N
N P P Z

Tabelul 1Baza de reguli pentru variabilele e,

Matrice cuprinde, pe linii si coloane etichetele lingvistice ale variabilelor e si Δe,


respectiv. Fiecare pereche linie, coloana defineste conditiile unei anumite reguli iar în celula
corespunzatoare a matricei este introdusa eticheta lingvistica a valorii generate, u (consecinta).
Matricile de inferente de tipul celei prezentate sunt practice pentru baze de reguli cu un
numar mare de variabile de intrare în CLF. De exemplu, daca conditiile în CLF sunt date de e,
Δe si Δ2e (acceleratia sistemului), atunci baza de reguli poate fi sintetizata prin matricea de
inferente din Tabelul 2.

N Z P
N Z P N Z P N Z P

e
P Z Z N Z N N Z N N
Z P Z Z P Z N Z Z N
N P P Z P P Z P Z Z

Tabelul 2 Baza de reguli pentru variabilele e,

Procedura poate fi extinsa pentru structuri mai complexe, cu un numar mai mare de
variabile de intrare, dar trebuie avut în vedere ca o crestere a complexitatii bazei de date implica
o procesare mai laborioasa, prelucrarea unui numar mare de variabile, un timp de calcul sporit si
multe inconveniente în implementarea practica a algoritmului de control.

IMPLEMENTAREA BAZEI DE REGULI

Este evident ca procesarea unor reguli intr-o baza (mecanismul de inferenta) impune
determinarea, în primul rand, a conditiilor ce definesc regula si a gradului lor de activare. Acest
lucru este obtinut prin tratarea conditiei ca multime fuzzy si prin testarea gradului de activare al
acesteia cu ajutorul functiilor de apartenenta asociate.

Intr-o scriere sintetica, o regula poate fi exprimata sub forma:

Regula j: IF CONDIŢIA C1 AND CONDIŢIA C2 AND ... AND CONDIŢIA CP

25
THEN DECIZIA Dj

Considerând , multimea fuzzy asociata conditiei C 1, gradul de activare al conditiei


*
pentru o valoare x=x în universul de discurs este exprimat prin

(39)

Fig. 21 Calculul gradului de activare

In figura 21 este ilustrat grafic modul de calcul al gradului de activare.

Pentru o regula completa definita prin conditiile C 1, C2, ..., Cp carora li se asociaza

multimile fuzzy , , ...., , definite pe universul de discurs x1, x2, ..., xp, se obtine:

, i=1, 2, ..., p (40)

Conditiile Ci sunt interpretate prin operatorul AND

(41)

unde va reprezenta functia de activare al variabilei de iesire, consecinta, decizie a


regulii determinate de expresia THEN.

Sinteza deciziei, la nivelul unei reguli, este obtinuta în general prin algoritmul Mandami
care formal este scris sub forma:

26
(42)

unde , ,..., sunt multimi fuzzy definite pe universul de discurs U al variabilei de


iesire u.

Fig. 22 Calculul gradului


de activare al unei reguli

Figura 22 ilustreaza tehnica de formare a deciziei în cadrul unei reguli. Pe întreaga baza,
procedura este repetata pentru fiecare regula.

27
Fig. 23 Generarea deciziei pentru regula j

Fig. 24 Generarea deciziilor pentru doua reguli

In figura 24 este: prezentata generarea deciziilor in doua reguli j si m, si


reprezentand multimile fuzzy corespunzatoare definite pe universul de discurs al variabilei de
iesire.

(43)

Implementarea numerica a bazei de reguli corespunde de fapt modului de tratare a


operatorilor AND - OR. Cea mai des întâlnita modalitate de evaluare este cunoscuta sub numele
"min - max" în care operatorii AND sunt evaluati prin functia "min", iar operatorii OR prin
"max".

28
(44)

(45)

Pentru exemplificarea ultimului operator, în figura 25 este prezentata functia max aplicata
pe cele doua reguli j si m ilustrate în figura 24.

Fig. 25 Generarea deciziei prin operatorul "max"

(46)

Alte proceduri de implementare sunt definite ca "prod - max", unde:

(47)

iar operatorul OR pastreaza forma (44).

De asemenea, se utilizeaza si forma "prod - suma" în care operatorul AND este tratata
dupa relatia (12.47), iar OR prin:

(48)

Pentru ilustrarea acestor proceduri se va utiliza baza de reguli prezentata in paragraful


precedent, cu functiile de apartenenta ale celor doua variabile de intrare e, Δe si de iesire u.

Se va analiza metoda "min - max" ce implementeaza conditiile logice AND si OR prin


operatori min si max, respectiv. În figura 26 este ilustrata grafic aceasta metoda. Sunt analizate

29
primele doua reguli ale bazei si este exemplificata procedura pentru câteva valori particulare ale
variabilelor de intrare e si Δe, si .

Pentru Regula 1, determina un grad de activare , pentru functia de apartenenta


N:

(49)

iar , pentru functia de apartenenta P, determina:

(50)

Conditia Regulii 1, "IF e este N AND Δe este P THEN u este Z" este tratata prin
operatorul min:

(51)

Similar, pentru Regula 2 se obtine:

(52)

(53)

Cele doua functii de activare , determina deciziile , iar decizia finala (dupa
doua reguli) va fi conform relatiei (44),

(54)

Aplicarea procedurii "prod - max" va determina câteva modificari cantitative

(55)

(56)

care se vor repercuta în noile forme ale deciziilor , si corespunzator decizia finala
.

30
Fig. 26 Implementarea regulilor 1 si 2 prin metoda "min-max"

In mod similar se obtine decizia prin algoritmul "prod - suma". Pentru comparare, in figura
27 sunt prezentate cele doua metode.

31
Fig. 27 Analiza comparativa a metodelor

DEFUZIFICAREA
Paragrafele anterioare au abordat etapele principale in implementarea unui CLF,
fuzificarea marimilor de intrare si procesarea algoritmului de conducere sub forma unei baze de
reguli. In final, marimea de iesire este generata sub forma unei multimi fuzzy. Este evident ca se
impune compatibilizarea acestei marimi cu procesul condus, deci este necesara reconversia
marimii de iesire într-o marime crisp. Procedura aceasta este cunoscuta sub numele de
defuzificare.

Defuzificarea reprezinta o etapa importanta în structura generala a proiectarii unui CLF si


literatura de specialitate abunda în solutii. In cele ce urmeaza se vor prezenta câteva din tehnicile
de implementare cele mai eficiente.

Defuzificarea prin "centru de greutate" este cea mai raspandita procedura de reconversie a
deciziei fuzzy de la iesirea CLF într-o variabila crisp. Aceasta metoda se bazeaza pe evaluarea
functiei de apartenenta a deciziei fuzzy dupa aceleasi reguli ca cele utilizate în calculul centrului
de greutate din mecanica clasica. În acest mod se asociaza functiei de apartenenta a decizie
variabilei de iesire o valoare crisp corespunzatoare.

Pentru fixarea ideilor, se va considera decizia D* reprezentata în figura 28. Functia de


apartenenta a acestei decizii fuzzy este obtinuta din primele doua reguli ale aplicatiei discutate în
paragraful precedent .

Prin evaluarea "centrului de greutate" al ariei definita de functia de apartenenta a deciziei


*
D se obtine pe abscisa:

Fig.28 Defuzificarea deciziei D*

32
(57)

ceea ce reprezinta o masura crisp a deciziei fuzzy.

În cazul general, defuzificarea apeleaza la formula clasica a "centrului de greutate":

(58)

unde este functia de apartenenta a deciziei finale, numitorul reprezinta aria


delimitata de functia de apartenenta, iar numaratorul defineste momentul ariei. În aceasta relatie
s-a presupus ca universul de discurs U este normalizat. Într-o forma mai generala, expresia (58)
poate fi rescrisa ca:

(59)

În mod curent este utilizata o procedura de discretizare

(60)

ceea ce permite, în cele mai multe cazuri, un calcul usor de implementat.

Pentru anumite cazuri particulare ale functiei de apartenenta, relatiile (57) - (60) pot capata
anumite forme simplificate. De exemplu, daca iesirea este definita prin functii singleton,
expresia (12.61) devine (figura 12.34):

(61)

unde:

33
(62)

Fig. 29 Defuzificarea

O interpretare si mai facila, desi evident destul de aproximativa, se poate obtine


daca functia de apartenenta contine un maxim sau domenii maximale (figura 30).

(63)

Fig.30 Defuzificarea prin valoarea maxima

In paragrafele precedente a fost prezentata în detaliu metodologia de proiectare a


unui CLF. Pentru a concretiza mai bine procedura si pentru a permite o mai buna familiarizare
cu tehnicile de implementare, se va relua exemplul oferit de conducerea unui brat de robot cu

34
baza de reguli si functii de apartenenta . Se vor trata regulile de conducere prin metoda "min -
max" pentru regimul de lucru definit prin:

Primele doua reguli sunt analizate în figura 26 si în continuare vor fi analizate celelalte
sapte reguli ale bazei.

Astfel, Regula 3 impune algoritmul:

IF e este P AND Δe este P

THEN u este N

Gradul de activare al multimilor fuzzy :

iar functia de activare a iesirii, pe decizia N, va fi

ceea ce identifica decizia regulii, ca multimea valorilor 0 în domeniul de discurs al


variabilei de iesire:

În mod similar sunt analizate celelalte reguli Regula 4, ..., Regula 9 obtinându-se deciziile
sub forma multimilor fuzzy , , , , , , respectiv.

Decizia finala, pentru variabilele de intrare se obtine formula :

Întreaga procedura este ilustrata în figurile 31 si 32.

35
Defuzificarea finala permite determinarea valorii crisp a marimii de iesire.

Fig. 31 Implementarea bazei de reguli - conducerea unui brat robot

Fig. 32 Defuzificarea decizie - conducerea unui robot

36
ANALOGIA INTRE CLF SI REGULATOARELE
CONVENTIONALE PD, PI, PID

Exemplul analizat in paragraful precedent ilustreaza modul de calcul al variabilei de iesire


u în functie de eroarea e(k)si variatia erorii Δe(k), deci determina o lege de conducere de forma

(64)

O astfel de lege de conducere este similara cu cea stabilita in regulatoarele conventionale


de tip PD care genereaza un control sub forma unei combinatii între o componenta de tip
proportional si una de tip derivativ:

(65)

unde kP si kD sunt parametrii regulatorului PD.

Prin analogie, o lege de conducere obtinuta într-un CLF, se va numi CLF - PD.

Daca regulile unui CLF nu genereaza valoarea u(k), ci variatia marimii de iesire Δu(k):

37
(66)

deci se implementeaza o lege de conducere generala de forma

(67)

atunci aceasta lege se poate asocia cu cea oferita de un regulator conventional de tip PI
descris prin relatia:

(68)

unde kP si kI sunt parametrii regulatorului PI.

În acest sens, un CLF a carei baza de reguli se va numi de tipul CLF - PI.

Procedura poate fi extinsa pentru legi de conducere mai complexe. De exemplu, daca legea
unui CLF este generata sub forma:

(69)

unde:

(70)

ea va fi de tipul PID, întrucât este similara cu cea obtinuta de regulatorul conventional cu


acelasi nume:

(71)

Este evident ca o astfel de lege impune în CLF o baza de reguli mai complexa, definita pe
variabilele , , . De exemplu, o regula a bazei poate fi urmatoarea:

IF este ZERO AND este MEDIE AND este POZITIVĂ

THEN este POZITIVĂ

O forma modificata a legii (12.12.6) care poate fi acceptata în definirea unui CLF - PID
poate fi de forma:

38
(72)

care corespunde regulatorului PID discret:

(73)

Desigur, pot fi adoptate si alte legi de conducere, cu algoritmi mai sofisticati, dar este
evident ca o crestere a numarului de variabile de intrare (antecedente) în structura regulilor,
determina o implementare extrem de dificila si în multe cazuri cu totul nepractica. Din acest
motiv, introducerea a mai mult de doua variabile de intrare în structura regulilor este acceptata
numai în conditii de performante cu totul speciale.

Consideratii asupra universului de discurs

În general, universul de discurs al variabilelor de intrare si de iesire la un CLF este


reprezentat de dreapta numerelor reale. În practica, fiecare univers este restrictionat la un
interval bine definit între o valoare maxima si una minima în conformitate cu rangul marimilor
fizice.

Sa luam, pentru exemplificare, conducerea unui brat robot unde:

(74)

Universul de discurs al erorii va fi definit practic de valorile maximale si minimale ale


variabilelor de pozitie prescrise xd si masurate x.

(75)

(76)

(77)

În mod analog se vor defini universele de discurs ale variatiei erorii si ale variatiei de
iesire (de control) u:

(78)

(79)

(80)

39
(81)

Este evident ca în functie de problema de conducere abordata, domeniile universurilor de


discurs pot fi extrem de diverse. Totusi, pentru simplificarea tratarii si unificarea metodologiei
de proiectare, este de preferat sa se opereze pe universuri de discurs normalizate.

Pentru exemplificare se va considera ca variabilele e(k), Δe(k) si u(k) opereaza pe


domeniile , , , respectiv si se vor presupune universele normalizate
corespunzatoare:

(82)

(83)

(84)

Pentru a transforma domeniile de operare ale variabilelor de intrare masurate e(k), Δe(k) în
universul de discurs normalizat se utilizeaza factori de scala :

(85)

(86)

Acesti coeficienti vor transforma valorile reale masurate ale intrarilor în CLF, e(k), Δe(k),
în valorile e*(k), Δe*(k) din universul normalizat:

(87)

(88)

unde:

(89)

40
(90)

Algoritmul bazei de reguli se va aplica marimilor normalizate si va permite dupa


defuzificare, obtinerea unei variabile de iesire din universul corespunzator normalizat:

(91)

Implementarea completa a CLF-ului impune generarea iesirii în universul real de activare,


deci este necesara o "denormalizare" printr-un factor de scala corespunzator:

(92)

(93)

ceea ce determina revenirea variabilei de iesire în domeniul .

În general, universul normalizat poate fi identic cu un rang real de operare al unei


variabile, dar, pentru cele mai multe aplicatii, acesta coincide cu intervalul închis [-1,1].

Factorii de scala joaca un rol extrem de important în proiectarea unui CLF. Este evident ca
scalarea erorii si a variatiei acesteia înseamna efectiv o transformare a spatiului de stare ceea ce
va determina o modificare automata a performantelor. În literatura de specialitate sunt
mentionate urmatoarele reguli ce se impun în selectia factorilor de scala:

- Alegerea unor valori mari ale factorilor ke determina erori stationare mici, timp de
crestere mic si suprareglaj ridicat, în timp ce valori mici ale lui ke determina o
comportare opusa;
- Valori mari ale lui kd determina o convergenta rapida;
-   Timpul de crestere este ridicat pentru valori mici ale factorului ku.

Metodele Takagi - Sugeno - Kang (TSK)

Modelele fuzzy discutate anterior se bazau pe reguli în care atât partea conditionala cât si
cea decizionala cuprindea multimi fuzzy

Regula i: IF CONDIŢIA C1 AND CONDIŢIA C2 AND ... MULŢIMI FUZZY

THEN DECIZIA Di MULŢIMI FUZZY

41
Astfel de modele nu contin nici o forma explicita a functiei obiectiv si sunt cunoscute
frecvent sub denumirea de modele Mandani.

O alta modalitate de tratare, atragatoare în cazul sistemelor mari si complexe, este oferita
de modelul Takagi - Sugeno - Kang (TSK) în care iesirea, decizia sistemului este obtinuta dupa
o lege non-fuzzy, ca o functionala pe variabilele de intrare.

Regula i: IF x1 este C1i AND x2 este C2i AND ... MULŢIMI FUZZY

THEN MULŢIMI NON-FUZZY

Marele avantaj al acestui model rezida în posibilitatea de tratare a sistemelor complexe


prin decompozitia acestora în subsisteme mai simple, uneori chiar, subsisteme liniare. De
asemenea, o alta posibilitate de abordare consta în descompunerea spatiului de stare al
sistemului în subspatii disjuncte si identificarea modelelor dinamice pentru fiecare subspatiu.
Iesirea finala este obtinuta printr-o compunere logica a iesirilor fiecarui subspatiu.

În cele mai dese cazuri, partitionarea spatiului de stare este astfel realizata încât iesirea sa
poata fi generata sub forma unor modele liniare.

Regula 1: IF x1 este C11 AND ... AND xn este Cn1

THEN

...

Regula p: IF x1 este C1p AND ... AND xn este Cnp

THEN

În ceasta baza de reguli, Cij (j=1,p), (i=1,n) sunt multimi fuzzy pe spatiul de stare al
sistemului X1, X2, ..., Xn iar x1, x2, ..., xn sunt valori crisp ale variabilelor de intrare (stare). Partea
decizionala a regulilor poate fi considerata ca modele liniare ce definesc variabilele de iesire u1,
u2, ..., up (marimi crisp) în functie de variabilele de intrare (stare), variabile crisp. Iesirea globala
u a întregului model TSK se obtine printr-o medie ponderata a iesirilor crisp ui pentru fiecare
subsistem liniar. Considerând gradul de activare al fiecarei conditii Cij:

i=1,...,n; j=1,...,p (94)

iar functia de activare la nivelul unei reguli:

42
(95)

iesirea generala va fi:

(96)

Daca iesirea fiecarei reguli este o functie neliniara , modul de calcul se


pastreaza, iesirea u fiind obtinuta tot ca o medie ponderata pe iesirile neliniare ale fiecarei reguli.

Modelul TSK poate fi utilizat pentru implementarea unui CLF de tipul PI, PD, sau PID.
De exemplu, un CLF - PI poate fi modelat prin urmatoarea baza de reguli:

Regula 1: IF e(k) este C11 AND Δe(k) este C21

THEN

Regula p: IF e(k) este C1p AND Δe(k) este C2p

THEN

Iesirea CLF va fi:

(97)

unde se obtine conform relatiilor anterioare.

Analogia acestui model cu un regulator conventional PI permite identificarea parametrilor


regulatorului:

(98)

deci:

43
(99)

(100)

CONTROLUL CINEMATIC DIFERENTIAL PRIN CLF

Dupa cum este bine cunoscut în literatura de specialitate , controlul cinematic diferential
utilizeaza modelul diferential al unui robot, model ce permite calculul diferential dX al
coordonatelor operationale (variabile ce definesc pozitia în spatiul de lucru) în functie de variatia
dq a coordonatelor generalizate (variabile asociate fiecarei articulatii mecanice). Analitic,
aceasta dependenta este scrisa printr-o matrice Jacobian, în forma

(101)

Structura clasica a unui control cinematic diferential este prezentata în figura 33.

Asa dupa cum se cunoaste, punctul slab al unei astfel de conduceri îl constituie
calculul inversei matricei Jacobian, calcul ce nu poate fi realizat off-line datorita dependentei
coeficientilor matricei de parametrii qi. Cu toate ca în literatura s-au dezvoltat o serie de metode
care permit calculul rapid al lui , ele cer, în general, sisteme hardware de mare viteza, cu
un pret de cost întotdeauna prohibitiv, pentru o operare eficienta în timp real.

Fig. 33 Controlul cinematic diferential conventional

In cele ce urmeaza, se va analiza o solutie de control cinematic diferential utilizand un


CLF care va permite calculul inversei matricii Jacobian adoptând euristic o baza de reguli
corespunzatoare.

44
Este evident ca atât structura conventionala cat si cea utilizând logica fuzzy trebuie sa
urmareasca acelasi criteriu de calitate, minimizarea erorii sistemului de conducere.

Fig. 34 Control cinematic diferential cu CLF

Intr-o scriere generala, eroarea poate fi definita astfel:

(102)

unde Xd este vectorul de pozitie dorit în spatiul cartezian. Legea de conducere care se va
introduce trebuie sa determine variatii Δq care sa permita micsorarea erorii. O solutie simpla se
bazeaza pe utilizarea unei metode de tip "gradient":

(103)

unde η este un factor de proportionalitate ales convenabil, .

Rezulta:

(104)

astfel încât variatiile Δq vor fi date de legea:

(105)

45
Se poate arata usor ca adoptarea unei legi de conducere de tipul (105) ofera solutii bune
pentru un sistem de tipul celui prezentat în Figura 12.39, o astfel de conducere determinând
convergenta la zero a erorii (12.104)

(106)

Pentru justificarea acestei solutii se va utiliza metoda a 2-a a lui Liapunov si se va defini o
functionala Liapunov de forma:

(107)

Derivata acestei functionale, de-a lungul traiectoriei sistemului va fi:

(108)

Aproximând derivata prin:

(109)

unde T este timpul de esantionare, se obtine:

(110)

sau:

(111)

dar, cu exceptia cazurilor în care matricea este singulara, aceasta este pozitiv
definita, deci:

(112)

ceea ce confirma convergenta la zero a erorii .

Pentru ilustrarea metodei vom analiza sistemul de conducere pentru un robot planar cu
doua articulatii (figura 35)

46
Coordonatele operationale sunt:

(113)

iar matricea Jacobian va fi:

(114)

Pentru o eroare de forma:

(115)

se impune o lege de conducere de forma (105) care va fi implementata într-un CLF:

(116)

(117)

Fig. 35 Modelul unui robot planar cu 2 articulatii

sau într-o forma simplificata:

47
(118)

(119)

unde Jij sunt componentele matricei Jacobian iar ex, ey reprezinta erorile pe cele doua
coordonate operationale.

Numarul mare de variabile (de intrare) antecedent în definirea regulilor


impune construirea bazei sub forma unei tabele.

De exemplu, prima regula se va formula astfel:

Regula 1: IF ex este N AND J11 este N AND ey este P AND J21 este P

THEN Δq1 este PM.

...

Fig. 36 Functii de apartenenta

N Z P

48
J2 N Z P N Z P N Z P
1

J11

ey

ex
P P P P Z P P P Z P P
M m P m m m P m M
Z P Z N Z Z Z N Z P
m N m N P P m N m
N Z N N N N N N N Z
N m M m m m M m N
Z P P Z N Z Z Z N Z P
m N m N N P m P m
Z P Z N N Z Z N Z P
m P m m N P m P m
N Z Z N Z Z Z N Z P
N N m N N P m P m
N P Z N N N N N N N Z
P m M m m m M m N
Z P Z N Z Z Z P Z P
m N m N N N m P m
N P P Z P P P Z P P
M m P m m m P m M

Tabelul 3 Baza de reguli

Toate celelalte reguli se vor formula într-o maniera similara, variabila de iesire Δq 1
obtinându-se din functiile de apartenenta prezentate în figura 36.

PROIECTAREA UNUI CLF CA UN SISTEM CA STRUCTURA


VARIABILA

Paragrafele precedente au pus in evidenta tehnicile generale de implementare a unui CLF


si asimilarea sa cu regulatoare conventionale PD, PI, PID. Metodologia de proiectare si
implentare a subliniat ideea ca un CLF este un controler robust care permite obtinerea unor
performante de conducere satisfacatoare în conditiile unei cunoasteri, deseori insuficienta, a
modelului matematic al sistemului. De fapt, ideea agreata în aceasta proiectare consta în
pozitionarea spatiului starilor si adoptarea unor legi de conducere PI sau PD în fiecare spatiu,

49
parametrii de conducere fiind modificati la comutarea dintr-un subspatiu în altul. Deci, în esenta,
un CLF este un sistem cu structura variabila.

Pentru a ilustra aceasta metoda se va considera modelul dinamic definit de ecuatia:

(120)

prezentat în figura 37.

Fig. 37 Conducerea cu un controler cu structura variabila

In ecuatia (120), functiile si nu sunt cunoscute exact dar este cunoscut semnul si
domeniul în care sunt marginite.

Starea dorita a evolutiei este definita ca:

(121)

iar eroarea de urmarire va fi:

(122)

sau:

(123)

Daca se considera suprafata:

(124)

unde este o matrice pozitiv definita, de exemplu, o matrice diagonala:

(125)

Suprafata:

50
(126)

este un subspatiu de dimensiune (2n-1) si este numita suprafata de comutatie. Aceasta


suprafata divide spatiul în doua regiuni pentru o parte a suprafetei si pentru
partea opusa.

În cazul n=1, corespunde unei drepte cu panta :

(127)

Un controler cu structura variabila CSV (figura 38) va conduce sistemul spre suprafata de
comutare într-un timp finit si constrânge sistemul sa ramâna pe suprafata de comutare.

Fig. 38 Traiectoria într-un sistem cu structura variabila

Când sistemul opereaza pe suprafata (dreapta) de comutare se spune ca acesta evolueaza în


mod "alunecator" (sliding).

Una din cele mai simple legi de control poate fi:

(128)

dar legea de control poate fi mai complexa în functie de complexitatea sistemului.

Se va analiza, în continuare, conducerea unui brat mecanic al unui sistem descris prin
ecuatia:

(129)

51
si se vor considera , , valorile dorite ale pozitiei, vitezei si acceleratiei ceea ce
va determina evaluarea unor erori corespunzatoare:

(130)

se obtine:

(131)

expresia devine:

(132)

unde:

(133)

Se va presupune ca legea de control va avea forma:

(134)

unde c este o constanta, , a doua componenta mH asigura o compensare a


componentelor definite de eroarea e si stare dorita x d iar ultimul termen uF este generat de un
CLF (fig. 39).

52
Fig. 39 Conducerea unui brat de robot cu CLF si controler conventional

Fig. 40 Functiile de apartenenta pentru eroarea e

Fig. 41 Functiile de apartenenta pentru iesirea uF

Pentru a determina conditiile de stabilitate ale sistemului, se va considera metoda a 2-a a


lui Leapunov. Se va utiliza o functie Leapunov de forma:

(135)

deci:

(136)

si din (12.134) se obtine:

53
(137)

Conditia de stabilitate impune

(138)

deci:

(139)

(140)

PARTEA A II-A
RETELE NEURONALE

CAPITOLUL 1
RETELELE NEURONALE ARTIFICIALE

1.1 APLICATILE RETELELOR NEURONALE

Retelele neuronale se supun schimbarilor care apar atunci cand un concept paraseste
mediul academic si este aruncat in lumea salbatica a utilizatorilor al caror unic scop este pur si
simplu resolvarea problemelor. Multe retele proiectate pana acum sunt destul de exacte dar lasa
totusi un gust amar utilizatorilor care se asteptau ca sistemele de calcul sa le resolve problemele
in mod exact. Rata de acuratete a acestor retele se incadreaza in limitele 85, 90%. Din pacate
putine aplicatii tolereaza astfel de erori.
In timp ce cercetatorii continua sa-si imbunatateasca creatiile, unii exploratori le gasesc
aplicabilitate pentru tehnologia curenta.
In prezent retelele neuronale nu sunt inca interfata care transforma limbajul uman in
instructiuni pentru calculator, dar se spera ca intr-o zi comunicatia cu acestea se putea face intr-
un limbaj natural iar clasicele butoane vor deveni o simpla amintire. Dar, deocamdata, retelele
doar isi fac intrarea pe piata in interiorul viirotul.
Multe din aceste nise implica aplicatii pentru care raspunsurile sunt neclare. Aprobarea
imprumuturilor este unul dintre acestea. Institutiile financiare economisesc enorm prin utilizarea

54
celor mai mici rate ale dobanzilor pentru imprumuturi pe care le pot obtine. Sistemele cu un
procent de exactitate de 90% pot fi un progres aplicat proceselor curente. Totusi, unele banci au
aratat ca rata de esec a imprumuturilor aprobate de retele neuronale este mai mica decat a celor
aprobate prin metodele traditionale folosite in trecut.
Cea mai noua metoda de prevedere a viitorului prin analizarea experientelor trecute a
generat propriile probleme. Una din aceste probleme o constituie oferirea obligatorie din punct
de vedere legal a unei justificari a raspunsului generat de calculator, privind motivul pentru care,
de exemplu, s-a refuzat un imprumut. Dupa cum s-a mentionat anterior, modul intern de
functionare a retelelor neuronale este pentru multi o “cutie neagra”. Unii utilizatori au numit
chiar aceasta metoda de abordare “inginerie voodoo”. Explicarea modului in care invata o retea
si de ce ia o anumita decizie este dificil. Pentru a facilita acest proces de justificare o serie
intreaga de furnizori de unelte de simulare au oferit programe care explica fluxul de informatii si
indica intrarile dominante in procesul de luare a unei decizii, precum si drumul parcurs de
acestea prin retea. Folosind aceste informatii, expertii in domeniul aplicatiei ar trebui sa fie
capabili sa inteleaga de ce un anumit set de date este important.
Pe langa umplerea niselor de pe piata, retelele neuronale progreseaza si in domenii de
aplicabilitate mult mai promitatoare. In continuare se vor descrie cateva din aceste domenii si
detalii despre gradul curent de dezvoltare. Aceasta pentru a sublinia variatele probleme pentru
care retelele neuronale ar putea oferi solutii, probleme cum ar fi procesarea limbajului,
recunoasterea caracterelor, compresia imaginilor sau recunoasterea formelor.

Procesarea limbajului natural

Procesarea limbajului natural inconjoara o mare varietate de aplicatii, cum ar fi conversia


sunet-text, utilizarea comenzilor vocale, traducerea automata, ajutor pentru persoane cu
dizabilitati fizice etc.
Multe companii si universitati studiaza modul in care un calculator, cu ajutorul retelelor
neuronale, poate fi programat sa raspunda la comenzi vocale. Recompensa economica ar putea fi
o adevarata mina de aur.
Daca aceasta capabilitate ar putea fi redusa la un cip, acesta ar putea fi integrat in toate
aparatele electronice existente, ceea ce ar duce la un numar enorm de asemenea cipuri vandute.
Cipul ar trebui sa poata intelege cele mai folosite 50.000 de cuvinte. In prezent majoritatea
retelelor neuronale antrenate in acest scop sunt capabile sa inteleaga un singur utilizator, iar
numarul maxim de cuvinte recunoscute este de doar cateva mii, aceasta in conditiile in care
limbajul este clar, literar iar distinctia intre cuvinte se face prin folosirea unor pause in vorbire
dupa fiecare dintre acestea.
Unii cercetatori au ajuns totusi la performante imbunatatite, dar, datorita potentialului
economic enorm, sunt pastrate o serie de secrete privind rezultatele obtinute si metodele folosite.

Recunoasterea caracterelor

55
Recunoasterea caracterelor este un alt domeniu in care retelele neuronale ofera solutii.
Unele din aceste soutii au in spate doar simple curiozitati academice. Dar in prezent se
comercializeaza retele capabile sa recunoasca caractere scrise de mana cu ajutorul unui scanner.
Acest tip de produse ar putea procesa orice formular, cum ar fi cerereile de eliberare de carti de
credit si le-ar stoca automat in forma electronica intr-o baza de date. Produsele au o rata de
exactitate de aproximativ 99% pentru numere si putin mai slaba pentru caractere alfabetice.
In prezent majoritatea cercetarilor in acest domeniu implica realizarea unor solutii pentru
recunoasterea caracterelor din alfabetul oriental, deoarece pentru stocarea fiecarui astfel de
caracter sunt necesare aproximativ cinci apasari de taste. Acest complicat proces prelungeste
munca de tehnoredactare a unei pagini la cateva ore. Din acest motiv o serie de producatori au
anuntat ca sunt foarte aproape de realizarea unor produse care sa poata scana o intreaga pagina
de text si sa recunoasca caracterele orientale scrise pe aceasta.

Compresia imaginilor (datelor)

Un numar insemnat de studii au demonstrate ca retelele neuronale pot realize o compresie


a datelor in timp real. Aceste retele sunt autoasociative si sunt capabile sa reduca 8 biti de date la
doar 3 si apoi sa restaureze cei 8 biti de informatie. Totusi compresia se face cu pierdere de
informatie, din acest motiv metoda se foloseste in general pentru compresia imaginilor acolo
unde nu este in general necesara o refacere exacta a contextului initial.

Recunoasterea formelor

Pana in prezent au fost dezvoltate o serie intreaga de aplicatii de recunoastere a formelor.


Exista sisteme care pot detecta explozivi sau arme in bagaje la aeroporturi, prin identificarea
unor forme standard stocate in memorie in imaginile provenite de la niste senzori de scanare
specializati. O alta aplicatie este folosita in salile de urgenta ale spitalelor pentru a determina
probabilitatea ca un pacient sa faca atac de cord, sistemul dovedindu-se de un real folos in
zonele in care trebuie luate decizii in functie de prioritati.
Alta aplicatie implica gradarea monezilor rare. Imaginile digitalizate provenite de la o
camera video sunt procesate de o retea neuronala. Aceste imagini, care includ diferite unghiuri
de privire frontale si laterale, sunt comparate apoi cu forme cunoscute reprezentand calificative
ale monezilor. Rezultatele au aratat ca gradarea cu retele neuronale este la fel de eficienta ca si
cea manuala.
Totusi, de departe cea mai raspandita utilitate a retelelor neuronale pentru recunoasterea
formelor este in domeniul controlului calitatii. Aceste aplicatii sunt proiectate sa descopere
defectele si sa inlocuiasca astfel in procesul de productie elementul uman care poate fi de multe
ori neatent sau extenuat. Aceste sisteme evalueaza taieturi, lipituri, sau calitatea si nuanta
vopselei in industria constructilor de masini prin digitalizarea imaginilor unor zone vopsite
pentru a determina daca nuanta este cea corecta. O alta aplicatie majora in care retelele
56
neuronale sunt folosite este realizarea de procesoare pentru senzori. Senzori pot oferi foarte
multe cantitati de date astfel incat unele informatii mai putin importante nu pot fi procesate in
timp util si se pot pierde. Operatorii umani si-ar putea pierde intereseul privind in mod continuu
un ecran pentru a cauta “acul in carul cu fan”. Multe din aceste aplicatii de procesare a datelor
provenite de la senzori sunt intalnite in aplicatiile militare, retelele neuronale dovedindu-se
folositoare in descoperirea tintelor. Aceste procesoare preiau datele de la camere video, sonare,
inregistratoare seismice sau sisteme cu unde infrarorii, si le folosesc pentru a identifica
fenomene probabile.
Un alt domeniu legat de procesarea senzorilor este industria medicala. O retea neuronala
poate fi folosita pentru interpretarea radiografiilor, metoda dovedindu-se de multe ori mai
eficienta decat cea clasica umana in identificarea fracturilor sau cheagurilor cancerigene.

Procesarea semnalelor

Retelele neuronale au dat rezultate in multe experimente privind procesarea semnalelor in


laboratoarele universitatilor. Acestea s-au dovedit capabile sa filtreze zgomotele, Madaline fiind
prima implementare aplicata intr-o problema din lumea reala.
O alta aplicatie este un sistem care poate detecta functionarea defectuoasa a unui motor
si motivul acesteia prin simpla analiza a zgomotului. Acest sistem dezvoltat de catre Odin Corp.
este efficient pentru motoare de pana la 10.000 RPM. Sistemul detecteaza arderile incomplete
care sunt o principala cauza a poluarii. Solutia Odin necesita doar 3 kiloocteti de cod software
ruland pe un microprocesor Motorola 68030.

Aplicatii financiare

Retelele neuronale isi fac intrarea si in lumea finaciara. Bancile, companiile de carti de
credit si institutiile de imprumuturi se lovesc de necesitatea luarii unor decizii care implica
analiza tendintelor statistice si experienta trecuta. Procesele de aprobare a imprumuturilor
implica completarea unor formulare care ar trebui sa-l ajute pe reprezentantul companiei sa ia o
decizie. Datele din aceste formulare sunt interpretate acum de retele neuronale care au fost
antrenate folosind datele din experientele anterioare. Pentru a satisface cerintele legislative
privitoare la oferirea motivelor pentru care un credit nu a fost acordat, aceste aplicatii ofera
informatii privind combinatiile de intrari care au cantarit cel mai mult in luarea deciziei.
Companiile de carti de credit au si ele nevoie de retele similare pentru stabilirea riscurilor
si limitelor de credit.

Servo control

57
Controlul sistemelor complexe este una din promisiunile retelelor neuronale. Majoritatea
sistemelor conventionale de control modeleaza functionarea intregului proces printr-un singur
set de formule, iar pentru a adapta un sistem pentru un proces specific, parametrii acestor
formule trebuie ajustati manual, printr-un proces interactiv care implica ajustarea pana cand se
gaseste combinatia care da rezultatele dorite. Retelele neuronale ofera doua avantaje.
In primul rand modelul statistic al retelelor neuronale este mai complex decat un simplu
set de formule, permitand manipularea intr-o gama mai larga de conditii de functionare fara a fi
necesara o recalibrare. In al doilea rand, datorita capacitatii retelelor de a invata singure, nu au
nevoie de la experti in controlul sistemelor si numai de suficiente date istorice pentru a se putea
antrena.
In industria petroliera o retea neuronala este folosita in procesul de rafinare pentru
controlul curgerii de materiale, realizand acest lucru mult mai efficient si mai exact decat un
operator uman a carui atentie ar putea fi distrasa.
NASA foloseste un sistem pentru controlul navetelor in timpul manevrelor de decolare,
cunoscut sub numele de “Martingale’s Parametric Avalanche” (practic o retea neuronala
spatiotemporala). Un alt proiect este ALVINN (Autonomus Land Vehicle in a Neuronal
Network) care foloseste o camera video si o raza laser montate pe un vehicul care ar trebui sa se
deplaseze ramanand in mijlocul unui drum serpuit.
British Columbia Hydroelectric a realizat un prototip pentru controlul unei statii de
distributie a energiei, capabil sa realizeze optimizarea a patru condensatoare sincronizate.
Dupa cum s-a vazut, retelele neuronale au fost aplicate cu succes in domenii variate.
Fiecare din aceste domenii poate fi grupat in doua mari categorii, acestea oferind un test pentru
oricine doreste sa foloseasca retele neuronale. In principal o aplicatie ar trebui sa indeplineasca
urmatoarele criterii pentru a putea intra in categoria celor rezolvabile prin retele neuronale:

- poate inlocui o retea neuronala tehnologiile existente intr-un domeniu in care modificari
minore ale performantei duc la un impact economic major?

1.2 VIITORUL RETELELOR NEURONALE

Secolul 21 este fi secolul masinilor inteligente, iar retelele neuronale artificiale au


devenit parte integranta a vietii.
Pentru ca inginerii de sisteme sa poata indeplini aceste promisiuni trebuie sa inceapa
prin folosirea noilor tehnologii neuronale. Pentru aceasta ei trebuie sa-si optimizeze timpul prin
utilizara sistemelor hardware si software deja implementate anticipand in acelasi timp ceea ce va

58
veni. Din acest motiv aceasta sectiune este impartita in doua parti, ceea ce exista in prezent si
ceea ce se prevede ca va veni.
In prezent pe piata exista un numar destul de mare de producatori de retele neuronale,
fiecare impartindu-si o parte din afacere. Exista retele neuronale care sunt simple adaugiri la
bazele de date si procesoarele de text clasice, dar alte produse sunt folosite pentru operatii
particulare pe masini particulare.
Unele din aceste aplicatii constituie unelte pentru aplicatii concrete cum ar fi procesarea
imaginilor, iar altele sunt capabilitati generale dar mai putin eficiente de rutare a datelor. Pentru
fiecare din aceste aplicatii se identifica punctele slabe si se lucreaza pentru imbunatatirea
acestora.
In alegerea unei unelte de dezvoltare un inginer software trebuie sa tina cont de toate
noile apartitii in domeniu. Majoritatea produselor nu au evoluat in rutine prietenoase pentru
utilizator.
Sistemele de dezvoltare permit utilizatorului sa realizeze un prototip al unei retele.
Majoritatea acestor sisteme ruleaza pe orice calculator clasic, existand insa si unele care necesita
sisteme de calcul specializate. In generat acestea sunt niste simple unelte care realizeaza retele
dar care sunt niste concepte care rezolva problemele dar intr-un timp inacceptabil de lung.
Procesoarele neuronale dedicate au capabilitati specifice care le permit sa fie folosite
pentru retele neuronale. O serie de producatori de cipuri au realizat astfel de procesoare unele
comandate special de catre dezvoltatorii de sisteme neuronale. O parte din aceste procesoare
incapsuleaza o serie de neuroni intr-un singur cip, altele incorporeaza o serie de concepte cum ar
fi crearea unui model special de neuron fuzzy. Aceste cipuri s-au construit in multe tehnologii
analogice, digitale, hibride sau optice, pana in prezent nici una din acestea nedetasandu-se ca
invingatoare.
Producatorii prezic ca migrarea de la unelte la aplicatii va continua. In particular
tendinta este de evolutie catre sisteme hibride. Aceste sisteme vor ingloba si alte tipuri de
procese, fuzzy, sisteme expert sau algoritmi cinetici, cel mai mare interes avandu-l in prezent
integrarea retelelor neuronale in tehnicile fuzzy. Tehnicile fuzzy incorporeaza inexactitatile in
matematica. Majoritatea datelor nu se pot incadra exact in categorii predefinite. De exemplu o
persoana nu este doar scunda sau inalta. Aceasta poate fi foarte inalta, medie, sau foarte scunda.
Logica fuzzy ia aceste variatii din lumea reala in considerare. In aplicatiile potentiale pentru
retele neuronale in sisteme care rezolva probleme reale fuzificarea este o parte importanta a
problemei. La automatizarea unui automobil oprirea nu inseamna o franare brusca iar pornirea
nu este o demarare in tromba. Pentru a ajuta retelele neuronale sa se acomodeze cu aceasta
fuzificare a vietii cercetatorii realizeaza neuroni fuzzy. Acestia nu ofera doar un raspuns de tip
da sau nu, ci unul mult mai diversificat.
Sistemele construite cu neuroni fuzzy pot fi initiate catre ceea ce un expert crede ca
reprezinta regulile aplicatiei date. Aceasta contopire a retelelor neuronale cu logica fuzzy si
sistemele expert utilizeaza puterea reunite a celor trei discipline pentru a oferi un sistem mai bun
decat este capabila fiecare dintre aceste stiinte individual. Sistemele expert iau problemele

59
pentru care majoritatea expertilor umani nu sunt capabili sa inteleaga toate nuantele si
implicatiile deci nu sunt capabili sa stabileasca setul de reguli care definesc problema. Dar
pentru retelele neuronale nu conteaza daca regulile nu sunt foarte exacte, deoarece acestea pot
invata si apoi corecta erorile umane. Pot adauga noduri sau concepte pe care expertul uman nu le
intelege, pot implica folosirea logici fuzzy care defineste concepte de inalt, scund, rapid si incet.
In concluzie retelele neuronale artificiale sunt una din promisiunile privind viitorul
calculatoarelor. Ele ofera abilitati de realizare a unor sarcini peste posibilitatile procesoarelor
obisnuite. Pot recunoaste forme in interiorul unor seturi de date pentru ca apoi sa generalize
acele forme in directii recomandate de actionare. Retelele neuronale invata, deci nu sunt
programate prin algoritmi exacti.
Totusi, chiar daca nu sunt programate traditional, realizarea lor necesita o indemanare.
Aceasta implica intelegerea diferitelor topologii de retele, a posibilitatilor hardware si software
curente, a problemei care trebuie rezolvata, precum si o strategie de achizitie a datelor necesare
pentru antrenarea retelei.
Apoi arta construirii retelei implica o munca de introducere a datelor in sistem precum si o
monitorizare a performantelor, adaugarea de noi legaturi, modificari de reguli, pana cand reteaua
ajunge sa ofere rezultatele dorite.
Aceste rezultate sunt in natura statistice. Reteaua nu are intotdeauna dreptate. Din acest
motiv retelele neuronale se folosesc la aplicatii pentru care nici oamenii nu sunt intotdeauna
exacti.
Totusi viitorul promite. Retelele au nevoie de componente hardware mai rapide, trebuie
sa se integreze in sisteme hibride impreuna cu sisteme expert si logica fuzzy. Atunci vor fi
capabile sa auda, sa vada sa ia decizii si sa formuleze actiuni. Atunci vor deveni inteligenta din
spatele robotilor care nu obosesc niciodata si nici nu devin distrati. Atunci va incepe cu adevarat
epoca masinilor inteligente.

1.3 STRUCTURA RETELELOR NEURONALE ARTIFICIALE


Una din principalele directii de cercetare care preocupa specialistii din domeniile
psihologiei, biologiei, matematicii, filozofiei, chimiei si chiar fizicii o reprezinta intelegerea
comportamentului creierului uman si realizarea unor echivalente artificiale ale acestuia. In viitor
este de asteptat ca rezultatele obtinute sa influenteze o serie de alte stiinte, si poate chiar modul
actual de percepere a vietii.
Multi cercetatori isi limiteaza studiile doar la influentele pe care le are aceasta noua
stiinta asupra propriiei lor ramura de activitate, si poate din acest motiv, sau poate datorita
complexitatii, principiile generale ale memorarii si dezvoltarii comportamentelor specifice
naturale, nu au fost inca dezvaluite complet.
Chiar daca momentul pionieratului in acest domeniu poate fi incadrat cu multi ani in
urma, progresele remarcabile au inceput sa apara doar de cateva decenii, odata cu aparitia
sistemelor de calcul si a capacitatilor de masurare a performante la nivel de neuroni care au facut
posibila testarea prin simulare a modelelor construite.

60
Se poate spune ca ceea ce a intarziat dezvoltarea retelelor neuronale a fost in primul
rand lipsa unor echipamente electronice performante de calcul si simulare.
Studiul creierului uman a inceput cu sute de ani in urma, iar o data cu avansul tehnologic
si cu aparitia echipamentelor electronice, incercariloe de reproducere artificiala a acestui model
de gandire s-au nascut in mod natural. Primul pas catre aparitia retelelor neuronale moderne a
fost facut in 1943, cand neuropsihologul Warren McCulloch, impreuna cu un tanar matematician
Walter Pitts au scris o carte in care ofereau o prima presupunere a modului in care neuronii ar
putea functiona, ei modeland apoi pe baza acesteia o retea neuronala simpla din circuite
electrice.
Donald Hebb, in cartea sa „Organizarea comportamentelor” scrisa in anul 1949
reintroduce conceptul de neuroni, elementul de noutate fiind ipoteza ca puterea legaturilor dintre
neuroni creste la fiecare folosire.
Aparitia primelor sisteme electronice de calcul a facut posibila aparitia primelor
implementari, bineinteles rudimentare la inceput, care sa modeleze teoriile referitoare la modul
uman de gandire.
Nathanial Rochester de la laboratoarele de cercetare IBM a fost primul care a incercat sa
simuleze o retea neuronala biologica. Chiar daca prima incercare a esuat sustinatorii teoriei au
adus noi argumente in favoarea caesteia, o adevarata piatra de temelie fiind pusa in anul 1956 la
tabara de cercetare de vara de la universitatea Darthmount.
Proiectrul propus aici urmarea stimularea cercetarilor atat in domeniul inteligent, sau
AI cum este denumit in industrie, cat si, intr-o mai mica masura intradevar, in domeniul
proceselor neuronale ale creierului.
In anii care au urmat proiectului Dartmouth, John von Neumann a sugerat posibilitatea
imitarii functilor simple ale neuronilor prin folosirea releelor telegrafice sau a tuburilor vidate.
In acealsi timp Frank Rosenblatt, un neurobiologist la Cornell University, si-a inceput
munca la ceea ce urma sa poarte numele de perceptorn. Totul a inceput de la fascinatia lui asupra
modului de operare al ochilor unei muste, acolo unde apare reflexul care ii spune acesteia sa
zboare in caz de pericol.
Perceptronul, care a rezultat in urma acestor cercetari, a fost implementat hardware, si a
devenit cea mai veche retea neuronala care se mai foloseste in prezent. Un percepron cu un
singur strat s-a dovedit a fi suficient pentru clasificarea unui set de intrari in doua clase distincte.
Perceptronul calculeaza o suma a intrarilor, extrage un prag si trimite una sau doua valori
posibile catre iesire.
Din pacate capacitatile perceptronului sunt totusi limitate.
In decursul anilor s-au realizat doua modele numite „Adaline”, si „Madaline”, care
foloseau elemente liniare adaptive multiple. Cel de-al doilea model, „Madaline” a fost prima
retea neuronala folosita pentru rezolvarea unei probleme adevarate din lumea reala, construirea
unui filtru adaptiv care sa elimine ecoul din liniile telefonice.
Mai tarziu a aparut necesitatea crearii unor dispozitive utile, si nu doar incercarea
reproducerii functionarii creierului uman. Folosind o analiza matematica concisa el a demonstrat
cat de multe pot realiza retelele neuronale in folosul omenirii.
61
Astfel s-a intrat in cea de-a cincea etapa de cercetare in domeniul inteligentei artificiale.
Astazi discutiile privitoare la retele neuronale apar pretutindeni. Promisiunile par
deosebit de optimiste, natura insasi fiind o dovada a faptului ca acest mod de gandire
functioneaza. Totusi cheia acestei tehnologii o reprezinta puterea de calcul. Cele mai multe
retele neuronale realizate in prezent sunt doar o dovada ca principiul functioneaza, dar datorita
limitarilor hardware, antrenarea acestora dureaza de multe ori mai mult decat poate fi acceptat.
Pentru a scoate aceste prototipuri din laboratoarele de cercetare, este nevoie de realizarea unor
cipuri speciale, companiile specializate efectuind cercetari pentru realizarea unor modele
digitale, analogice sau optice.
Viitorul pare a fi al cipurilor optice, totusi vor trebui sa mai treaca destui ani pana cand
acestea sa-si poata face intrarea in aplicatiile comerciale.
Cu toate ca primele referiri si chiar cercetari privind modalitatiile de implementare ale
modelului neuronal au prins contur cu foarte mult timp in urma, a trecut doar o jumatate de secol
de cand observatiile stintifice au inceput sa dea unele rezultate si o privire de ansamblu asupra
mecanismelor biologice care fac posibil procesul de invatare.
De aceea in zilele noastre mai exista o serie intreaga de necunoscute, iar cercetarea in
acest domeniu este departe de a fi incheiata, modul exact de functionare al creierului ramanand
inca un mister.
Cu toate acestea, la ora actuala se cunosc cateva aspecte importante ale acestui complex
mecanism. In particular elementul care sta la baza mecanismului de invatare este un tip special
de celula, care, spre deosebire de celelalte celule ale corpului nu se regenereaza, si tocmai
datorita faptului ca aceasta este singura celula cu o durata de viata egala cu cea a intregului
organism, se presupune ca ea asigura abilitatiile de memorare, gandire si utilizare voluntara sau
involuntara a experientelor trecute in actiunile si deciziile prezente.
Aceste celule, in numar de 100 de miliarde sunt cunoscute sub numele de neuroni.
Fiecare neuron se poate conecta cu pana la 200 de mii de alti neuroni, numarul mediu de
conexiuni fiind insa de doar 1.000 pana la 10.000.
Puterea mintii umane este data tocmai de numarul acestor legaturi, coroborat cu
mostenirea genetica si procesele de invatare care au in rol deosebit de important in evolutia
oricarui individ.
Forma interna a unui neuron este deosebit de complexa. Acesta contine o multitudine de
parti, subsisteme si mecanisme de control, dar intrucat comportarea creierului este data in primul
rand de legaturile dintre neuroni si nu de comportarea fiecarui neuron in parte, aceste subsisteme
nu sunt relevante pentru directia de cercetare prezentata.
Neuronii comunica prin intermediul unor stimuli electrici, dar cu toate acestea,
mecanismul complex pe care il formeaza nu poate fi comparat cu nici un sistem de calcul
electronic existent la ora actuala, chiar si retelele neuronale artificiale fiind departe de acest
ideal.
In particular, orice neuron are la baza patru componente. Acesta primeste date de intrare
de la alti neuroni, le combina intr-un anumit mod, aplica rezultatului o transformare neliniara si

62
apoi il transmite catre iesire. In figura urmatoare sunt prezentate cele patru componente de baza
ale neuronului:
In creierul uman exista variatii diverse ale acestui model de baza al neuronului, toate
continand insa cele patru componente, cunoscute prin numele lor biologice: dendrita, soma,
axion si sinapsa.
Dendritele sunt niste extensii ale somei de tipul firelor de par, cu rol de canale de intrare.
Acestea receptioneaza datele de intrare de la sinapsele altor neuroni. Soma proceseaza apoi
semnalele primite si transmite rezultatele catre alti neuroni prin axon si sinapse.
Cercetari recente au aratat ca neuronii biologici au o structura mult mai complexa decat
explicatia simplista data. O data cu avansul tehnologiei, cercetatorii pot oferii o imagine tot mai
larga a acestor elemente care stau la baza intelegerii comportamentului creierului uman.
Retelele neuronale artificiale sunt considerate de multi specialisti ca un posibil viitor in
evolutia sistemelor clasice de calcul. Ele sunt mecanisme cu posibilitati de autoinvatare care nu
necesita traditionalele abilitati ale unui programator esentiale pana acum.
Retelele neuronale artificiale incearca sa reproduca doar elementele de baza, si acestea in
cel mai primitiv mod posibil, dar scopul acestora nu este sa reproduca creierul uman, ci sa ofere
o noua modalitate de abordare a problemelor practice existente in acest moment, metoda
inspirata doar din modelele biologice.
Cu toate acestea, posibilitatile acestor retele sunt totusi limitate, acest lucru starnind o
reactie de dezamagire din partea posibililor clienti in randul carora se formase ideea ca noua
tehnologie poate rezolva aproape orice problema. Concluzia la care au ajuns acestia, dupa ce nu
au reusit sa rezolve unele probleme cu ajutorul retelelor neuronale, a fost ca acestea sunt
complicate si confuze. Confuzia a rezultat in urma numeroaselor articole care au aparut in acea
vreme, fiecare propunand alte configuratii si alte exemple de folosire a retelelor. In prezent doar
o mica parte din modelele propuse atunci sunt folosite pe plan comercial, o structura aparte,
numita „feedfoorward back-propagation” find de departe cea mai populara. Multe din modele de
retele existente in prezent reprezinta inca doar niste prototipuri studiate in laborator. Retelele
neuronale sunt doar niste simple unelte si pentru a putea fi folosite cu succes este necesar ca
„arhitectul” sa stie cum sa le exploateze posibilitatile.

63
Fig. 1.1. Neuronul Biologic

Retelele neuronale artificiale sunt niste modele electronice bazate pe structura


neuronala a creierului, care invata din experientele trecute. Este deja un lucru unanim acceptat
faptul ca exista unele probleme care depasesc capacitatile calculatoarelor moderne, dar care pot
fi rezolvate folosind aceste modele.

64
Aceste metode inspirate din domeniul biologiei sunt considerate ca fiind o noua era in
evolutia industriei sistemelor de calcul, chiar si creierul unui simplu animal fiind capabil sa
indeplineasca functii imposibile pentru un calculator clasic. Acesta se descurca destul de bine
atunci cand trebuie sa rezolve o problema matematica, dar are mari probleme in momentul in
care trebuie sa recunoasca cele mai simple forme, cu atat mai putin in cazul in care modelele din
trecut trebuie transpuse in actiuni viitoare.
Cercetarile recente in domeniul biologic au aratat faptul ca creierul retine informatiile
sub forma unor tiparuri, unele dintre acestea de o complexitate ridicata permitand de exemplu
recunoasterea unei fete umane din diferite unghiuri. Acest model de reprezentare a informatiilor
si folosirea ulterioara a acestora pentru rezolvarea unor probleme deschide un nou domeniu de
lucru pentru programatori, care nu trebuie sa mai folosesaca metodele traditionale algoritmice de
programare, ci trebuie sa creeze niste retele paralele a caror antrenare ar permite rezolvarea unor
probleme specifice. Domeniul implica de asemenea folosirea unor termeni necunoscuti pana
acum in aceasta lume, cum ar fi „comportare”, „reactie”, „autoorganizare”, invatare” sau
„generalizare”.
Pentru a-si indeplini scopul pentru care au fost construite retele neuronale artificiale
simuleaza cele patru functii de baza ale neuronului biologic.

Fig. 2.2. Neuron artificial

Fiecare intrare a neuronului este reprezentata sub forma unui simbol matematic x(n),
care este multiplicat cu ponderea intrarii respective w(n). In cazul cel mai simplu, intrarile sunt
doar sumate, apoi rezultatul este trecut prin functia de transfer care genereaza rezultatul transmis
la iesire. Implementarea acestei reprezentari este posibila printr-un circuit electronic, chiar

65
utilizand functii de sumare si de transfer mai complexe, intreaga retea neuronala creata ocupand
un spatiu fizic destul de redus.
Cele mai multe aplicatii necesita o iesire de tip adevarat/fals, adica un raspuns binar.
Printre acestea se numara recunoasterea textelor, identificarea vorbirii, si obiectualizarea
imaginilor, deci aplicatii care transforma lumea reala in valori numerice specifice unui sistem de
calcul. Valorile obtinute sunt restranse la un set limitat binecunoscut, cum ar fi setul de caractere
ASCII sau cele mai folosite 50.000 de cuvinte dintr-o limba.
Alte retele rezolva probleme in care valoarea de iesire nu mai face parte neaparat din
multimea de valori cunoscute, putand avea un numar infinit de raspunsuri, cea mai folosita
aplicatie de acest tip fiind cea care sta la baza „inteligentei” in miscari a robotilor. In acest caz
parametri de intrare genereaza un numar practic infinit de valori de iesire care reprezinta niste
miscari foarte precise. Aceste retele urmaresc uniformizarea intrarilor cuantizate datorita
limitarilor impuse de senzori (datele masurate vin intr-un flux discontinuu) prin insumarea
acestora si aplicarea unei functii de transfer de exemplu de tip tangenta hiperbolica. In acest fel
valorile de iesire sunt continue si astfel miscarile rezultate reproduc mult mai bine lumea reala.
Cea de-a doua etapa a crearii retelei neuronale presupune conectarea neuronilor intr-unul
din nenumaratele moduri posibile. In cazul retelelor biologice fiecare neuron este o componenta
microscopica tridimensionala capabila sa creeze un numar infinit de legaturi. Acest lucru este
imposibil in cazul retelelor artificiale datorita limitarilor fizice. Circuitele integrate realizate
folosind tehnologiile curente sunt bidimensionale, si au un numar limitat de interfete de
conectare, aceasta restrangand numarul si scopul retelelor implementate fizic.
Retelele neuronale artificiale actuale sunt doar niste simple multimi de neuroni realizate
prin crearea unor interfete si conectarea acestora. Modul in care se conecteaza neuronii este
partea esentiala a proiectarii care practic indreptateste aceste structuri artificiale sa fie numite
solutii pentru probleme din lumea reala.

Fig. 1.3. Topologia RNA

66
Majoritatea retelelor neuronale create artificial au la baza topologia prezentata in
figura de mai sus, in care cativa neuroni reprezinta interfata cu lumea reala prin citirea intrarilor
sau oferirea valorilor de iesire, iar restul sunt neuroni ascunsi dar care implementeaza functiile
retelei.
Cativa dintre pionierii acestei stiinte au incercat sa realizeze retele prin simpla conectare
intr-un mod aleator a neuronilor, dar cu un procent redus de reusita, aceasta deoarece retelele
neuronale nu sunt doar o ingrengatura de neuroni, pozitia si interfetele acestora fiind specifice
problemei pentru care a fost conceputa reteaua.
Cea mai intalnita modalitate de a realiza retele consta in impartirea neuronilor in straturi,
legaturile dintre aceste grupuri si proprietatiile neuronilor fiind cele care dau functionalitatea
retelei.
Intre cele doua nivele de interfata exista unul sau mai multe nivele ascunse
interconectate in moduri variate.
Un mod uzual de proiectare presupune conectarea fiecarui neuron de pe un strat ascuns
cu toti neuronii din stratul imediat superior, realizandu-se un traseu de tip „numai inainte” (feed
forward) catre iesire.
Linile de comunicatii reprezinta o componenta importanta a retelei, prin „puterea” pe
care o confera intrarilor. Exista doua tipuri de legaturi, una cauzand excitarea si cealalalta
inhibarea neuronului.
Ca un exemplu la aplicatiile de recunoastere a caracterelor, se determina o probabilitate
a apartenentei simbolului de intrare corespunzatoare fiecarui caracter cunoscut, iar reteaua va
urmari alegerea neuronului din stratul de iesire care reprezinta caracterul cu probabilitatea cea
mai mare, si inhibarea tuturor celorlalti. Metoda folosita pentru indeplinirea acestei sarcini este
inhibarea laterala, iar intregul concept poarta numele de „competitie”
Un alt tip de legatura este cea de reactie, prin care o iesire a unui strat se conecteaza la
una din intrarile unui strat anterior.
Structuri si mod de functionare

Retelele neuronale artificiale reprezinta o clasa mai larga de arhitecturi de procesare


paralela utile in diferite aplicatii complexe. Aceste arhitecturi nu trebuie confundate cu
procesarea paralela uzuala care aplica doar unitati de procesare secventiale unor topologi de
calcul clasice.
In schimb retelele neuronale sunt complet diferite de arhitectura clasica Von Nuemann,
ideea de baza fiind imitarea modului de functionare al creierului uman.

67
Fig. 1.4. Retea cu reactie

Dupa cum a fost mentionat mai sus, retelele neuronale artificiale sunt bazate putin pe
biologie, cercetarile efectuate pana in prezent asupra creierului dezvaluind doar o mica parte a
misterului functionarii neuronilor si al inteligentei in general. Cercetatorii lucreaza atat in
domeniul biologic cat si in cel ingineresc pentru a descifra mecanismele de baza ale modului in
care omul invata si reactiioneaza la experinetele zilnice. Imbunatatirea cunostintelor despre
procesele neuronale ajuta la crearea unor retele tot mai performante si mai succinte.
Pasii de realizare a unui model neuronal sunt:
- urmarire evidentelor
- construirea ipotezei
- crearea modelului si
- analiza si simularea comportarii modelului comparand-o cu
cea a creierului.
Daca se gasesc diferente de comportament se schimba ipoteza initiala si se modifica
modelul. Se repeta aceasta procedura pana cand modelul se comporta la fel ca si creierul. Acest
algoritm obisnuit a dus la crearea a sute de topologii de retele. Calculul neuronal se refera totusi
la masini si nu la creiere.
Este procesul prin care se incearca construirea de sisteme care sa urmeze modelele de
succes biologice create de natura pentru rezolvarea unor probleme reale, dar nu sa le reproduca
pe acestea in totalitate.
Aceasta legatura cu biologia este motivul pentru care s-a format o tendinta arhitecturala
comuna referitoare la retelele neuronale artificiale de astazi. intr-o mare varietate de retele
neuronale.
Modelul elementului de procesare al acestora arata ca retelele folosite pentru predictie
pot fi foarte similare cu cele folosite pentri clasificare, si in general cu orice tip de retele, toate
elementele de procesare avand elemente comune.

68
Componente
Componenta 1: Factorii de ponderare.

Un neuron primeste de obicei mai multe intrari simultan. Fiecare dintre acestea are o
anumita pondere care ii da impactul necesar asupra functiei de insumare. Aceste ponderi
realizeaza aceleasi functii ca si rezistenta legaturilor sinaptice ale neuronilor naturali. In ambele
cazuri unele intrari sunt mai importante decat altele astfel incat au un efect mai mare asupra
elementului de procesare si a combinatiei care da raspounsul final. Ponderile sunt niste
coeficienti adaptabili ai retelei care se modifica in functie de regulile specifice de antrenare la
aplicarea unor seturi de date de intrare.

Componenta 2: Functia de insumare

Primul pas al operatiei elementului de procesare este calcularea sumei tuturor intrarilor
ponderate. Matematic, intrarile si ponderile corespunzatoare pot fi reprezentate sub forma de
vectori: (i1, i2, i3, ..., in) si (w1, w2, w3, ..., wn), semnalul total de intrare fiind produsul celor doi
vectori. Functia de sumare cea mai simplista inmulteste fiecare componenta a vectorului i cu
corespondentul din vectorul w si apoi aduna rezultatele obtinute, rezultand un singur numar.
Geometric, produsul vectorial poate fi considerat o masura a similaritatii dintre cei doi
vectori. Daca acestia indica aceeasi directie produsul este maxim, iar daci directile sunt opuse
produsul este minim.
Dar functia de sumare poate fi mult mai complexa decat atat, intrarile si ponderile
putand fi combinate in multe alte moduri inainte de a fi transmise catre functia de transfer. Ca o
adaugire la sumarea simpla, functia poate selecta minimul, maximul, produsul, sau alti algoritmi
de normalizare. Algoritmul specific de combinare a intrarilor este determinat de arhitectura de
retea aleasa, si de modelul acesteia.
Unele functii de sumare pot aplica un proces aditional rezultatului inainte de a-l
transmite catre functia de transfer. Acest proces este deseori numit functie de activare. Scopul
folosirii acestei functii este acela de a permite rezultatului insumarii sa varieze in functie de
timp. Totusi cele mai multe retele folosesc o functie de activare de tip „unitate” ceea ce este
similar cu a nu avea o asemenea functie, la nevoie functia putand fi adaugata intregii retele, nu
fiecarui element de procesare in parte.

Regula de antrenare Functa de sumare Functia de transfer Scalare Limitare Functia de iesire
i0
W0 69
Suma Liniar
Maxim Sigmoid
i1W1 Minim Signum
Direct
Iesire
. sX+o Maxim
Major BAM
. Wn
.
in

Tip
Zgomot
suma transfer

Generator de zgomot

regula
Hebb
Delta

Program de reamintire si invatare

PE
Reamintire
Limita superioara
eroare Limita inferioara
Offset
Factor scalare
Invatare

Intrari competitive

Contor reamintre
Contor invatare

Fig. 1.5. Componentele neuronului artificial


Componenta 3: Functia de transfer
70
Rezultatul functiei de insumare este transformat intr-o iesire cuantizata printr-un
algoritm cunoscut sub numele de functie de transfer. Daca rezultatul depaseste o valoare de prag
elementul de procesare genereaza un semnal.
Functia de transfer este in general neliniara, functiile liniare fiind limitate datorita
proportionalitatii cu intrarea si de aceea nu sunt folosite.
Un alt tip de functie de transfer, rampa, reproduce intrarea pe un anumit interval, si
actioneaza ca un limitator in afara intervalului.

Limitator Rampa
y y

x x

Functii sigmoide

x x

Fig. 1.6. Functii de transfer

Inaintea aplicarii functiei de transfer, se adauga de obicei un zgomot aleator uniform


distribuit, natura si nivelul acestuia fiind date de algoritmul de antrenare al retelei respective.
Zgomotul este de obicei echivalentul electronic al temperaturii neuronilor biologici. Notiunea
este derivata din fenomenul fizic de alterare a capacitatilor mintale ale oamenilor in momentul
cresterii sau scaderii temperaturii corpului. Pentru a mima cat mai bine caracteristicile naturale,
uni cercetatori folosesc o sursa de zgomot gausian.

Componenta 4: Scalare si limitare


Dupa aplicarea functiei de transfer, rezultatul poate trece printr-un proces aditional de
scalare si limitare. Scalarea multiplica doar valoarea cu un factor de timp si adauga o
compensare, iar limitarea este mecanismul prin care se asigura faptul ca rezultatul scalat nu
depaseste limitele domeniului.

71
Componenta 5: Iesirea (Competitia)
Fiecare element de procesare poate genera un singur semnal de iesire la un moment dat,
pe care il poate transmite catre un numar teoretic nelimitat de alti neuroni. In mod normal iesirea
este direct proportionala cu rezultatul functiei de transfer, dar exista unele retele care
implementeaza un mecanism de competitie intre neuronii vecini. Prin competitie un neuron cu
un nivel ridicat al semnalului de iesire (cu putere mare) poate inhiba iesirile neuronilor vecini.
Competitia poate aparea la unul sau ambele nivele de functionare. In functionare normala
competitia va determina neuronul care va fi activ , deci va transmite iesirea, iar in cazul invatarii
elementul de procesare care va participa la procesul de antrenare.

Componenta 6: Functia de eroare si valoarea de reactie


La majoritatea retelelor antrenate, diferenta dintre iesirea curenta si cea dorita se
calculeaza si se transforma prin functia de eroare intr-o arhitectura particulara de retea. Cea mai
simpla arhitectura foloseste aceasta eroare direct, iar altele, mai complexe, aplica operatori de
extragere de radacini, pentru a indeplni scopuri particulare. Eroarea unui neuron este apoi
transmisa catre functiile de adaptare ale altor elemente de procesare.

Compponenta 7: Functia de adaptare


Aceasta este componenta care modifica ponderile intrarilor fiecarui element de
procesare in functie de algoritmul de antrenare folosit, pana cand eroarea de iesire va avea o
valoare acceptabila.

Antrenare
Dupa ce o retea a fost structurata pentru o aplicatie particulara aceasta trebuie sa fie
antrenata, adica trebuie sa invete sa asocieze valorile primite la intrare cu una din iesirile dorite.
Antrenarea incepe cu o initializare aleatoare a ponderilor legaturilor, si se termina in
momentul in care acestea au fost ajustate astfel incat reteaua sa ne dea rezultatele dorite.
Exista doua moduri in care poate fi antrenata o retea (supravegheat si nesupravegheat)
alegerea unuia dintre ele facandu-se in functie de scopul proiectarii retelei, adica de problema
care trebuie rezolvata. Antrenarea supravegheata implica folosirea unui mecanism de furnizare a
intrarilor si asocierea acestora cu iesirile, iar cea nesupravegheata este cea in care reteaua trebuie
sa culeaga informatiile de intrare direct din lumea reala fara nici un ajutor extern, si sa se
adapteze la aceasta.
Majoritatea retelelor utilizeaza antrenarea supravegheata, cealalta metoda fiind folosita
doar pentru o caracterizare initiala a intrarilor, conceptul de „autoinvatare” fiind deocamdata
doar o posibila perspectiva, venita din lumea laboratoarelor de cercetare.

Antrenarea supravegheata

72
In acest caz sunt cunoscute atat intrarile cat si iesirile. Reteaua citeste un set de valori de
intrare si compara iesirile obtinute cu setul dorit, erorile fiind apoi propagate inapoi in retea
implicand ajustarea ponderilor. Acest proces se repeta de un numar mare de ori folosind seturile
de date de intrare speciale numite „seturi de invatare” pana cand reteaua ajunge la un nivel de
performanta acceptat.
Cu toate acestea exista cazuri in care retelele nu invata niciodata. Acest lucru se poate
intampla fie datorita faptului ca datele de intare nu contin destule informatii specifice din care sa
rezulte iesirea dorita, sau daca nu exista seturi suficiente de date de intrare pentru convergenta.
Retelele mari cu multe straturi ascunse pot fi capabile sa memoreze seturile de date de intare si
iesirile corespunzatoare dorite, acest lucru ducand la o incapacitate de recunoastere a altor seturi
de date diferite de cele folosite la antrenare. Pentru a verifica acest neajuns metoda de antrenare
supravegheata necesita pastrarea unui set de date care nu va fi folosit in procesul de invatare ci
numai la sfarsitul acestuia pentru testare. Fenomenul de memorare poate fi evitat prin folosirea
unor retele cu un numar cat mai redus de componente.
Daca o retea pur si simplu nu poate rezolva o problema se revizuieste intregul proces de
proiectare incluzand numarul de elemente de pe fiecare strat, legaturile dintre straturi, functiile
de sumare si transfer si chiar initializarea parametrilor.
In final cand reteaua a fost antrenata complet valorile ponderilor pot fi „inghetate” si
apoi intregul sistem este implementat fizic prin circuite electronice, sau reteaua poate functiona
direct in varianta virtuala, caz in care va fi capabila sa invete in continuare din propria
experienta.

Antrenarea nesupravegheata
Lumea reala este plina de exemple de situatii in care nu poate fi definit un set de valori
de intrare de antrenare pentru ca acesta pur si simplu nu exista, solutia la aceasta problema fiind
folosirea antrenarii nesupravegheate. In acest caz se ofera doar valorile de intrare, sistemul
trebuind sa decida singur cum le va grupa pentru obtinerea iesirilor, concept numit
autoorganizare sau adaptare.
In prezent antrenarea nesupravegheata nu este inca foarte bine inteleasa adaptarea fiind
doar un ideal care va permire realizarea unor roboti inteligenti capabili sa invete singuri din
experientele anterioare si sa se adapteze la schimbarile survenite in mediu si la incercarile la care
sunt supusi.
O posibila aplicare a acestei situatii ar fi in domeniul militar unde sunt descoperite
continuu noi arme si tehnici de lupta care schimba complet „ecuatiile problemei” lucru care duce
la inutilitatea folosiri in scopuri defensive a unor roboti antrenati in mod supravegheat adaptati
exact la niste parametrii fixi, mult mai utilie fiind niste sisteme inteligente capabile sa se
adapteze singure la noile provocari ale mediului, create cu ajutorul unor algoritmi de antrenare
nesupreavegheati.
Datorita aspectului neasteptat al vietii si datorita dorintei omului de a fi intotdeauna
pregatit, se fac in continuare cercetari intense in acest domeniu al viitorului.
73
Unul dintre principalii sustinatori ai retelelor autoadaptabile este Tuevo Kohonen, un
inginer de la Universitatea Tehnica din Helsinki, care a creat o retea numita „autoasociator”,
capabila sa invete fara sa cunoasca raspunsul corect. Este o retea cu topologie neobisnuita care
contine un singur strat cu multe legaturi, iar neuronii sunt angrenati intr-o competitie de tipul
„castigatorul ia tot”.
Kohonen isi continua studiile pe retele structurate diferit de standardul „feedforward
back-propagation”, ideea fiind gruparea neuroniilor in grupuri, neuronii apartinatori unui grup
fiind ordonati topologic. Topologia este o ramura a matematicii care studiaza modul in care se
pate face o trecere de la un spatiu la altul fara a se schimba configuratia geometrica a acestora.
Kohonen a aratat ca lipsa topologiei in modelele neuronale curente face din acestea doar
niste simple abstractizari ale retelelor naturale. In viitor, o data cu continuarea cercetarilor si
dezvoltarea capacitatilor de calcul, aceste retele autoadaptive nu vor mai fi doar un subiect de
cercetare, iar implicarea lor in lumea reala va fi din ce in ce mai evidenta.
Legi de antrenare
Exista multe legi de antrenare folosite in mod curent. Majoritatea sunt variatii ale primei,
si celei mai cunoscute legi a lui Hebb. Cercetarile asupra noilor functii de antrenare continua, si
ideile noi apar frecvent in publicatii. Exista cercetatori care au ca principal obiectiv modelarea
gandirii biologice. Altii experimenteaza adaptari ale perceptiilor propri dspre gandirea naturala.
In orice caz, gradul de intelegere al acestor procese este inca foarte limitat. Invatarea este cu
mult mai complexa decat simplificarile reprezentate de legile descrise mai jos:

Regula lui Hebb: Prima, si fara dubii, cea mai cunoscuta regula a fost introdusa de
Donald Hebb in anul 1949 in cartea „Organizarea comportamentelor”. Enuntul este urmatorul:
„Daca un neuron primeste o intrare de la alt neuron, si daca ambii sunt activi (matematic au
acelasi semn), legatura dintre ei trebuie stransa.”

Regula Hopfield: Este similara cu regula lui Hebb, cu mentiunea ca specifica valoarea cu
care se va creste sau scade o pondere. „Daca intrarea si iesirea sunt ambele active, sau ambele
inactive, creste ponderea legaturii cu rata de invatare, in caz contrar scade ponderea cu aceeasi
rata.”
Regula Delta: Este o noua variatie a regulii lui Hebb, fiind una dintre cele mai folosite. Se
bazeaza pe simpla idee a modificarii continue a ponderiilor pentru a reduce diferenta (delta)
dintre iesirea dorita si cea obtinuta la un element de procesare. Aceasta regula modifica ponderile
in directia minimizarii erorii patratice medii a retelei. Regula mai poate fi referita si ca regula
Widrow-Hoff, sau regula LMS(Least Mean Square).
Regula functioneaza in sensul transformarii erorii de catre derivata functiei de transfer,
si apoi folosirii acesteia in stratul anterior pentru ajustarea ponderilor. Cu alte cuvinte, eroarea
este propagata inapoi catre straturile anterioare, procesul continuand pana cand se ajunge la
primul nivel. Retelele de tip „FeedForward Back-propagation” sunt derivate din aceasta metoda
de tratare a erorii.

74
La utilizarea regulii Delta este important ca datele de intrare sa fie bine amestecate. Un
set de antrenare ordonat poate duce la o imposibilitate a retelei de a converge catre gradul de
acuratete dorit. Daca acest lucru se intampla reteaua este incapabila sa rezolve problema.

Regula gradientului descrescator: Este similara cu regula Delta, prin folosirea derivatei
functiei de transfer, dar ponderea nu se mai modifica cu factorul de antrenare, ci cu o constanta
legata de aceasta. Aceasta regula se foloseste chiar daca reteaua converge foarte incet catre
punctul de stabilitate.
S-a demonstrat ca rate de invatare diferite pentru straturi diferite ale retelei ajuta la
cresterea vitezei de convergenta. Pentru nivelele mai apropiate de iesire s-au alocat rate mai mici
decat pentru cele de la intrare. Acest lucru este important mai ales pentru cazurile in care datele
de intrare nu sunt derivate dintr-un model fundamental de baza.
Legea lui Kohonen: Procedura elaborata de Teuvo Kohonen a fost inspirata de sistemele
biologice. In acest caz, elementele de procesare se intrec pentru a avea oportunitatea de a invata,
deci de a-si ajusta ponderile. Elementul cu iesirea cea mai mare are capacitatea de a-si inhiba
competitorii si deci numai succesorii acestuia isi pot ajusta ponderile.
Marimea vecinatatii poate varia in functie de perioada de invatare. Ideea uzuala folosita
este de a incepe cu o vecinatate mai larga, si de a o restrange pe parcurs. Deoarece elementul
castigator se defineste ca cel mai apropiat de structura intrarii, retelele Kohonen modeleaza
distributia intrarilor. Acest lucru este util pentru modelele statistice sau topologice de date, si
este de multe ori referit ca harta autoadaptiva.

Clasificare
Datorita faptului ca toate retelele neuronale artificiale se bazeaza pe conceptele de
neuroni, legaturi si functii de transfer, exista o similitudine intre diferitele structuri si arhitecturi
de retele. Majoritatea variatilor deriva din varietatea legilor de antrenare, si modificarile aduse
de acestea asupra topologiei retelei. In continuare sunt prezentate cele mai folosite tipuri de
retele neuronale grupate pe categorii de aplicatii.
Aplicatiile pentru care se folosesc retele neuronale se pot clasifica in urmatoarele
categorii:
 predictie
 clasificare
 asociere de date
 conceptualizare
 filtrare

Categorie Arhitecturi Descriere


Predictie  Propagare inversa Folosesc datele de intrare

75
 Delta Bar Delta
pentru a previziona o iesire (ex.
 Delta Bar Delta extins
Alegerea celor mai bune stocuri de
 Cautare aleatoare directa
pe piata, prognozeaza starea
 Retele de ordin superior vremii, identifica persoane cu risc
 Harti autoasociative cu de cancer etc.)
propagare inversa
Clasificare Folosesc datele de intrare
 Cuantizarea vectorului de
pentru clasificari (ex. Ce litera se
antrenare
vede in imagine, este obiectul din
 Retele cu parcurgere inversa
secventa video un avion si, daca
 Retele probabilistice da, de ce tip)
Asociere de  Hopfield Similar cu clasificarea dar
date  Masina Boltzmann recunosc de asemenea datele care
 Retele Hamming contin erori (nu numai ca
 Memorii asociative identifica caracterele care sunt
bidimensionale scanate, dar semnaleaza si
 Recunoastere functionarea defectuoasa a
spatiotemporala a formelor scanerului)

Concep- Analizeaza intrarile astfel


tualizare incat sa poata deduce grupuri de
 Retele cu rezonanta adaptiva
relatii (ex. Extrage ditr-o baza de
 Harti autoasociative
date persoanele cele mai dornice
sa cumpere un anumit produs)
Filtrare Niveleaza un semnal de
 Retele recirculante intrare (ex. Elimina zgomotul de
pe o linie telefonica)

Tabelul prezinta principalele diferente dintre categoriile cele mai raspandite de retele, si
apartenenta acestora la cele cinci clase de aplicatii. Unele retele care au fost grupate aici se
folosesc pentru a rezolva probleme din mai multe domenii, un exemplu fiind retelele de tip
inainte, cu propagare inversa a erorii, care se folosesc aproape orice tip de problema, si sunt in
concluzie cele mai populare.

xCAPITOLUL 2

76
RETELE NEURONALE ARTIFICIALE PENTRU
PREDICTIE

Cea mai uzuala aplicabilitate a retelelor neuronale este pentru a proiecta ce este cel mai
probabil sa se intample in viitor. Exista multe aplicatii la care predictia ajuta la stabilirea
prioritatilor (de exemplu, la sectia de urgenta a unui spital, este important sa se cunoasca care
dintre pacienti are cel mai repede nevoie de ajutor in functie de sinptomele aparute). In general,
orice organizatie trebuie sa-si stabileasca un set de prioritati care sa guverneze alocarea
resurselor. Aceste planificari ale viitorului au dus la crearea retelelor neuronale pentru predictie.

2.1 FEEDFORWARD, BACK-PROPAGATION


Arhitectura a fost construita la inceputul anilor ’70 din mai multe surse independente
(Werbor, Parker, Rumelhart, Hinton si Williams). Aceasta co-dezvoltare independenta a fost
rezultatul aparitiei unui numar mare de articole si discutii in cadrul conferintelor, care au
stimulat intreaga industrie. In prezent aceasta arhitectura este cea mai populara, efectiva si usor
de construit, fiind folosita mai mult decat toate celelalte topologii la un loc.
Modelul tipic este format dintr-un strat de intrare, unul de iesire si cel putin unul ascuns.
Teoretic numarul nivelelor ascunse este nelimitat, dar in practica se folosesc doar unul sau doua.
S-a demonstrat ca un numar minim de patru nivele (trei ascunse si unul de iesire) sunt suficiente
pentru a rezolva probleme de orice complexitate. Fiecare nivel este conectat complet la nivelul
urmator, dupa cum se poate vedea si din schema urmatoare:

Fig. 1.7. Retea FeedForward Back Propagation

Propagarea inversa este folosita numai in procesul de antrenare si nu mai are utilitate in
perioada de functionare normala.

77
Numărul nivelelor si numarul de elemente de procesare pe nivel sunt decizii importante
care trebuie luate. Nu exista o lege stricta dupa care se iau aceste decizii, existand doar cateva
reguli generale formulate de-a lungul timpului si urmate de toti cercetatorii care aplica acest tip
de arhitectura pentru rezolvarea problemelor lor.

Regula 1: O data cu cresterea complexitatii relatiei dintre datele de intrare si iesirea dorita
trebuie sa creasca si numarul de elemente de procesare din nivelele ascunse.

Regula 2: Daca procesul care se modeleaza este separabil in subprocese, atunci sunt
necesare straturi ascunse suplimentare. Daca procesul nu este separabil, nivelele suplimentare ar
favoriza memorarea si nu ar fi o solutie pentru problema data.

Regula 3: Volumul de date de antrenare disponibile impune o limita superioara pentru


numarul de elemente ale nivelului ascuns. Pentru a calcula aceasta limita, se imparte numarul de
perechi intrare/iesire existente la numarul de elemente de procesare de intrare si iesire, apoi
rezultatul se imparte la un factor de scalare. Factorii de scalare mai mari se folosesc pentru date
afectate de zgomote.
Este important ca nivelele ascunse sa aiba putine elemente de procesare pentru a se
evita procesul de memorizaree care ar ducea la inutilitatea retelei pentru seturi noi de date.
Dupa ce aceste reguli au fost folosite pentru crearea retelei, incepe procesul de invatare.
Aceesta foloseste de obicei variante ale regulii Delta, care incep prin calcularea diferentei dintre
iesirea dorita si cea obtinuta dupa fiecare trecere, ponderile modificandu-se apoi proportional cu
aceasta diferenta. Partea complexa a mecanismului de invatare o constituie determinarea
elementului care a contribuit cel mai mult la eroare si cum trebuie schimbate ponderile acelui
element pentru a se corecta eroarea. Un nod inactiv nu contribuie la eroare deci ponderile
acestuia nu vor trebui schimbate.
Pentru a rezolva aceasta problema, seturile de intrare de antrenare sunt aplicate la
nivelul de intrare al retelei iar iesirile obtinute la iesire sunt verificate. In timpul procesului de
invatare se transmite un flux de date de-a lungul retelei si iesirea fiecarui element este calculata
strat cu strat. Diferenta dintre iesirile stratului de interfata si iesirea dorita este apoi propagata
inapoi in retea de obicei ajustata cu derivata functiei de transfer, iar ponderile sunt corectate
folosind regula Delta. Acest proces se repeta pana cand se ajunge la stratul de intrare.
Exista multe variatii ale regulilor de invatare pentru retele cu reactie, diferite functii de
eroare, functii de transfer sau chiar metode modificate de derivare ale acestora putannd fi
folosite. Conceptul de „eroare de moment” a fost introdus pentru a permite o invatare mai
prompta o data cu minimizarea comportarii instabile. Aici, functia de eroare, sau ecuatia
ponderala delta, este modificata astfel incat o parte a ponderii delta anterioare este propagata
catre ponderea curenta. In termeni ingineresti, aceasta metoda reprezinta un filtru trece jos
aplicat ponderii delta care opreste comportamentul oscilatoriu. Acest lucru permite posibilitatea
folosirii unui coeficient de invatare mai redus, care duce la o invatare mai rapida.

78
Alta tehnica cu efect asupra vitezei de convergenta modifica ponderile doar dupa ce se
aplica mai multe perechi de intrari, metoda fiind referita ca propagare inversa cumulativa,
deoarece ponderile delta sunt cumulate pana cand se transmite un set intreg de perechi intrare-
iesire. Numarul de perechi transmise in timpul unei acumulari poarta numele de „epoca”. O
epoca poate corespunde intregului set de perechi de antrenare sau unui subset.
Exista limitari ale arhitecturii feedforward back-propagation. Aceasta necesita o
antrenare riguroasa cu multe perechi intrare-iesire. In plus, procedurile interne de mapare nu
sunt foarte bine intelese, si nu exista o garantie a faptului ca sistemul va converge catre o solutie
acceptabila. La diferite momente de timp procesul de invatare poate ramane blocat intr-un
minim local, limitand gasirea solutiei optime. Acest lucru apare cand sistemul gaseste o eroare
mai mica decat posibilitatiiile inconjuratoare, dar totusi nu ajunge la eroarea minima posibila.
Multe aplicatii de invatare adauga un termen pentru a „zgudui” ponderile catre barierele de
superficialitate si pentru a gasi minimul actual in schimbul unei erori temporale.
Aplicatiile tipice care folosesc aceste retele sunt sintetizarea vorbirii, miscarea bratelor
robotilor mobili, evaluarea imprumuturilor bancare, procesarea imaginlor, reprezentarea
cunostintelor, prognoze si predictii, urmarirea tintelor etc. Anual in jurnalele de specialitate sunt
prezentate noi solutii back-propagation.

2.2 DELTA BAR DELTA

Utilizeaza aceeasi arhitectuta ca si reteaua back-propagation. Diferenta consta in


algoritmul unic de invatare. Delta bar Delta a fost dezvoltata de catre Robert Jacobs pentru a
creste rata de invatare a clasicelor feedforward back-propagation.
Dupa cum este subliniat mai sus, procedura de propagare inversa se bazeaza pe
abordarea in pasi descrescatori care minimizeaza eroarea de predictie in timpul procesului prin
care se modifica ponderile fiecarui neuron. Regulile standard de invatare sunt aplicate nivel cu
nivel iar termenul de moment este de obicei asignat global. Unele variante de propagare inversa
permit scaderea ratelor de adaptare (invatare) pe masura ce cantitati largi de seturi de intrare
strabat reteaua. Desi medoda are succes in rezolvarea unor probleme, rata de convergenta este
totusi prea scazuta pentru aplicarea cu succes in practica.
Metoda delta bar delta foloseste o modalitate de invatare in care fiecare pondere are
propriul coeficient de autoadaptare. De asemenea nu se foloseste factorul de moment. Celelalte
proceduri sunt identice cu arhitectura back-propagation. Delta bar delta este o abordare euristica
pentru antrenarea retelelor neuronale. Aceasta inseamna ca valorile de eroare anterioare pot fi
folosite pentru a calcula erorile viitoare. Counoscand erorile probabile se permite sistemului sa
ia decizii inteligente in ajustarea ponderilor. Totusi procedura este complicata datorita faptului
ca evidenta empirica sugereaza ca fiecare ajustare poate avea efecte complet diferite asupra
erorii globale, Jacobs spunand ca regulile de propagare inversa ar trebui sa tina cont de efectele
acestor variatii asupra erorii globale. Cu alte cuvinte fiecare pondere a unei retele ar trebui sa

79
aiba propria rata de invatare. Ideea este ca marimea pasului corespunzator pentru o pondere
poate sa nu fie potrivit pentru toate celelalte ponderi ale nivelului. In continuare, aceste rate ar
trebui sa poata varia in timp, introducandu-se astfel mai multe grade de libertate care sa reduca
timpul de convergenta.
Regulile care se aplica direct acestui algoritm sunt directe si usor de implementat.
Fiecare pondere are propria rata de invatare. Aceste rate variaza in functie de eroarea curenta.
Cand o pondere se modifica, daca eroarea locala are acelasi semn pentru mai multi pasi
consecutivi rata de invatare pentru aceasta legatura creste, liniar pentru a preveni o crestere prea
rapida. Cand eroarea isi schimba semnul frecvent rata este redusa geometric, asigurandu-se
pozitivitatea permananta a acesteia. Descresterea poate fi mai rapida in zone in care eroarea se
modifica mult.
Permitandu-se rate de adaptare diferite pentru fiecare pondere a retelei, nu mai este
necesara o cautare in directia gradientului negativ. In schimb, ponderile sunt modificate pe baza
derivatelor partiale ale erorii in functie de pondere insasi. Metoda se bazeaza de asemenea pe
estimarea curbei suprafetei erorii in vecinatatea punctului valorii ponderii curente. In plus,
schimbarea ponderii satisface constrangerile locale adica necesita informatii numai de la
elementul de procesare cu care este conectata.

2.3 DELTA BAR DELTA EXTINS

Ali Minai si Ron Williams au dezvoltat algoritmul delta bar delta extins ca o evolutie
naturala a muncii lui Jacob. Ei au modificat algoritmul initial prin aplicarea unei decade
exponentiale cresterii ratei de invatare, au readaugat componenta de moment si au limitat rata de
invatare si coeficientul de moment. Dupa cum s-a prezentat in sectiunea despre propagare
inversa, momentul este un factor folosit pentru netezirea ratei de invatare. Este un termen
adaugat schimbarii standard a ponderii proportional cu schimbarea anterioara. In acest fel,
tendintele constructive sunt intarite iar oscilatiile sunt eliminate.
Rata de invatare si rata de moment ale fiecarei ponderi au constante separate de control
al cresterii si descresterii. Inca o data, semnul erorii curente este folosit pentru a indica daca o
crestere sau descrestere este potrivita.
Ajustarea pentru scadere este identica ca forma cu cea de la delta bar delta, totusi
cresterea ratei de invatare si a celei de moment sunt modificate pentru a deveni functii
exponentiale descrescatoare de magnitudinea componentelor gradientilor ponderilor. Cresteri
mai mari vor fi aplicate pe suprafete cu pante sau curbe mici, in detrimentul suprafetelor cu
curbura mare, aceasta fiind o solutie partiala a problemei saltului din cazul delta bar delta.
Pentru a face un nou pas inainte in prevenirea salturilor necontrolate si oscilatiilor, sunt
plasate limitari ale ratelor de invatare si de moment individuale. Si in final algoritmul
implementeaza o functie de memorie cu recuperare. Cand aceasta se foloseste dupa fiecare

80
epoca este evaluata eroarea acumulata. Daca eroarea este mai mica decat eroarea minima
anterioara, ponderile sunt salvate in memorie ca optime temporare.
Un parametru de toleranta controleaza faza de recuperare. In mod specific, daca eroarea
curenta depaseste eroarea anterioara minima, modificata cu parametrul de toleranta, atunci toate
valorile ponderilor revin la setul de valori optime memorate. In continuare ratele de moment si
invatare sunt scazute pentru a incepe procesul de recuperare.

2.4 CAUTARE ALEATOARE DIRECTA

Arhitecturile anterioare erau toate bazate pe reguli de invatare sau modele bazate pe
calcule matematice. Acestea folosesc o tehnica de gradient descrescator pentru a ajusta fiecare
pondere. Arhitectura cautarii aleatoare directe foloseste o structura standard feed-forward dar
care nu este bazata pe propagare inversa. In schimb, ponderile se ajusteaza aleator. Pentru a
impune o ordine acestui proces se adauga o componenta de directie pasului aleator care asigura
faptul ca ponderile tind catre o directie de cautare de succes. Toate elementele de procesare sunt
influentate individual.
Metoda cautarii aleatore are cateva caracteristici importante. La baza este rapida si usor
de folosit daca problema este bine inteleasa si relativ redusa ca dimeniuni. Motivul pentru care
problema trebuie sa fie bine inteleasa este ca cele mai bune rezultate apar atunci cand prezicerile
initiale sunt cat mai aproape de ponderile optime. Rapiditatea este data de faptul ca pasii
algoritmului sunt mult mai simpli decat tehnicile bazate pe calcule, si nu se calculeaza nici o
eroare pentru elementele de procesare individuale, fiind calculata doar eroarea de iesire globala.
Aceasta metoda de invatare este usor de folosit pentru ca foloseste doar doi parametri asociati.
Dar solutia trebuie sa fie o retea redusa, deoarece in cazul in care aceasta se mareste procesul de
antrenare devine lung si greoi.
Pentru a facilita pastrarea ponderilor in interiorul regiunilor in care algoritmul
functioneaza cel mai bine este necesara o limitare superioara a magnitudinii acestora. Totusi,
prin mentinerea acesteia la un nivel ridicat reteaua este capabila sa caute necunoscuta
(adevaratul optim global). Al doilea parametru cheie al acestei reguli implica variatia initiala a
distributiei aleatoare a ponderilor. In majoritatea aplicatiilor comerciale exista o valoare
recomandata de producator pentru acest parametru initial de variatie. Totusi, setarea acestui
numar nu este foarte important, functia de autoajustare dovedindu-se robusta pentru o gama
larga de variatii initiale.
Se definesc patru componente de baza pentru o retea de cautare aleatoare. Acestea sunt
pasul aleator, pasul de intoarcere, o componenta directa si o variatie autoajustabila.

Pasul aleator: O valoare aleatoare este adaugata fiecarei ponderi. Apoi intregul set de
date de antrenare este transmis in retea producand o eroare de predictie. Daca aceasta este mai

81
mica decat eroarea precedenta optima ponderile curente (care includ si pasul aleator) devin noul
set de ponderi optime. Eroarea de predictie curenta este apoi salvata ca eroare optima.

Pasul invers: Daca rezultatul obtinut este mai slab decat optimul temporar, atunci
valoarea aleatoare este scazuta din valorile ponderilor initiale, obtinandu-se un set de ponderi in
directie opusa pasului aleator anterior. Daca eroarea totala de predictie este mai mica decat cea
optima ponderile curente sunt salvate ca optime temporare. De asemenea eroarea curenta ea se
salvata ca eroare optima de predictie. Daca atat pasul direct cat si cel invers esueaza un nou set
de valori aleatoare sunt adaugate la setul optim si procesul se reia de la inceput.

Componenta directa: Pentru a creste convergenta se creaza un set de componente


directe. Acestea reflecta istoria de succese si esecuri pentru pasii aleatori anteriori.
Componentele directe, care sunt initializate cu zero, sunt adaugate la componentele aleatoare la
fiecare pas al procedurii. Componentele directe ofera cautarii un element de tip „consens”. Sa
demosntrat ca adaugarea acestor componente duce la o crestere substantiala a performantelor de
convergenta ale retelei.

Varianta autoajustabila: Un parametru initial este specificat pentru a controla marimea


(lungimea) initiala a pasilor aleatori adaugati la ponderi. Un mecanism adaptiv schimba
parametri de varianta bazandu-se pe rata curenta de succes sau esec relativ. Regula de invatare
presupune ca marimea curenta a pasilor pentru ponderi are directia corecta daca se inregistreaza
mai multe succese consecutive, si apoi se incearca folosirea unor pasi mai mari. Contrar, daca se
detecteaza mai multe esecuri consecutive se micsoreaza varianta pentru a reduce marimea
pasului.
Pentru retele de marime mica si medie, o cautare aleatoare directa produce un rezultat
satisfacator intr-un timp rezonabil. Procesul de antrenare se desfasoara automat, interventia
utilizatorului fiind extrem de redusa. Numarul de ponderi impune insa o limitare a complexitatii
problemelor pe care le poate rezolva acest algoritm. Daca o retea are mai mult de 200 de
legaturi, o cautare aleatoare directa poate necesita un timp de antrenare relativ lung, iar in final
solutia oferita poate fi departe de cea optima.

2.5 RETELE DE ORDIN SUPERIOR, SAU RETELE LEGATURA


FUNCTIONALA

Oricare din cele doua nume se poate atribuie retelelor care extind arhitectura standard
feedforward back-propagation pentru a include noduri suplimentare la nivelul de intrare oferind
retelei o mai buna intelegere a intrari. In esenta, intrarile sunt transformate intr-un mod
matematic bine inteles, astfel incat reteaua nu mai trebuie sa invete functiile matematice de baza.
Aceste functii cresc nivelul de intelegere al problemei date, transformand intrarile prin functii de
nivel inalt cum ar fi patrate, cuburi sau sinusoide.

82
Aceasta tehnica a fost adaugata pentru a imbunatati dramatic ratele de invatare ale unor
aplicatii. Un avantaj in plus este acela ca aceste functii de nivel inalt pot fi aplicate si altor
derivatii (delta bar delta, extended delta bar delta, si in general oricarei extensii feedfroward
back-propagation).Exista doua moduri de baza prin care se pot adauga noduri de intrare
auxiliare. Primul, reprezinta incrucisarile termenilor de intrare ce pot fi adaugate modelului si
mai poate fi numit „produs de iesire” sau „tensor”, unde fiecare componenta a modelului de
intrare multiplica intregul model al vectorului de intrare. Un mod rezonabil de a realiza acest
lucru este prin adaugarea tuturor termenilor de intercatiune printre valorile de intrare. In acest
model, variabilele de intrare sunt actionate individual de catre functiile corespunzatoare. Pot fi
folosite multe astfel de functii. Efectul global este de a oferi retelei o reprezentare extinsa a
intrari. Este posibila de asemenea si o combinare a modelelor tensor si expansiune functioinala.
Nu se adauga informatii noi, dar reprezentarea intrarilor este extinsa, reprezentari de
nivel superior ale datelor de intrare putand face reteaua mai usor de antrenat. Asocierile sau
activarile functionale devin disponibile direct modelului. In unele cazuri un nivel ascuns nu mai
este necesar. Totusi exista limitari ale modelului. Trebuie folosite mult mai multe noduri pentru
a procesa transformarile intrarilor originale. Cu sisteme de nivel superior, problema este
agravata. Totusi, datorita timpilor de procesare finiti este important ca intrarile sa nu fie extinse
mai mult decat este necesar pentru a obtine solutia adecvata.
Retelele cu legaturi functionale au fost dezvoltate de catre Yoh-Han Pao si sunt descrise
in cartea „Adaptive Pattern Recognition and Neuronal Networks”. Pao face o distinctie intre
adevarata adaugare a termenilor de ordin superior in sensul ca o parte dintre acesti termeni
reprezinta activari asociate, si extinderile functionale care cresc dimensiunea spatiului
reprezentat fara a adauga activari asociate.
Chiar daca majoritatea producatorilor recunosc aceste diferente, cercetatorii trateaza in
general cele doua aspecte in acelasi fel. Pao a obtinut o brevetare pentru reteaua legatura
functionala, deci comercializarea acesteia necesita licentiere.

2.6 RETEA HARTA AUTOASOCIATIVA CU PROPAGARE


INVERSA
O retea hibrida foloseste o harta autoorganizabila pentru a face o separare conceptuala a
datelor inainte de folosirea acestora la propagarea inversa.
Aceasta harta ajuta la vizualizarea topologiilor si a structurilor ierarhice a spatiilor de
ordin superior inainte ca acestea sa fie introduse in reteaua feedforward back-propagation.
Modificarile aduse intrarilor sunt similare cu a avea o structura de intare de tip legatura
functionala automata.
Aceasta harta autoorganizabila antreneaza stratul de intrare intr-un mod nesupravegheat,
restul retelei trecand insa prin procesul normal supravegheat de antrenare.

CAPITOLUL 3
83
RETELE NEURONALE ARTIFICIALE PENTRU
CLASIFICARE

Sectiunea precedenta descria retelele care incearca sa faca previziuni asupra viitorului.
Dar intelegerea tendintelor si a efectelor viitoare ale acestora este doar una din multele aplicatii
in care se poate implica aceasta stiinta.
Cea de-a doua clasa de aplicatii este clasificarea. O retea capabila sa clasifice ar putea fi
folosita de exemplu in industria medicala la procesarea atat a rezultatelor de laborator cat si a
simptomelor inregistrate de doctori pentru a determina cea mai probabila boala a unui pacient.

3.1 CUANTIZAREA VECTORULUI DE ANTRENARE

Aceasta topologie de retea a fost sugerata la inceput de catre Tuevo Kohonen la mijlocul
anilor 80, cu mult timp in urma cercetarile lui initiale asupra hartilor autoorganizabile.
Atat acest tip de retea, cat si hartile autoorganizabile se bazeaza pe modelul Kohonen de
antrenare cu competitie, care este capabil sa sorteze intrarile in subcategorii de obiecte similare.
Cuantizarea vectorului de antrenare este o retea neuronala artificiala folosita atat pentru
clasificare cat si pentru probleme de segmentare de imagini.
Topologic, reteaua contine un nivel de intrare, un singur nivel ascuns Kohonen si un
nivel de iesire. Un exemplu este dat in figura 1.8.

Fig. 1.8. Cuantizarea vectorului de antrenare

Nivelul de iesire are tot atatea elemente de procesare cate clase distincte de clasificare
exista. Nivelul Kohonen are un numar de elemente de procesare grupate pentru fiecare dintre

84
clase, numarul de elemente pentru o clasa depinzand de complexitatea relatiei intrare-iesire.
Uzual, toate clasele vor avea alocat acelasi numar de elemente de procesare.
Nivelul Kohonen este cel care invata si realizeaza clasificarile relationale cu ajutorul
unui set de date de antrenare. Aceasta retea foloseste reguli de antrenare supravegheate.
Totusi, aceste reguli difera semnificativ de cele pentru propagare inversa. Pentru a
optimiza functiile de invatare si reamintire, nivelul de intare necesita un singur element de
procesare pentru fiecare parametru al intrarii, dar se pot folosi de asemenea structuri de intrare
de nivel superior.
Cuantizarea vectoriala clasifica datele de intrare in grupuri deterministe. Teoretic
aceasta mapeaza un spatiu n-dimensional intr-un spatiu m-dimensional, adica ia n intrari si
produce m iesiri. Reteaua poate fi antrenata sa clasifice intrarile conservand topologiile inerente
ale setului de antrenare.
Hartile topologice de conservare conserva relatiile de vecinatate din setul de antrenare
astfel incat intrarile care nu au fost invatate anterior sunt clasificate in functie de cei mai
apropiati vecini din setul de antrenare.
In modul de antrenare aceasta retea foloseste nivelul Kohonen in sensul ca distanta
dintre vectorul de antrenare si fiecare element de procesare este calculata si cel mai apropiat este
declarat castigator.
Exista un singur castigator pentru intregul nivel. Acesta va activa un singur element de
procesare din stratul de iesire, anuntand clasa sau categoria din care face parte vectorul de
intrare.
Daca elementul castigator se afla in interiorul clasei asteptate a vectorului de antrenare
acesta intareste vectorul de antrenare, iar daca este in afara clasei, ponderile de la intrarile
elementului de procesare castigator sunt scoase din vectorul de antrenare, operatie denumita
repulsie. In timpul procesului de antrenare elemente de procesare individuale asignate unei clase
particulare migreaza catre regiunea asociata cu clasa specifica.
In timpul modului normal de functionare, distanta dintre un vector de intrare si fiecare
element de procesare este calculata si din nou cel mai apropiat element este declarat castigator.
Exista unele deficiente ale acestei arhitecturi. Evident pentru probleme de clasificare
complexe cu obiecte sau vectori de intrare similare, reteaua necesita un nivel Kohonen de
dimensiuni mari, cu multe elemente de procesare pentru fiecare clasa. Acest lucru poate fi evitat
insa prin selectarea unor parametri mai semnificativi, sau o reprezentare de nivel mai inalt a
intrarilor.
Mecanismul de invatare are unele deficiente care au fost abordate de variante ale
modelului. In mod normal aceste variante sunt aplicate in diferite faze ale procesului de invatare.
Ele impregneaza un mecanism concis, un algoritm de ajustare a marginilor si o functie
de atractie in diferite puncte in timpul antrenarii.
Forma simpla a retelei de cuantizare vectoriala are defectul ca unele elemente de
procesare tind sa castige prea des, in timp ce altele practic nu fac nimic.
Acest lucru se intampla mai ales in cazul cand elementele de procesare sunt initializate
departe de vectorii de antrenare. In acest caz unele elemente se apropie prea repede iar altele
85
raman permanent departe. Pentru a evita aceasta problema se adauga un mecanism prin care un
element de procesare care castiga prea des primeste o pedeapsa si este penalizat.
De fapt acest mecanism se concretizeaza prin adaugarea unui coeficient de distanta
adaugat fiecarui element. Acest coeficient este proportional cu diferenta dintre frecventa de
castig a elementului respectiv si frecventa de castig medie pentru toate elementele. O data cu
avansul retelei de-a lungul curbei de adaptare acesti coeficienti trebuie sa scada.
Algoritmul de ajustare a marginilor este folosit pentru a rafina raspunsul de fiecare data
cand se gaseste o solutie relativ buna. Acest algoritm afecteaza cazurile in care elementul
castigator este intr-o clasa eronata iar elementul urmator este in clasa potrivita.
O viitoare limitare este aceea ca vectorul de antrenare trebuie sa fie aproape de mijlocul
spatiului care imparte cele doua elemente. Elementul castigator va fi scos din vectorul de
antrenare iar cel de-al doilea element va fi mutat in locul acestuia. Aceasta procedura
uniformizeaza limitele dintre regiuni, acolo unde apar de obicei clasificarile eronate.
De multe ori la inceputul antrenarii este bine sa se opreasca repulsia. Elementul
castigator este mutat in vectorul de antrenare doar daca cele doua fac parte din aceeasi clasa.
Aceasta optiune este folositoare atunci cand un element de procesare trebuie mutat de-a
lungul unei regiuni avand o clasa diferita, pentru a ajunge la regiunea in care este nevoie de el.

3.2 RETEAUA CU PARCURGERE INVERSA


Robert Hecht-Nielsen a dezvoltat aceasta retea ca un mijloc de a combina un nivel
nesupravegheat Kohonen cu un nivel de iesire antrenabil.
Aceasta este o alta topologie de sintetizare a problemelor complexe de clasificare,
incercandu-se minimizarea numarului de elemente de procesare si a timpului de antrenare.
Modul de operare este similar cu cel folosit la cuantizarea vectoriala prin prezenta
nivelului de mijloc Kohonen care actioneaza ca o baza de date adaptiva, gasind cea mai
apropiata asemanare cu un stimul de intare si producand maparea echivalenta.
Prima retea de acest tip consta dintr-o mapare bidirectionala intre nivelele de intrare si
iesire. In esenta in timp ce datele sunt furnizate stratului de intrare pentru a genera un model
pentru stratul de iesire, acesta va accepta in plus un vector de intrare aditional si va genera o
iesire clasificata.
Reteaua si-a luat numele de la aceasta parcurgere in sens contrar a informatiilor prin
structura. Majoritatea dezvoltatorilor care folosesc o varianta uni-flow pentru aceasta are
prezentarea formala a propagarii inverse.
Cu alte cuvinte, exista o singura cale de parcurgere de la nivelul de intrare la cel de iesire.
Reteaua cu propagare inversa unidirectionala are trei nivele. Daca intrarile nu sunt deja
normalizate inainte de a intra in retea este adaugat de obicei un al patrulea nivel, de normalizare.
Nivelurile de baza includ un buffer, un nivel Kohonen autoorganizabil si un nivel de
iesire care foloseste regula delta pentru a-si modifica ponderile legaturilor de intrare. Uneori
acest nivel este denumit Grossberg Outstar.

86
Marimea nivelului de intrare depinde de cat de multi parametri separabili definesc
problema. Daca sunt prea putini reteaua poate sa nu fie capabila sa rezolve problema, daca sunt
prea multi timpul de procesare poate fi prea lung.
Pentru ca reteaua sa opereze corespunzator vectorul de intrare trebuie normalizat. Acest
lucru se poate realiza folosind o preprocesare a datelor, inainte ca acestea sa fie introduse in
retea, sau prin introducerea unui nivel suplimentar de normalizare intre nivelul de intrare si cel
Kohonen.
Nivelul de normalizare necesita un element de procesare pentru fiecare intrare, plus
inca unul suplimentar pentru un element oscilant. Acest strat modifica setul de intrare inainte de
a ajunge la stratul Kohonen pentru a se asigura faptul ca toate seturile de intrare au acelasi total.

Fig. 1.9. Retea cu propagare inversa

Normalizarea intrarilor este necesara pentru a se asigura faptul ca nivelul Kohonen


identifica clasa reala pentru problema. Fara normalizare stratul vectorilor de intrare ar influentea
multe din elementele de procesare Kohonen astfel incat seturile de intrare cu caracteristici mai
slabe nu pot fi clasificate corect. Datorita naturii competitive ă stratului Kohonen vectorii de
intrare cu valori mai mari ii inving pe cei mai slabi. Propagarea inversa foloseste un model
Kohonen standardizat care autoorganizeaza seturile de intrare in zone de clasificare. El
urmareste legea clasica de invatare Kohonen descrisa mai sus. Acest strat actioneaza ca un
clasificator in sensul apartenentei la cel mai apropiat vecin astfel ca elementele de procesare ale
stratului competitiv isi ajusteaza in mod autonom legaturile pentru ă multiplica spatiul vectorului

87
de intrare intr-o corespondenta aproximativa cu frecventa de aparitie ă intrarilor. Este nevoie de
un numar de elemente de procesare in nivelul Kohonen cel putin egal cu numarul de clase de
clasificare existente la iesire. Nielul Kohonen are de obicei mult mai multe elemente din simplul
motiv ca acest lucru va duce la o diferentiere mai exacta ă elementelor asemanatoare.
Stratul de iesire pentru propagare inversa este alcatuit la baza din elemente de procesare
care invata sa produca o iesire cand li se aplica o anumita intrare. Datorita faptului ca stratul
Kohonen include competitie, o singura iesire este oferita pentru un vector dat de intrare, stratul
oferind o modalitate de decodare a intrarilor in clase de iesire semnificative. Se foloseste regula
Delta pentru propagarea inapoi a eroarii dintre iesirea dorita si cea generata de setul de intrare,
dar erorile ajusteaza doar ponderile intrarilor din stratul de iesire, stratul Kohonen nefiind
afectat.
Deoarece o singura iesire a stratului competitiv Kohonen este activa la un moment dat si
toate celelalte sunt inhibate, singurele ponderi ale elementelor din stratul de iesire ajustate sunt
cele conectate direct la elementul castigator al stratului competitiv. In acest fel stratul de ieisire
invata sa asocieze un model predefinit pentru fiecare element castigator din stratul competitiv.
Exista o problema care sa apara in cazul acestei arhitecturi. Stratul competitiv Kohonen
invata fara o supervizare externa. Din acest motiv este posibil ca un element de procesare
Kohonen sa incerce sa-si asume responsabilitatea pentru doua sau mai multe intrari de
antrenament care apartin unor clase diferite. Cand acest lucru se intampla iesirea retelei va fi
ambigua pentru orice intrare care va activa acest element de procesare. Pentru a evita aceasta
problema elementele de procesare din startul Kohonen ar putea fi conditionate sa se asocieze cu
o singura clasa de clasificare.

3.3 RETEAUA NEURONALA PROBABILISTICA


Retelele neuronale probabilistice au fost dezvoltate de către Donald Specht. Arhitectura
lui a fost pentru prima data prezentata in lucrarile “Probabilistic Neuronal Networks for
Classification, Mapping or Associative Memory” si “Probabilistic Neuronal Networks”.
Aceasta retea ofera o solutie generala la probleme de clasificare a modelelor urmarind o
abordare numita clasificare Bayesiana. Teoria Bayes tine cont de relativa asemanare dintre
evenimente si foloseste o informatie priorica pentru a imbunatati predictia.
Acest model de retea foloseste de asemenea estimatori Parzen pentru a construi functii
de densitate de probabilitate necesare aplicarii teoriei Bayes.
Retelele neuronale probabilistice folosesc un set de antrenare supervizat pentru a construi
functii de distributie in interiorul unui nivel modelat. Aceste functii, in modul de reamintire sunt
folosite pentru estima apartenenta unui vector al caracteristicilor de intrare la o anumita clasa de
clasificare. Modelele invatate pot fi combinate sau mediate cu o probabilitate priorica numita
frecventa relativa a categoriei pentru a determina cea mai apropiata clasa pentru un vector de
intrare dat. Daca frecventa relativa a acestor categorii este necunoscuta atunci de poate
presupune ca toate categoriile sunt egale si determinarea categoriei de apartinatate se determina

88
doar pe baza apropierii vectorului caracteristicilor de intrare de functia de distributie a unei
clase.

Fig. 1.10. Retea probabilistica

Aceasta retea are trei nivele. Reteaua contine un strat de intrare cu un numar de elemente
egal cu numarul parametrilor necesari pentru a descrie obiectele care vor fi clasificate. Are de
asemenea un nivel de modelare care organizeaza setul de antrenare astfel incat fiecare vector de
intare este reprezentat de un element de procesare individual. Si in final reteaua contine un strat
de iesire numit strat de insumare cu numarul de elemente egal cu numarul claselor distincte care
vor fi identificate. Fiecare element din acest strat combina cu ajutorul elementelor de procesare
ale startului de modelare apartenentele la clasele de clasificare. Este posibila adaugarea unui
strat suplimentar pentru a normaliza vectorul de intrare, in cazul in care intrarile nu sunt deja
normalizate inainte de intrarera in retea. La fel ca si in cazul retelei cu propagare inversa
vectorul de intrare trebuie sa fie normalizat pentru a asigura separarea corecta a obiectelor in
stratul de modelare.
După cum s-a mentionat mai sus, stratul de modelare reprezintă o implementare
neuronala a unei versiuni a clasificarii Bayer, in care functiile de densitate de probabilitate ale
claselor sunt aproximate folosind estimatori Parzen. Aceasta abordare ofera un rezultat optim in
sensul minimizarii riscului de clasificare gresita a unui obiect. Folosind estimatorul, abordarea se
apropie de adevaratele functii de densitate o data cu cresterea numarului de seturi de incercare
atat timp cat setul de antrenare este o reprezentare adecvata a distinctiilor dintre clase.
In stratul de modelare exista un element de procesare pentru fiecare vector al setului de
antrenare. In mod normal, exista cantitati egale de elemente de procesare pentru fiecare clasa de
iesire, dar este posibil ca una sau mai multe clase sa fie asignate incorect in acest caz reteaua
generand rezultate eronate. Fiecare element de procesare al stratului de modelare este antrenat

89
intr-o singura trecere. Un element este antrenat sa genereze un semnal de iesire pozitiv daca
vectorul de intrare se poate identifica cu vectorul de antrenare. Functia de antrenare poate
include un factor de finisare global pentru a generaliza mai bine rezultatele clasificarii. Vectorii
de antrenare nu trebuie sa fie aranjati intr-o ordine particulara in setul de antrenare, din moment
ce categoria de apartenenta a fiecarui vector este specificata prin intrare si iesirea dorita. Functia
de invatare asigneaza doar primului element de procesare neantrenat clasa de iesire
corespunzatoare vectorului dat de intrare si ii modifica ponderile pentru a putea raspunde in
viitor la intrari asemanatoare.
Stratul de modelare opereaza competitiv, numai cea mai apropiata asemanare fata de un
vector de intrare castigand si generand o iesire. In acest fel un vector de intrare dat este asignat
unei singure clase de clasificare. Daca intrarea nu poate fi identificata cu nici un model
programat nu este generata nici o iesire.
Estimarea Parzen poate fi adaugata stratului de modelare pentru a ajusta clasificarea
obiectelor. Acest lucru se realizează prin adaugarea frecventei de aparitie pentru fiecare model
de antrenare construit in elementul de procesare. La baza, distributia de probabilitate a aparitiei
fiecarui exemplu dintr-o clasa este multiplicata in nodul respectiv de antrenare. In acest fel o
previziune mai exacta a expectantei unui obiect este adaugata caracteristicilor, facandu-l mai
usor de recunoscut ca membru al unei clase.
Antrenarea unei retele neuronale probabilistice este mult mai simpla decat a uneia cu
propagare inversa. Totusi stratul de modelare poate fi destul de mare daca distinctiile dintre
categorii sunt variate si in acelasi timp acestea sunt similare in anumite parti. Exista foarte multe
propuneri pentru acest tip de retea tinand cont ca optimizarea are la baza componente ale
matemeticii clasice.

xCAPITOLUL 4
RETELE NEURONALE ARTIFICIALE PENTRU
ASOCIERI DE DATE

Clasa anterioara de retele, era legata de retelele pentru asocieri de date. Si in cazul
retelelor pentru asociere se realizeaza aceeasi clasificare a datelor. In plus insa apare un element
aditional ca o consecinta a faptului ca datele de intrare pot fi alterate, Retelele neuronale
asociative pot corecta uneori aceste date alterate, si le pot asocia corect si pe acestea.

4.1 RETEAUA HOPFIELD

John Hopfield si-a prezentat pentru prima data reteaua asociativa in anul 1982 la
Academia Nationala de Stiinte. In onoarea succesului lui Hopfield, si a intregii lui activitati in
domeniul retelelor neuronale, aceasta arhitectura ii poarta numele. Reteaua poate fi
conceptualizata in termeni energetici si de fizica a sistemelor dinamice. Un element de procesare

90
al nivelului Hopfield isi va schimba starea doar daca energia globala a spatiului starilor se
reduce. Cu alte cuvinte starea unui element de procesare va varia doar daca aceasta schimbare va
reduce gradul general de “frustrare” al retelei. Primele aplicatii pentru acest tip de retea au inclus
memoriile asociative si o serie intreaga de probleme de optimizare cum ar fi cea mai buna ruta
pentru un comisvoiajor.
Reteaua originala are fiecare element de procesare operand in format binar. Acestea
calculeaza suma ponderata a intrarilor si cuantizeaza iesirea tot sub forma de zero sau unu.
Aceste restrictii au fost relaxate insa mai tarziu in sensul ca implementarile imbunatatite pot sa
foloseaca o functie de transfer sigmoidala pentru o distinctie mai clara intre clase, Hopfield
insusi aratatand ca reteaua rezultata este echivalenta cu cea originala din 1982.

Fig. 1.11. Retea Hopfield

Reteaua Hopfield foloseste trei straturi: un buffer de intrare, un strat Hopfield si un strat
de iesire, fiecare dintre acestea avand acelasi numar de elemente de procesare. Intrarile stratului
Hopfield sunt conectate la iesirile elementelor corespunzatoare din stratul de intrare prin legaturi
cu ponderi variabile. Iesirile stratului hopfield sunt conectate inapoi la intrarile tuturor celorlalte
elemente de procesare exceptandu-se pe el insusi. De asemenea sunt conectate la intrarile
corespondente ale stratului de iesire. In operatiile normale de reamintire reteaua aplica datele
introduse in stratul de intrare prin legaturile cu ponderi ajustate către stratul Hopfield. Acesta
oscileaza pana la un numar prefixat de cicluri complete, si apoi starea curenta a stratului este
transmisa către iesire. Aceasta stare se va asemana cu un model deja programat in retea.
Antrenarea unei retele Hopfield necesita ca modelul de de antrenare sa fie aplicat
simultan la intrare si iesire. Natura recursiva a stratului Hopfield ofera un mijloc de ajustare a
tuturor ponderile legaturilor. Regula de invatare este legea Hopfield in care legaturile sunt
stranse cand atat elementul de intrare cat si cel deiesire au acelasi semn si sunt slabile daca
intrarea difera de iesire. Evident

91
orice implementare nebinarizata a retelei trebuie sa includa un mecanism de limitare in functia
de transfer in caz contrar existand posibilitatea ca perechile intare/iesire sa fie prea rarificate
pentru a putea antrena reteaua.
Reteaua Hopfield are doua limitari majore cand este folosita ca memorie adresabila prin
continut. Prima, numărul de forme care pot fi stocate si reamintite cu acuratete este foarte
limitat. Daca prea multe forme sunt inregistrate reteaua poate converge către o forma falsa
inventata, diferita de toate cele stocate, sau este posibil sa nu convearga deloc. Capacitatea de
stocare este limitata la aproximativ 15 procente din numărul de elemente de procesare din stratul
Hopfield. Cea de-a doua limitare consta in faptul ca nivelul Hopfield poate deveni instabil daca
formele pe care le retine sunt prea asemanatoare. O forma este considerata instabila atunci cand,
după ce este aplicata la momentul zero reteaua converge către o alta forma dintre cele retinute.
Aceasta problema poate fi rezolvata prim modificarea setului de forme astfel incat sa se creasca
ortogonalitatea dintre ele.

4.2 MASINA BOLTZMAN

Este similara ca functionalitate si operatii cu reteaua Hopfield dar, ca element de noutate,


adauga folosirea unei tehnici simulate de intarire pentru determinarea formei originale. Masina
Boltzman incorporeaza conceptul de intarire simulata la cautarea spatiului starilor stratului de
modelare pentru un minim global. Datorita acestui fapt masina va gravita către un set de valori
imbunatatit in timp o data cu trecerea datelor prin sistem.
La fel ca si in cazul retelelor Hopfield, masinile Boltzman au o energie asociata in
spatiul starilor bazata pe ponderile legaturilor stratului de modelare. Procesul de invatare al unui
set de antrenare plin de forme implica minimalizarea acestei energi. Din acest motiv masina va
gravita către un set imbunatatit de valori pentru ponderile legaturilor o data cu trecerea datelor
prin sistem.
Masina Boltzman necesita un program de intarire simulata , care se adauga procesului
de antrenare a retelei. La fel ca si in cazul caliri fizice temperaturile pornesc de la valori ridicate
si descresc in timp. Temperatura ridicata va adauga un factor de zgomot suplimentar fiecarui
element de procesare al stratului de modelare. Tipic temperatura finala este zero. Daca reteaua
nu reuseste sa se stabilizeze, adaugarea de noi iteratii la temperaturi scazute poate ajuta la
obtinerea solutiei optime.
O masina Boltzman care invata la temperaturi ridicate se comporta ca un model aleator
iar la temperaturi reduse ca un model determinist. Datorita componentei aleatoare in antrenare
un element de procesare isi poate uneori asuma o noua valoare a starii care creste in loc sa scada
energia globala ă sistemului. Acest lucru mimeaza calirea fizica si este folosit pentru a evita
minimele locale si a evolua catre un minim global.
La fel ca si reteaua Hopfield o data ce un set de forme este invatat, o forma partiala
poate fi prezentata retelei iar aceasta va fi capabila sa completeze informatia lipsa. Limitarea

92
numarului de clase la mai putin de 15 procente din numărul total de elemente de procesare ale
stratului de modelare se aplica si in acest caz.

4.3 RETEAUA HAMMING

Este o alta extensie a retelei Hopfield prin adaugarea unui clasificator de probabilitate
maxima la intrarea in retea. Arhitectura, dezvoltata de către Richard Lippman implementeaza o
clasificare bazata pe o eroare minima pentru vectorii de intrare, unde eroarea este definita prin
distanta Hamming. Distanta Hamming reprezinta numărul de biti care difera intre doi vectori de
intrare corespondenti de lungimi egale.
Unul din vectorii de intare reprezintă forma de exemplificare, fara zgomot, iar celalalt
este o forma alterata a evenimentelor din lumea reala. In aceasta arhitectura categoriile de iesire
sunt definite printr-un set modelat fara zgomot. In modul normal de functionare vectorii de
intrare sunt asignati categoriei pentru care distanta hamming dintre vectorul exemplu si cel
curent este minima. Arhitectura Hamming are trei nivele.

Fig. 1.12. Retea Hamming

93
Reteaua foloseste un strat de intrare cu numarul de noduri egal cu numarul
caracteristicilor binare individuale. Urmeaza un strat al categoriilor, care este stratul Hopfield cu
atatea noruri cate categorii sau clase exista, prin aceasta se diferentiindu-se de arhitectra
Hopfield clasica care are in stratul din mijloc un numar de noduri egal cu al celor de intrare. Si
in final exista un strat de iesire cu acelasi numar de noduri ca si stratul Hopfield.
Reteaua are o arhitectura simpla feed-forward cu un strat de intare conectat complet la
cel al categoriilor. Fiecare element din stratul Hopfield este conectat inapoi la toate celelalte
elemente din strat si, printr-o legatura directa, la elementul de procesare de iesire corespunzator,
legatura intre stratul categoriilor si cel de iesire facandu-se prin competitie.
Antrenarea retelei Hamming este similara cu metodologia Hopfield realizandu-se printr-
o singura trecere. Totusi la aceasta arhitectura supervizata, forma de antrenare dorita este
aplicata prin stratul de intrare iar clasa corespondenta prin stratul de iesire.
Inca o data, natura recursiva a nivelului Hopfield ofera un mijloc de ajustare a ponderilor
tuturor legaturilor.
Ponderile dintre straturile de intrare si cel al categoriilor sunt la inceput fixate astfel
incat rezultatele de comparatie generate sa fie egale cu numărul de nodutri de intrare minus
distantele Hamming fata de vectorul de intrare de exemplificare. Aceste valori de asemanare
variaza intre zero si numărul total de elemente de intrare, fiind maxime pentru acei vectori de
intrare care se aseamana cel mai bine cu formele invatate.
Legaturile recursive ale stratului categoriilor au ponderile antrenate in acelasi fel ca si
in cazul retelei Hopfield.
In operatiile normale de propagare inainte un vector de intrare este aplicat stratului de
intrare si trebuie mentinut un timp suficient astfel incat sa permita determinarea categoriei din
care face parte. Astfel se va initializa intrarea functiei Hopfield in stratul categoriilor si se va
permite acelei parti a retelei sa gaseasca cea mai apropiata clasa fata de vectorul de intrare.
Stratul este competitiv, deci la un moment dat o singura iesire este activa.
Reteaua Hamming are o serie de avantaje fata de cea Hopfield deoarece implementeaza
o clasificare a erorii minime optima, atunci cand bitii de intrare sunt aleatori si independenti.
Astfel reteaua Hopfield, prin natura sa aleatoare poate oferi o solutie doar echivalenta
sau mai inexacta decat cea Hamming, intr-un timp mai scurt. Mai putine elemente de procesare
sunt necesare pentru solutia Hamming din moment ce stratul de mijloc necesita doar un element

94
pentru fiecare categorie in loc de un element pentru fiecare nod de intrare. In final reteaua
Hamming nu genereaza clasificarile eronate prezente in cazul Hopfield.

4.4 MEMORII ASOCIATIVE BIDIRECTIONALE

Aceasta retea a fost dezvoltata de către Bart Kosko, generalizand si ea modelul Hopfield.
Un set de perechi de forme sunt invatate printr-o reprezentare a acestora sub forma de vectori
bipolari.
La fel ca si in cazul Hopfield, cand se aplica o versiune alterata a unei forme se
determinata forma cunoscuta cea mai apropiata de aceasta.
O diagrama a unui exemplu de memorie asociativa bidirectionala este prezentata in
figura1.13.

Fig. 1.13. Memorii associative bidirectionale

Arhitectura are un numar egal de noduri de intrare si de iesire. Cele doua straturi ascunse
sunt formate din doua memorii asociate separate, si reprezintă marimea a doi vectori de intrare.
Cele doua lungimi nu trebuie sa fie neaparat egale, asa cum se observa in acest exemplu.
Straturile de mijloc sunt conectate complet intre ele, iar cele de intrare si iesire sunt, din
ratiuni de implementare, mijloacele de intrare si iesire a informatiti din retea.

95
Dar forma originala a lui Kosko urmareste construirea memorilor asociative
bidirectionale pentru procesare optica, acolo unde nu sunt necesare structuri de intrare si iesire
formale.
Straturile de mijloc sunt destinate memorarii perechilor asociate de vectori. Cand un
vector alterat este aplicat la intrare cele doua niveluri oscileaza inainte si inapoi pana cand se
ajunge la o stare de echilibru.
Aceasta stare, presupunand ca reteaua nu este supraantrenata, corespunde celei mai
apropiate forme memorate si va genera la iesire aceasta forma originala, nealterata. La fel ca si
reteaua Hopfield memoria asociativa bidirectionala este succeptibila sa determine forme
incorecte atunci cand componente ale setului de antrenare sunt folosite ca vectori de intrare
necunoscuti.

4.5 RECUNOASTERE SPATIOTEMPORALA (AVALANCHE)

Aceasta retea, asa cum este prezentata in figura este rezultatul muncii de cercetare a lui
Stephen Grossberg de la inceputul anilor ’70, in lucrarile lui autorul numind-o „Avalanche”.

Fig. 1.14. Retea spatiotemporala

96
A fost in primul rand dezvoltata pentru a explica cateva procese cognitive de
recunoastere a secventelor de evenimente variabile in timp. Robert Hecht-Nielsen s-a inetresat
de modul in care aceasta retea poate fi aplicata pentru probleme ingineresti, scopul principal
fiind realizarea unei retele de recunoastere a formelor spatio-temporale. Semnale specifice, cum
ar fi cel audio, sunt memorate si apoi refolosite pentru a clasifica semnale periodice de intrare.
Aceasta retea foloseste o serie de parametri care permit reglarea pentru eficientizarea detectiei
semnalelor variabile in timp.
Exista un termen atasat fiecarui element de procesare, folosit pentru normalizarea
activitatii din intreaga retea. Acesta impune o bariera variabila impotriva careia elementele de
procesare trebuie sa concureze, si se asigura ca cel mai bun va invinge. Metoda de antrenare
pentru aceasta retea foloseste o variatie a regulii Kohonen si adauga o componenta variabila in
timp functiei de antrenare numita functie de atac. Aceasta functie este folosita si in modul de
amintire pentru a asigura o latenta istoriei trecerii semnalelor prin retea.
Principala ramura de aplicare a arhitecturii spatiotemporale pare a fi in domeniul
recunoasterii semnalelor audio. Un grup de cercetatori de la General Dynamics a folosit aceasta
retea pentru a clasifica tipurile de nave maritime pe baza zgomotelor pe care le fac elicele
acestora. O alta caracteristica a acestor retele consta in faptul ca, datorita deteriorarii in timp a
functiei de atac, chiar daca periodicitatea semnalelor de intrare variaza, intradevar, in interiorul
unor limite acceptabile, reteaua este totusi capabila sa clasifice corect semnalele.

CAPITOLUL 5
RETELE PENTRU CONCEPTUALIZARE

Un alt tip de aplicatie este conceptualizarea datelor. In multe cazuri datele nu sunt doar
clasificate deoarece nu toate aplicatiile implica folosirea unor date care pot fi integrate intr-o
clasa.
Unele aplicatii necesita gruparea unor seturi de date care pot sa fie, sau pot sa nu fie clar
definite. Un exemplu il constituie procesarea datelor bazate pe o lista de adrese postale ale
potentialilor clienti.
Clientii pot fi clasificati in diferite clase, in functie de varsta sau posibilitati materiale,
dar de asemenea in viata reala se pot strecura si alte informatii care sa influenteze categoriile din
care pot face parte potentiali cumparatori. Acest proces incearca doar sa identifice un grup cat
mai bine posibil.

5.1 RETELE CU REZONANTA ADAPTIVA

97
Dezvoltata de catre Stephen Grossberg aceasta retea creaza categorii ale datelor de intrare
bazate pe rezonanta adaptiva. Topologia este plauzibila din punct de vedere biologic si foloseste
o functie de antrenare nesupervizata. Sunt analizate datele de intrare semnificative pentru
determinarea comportamentului si se detecteaza posibile caractreistici sau clasificari ale
modelelelor din vectorul de intrare.
Aceasta retea a stat la baza construirii unui numar mare de arhitecturi derivate, cum ar fi
propagarea inversa si memoria asociativa bidirectionala. Creierul retelei cu rezonanta adaptiva
consta din doua straturi puternic interconectate de elemente de procesare localizate intre un strat
de intrare si unul de iesire.
Fiecare model de intrare către stratul inferior de rezonanta va induce trimiterea unui
model asteptat de la stratul superior la cel inferior pentru a influenta următoarea intrare. In acest
fel se creaza o rezonanta intre cele doua straturi pentru a se facilita adaptarea retelei la modele.
Reteaua este folosita in mod normal pentru modelare biologica, existand totusi si cateva
aplicatii ingineresti.
Limitarea majora este succectibilitatea la zgomot a retelei, chiar si cel mai mic nivel de
zgomot al vectorului de intrare alterand capabilitatile de clasificare ale retelei.

5.2 HARTA AUTOORGANIZATIVA

Potrivit modelului dezvoltat de catre Teuvo Kohonen la inceputul anilor ’80, datele de
intrare sunt proiectate intr-un strat bidimensional care mentine ordinea, compacteaza spatiul de
reprezentare, si subgrupeaza datele dense.
Cu alte cuvinte, doi vectori de intrare apropiati vor fi asociati cu doua elemente de
procesare apropiate in stratul bidimensional Kohonen. Stratul contine caracteristicile grupurilor
de date de intrare, elementele de procesare reprezintand o harta bidimensionala a datelor de
intare.
Principala aplicabilitate a hartilor autoorganizative este vizualizarea topologiilor si a
structurilor ierarhice de spatii de intare de dimensiuni mari. Retelele autotrganizative au fost
folosite pentru a crea curbe de umplere a suprafetelor in spatii bidimensionale create de stratul
Kohonen.
Stratul Kohonen poate fi de asemenea folosit pentru probleme de optimizare prin
permiterea ponderilor legaturilor sa se fixeze intr-un model de energie minima.
O diferenta semnificativa intre aceasta retea si majoritatea celorlalte este modul de
antrenare fara supraveghere externa folosit.
Totusi, atunci cand topologia este combinata cu alte arhitectur i, de exemplu de predictie
sau clasificare, reteaua invata mai intai intr-un mod nesupravegheat, pentru a trece apoi in modul
supravegheat pentru antrenarea straturilor atasate.

98
Fig. 1.15. Harta autoorganizativa

Aceasta are de obicei doua straturi, unul de intrare si unul Kohonen bidimensional,
interconectate complet. Stratul de iesire aditional reprezentat aici este folosit pentru o problema
de clasificare si reprezintă cele trei clase din care poate face parte vectorul de intrare. Acest strat
de iesire invata de obicei folosind regula delta si este similar ca mod de operare cu modelul
propagarii inverse.
Elementele de procesare ale nivelului Kohonen măsoară individual distanta euclidiana
dintre ponderi si valorile de intrare. In timpul modului normal de functionare elementul
Kohonen cu distanta minima este desemnat castigator si poate trimite un semnal catre stratul de
iesire, in cazul in care acesta exista. Functionarea fiind competitiva, toate celelalte elemente vor
fi setate fortat pe zero pentru acel vector de intrare. Astfel, elementul de procesare castigator este
intr-un mod masurabil cel mai apropiat de valoarea de intrare si deci reprezintă valoarea de
intrare in harta bidimensionala Kohonen. Deci, datele de intrare de dimensiuni multiple, ajung
sa fie reprezentate intr-un vector bidimensional care mentine ordinea existenta in vectorul de
intrare de dimensiune superioara. Aceasta metoda poate fi privita ca un mod de proiectare cu
conservarea ordinii a unui spatiu de intrare de orice dimensiune intr-un spatiu bidimensional
Kohonen.
In timpul antrenarii, elementul de procesare cel mai apropiat isi ajusteaza ponderile
pentru a se apropia si mai mult de valorile din setul de intrare. De asemenea vecinii elementului
castigator isi ajusteaza si ei ponderile pentru a se apropia de setul de intrare, acest lucru

99
mentinand ordinea in spatiul de intrare. Antrenarea se face prin regula de competitie Kohonen
descrisa in sectiunea de antrenare a retelelor neuronale.
Problema existentei unui singur element de procesare care isi asuma responsabilitatea
pentru un numar prea mare de date de intrare exista si la aceasta arhitectura. La fel ca si in cazul
propagarii inverse aceasta problema este rezolvata printr-un mecanism de constiinta construit in
interiorul functiilor de antrenare. Regula de constiinta depinde de mentinerea unor inregistrari
privind rata de succes a fiecarui element de procesare Kohonen, iar aceste informatii sunt
folosite in timpul antrenarii pentru a normaliza măsurarea distantelor.
Acest mecanism ajuta stratul Kohonen sa evolueze catre cea mai buna reprezentare
posibila. Elementele de procesare reprezintă in mod natural informatii aproximativ egale despre
setul datelor de intrare.
Daca spatiul de intrare are putine date, reprezentarea este compactata in spatiul
Kohonen, iar daca spatiul are date dense elementele de procesare reprezentative se raspandesc
pentru a permite o discriminare mai fina. In acest fel nivelul Kohonen pare sa reproduca
reprezentarea cunostintelor in sistemele biologice.

CAPITOLUL 6
RETELE PENTRU FILTRAREA DATELOR

Ultimul tip major de retele este cel folosit pentru filtrarea datelor, o prima aderenta fiind
Madaline. Madaline elimina ecoul dintr-o linie telefonica printr-un circuit dinamic de filtrare.
Rezultate mai recente au permis modemurilor sa lucreze scceptabil la 4800 si 9600 baud prin
tehnici de egalizare dinamica. Ambele aplicatii utilizeaza retele neuronale incorporate in cipuri
speciale.

6.1 RETELE CU RECIRCULARE

Retelele cu recirculare au fost introduse de Geoffrey Hinton si James McClelland ca o


alternativa biologica plauzibila la retelele cu propagare inversa. In cazul propagari inverse
erorile sunt transmise inapoi prin aceleasi legaturi folosite si pentru propagarea directa folosind
o scalare aditionala prin derivata functiei de transfer, acest lucru facand dificila implementarea
electronica a algoritmului de propagare inversa.
Intr-o retea recilculanta datele sunt procesate intr-o singura directie iar antrenarea se face
folosind doar cunostintele locale. In particular cunostintele sunt date de starea elementului de
procesare si valoarea de intrare pentru legatura care trebuie sa fie adaptata. Aceste retele

100
folosesc antrenarea nesupravegehata astfel ca nu este necesar un vector de iesire aplicat stratului
de iesire al retelei. Reteaua este autoasociativa, numărul de intrari si iesiri fiind egal.
Arhitectura este compusa din doua straturi aditionale intre cel de intrare si cel de iesire,
numite start vizibil si strat ascuns. Scopul metodei de antrenare este construirea in stratul ascuns
a unei reprezentari interne a datelor prezentate la stratul vizibil. Un important rol al acesteia este
acela de a comprima datele de intrare folosind mai putine elemente de procesare in stratul
ascuns. In acest caz, reprezentarea ascunsa poate fi considerata o varianta comprimata a
reprezentarii vizibile. Stratul vizibil si cel ascuns sunt conectate complet in ambele directii. De
asemenea fiecare element din cele doua straturi este conectat la un element de calitate (bias).
Aceste legaturi au ponderi variabile ajustabile in acelasi fel ca si celelalte ponderi din retea.

Fig. 1.16. Retea recirculanta

Procesul de antrenare pentru aceasta retea este similar cu tehnica folosita pentru memoriile
asociative bidirectionale. Aici datele de intare sunt prezentate stratului vizibil si trecute către
stratul ascuns. Acesta le transmite inapoi către stratul vizibil care la randul lui le retransmite
către stratul ascuns si de acolo către cel de iesire. La cea de-a doua trecere prin stratul ascuns
apare procesul de invatare. In acest fel datele de intrare sunt recirculate prin retea.
In timpul antrenarii iesirea stratului ascuns la primul pas reprezinta versiunea codificata a
vectorului de intrare. Iesirea stratului vizibil la urmatorul pas este reconstructia intrarii originale
din vectorul codificat in stratul ascuns. Scopul antrenarii este de a reduce erorile dintre vectorul
reconstruit si cel de intrare. Aceste erori sunt de asemenea reflectate in diferenta dintre iesirile
stratului ascuns la primul si la ultimul pas, din moment ce o reconstituire corecta va insemna ca
valori identice vor trece prin stratul ascuns la ambele parcurgeri. Antrenarea urmareste sa reduca
de asemenea eroarea de reconstituire a stratului ascuns.

101
In majoritatea aplicatiilor un semnal de intrare este netezit prin compresie si apoi
reconstituit la iesire. Reteaua actioneaza ca un filtru trece jos al carui punct de tranzitie este
controlat de nLumărul de noduri ascunse.

CAPITOLUL 7
INVATAREA PROFUNDA (ADANCA)

Inteligenta artificiala , AI , a fost permanent o provocare pentru oamenii de stiinta si


cercetatori. Dezvoltarea echipamentelor tehnice si aparitia celei de a patra revolutie industriale
a condus la realizari revolutionare.

Astfel s-a dezvoltat noua componenta a inteligentei artificiale si anume ’’Machine


Learnig’’ care permite calculatoarelor sa invete din experientele proprii, comportamentul lor
asemuindu-se cu cel uman.

Se utilizeaza un volum foarte mare de date iar software-ul este de tip retele neuronale
speciale, adanci compatibile cu invatarea aprofundata (adanca) adica’’ deep learning’’. Reteau
neuronala artificiala, formata dintr-o multitudine neuroni artificiali interconactati, dispusi pe
stratuiri (layer-e), in general trei: de intrare , de iesire si cel ascuns, se va comporta precum
creierul uman.

S-au dezvoltat retelele neuronale adanci care reprezinta un subdmeniu al masinilor


instruibile (Machine Learning). Ele utilizeaza algoritmi asemanatori din structura si functiile
creierului, fiind mult mai buni si mai usor de folosit .

Deep Learning este o nou forma a învățării automate avand performante superioare
folosind o cantitatea mult mai mare de date.

Actualmente s-au intensificat cercetarile in inteligenta artificiale pe trei directii:

- inteligenta calcultoarelor, sistemele pot gandi

- procesarea limbajului natural, sistemele pot asculta si

- pereptia masinilor, sistemele pot vedea.

102
Disciplina care se ocupa cu machine learning, cu stiinta de a invata calculatoarele
studiaza inteligenta clculatoarelor. Tendinta este de face obiectele din jurul nostru sa devina
inteligente, iar calculatoarele sa recunoasca obiecte prin furnizarea unor modele nu neaparat
programandu-le. Reteau neronala artificiala va fi invatata sa recunoasca modele foarte
complexe. Principala apliacatie in acest sens este recunosterea unui anumit tip de produs din
miile de imagini, fotografii, furnizate. Calculatoare folosite in acest scop au unitati de procesare
grafica care ruleaza partea grafica a aplicatiilor.

Google a demarat implementarea unei platforme open-source denumita TensorFLow


pe baza c++-ului. Programatorii pot folosi C++ si Python si se spera ca unealta va putea fi
extinsa si catre alte limbaje, cum ar fi Google Go, Java si chiar Javascript.

Acesta este o librarie de software care lucreaza cu grafice de fluxuri de date.


Arhitectura sistemului este complexa, dar el este destul de general incat sa aiba aplicații intr-o
larga varietate de abordari, de la calasificarea imaginilor pe baza conținutului lor si pana la
folosirea motorului de cautare Google prin comenzi vocale. Comenzile vocale pe care i le putem
da motorului de cautare, o conversație cu acesta , autoantrenandu-se la fiicare raspuns ne poate
oferi mai multe informatii.

Google Images are implementat un algoritm de AI care ii permite motorului de cautare


sa identifice imaginile nu (doar) pe baza etichetelor atasate lor de catre utilizatori, ca pana acum,
ci analizand efectiv elementele ilustrate.

Astfel, aplicația de Android Google Images ne sorteaza automat in albume separate, in


smartphone, fotografiile pe care le facem, in funcție de ceea ce am imortalizat.

Produsul de varf al inteligentei artificial se considera fi ’’asistentul personal


universal’’. Asistentul va fi practic o prezența continua si oportuna a lui utilizatorului, care il va
ajuta pe acesta sa rezolve lucruri in lumea reala.

Va funcționa ca un asistent personal sau ca o secretara p, ocupandu-se de detalii


consumatoare de timp, cum ar fi sa comanzi o pizza, sa faci rezervare la un restaurant sau sa
cumperi bilete la un film, un concert sau chiar pentru avion. Si chiar si acasa. Asistentul
universal va sluji cu loialitate si, pentru ca probabil toate dispozitivele electrice si electrocasnice
vor fi inteligente, ii vom putea da comenzi vocale dintre cele mai diverse, de la pornirea aerului
condiționat si pana la spalarea, uscarea si apretarea rufelor.

Pe langa software-ul TensorFLow se foloseste si software-ul Keras. Keras este o


bibliotecă pentru rețele neuronale de nivel înalt, scrisă în Python și capabilă să ruleze fie cu
biblioteca TensorFlow, fie cu Theano. În acest caz Keras rulează cu TensorFlow.

103
104

S-ar putea să vă placă și