retele_neurale

11
Reţele neurale Reţelele neurale caracterizează ansambluri de element e de procesare simple, interconectate şi operând în paralel, care urmăresc să interacţioneze cu mediul înconjurător într-un mod asemănător creierelor biologice şi care prezintă capacitatea de a învăţa. Nu există o definiţie general acceptată a acestor tipuri de sisteme, dar majoritatea cercetătorilor sunt de acord cu definirea reţelelor artificiale ca reţele de elemente simple puternic interconectate prin intermediul unor legături numite interconexiuni prin care se propagă informaţie numerică. Originea acestor reţele trebuie căutată în studierea reţelelor bioelectrice din creier formate din neuroni şi sinapsele acestora. Principala trăsătură a acestor reţele este capacitatea de a învăţa din exemple într-un mod conexionist, folosindu-se de experienţa anterioară pentru a-şi îmbunătăţi performanţele. O reţea neurală este antrenată astfel încât o intrare particulară să conducă la o ieşire ţintă. Reţeaua va fi ajustată, pe baza comparaţiilor dintre datele de ieşire pe care le generează şi ieşirile ţintă, până când ieşirile reţelei se potrivesc cu ieşirile ţintă. Pocedeul folosit pentru a executa procesul de antrenare se numeşte a lgoritm de învăţare, care are funcţia de a modifica ponderile sinaptice ale reţelei într -un mod sistematic pentru a atinge obiectivul dorit de proiectare. Există două tipuri importante de învăţare: supervizată şi nesupervizată. Învăţarea supervizată presupune aplicarea unei intrări reţelei, după care se compară ieşirea produsă de reţea cu ieşirea dorită şi se modifică ponderile astfel încât să se minimizeze diferenţa dintre cele două. În învăţarea nesupervizată mulţimea de antrenare constă numai din vectori de intrare. Iar scopul algoritmului este de a produce vectori consistenţi, în sensul că două semnale foarte apropiate să producă răspunsuri identice sau foarte asemănătoare. Astfel perechile ( vector de intare, vector de ieşire ) similare sunt grupate în clase, proces numit şi clusterizare.

Upload: moses-george

Post on 08-Nov-2015

4 views

Category:

Documents


0 download

DESCRIPTION

IA retele neurale

