lab4b

Upload: ggardu

Post on 14-Jan-2016

220 views

Category:

Documents


0 download

DESCRIPTION

school

TRANSCRIPT

  • Lucrarea 4.b

    Reteaua neurala cu functii de baza radiale (RBF)

    1. Baza teoretica

    Reeaua MLP prezentat anterior este rezultatul unor tehnici de optimizare stohastic,

    bazate pe minimizarea unei funcii obiectiv dependent de eroare. Exist i alte abordri

    ale proiectrii i instruirii reelelor neuronale. Astfel, n locul determinrii minimului

    gradientului funciei de eroare, antrenarea reelei neuronale poate fi conceput astfel

    nct, fiind dat mulimea datelor de test, s se determine hipersuprafaa care realizeaz

    cea mai bun interpolare a ei ntr-un spaiu multidimensional. n acest caz, stratul

    neuronilor ascuni are rolul de a produce o mulime de funcii (funcii radiale) pentru

    reprezentarea vectorilor de intrare. Reelele neuronale bazate pe funcii radiale (RBF) se

    bucur n ultimul timp de o atenie tot mai mare, datorit avantajelor pe care le prezint.

    Figura 1.1. Arhitectura reelei RBF

  • Arhitectura RBF

    Arhitectura retelei RBF consta in:

    - un strat de intrare ce contine L neuroni virtuali (i = 0 ... L-1) care nu

    realizeaza o prelucrare de semnal, ci doar o multiplexare, prelucrarea propriu-

    zisa avand loc doar in stratul intermediar si in cel de iesire.

    - un strat intermediar cu M neuroni (j = 0 ... M-1) ce implementeaza functia

    Gaussiana de activare:

    = 2

    2

    2

    ||||exp

    j

    j

    j

    mXz

    - in strat de iesire cu N neuroni (k = 0 ... N-1) ce realizeaza suma ponderata a

    iesirilor de pe stratul intermediar.

    =

    +=1

    0

    M

    jkjkjk zwy

    Semnificaie parametri:

    jm (media) i j (dispersia) descriu formele prototip ataate intrrilor

    X = [x0, x1...xi...xL-1] vector de intrare

    xi valoarea aplicat neuronului i de pe stratul de intrare, i = 0 L-1

    zj iesirea neuronului j de pe stratul intermediar, j = 0 M-1

    yk iesirea neuronului k de pe stratul de ieire, k = 0 N-1

    wkj ponderea conexiunii neuronului k de pe stratul de iesire cu neuronal j de pe

    stratul intermediar

    Stratul intermediar al reelei realizeaz o partiionare a spaiului de intrare n grupri

    descrise prin medie i dispersie, n timp ce stratul de iesire ia decizia de apartenen a

    formei de intrare la una dintre clase.

  • Observaii:

    - numrul neuronilor din stratul de intrare = dimensiunea vectorului de intrare

    - numrul neuronilor din stratul intermediar = numrul vectorilor din lotul de antrenare

    - numrul neuronilor din stratul de ieire = numrul de clase n care se face clasificarea

    Mediile vor fi n acest caz reprezentate de vectorii din lotul de antrenare. Eroarea pe lotul

    de antrenare va fi zero. Se va obine astfel un sistem de MxN ecuaii cu MxN ponderi

    necunoscute. Din acest sistem se vor putea calcula ponderile.

    Exemplu:

    Fie un set de vectori L-dimensionali care se dorete s fie clasificai n N = 2 clase. Pentru

    configurarea reelei s presupunem c vom folosi M = 3 vectori de antrenare (X1, X2 i

    X3). In acest caz, neuronii de pe stratul intermediar vor fi reprezentai chiar de aceti 3

    vectori, mai exact m1=X1, m2=X2 i m3=X3. Presupunnd cunoscut parametrul sigma

    (dispersia), se pot calcula ieirile zj ale neuronilor de pe stratul intermediar. Dac iesirile

    dorite sunt de forma Y1={ , }, Y2={ , }, Y3={ , }, atunci se va obine un

    sistem n care necunoscutele sunt ponderile.

    Din sistemul cu 6 ecuatii i 6 necunoscute de mai sus se pot afla cele 6 ponderi.

  • 2. Aplicatii de laborator

    Obiectiv: clasificarea vinurilor (din baza de date Wine) folosind reteaua neurala RBF.

    Baza de date Wine contine 3 tipuri de vinuri, fiecare avand cate 13 parametri:

    1. Alcohol 2. Malic acid 3. Ash 4. Alcalinity of ash 5. Magnesium 6. Total phenols

    7. Flavanoids 8. Nonflavanoid phenols 9. Proanthocyanins 10. Color intensity

    11. Hue 12. OD280/OD315 of diluted wines 13. Proline

    Baza de date contine:

    in Clasa1: 59 de vectori; in Clasa2: 71 de vectori; in Clasa3: 48 de vectori.

    Toti vectorii sunt 13-dimensionali.

    Pentru a se vizualiza baza de date, deschideti fisierul wine.data salvat in folderul curent.

    Vectorii din baza de date au fost impartiti in 2 loturi:

    - lot_antrenare, continand 50% din vectorii fiecarei clase

    - lot_testare, continand restul de 50% din vectorii fiecarei clase

    Ambele loturi sunt etichetate, stiindu-se fiecare vector din ce clasa provine. Etichetarile sunt

    salvate in target_antrenare pentru lot_antrenare si target_testare pentru lot_testare.

    Pentru clasificarea utilizand retele neuronale se va porni Toolboxul pentru Retele

    Neuronale. Din programul Matlab, din coltul stanga jos se apasa Start/Toolboxes/Neural

    Network/NNtool, ca in captura de mai jos.

    Figura 2.1. Toolboxul din Matlab

  • Se va deschide o fereastra precum cea din captura de mai jos:

    Figura 2.2. Toolboxul Neural Network din Matlab

    Pentru implementarea retelei RBF s-a folosit Toolboxul de Neural Network din Matlab.

    S-a folosit o retea de tipul Radial Basis.

    Stratul de intrare are 13 neuroni (dimensiunea vectorilor = 13), stratul intermediar

    are 89 de neuroni (deoarece sunt 89 de vectori in lotul de antrenare) iar stratul de iesire

    are 3 neuroni (sunt 3 clase de vinuri). Neuronii din stratul de iesire sunt de forma:

    [1 0 0] vectorul apartine clasei 1

    [0 1 0] vectorul apartine clasei 2

    [0 0 1] vectorul apartine clasei 3

    Singurul parametru variat va fi parametrul spread.

    Desfasurarea lucrarii:

    1. se va importa fisierul cu lotul de vectori pentru antrenare lot_antrenare apasand

    butonul Import si apoi:

    la sectiunea Source se va selecta Import/Load from disk

    file/Browse/L4/Wine_Data

    la sectiunea Select a variable se va selecta lot_antrenare

    la sectiunea Destination se va selecta Inputs

  • 2. se va importa fisierul cu etichetari target_antrenare apasand butonul Import si apoi:

    la sectiunea Select a variable se va selecta lot_antrenare

    la sectiunea Destination se va selecta Targets

    3. se va crea apoi o retea folosind butonul New Network si apoi:

    Network Name: sa va alege un nume al retelei, de exemplu: RBF

    Network Type: tipul retelei. Se va alege Radial basis(exact fit)

    Input data: se va selecta Set to input: lot_antrenare

    Target data: se va selecta Set to input: target_antrenare

    Spread constant: 1.0

    Se va apasa Create si in acest moment reteaua este configurata.

    4. Pentru a vedea cum arata reteaua, selectati mai intai numele retelei si apoi dati View.

    O sa va apara urmatoarea fereastra

    Figura 2.3. Arhitectura retelei RBF

    5. Pentru a testa reteaua, trebuie mai intai sa importati lotul de test si cel cu iesirile

    asociate lui si anume lot_testare si target_testare. Veti proceda la fel ca si cu lotul de

    vectori pentru antrenare, apasand butonul Import si apoi:

    la sectiunea Select a variable se va selecta lot_testare

    la sectiunea Destination se va selecta Inputs

    la sectiunea Select a variable se va selecta target_testare

    la sectiunea Destination se va selecta Targets

  • 6. Apasati Simulate si apoi:

    Simulation Data/Inputs: selectati lot_testare

    Simulation results/Outputs: denumiti fisierul in care vor fi salvate iesirile. De exemplu:

    RBF_outputs

    7. Exportati apoi fisierul cu iesirile calculate si cel cu iesirile dorite (RBF_outputs si

    target_testare).

    Pentru a vedea scorul de recunoastere scrieti in Matlab in Command Window linia de

    cod:

    [val ,pos] = max(RBF_outputs, [],1);

    classnumber = sum(target_testare.*repmat([1;2;3],1,length(target_testare)), 1 );

    scor = length(find(pos==classnumber))/length(classnumber)*100

    Reglare parametri:

    - se va varia parametrul spread in intervalul 0.51 cu pasul 0.1 si se va nota scorul de

    clasificare corecta

    Se va reprezenta grafic variatia scorului de clasificare corecta in functie de

    parametrul spread.