Sunteți pe pagina 1din 6

FACULTATEA DE ELECTRONIC , TELECOMUNICA II I TEHNOLOGIA

INFORMA IEI

Recunoa terea scrisului de mn :


generarea bazei de date i studiu comparativ al performan elor
pentru fuzzy perceptron i re ea cu func ie baz radial

Coordonator,

Prof.univ.Dr.Ing. Radu DOGARU

Student,

Cristian BR ILESCU
Anul I, Master ELA

n pasul urm tor s-a rulat programul step2.m.

Rezumat
Lucrarea

de

fa

reprezint

un

studiu

Acesta are rolul de segmentare, adic de ncadrare a

comparativ ntre dou rete e neurale: re eaua cu fuzzy

cifrelor n dreptunghiuri. Imaginea rezultat n urma

perceptron i re eaua cu func ie baz radial . Baza de

segment rii este afi at n figura 2.

date de antrenament folosit pentru analiza celor dou


re ele apar ine aplica iei de recunoa tere a scrisului de
mn . Ea se va crea n cadrul acestui proiect, plecnd
de la o foaie cu scris de mn

i utiliznd o variant

mbun ta it a procedurii de extragere a tr s turilor,


fa de cea folosit in cadrul aplica iilor de laborator.

1. Introducere
Recunoa terea scrisului de mn

este o

aplica ie foarte r spndit n momentul de fa

fiind n

general utilizat pentru interfa a om-calculator. Acest


gen de aplica ii sunt integrate n softurile scannerelor, a
PDA-urilor, telefoanelor mobile sau a

tabletelor

grafice. Obiectivul acestei lucr ri este de a realiza o


baz de date de antrenament ce poate fi folosit pentru
a recunoa te cele 10 cifre. Dup crearea bazei de date
Fig. 1. Imaginea rezultat n urma rul rii programului step1.m

de antrenament, se analizeaz performa ele acesteia cu


ajutorul clasificatorului neural

Support Vector

Machine, iar n final, se analizeaz performan ele celor


dou

re ele neurale. Proiectul este implementat

software n Mathlab2006.

2. Realizarea bazei de date


Pentru crearea bazei de date de antrenament sau scris 144 de cifre de la 0 la 9, pe o foaie de hrtie
alb . Pentru a ob ine rezultate ct mai bune s-a urm rit
ca nici o cifr s nu aib un grad de apari ie mai mare
fa

de media apari iilor (13-15 apari ii pentru fiecare

cifr ). Foaia de hrtie s-a scanat i a rezultat un fi ier


JPG ce a fost prelucrat (t iat margini albe, mic orare
rezolu ie) pentru a scurta timpul de execu ie i resursele
necesare realiz rii bazei de date.
Fig. 2. Imaginea rezultat n urma rul rii programului step2.m

n continuare, s-a folosit programul step1.m


pentru a prelucra imaginea. Experimental s-a stabilit c
pragul folosit n func ia signum, pentru care cifrele se
v d clar, este 60. maginea rezultat n urma rul rii
acestui program este redat n figura 1.

Programul step3.m se ruleaz pentru a crea


matricea C. Aceasta este o matrice de N linii i 4
coloane (N=num rul de cifre identificate pe foaie).
Cele 4 coloane ale fiec rei linii reprezint coordonatele
i

dimensiunile

fiec rui

dreptunghi,

respectiv

coordonata x, coordonata Y (col ul de sus, stnga),

3. Evaluarea performa elor bazei de date

n l imea i lungimea. n cadrul acestui program se

Pentru evaluarea bazei de date creat anterior

face i baleierea imaginii, linie cu linie ncepnd din

se folose te clasificatorul neural ma in

col ul din stnga, sus. La sfr itul rul rii programului,

support SVM. nainte de a lansa n execu ie

matricea C ob inut

clasificatorul, se creaz fi ierele n formatul acceptat de

are elementele ordonate dup

cu vector

coordonata X a dreptunghiurilor. Acest lucru va face ca

acesta. Se folosesc 80 de e antioane pentru setul de

la rularea urm torului program, de extragere de

antrenament i 64 pentru cel de test. Pentru c formatul

tr s turi, imaginea

SVM accept pentru matricea Samples doar numere

fie

parcurs

ordinea

coordonatei X a dreptunghiurilor. Fiindc cifrele sunt

mai mari sau egale cu 1, se va aduna 1 la aceast

