You are on page 1of 7

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 propriuzisa 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:

|| X m j || 2

z j = exp

2
2

j
-

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


iesirilor de pe stratul intermediar.
M 1

yk =

w
j=0

kj

z j + k

Semnificaie parametri:
m j (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

file/Browse/L4/Wine_Data
la sectiunea Select a variable se va selecta lot_antrenare
la sectiunea Destination se va selecta Inputs

from

disk

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.

You might also like