TRANSCRIPT

  • Reele neurale

    Reelele neurale caracterizeaz ansambluri de elemente de procesare simple,

    interconectate i opernd n paralel, care urmresc s interacioneze cu mediul

    nconjurtor ntr-un mod asemntor creierelor biologice i care prezint capacitatea de a

    nva. Nu exist o definiie general acceptat a acestor tipuri de sisteme, dar majoritatea

    cercettorilor sunt de acord cu definirea reelelor artificiale ca reele de elemente

    simple puternic interconectate prin intermediul unor legturi numite interconexiuni

    prin care se propag informaie numeric.

    Originea acestor reele trebuie cutat n studierea reelelor bioelectrice din creier

    formate din neuroni i sinapsele acestora. Principala trstur a acestor reele este

    capacitatea de a nva din exemple ntr-un mod conexionist, folosindu-se de experiena

    anterioar pentru a-i mbunti performanele.

    O reea neural este antrenat astfel nct o intrare particular s conduc la o

    ieire int. Reeaua va fi ajustat, pe baza comparaiilor dintre datele de ieire pe care le

    genereaz i ieirile int, pn cnd ieirile reelei se potrivesc cu ieirile int.

    Pocedeul folosit pentru a executa procesul de antrenare se numete algoritm de

    nvare, care are funcia de a modifica ponderile sinaptice ale reelei ntr-un mod

    sistematic pentru a atinge obiectivul dorit de proiectare. Exist dou tipuri importante de

    nvare: supervizat i nesupervizat. nvarea supervizat presupune aplicarea unei

    intrri reelei, dup care se compar ieirea produs de reea cu ieirea dorit i se

    modific ponderile astfel nct s se minimizeze diferena dintre cele dou. n nvarea

    nesupervizat mulimea de antrenare const numai din vectori de intrare. Iar scopul

    algoritmului este de a produce vectori consisteni, n sensul c dou semnale foarte

    apropiate s produc rspunsuri identice sau foarte asemntoare. Astfel perechile (

    vector de intare, vector de ieire ) similare sunt grupate n clase, proces numit i

    clusterizare.

  • n cazul nvrii supervizate distingem dou modaliti de antrenare:

    antrenarea de tip bach const n modificarea ponderilor i a bias-ului presupunnd

    ca fiind dat o mulime de vectori de intrare

    antrenarea incremental modific ponderile i bias-ul unei reele imediat dup

    introducerea unui vector de intrare. Antrenarea incremental poart numele i de

    antrenare on-line sau adaptiv.

    Reelele neurale au fost antrenate s efectueze funcii complexe n domenii

    diverse de aplicabilitate, incluznd recunoaterea, identificarea i clasificarea formelor,

    sisteme de vorbire, imagine i control.

    Caracteristici

    Reelele neurale artificiale se pot caracteriza pe baza a 3 elemente:

    modelul adoptat pentru elementul de procesare individual,

    structura particular de interconexiuni (arhitectura)

    mecanismele de ajustare a legturilor (algoritmii de nvare).

    Modelul neuronului i arhitectura acestuia descriu modul n care o reea

    transform datele de intrare n date de ieire. Aceast transformare poate fi privit ca pe o

    compunere.

    Modelul neuronului

    Structura unui neuron avnd ca dat de intrare un scalar este urmtoarea:

  • Intrarea p, transmis printr-o conexiune, este multiplicat de ponderea w, iar

    produsul wp este argumentul funciei de transfer f, care produce scalarul de ieire a.

    Neuronul din partea stng nu are bias ( este nedeplasat ), iar cel din dreapta are un bias (

    deplasare ), notat b, care este un scalar. Bias-ul poate fi privit ca o simpl adunare la

    valoarea wp, reprezentat prin simbolul sau ca pe o deplasare a funciei f la stnga cu o

    valoare b. Bias-ul poate fi considerat ca fiind o pondere corespunztoare intrrii

    constante 1.

    Att w, ct i b sunt parametri reglabili ai neuronului. Ideea central a reelelor

    neurale const n faptul c parametrii pot fi modificai astfel nct reeaua s ilustreze un

    comportament dorit. Astfel, putem antrena reeaua s realizeze un anumit lucru (

    problema de clasificare pentru reeaua de tip perceptron ) prin ajustarea ponderilor i a

    bias-ului sau reeaua nsi poate ajusta aceti parametri pentru a produce un anumit

    comportament.

    Funcii de transfer

    Multe dintre funciile de transfer sunt incluse n toolbox-ul nnet. n continuare voi

    prezenta cele mai utilizate trei funcii.

  • 1. Funcia de transfer hard-limit limiteaz ieirea ( output-ul ) unui neuron la

    dou valori 0 i 1, dup formula:

    hardlim(n) = 0, dac 0

    1, dac 0

    n

    n

    Aceast funcie este utilizat n reeaua cu un singur neuron ( perceptron ) pentru

    a lua decizii legate de misclasificarea unui punct ( problema clasificrii ).

    Toolbox-ul nnet conine o funcie numit hardlim pentru a obine funcia

    matematic de transfer hard-limit. Codul urmtor genereaz graficul funciei hard-

    limit pe intervalul [-5, 5].

    n = -5:0.1:5;

    plot(n,hardlim(n),'*r:');

    2. Funcia de transfer liniar

    purelin(n)=n

  • Neuronii care au ca funcie de transfer aceast funcie sunt folosii ca aproximatori

    liniari n cadrul filtrelor liniare.

    3. Funcia de transfer sigmoidal transform argumentul ntr-un numr cu

    valoarea cuprins ntre 0 i 1; este folosit n reelele backpropagation, datorit

    proprietii de difereniabilitate a funciei.

    logsig(n) = 1 / (1 + exp(-n))

    Simbolul din dreapta fiecrui grafic arat reprezentarea funciei de transfer;

    aceste reprezentri vor fi folosite n diagramele reelelor pentru a sugera tipul funciei

    de transfer folosit.

    Exerciiu: Studiai comportarea unui neuron cu o singur intrare folosind

    programul demonstrativ nnd2n1.

  • Exerciiu: Reprezentai grafic funciile de transfer exemplificate n programul

    demonstrativ.

    Neuron avnd ca intrare un vector

    Un neuron avnd ca intrare un vector cu R elemente este reprezentat mai jos:

    Elementele vectorului de intrare 1,..., Rp p sunt multiplicate cu ponderile

    1,1 1,2 1,, ,..., Rw w w i apoi sumate. Suma lor poate fi scris ca produsul scalar dintre matricea

    W ( matrice cu o linie i R coloane ) i vectorul p. Neuronul are bias-ul b, care este

    adunat intrrilor ponderate, rezultnd intrarea reelei, n, care reprezint argumentul

    funciei de transfer:

    1,1 1 1,2 2 1,... R Rn w p w p w p b

    Expresia poate fi scris n MATLAB astfel:

    n = W*p + b

  • n reprezentarea reelelor cu mai muli neuroni i mai multe nivele de neuroni,

    detaliile nu sunt foarte importante i prin urmare va fi preferat urmtoarea notaie pentru

    a reprezenta un neuron:

    p reprezint vectorul intrrilor i are dimensiunile R 1;

    W reprezint matricea ponderilor;

    b reprezint bias-ul;

    n reprezint intrarea reelei, n= W*p + b ;

    a este ieirea reelei, a = f(n); trebuie fcut observaia c dac avem avem o reea cu mai

    mult de un neuron ieirea este un vector.

    Nivelul unei reele neurale este un 4-uplu format din:

    matricea ponderilor,

    operaiile de multiplicare i adunare,

    bias-ul b i

    funcia de transfer f.

    Exerciiu: Exprimentai folosind programul experimental nnd2n2 neuronul

    avnd ca intrare un vector cu dou elemente.

  • Arhitecturi neurale

    Mai muli neuroni pot fi grupai pe un nivel, iar o reea neural poate conine

    unul sau mai multe nivele. Mai jos este reprezentat o reea cu un singur nivel ce conine

    S neuroni:

    n reeaua de mai sus, fiecare element al vectorului de intrare p va constitui o intrare

    pentru fiecare neuron, ponderat de componentele matricei de ponderi W. Starea

    neuronul i, n(i), este dat de produsul scalar dintre intrrile vectorului p i coloana i a

    matricei ponderilor. Cele S valori n(i) determin intrarea reelei, n. Ieirile nivelului de

    neuroni sunt reinute n vectorul a. Matricea ponderilor este:

    1,1 1,2 1,

    2,1 2,2 2,

    ,1 ,2 ,

    . . .

    . . .

    . . . . . . . . . .

    . . .

    R

    R

    S S S R

    w w w

    w w w

    w w w

    W

  • Reeaua de mai sus cu un singur nivel, avnd S neuroni i R intrri poate fi reprezentat

    prescurtat astfel:

    Input-uri i nivele

    Vom defini imediat reele avnd mai multe nivele, de aceea este necesar

    dintincia dintre matricea ponderilor asociat input-urilor i matricea ponderilor care

    conecteaz dou nivele. De asemenea, trebuie s identificm sursa i destinaia ponderilor

    matricei. Vom numi matricea ponderilor conectat intrrilor InputWeights, iar matricea

    ponderilor provenind din ieirile unui nivel o vom numi LayerWeights. Vom considera

    c al doilea indice reprezint sursa, iar primul destinaia ponderii; de asemenea bias-ul va

    conine un indice care indic nivelul n care apare.

    Matricea ponderilor asociat intrrii j i nivelului i este reinut n celula

    aflat pe linia i i coloana j a unei matrice de celule notat IW de dimensiune

    numrul_nivelelor numrul_intrrilor ( exemplu: 1,1IW este structura de ponderi

    care leag sursa 1 ( al doilea indice ) i destinaia 1 ( primul indice ), adic primul vector

    de intrare de primul nivel, iar 1b este bias-ul asociat nivelului 1 ).

    n mod similar, matricea ponderilor asociat nivelului surs j i nivelului destinaie i

    este reinut n celula aflat pe linia i i coloana j a unei matrice de celule notat

    LW de dimensiune numrul_nivelelor numrul_nivelelor.

    Reeaua cu un singur nivel de mai jos ilustreza ceea am spus mai sus:

  • Observaii:

    1. Structurii 1,1IW pentru o reea net ( creat ) i este asociat urmtorul cod

    MATLAB folosind matricea ponderilor:

    1,1IW net.IW{1,1}

    2. Pentru a calcula n MATLAB intrarea funciei de transfer vom folosi codul:

    n{1} = net.IW{1,1}*p + net.b{1}

    Reele cu mai multe nivele

    O reea poate avea mai multe nivele, fiecrui nivel corespunzndu-i o matrice de

    ponderi W, un vector bias b i un vector rezultant a. Pentru a distinge matricele de

    ponderi pentru fiecare nivel n parte vom aduga fiecrei variabile ca superscript

    indicele nivelului din care face parte. Figura de mai jos ilustreaz modul n care este

    reprezentat o reea cu trei nivele, fiecare nivel coninnd 1S , 2S , respectiv 3S

    neuroni.

  • Trebuie remarcat faptul c ieirile unui nivel intermediar reprezint intrrile

    nivelului urmtor. Astfel, nivelul 2 poate fi analizat ca o reea avnd 1S intrri, 2S

    neuroni i matricea ponderilor de dimensiune 2S 1S .

    Reprezentarea prescurtat a reelei de mai sus este urmtoarea:

    Nivelul care produce ieirea reelei se numete nivel de ieire ( output layer ),

    iar celelalte nivele se numesc nivele ascunse ( hidden layers ). Reelele neurale cu mai

    multe nivele sunt foarte utilizate n aplicarea tehnicii backpropagation pe care o vom

    discuta mai trziu.