scrise mai sus sau mai jos pe acela i rnd n foaie, acest

matrice deoarece exist clasa 0. Astfel, clasele vor fi

lucru va duce la o parcurgere aleatoare a liniilor din

ntre 1 si 10.

imagine. Pentru a corecta acest lucru, s-a creat


programul step3a.m care aranjeaz

elementele din

Dup salvarea n format SVM, se lanseaz n


execu ie osusvmdemo, se introduce numele problemei

matricea C n func ie de liniile din imagine, iar n

i se aleg din meniurile afi ate:

cadrul

1) Demonstrations of using C-SVM Classifers.

liniei,

func ie

de

coordonata

dreptunghiurilor. n tabelul I sunt reprezentate primele


12 linii din matricea C dup

rularea programului

step3.m respectiv step3a.m.

i apoi
3) Construct a nonlinear SVM Classifier (rbf kernel)
and test it.
Cel mai bun PCIC=1,4286 (procent de clasific ri

TABELUL I

incorecte pe setul de test) s-a ob inut pentru gamma=1.

MATRICEA C

Matricea de confuzie corespunz toare acestei valori a

step3.m

step3a.m

50 624 39 27

60 23 35 29

51 660 38 23

57 102 38 11

51 704 38 22

53 157 40 33

53 157 40 33

53 271 38 21

53 271 38 21

53 308 39 20

53 308 39 20

53 347 39 33

53 347 39 33

57 455 34 31

53 499 41 21

53 499 41 21

53 550 39 11

53 550 39 11

Din matricea de confuzie se constat faptul c

57 102 38 11

50 624 39 27

sunt probleme cu cifra 6, aceasta nu este recunoscut

57 455 34 31

51 660 38 23

ntotdeauna

60 23 35 29

51 704 38 22

aceasta fiind clasificat n unele cazuri ca fiind cifra 6.

Dup

executarea acestui program, urmeaz

lui gamma, este:


1
0
0
0
0
0
0
0
0
0

rularea

programului step4.m, care extrage tr s turile fiec rui

0
1
0
0
0
0
0
0
0
0

0
0
1
0
0
0
0
0
0
0

0
0
0
1
0
0
0
0
0
0

0
0
0
0
1
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0 0.8571 0 0.1429
0
0 1.0000 0
0
0
0
1
0
0
0
0

i exist

0
0
0
0
0
0
0
0
0
1

confuzii si n cazul cifrei 8,

4.Analiza performa elor re elei cu fuzzy perceptron


Pentru analiza celor dou

re ele neurale se

caracter i creaz dou matrici: matricea F ce con ine 7

folose te baza de date realizat anterior. Aceasta este

vectori de stimuli scala i ntre 0 i 1 i matricea O ce

prelucrat cu ajutorul programului svm2stand i rezult

con ine r spunsul dorit (cifrele de la 0 la 9). Stimulii

fi ierul handrw3.mat, n format standard.

sunt calcula i de programul features.m, pentru fiecare


dreptunghi ncadrat.

Se analizeaz

performan ele unei structuri

feed-forward cu 1 strat de neuroni fuzzy. S-a folosit

adaptarea fuzzy-neuronului propus de T. Yamakawa


din aplica ia FUY_CLSF.M.
Rezultatele experimentale ale re elei s-au
ob inut modificnd valoarea eta. Aceste rezultate sunt
redate n tabelul 2.
TABEL 2

raza
0.2
0.5
1
1.5
2

TABEL 4
rbf_gus, manh
nr. neuroni
nr. epoci
80
7
71
54
36
3
19
4
9
15

PCICg
89.0625 %
12.5 %
3.125 %
3.125 %
27.7671%

raza
0.2
0.5
1
1.5
2

TABEL 5
rbf_dog, eucl
nr. neuroni
nr. epoci
77
50
32
4
6
87
4
14
2
18

PCICg
25 %
1.5625 %
34.375 %
53.125 %
62.5 %

raza
0.2
0.5
1
1.5
2

TABEL 6
rbf_gus, eucl
nr. neuroni
nr. epoci
77
21
32
3
7
26
3
8
3
45

PCICg
20.3125 %
1.5625 %
26.5625
45.3125 %
54.6875 %

REZULTATE FUZZY PERCEPTRON

eta

nr epoci

PCICg

0.01

231

15.625%

0.1

22 ep

29.6875%

0.25

2 ep

65.625%

Cele mai bune rezultate s-au ob inut pentru


eta=0.01, dar num rul de clasific ri incorecte este
destul de mare (15.625%). Evolu ia parametrului
PCIC se g se te n figura 3.

Din analiza tabelelor rezult c cele mai bune


rezultate se ob in pentru tipul de distan

euclidian,

indiferent de tipul de func ie folosit. Num rul de


neuroni pentru care este ob inut cel mai bun PCICg
(1.5625 %) este acela i pentru cele dou func ii, de 32.
Pentru acest tip de problem distan a de tip
Fig. 3. Evolu ia parametrului PCIC la fuzzy perceptron
(eta=0.01)

manhatann nu este potrivit , PCICg-ul cel mai bun n


cazul acestei distan e fiind dublu fa de cazul n care sa folosit distan a euclidian .

5.Analiza performa elor re elei cu func ie baz

n figurile de mai jos sunt afi ate evolu iile PCIC

radial

pentru cazul n care este folosit distan a euclidian .


Pentru analiza acestui tip de re ea se foloseste

programul RBF_MOD.M. Se verific performan ele


re elei cu func ie gausian

i cu func ia rbf_dog. Pentru

cele dou tipuri de func ii se analizeaz func ionarea n


func ie de tipurile de distan euclidian

i manhatann.

Rezultatele experimentale se g sesc n tabele 3-6.

raza
0.2
0.5
1
1.5
2

TABEL 3
rbf_dog, manh
nr. neuroni
nr. epoci
80
5
68
29
33
2
17
6
8
13

PCICg
89.0625 %
17.1875 %
3.125 %
3.125 %
25 %

Fig. 4. Evolu ia parametrului PCIC (rbf_dog, distan euclidian )

Fig. 5. Evolu ia parametrului PCIC (rbf_gus, distan euclidian )

6.Concluzii
n urma rezultatelor experimentale, reiese
faptul c o re ea cu func ie baz radial are performan e
mai bune n cazul acestui tip de problem . Cel mai bun
PCICg ob inut cu re eaua cu fuzzy perceptron
(15,625%) este de 10 ori mai mare dect cel din cazul
re elei cu func ie radial (1.5625 %). De asemeni dac
se iau n considerare num rul de epoci dup care a
rezultat acest PCICg, rezult faptul c re eaua cu fuzzy
perceptron este mult mai lent (n medie, de 50 de ori
mai lent ).
n cazul re elei cu func ie radial , ambele
func ii(gausian si rbf_dog) au performan e bune i
asem n toare. Se observ

i faptul c n cazul folosirii

distan ei euclidiene performan ele sunt mai bune, dar i


num rul de neuroni este dublu fa

de cazul n care se

folose te distan a manhatann, deci este mai greu de


implementat fizic o re ea cu func ie radial , dac se
dore te folosirea distan ei euclidiene.

7. Bibliografie
[Dogaru08]

Dogaru, R.., Neural Networks


Chonbuk National University, 2008
[Dogaru96]
Dogaru, R.., Murgan, A.T., Ortmann,
S., Glesner, M., "A modified RBF
neural network for efficient currentmode VLSI implementation",
MicroNeuro'96
Laussane, Elvetia, February 1996
Lucr ri de laborator handwr, L4

Anex
Programul step3a.m
i=1;
while(i<size(C,1)) %se parcurge matricea C
min1=C(i);
%coordonata x minima este a primului element din matrice/linia
%de caractere
init=i;
%limitele liniei de caractere
final=i;
while ((C(i)<=min1+30)&&(i<size(C,1))) % cat timp coordonata x a carcterului
%curent este mai mica decat coordonata x minima + un prag luat
%empiric; acest prag reprezinta nr max de pixeli cu care un %
carcater este scris mai jos fata de cel mai de sus %caracter
i=i+1;
% se parcurge matricea
end
% daca s-a depasit pragul inseamna ca s-a terminat linia
final=i-1;
% se seteaza finalul
u=zeros(1,4);
% variabila va fi folosita pentru copiere
g=1;
% se sorteaza crescator sirul in functie de ccoordonata y
if(i==size(C,1))
final=size(C,1);
end
while(g)
g=0;
for a=init:(final-1)
if(C(a,2)>C(a+1,2))
u=C(a,:);
C(a,:)=C(a+1,:);
C(a+1,:)=u;
g=1;
end
end
end
end

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