recunoastere de forme utilizand retele neuronale · pdf fileurmătorul pas const în...

16
RECUNOASTERE DE FORME UTILIZAND RETELE NEURONALE - ilustrare 7.1 Recunoaștere flori de iris Unul dintre cele mai populare seturi de date de referință utilizate în aplicațiile de clasificare și recunoaștere de forme este setul de date Iris [14, 35, 1, 8, 36, 13]. Acest set de date poate fi accesat gratuit pe internet, de exemplu în UCI Machine Learning Repository [37]. 7.1.1 Descrierea problemei Setul de date Iris prezintă următoarele caracteristici: numărul speciilor (claselor) 3 = K ; denumirea celor trei specii: Setosa, Versicolor, respectiv Virginica; dimensiunea setului de date 150 = N (câte 50 de flori de iris din fiecare specie); 4 trăsături lungime sepală [mm]; lățime sepală [mm]; lungime petală [mm]; lățime petală [mm]. Structura datelor este ilustrată în Tabelul 7.1, în care sunt prezentate valorile trăsăturilor pentru o selecție de 6 flori de iris (câte două din fiecare specie), împreună cu specia din care face parte fiecare (prin valoarea 1 în coloana ce reprezintă specia). Pe acest set de date se pot defini două tipuri de probleme și anume: 1. Problema de grupare a datelor: fiecare floare de iris (formă, obiect) este caracterizată prin valorile celor patru trăsături și se cere determinarea grupurilor (claselor) florilor de iris. În acest caz, întregul set de date se va supune unui algoritm de grupare (vezi paragraful 7.1.2); 2. Problema de recunoaștere: se dorește construirea unui sistem de recunoaștere (clasificator), utilizând un algoritm de clasificare supervizată. Setul inițial de date se împarte (aleator) în trei subseturi de date: de antrenare, de validare și de test. Nr. crt. Trăsături Specie Lungime sepală [mm] Lățime sepală [mm] Lungime petală [mm] Lățime petală [mm] Setosa Versicolor Virginica 1 49 30 14 2 1 0 0 2 51 38 19 4 1 0 0 3 66 29 46 13 0 1 0 4 52 27 39 14 0 1 0 5 63 33 60 25 0 0 1 6 72 36 61 25 0 0 1 Tabelul 7.1: Structura setului de date Iris O primă etapă în analiza datelor constă în examinarea domeniilor de valori pentru fiecare din cele patru trăsături. Figura 7.1 prezintă domeniile de variație ale celor patru trăsături pentru fiecare dintre cele trei specii. 1

Upload: nguyenlien

Post on 03-Feb-2018

234 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: RECUNOASTERE DE FORME UTILIZAND RETELE NEURONALE · PDF fileUrmătorul pas const în crearea reă țelei neuronale artificiale. Pentru aceasta, în Matlab exista atât funcții cât

RECUNOASTERE DE FORME UTILIZAND RETELE NEURONALE - ilustrare

7.1 Recunoaștere flori de iris Unul dintre cele mai populare seturi de date de referință utilizate în aplicațiile de clasificare și recunoaștere de forme este setul de date Iris [14, 35, 1, 8, 36, 13]. Acest set de date poate fi accesat gratuit pe internet, de exemplu în UCI Machine Learning Repository [37].

7.1.1 Descrierea problemei

Setul de date Iris prezintă următoarele caracteristici: • numărul speciilor (claselor) 3=K ; • denumirea celor trei specii: Setosa, Versicolor, respectiv Virginica; • dimensiunea setului de date 150=N (câte 50 de flori de iris din fiecare specie); • 4 trăsături

lungime sepală [mm]; lățime sepală [mm]; lungime petală [mm]; lățime petală [mm].

Structura datelor este ilustrată în Tabelul 7.1, în care sunt prezentate valorile trăsăturilor pentru o selecție de 6 flori de iris (câte două din fiecare specie), împreună cu specia din care face parte fiecare (prin valoarea 1 în coloana ce reprezintă specia).

Pe acest set de date se pot defini două tipuri de probleme și anume: 1. Problema de grupare a datelor: fiecare floare de iris (formă, obiect) este caracterizată prin valorile celor patru

trăsături și se cere determinarea grupurilor (claselor) florilor de iris. În acest caz, întregul set de date se va supune unui algoritm de grupare (vezi paragraful 7.1.2);

2. Problema de recunoaștere: se dorește construirea unui sistem de recunoaștere (clasificator), utilizând un algoritm de clasificare supervizată. Setul inițial de date se împarte (aleator) în trei subseturi de date: de antrenare, de validare și de test.

Nr. crt.

Trăsături Specie Lungime

sepală [mm] Lățime

sepală [mm] Lungime

petală [mm] Lățime

petală [mm] Setosa Versicolor Virginica

1 49 30 14 2 1 0 0 2 51 38 19 4 1 0 0 3 66 29 46 13 0 1 0 4 52 27 39 14 0 1 0 5 63 33 60 25 0 0 1 6 72 36 61 25 0 0 1

Tabelul 7.1: Structura setului de date Iris

O primă etapă în analiza datelor constă în examinarea domeniilor de valori pentru fiecare din cele patru trăsături. Figura 7.1 prezintă domeniile de variație ale celor patru trăsături pentru fiecare dintre cele trei specii.

1

Page 2: RECUNOASTERE DE FORME UTILIZAND RETELE NEURONALE · PDF fileUrmătorul pas const în crearea reă țelei neuronale artificiale. Pentru aceasta, în Matlab exista atât funcții cât

2

Apare ca evident faptul că luând în considerare diverse combinații ale trăsăturilor se asigură o separare completă a speciei Setosa, față de celelalte două specii. Acest fapt este posibil deoarece nu există deloc suprapuneri ale domeniilor de valori ale ultimelor două caracteristici (Lungime petală și Lățime petală) pentru specia Setosa față de celelalte două specii.

În ceea ce privește speciile Versicolor și Virginica, acestea nu pot fi complet separate, indiferent ce combinații ale trăsăturilor ar fi alese deoarece există suprapuneri ale domeniilor de valori pentru toate cele patru trăsături. În concluzie, este de așteptat ca indiferent de algoritmul utilizat pentru clasificare sau recunoaștere, florile de iris Setosa să fie clasificate/recunoscute corect, fără erori, dar să apară erori de clasificare/recunoaștere a florilor de iris din celelalte două specii (confuzie între flori din cele două specii).

Analiza de mai sus arată că setul de date Iris ar putea fi considerat ca fiind format din două grupuri de date liniar separabile (Setosa pe de o parte, respectiv Versicolor și Virginica pe de altă parte). Acest aspect este evidențiat în Figura 7.2 printr-o reprezentare bidimensională a florilor de iris utilizând doar primele două trăsături (lungime sepală și lățime sepală). Cu linie neagră este reprezentată o posibilă graniță de separare între specia Setosa, pe de o parte și speciile Versicolor și Virginica pe de altă parte. Este evident ca o separare completă (chiar neliniară) între Versicolor și Virginica nu este posibilă utilizând aceste două trăsături. O separare mai pronunțată s-ar putea realiza utilizând toate cele patru trăsături ale setului de date Iris.

7.1.4 Recunoaștere utilizând rețele neuronale artificiale

Pentru definirea problemei de recunoaștere a formelor cu rețele neuronale artificiale mai întâi este necesară o etapă de formatare a datelor. Sunt necesare două matrice, matricea trăsăturilor și matricea țintelor. Pentru intrările RNA, datele se organizează în matricea trăsăturilor, cu N rânduri (N este numărul de trăsături) și F coloane (F este dimensiunea setului de date). Astfel fiecare coloană descrie o formă, adică conține valorile trăsăturilor pentru aceea formă. Pentru

45 50 55 60 65 70 75 80

20

25

30

35

40

45

lungime sepala

latim

e se

pala

SetosaVersicolorVirginica

Figura 7.2: Reprezentarea florilor de iris în funcție de primele două trăsături. Se observă două grupuri liniar separabile: Setosa, respectiv Versicolor + Virginica

40

45

50

55

60

65

70

75

80

Lungimesepala

20

25

30

35

40

45

Latimesepala

10

20

30

40

50

60

70

Lungimepetala

0

5

10

15

20

25

Latimepetala

Setosa

Versicolor

Virginica

Figura 7.1: Domeniile de valori ale trăsăturilor pentru setul de date Iris

Page 3: RECUNOASTERE DE FORME UTILIZAND RETELE NEURONALE · PDF fileUrmătorul pas const în crearea reă țelei neuronale artificiale. Pentru aceasta, în Matlab exista atât funcții cât

ieșirile RNA se formează matricea țintă care are K rânduri (K este numărul claselor) și F coloane. Fiecare coloană definește clasa din care face parte forma respectivă. Fiecare rând al matricei țintă reprezintă o clasă. În fiecare coloană există o singură valoare 1, pe poziția corespunzătoare clasei, restul valorilor fiind 0. Pentru setul celor 150 flori de iris matricea țintă este explicitată în Figura 7.17. Următorul pas constă în crearea rețelei neuronale artificiale. Pentru aceasta, în Matlab exista atât funcții cât și instrumente grafice care creează o rețea neuronală cu propagare înainte, cu structura specifică unei aplicații de recunoaștere de forme. Numărul de straturi ascunse poate fi precizat de utilizator, implicit fiind considerat doar un start ascuns, suficient pentru majoritatea aplicațiilor de recunoaștere de forme. Numărul de intrări este determinat automat ca fiind egal cu numărul de rânduri al matricei trăsăturilor. De asemenea se determină automat numărul de ieșiri ca fiind egal cu numărul de rânduri al matricei țintă. Funcția de activare pentru fiecare strat al rețelei poate fi precizată de utilizator, valorile implicite atât pentru startul ascuns cât și pentru stratul de ieșire fiind tansig.

3

Pentru aplicația de recunoaștere a florilor de iris utilizând o RNA, s-au utilizat valorile implicite pentru numărul de straturi (2 straturi: un strat ascuns și stratul de ieșire) și pentru funcțiile de activare (tansig), numărul neuronilor din stratul ascuns fiind fixat la 10. Structura rețelei neuronale rezultate este:

• 4 intrări – câte una pentru fiecare trăsătură ; • 3 ieșiri – câte una pentru fiecare clasă; • primul strat (stratul ascuns) cu 10 neuroni cu funcție de activare tansig, fiecare neuron având 4 intrări și o ieșire; • al doilea strat (stratul de ieșire) care are trei neuroni cu funcție de activare tansig, fiecare neuron cu 10 intrări și o

ieșire. La crearea rețelei, toate ponderile conexiunilor, w și toate polarizările b sunt generate aleator în intervalul [0; 1].

Astfel că de fiecare dată când se generează rețeaua, avem rețele diferite din punctul de vedere al valorilor parametrilor. Așadar inclusiv evoluția pe durata instruirii precum și rețeaua instruită vor fi diferite de la o rulare la alta.

Structura rețelei la nivel de schemă bloc este prezentată în Figura 7.18. O imagine mai detaliată a structurii rețelei este ilustrată în Figura 7.19. Menționăm că în această imagine nu apar explicit polarizările neuronilor. Generarea structurii s-a realizat utilizând aplicația VANN [38]. Conexiunile de culoare roșie reprezintă ponderi cu valori negative, pe când cele de culoare albastră ponderi pozitive. De asemenea grosimea liniilor este direct proporțională cu mărimea (în valoare absolută) a ponderilor. Urmează procesul de instruire al RNA. Pentru aceasta trebuie definiți câtva parametri ai algoritmului de instruire, cum ar fi:

• funcția de instruire, care are ca valoare implicită trainscg (gradient conjugat scalat); • o măsură a performanței (eroarea de instruire), implicit este mse (eroarea medie pătratică); • modul de împărțire a datelor în date de instruire, de validare și de test, implicit se utilizează dividerand

(împărțire aleatoare); • procentele de împărțire a datelor: s-au utilizat 70% pentru instruire, 15% pentru validare și 15% pentru test. Ca și condiții de oprire s-au utilizat: • numărul maxim de epoci de instruire: 250; • timp maxim de instruire: inf, valoare implicită; • valoarea minimă a funcției de performanță (a erorii): 0, valoare implicită; • valoarea minimă a gradientului: 1e-10; • numărul maxim de epoci fără îmbunătățirea erorii de validare - numărul de epoci succesive pentru care eroarea

pentru subsetul de validare nu scade (necesar pentru identificarea procesului de suprainstruire): 6, valoare implicită.

Figura 7.18: Structura rețelei neuronale la nivel de straturi

1 1 … 1 0 0 … 0 0 0 … 00 0 … 0 1 1 … 1 0 0 … 00 0 … 0 0 0 … 0 1 1 … 1

matricea țintă:

indice coloană 1 2 50 51 52 100 101 102 150

clasa 1 (Setosa)

clasa 2 (Versicolor)

clasa 3 (Virginica)

Figura 7.17: Matricea țintă pentru setul de date Iris

Page 4: RECUNOASTERE DE FORME UTILIZAND RETELE NEURONALE · PDF fileUrmătorul pas const în crearea reă țelei neuronale artificiale. Pentru aceasta, în Matlab exista atât funcții cât

4

Inițializarea și instruirea rețelei au fost rulate de mai multe ori, obținând rezultate diferite în ceea ce privește

performanța de recunoaștere a florilor de iris: 98,67% (2 erori), 95,33% (7 erori), 96% (6 erori), 95,33% (7 erori), 99,33% (1 eroare), etc. Instruirea rețelei s-a terminat întotdeauna datorită identificării fenomenului de suprainstruire, adică atingerea numărului de 6 epoci succesive pentru care valoarea funcției de performanță pentru datele de validare nu scade. Putem concluziona că rezultatele diferite obținute se datorează în primul rând modului de împărțire a datelor în cele trei subseturi (instruire, validare, test).

În continuare sunt prezentate rezultatele pentru rețeaua instruită care a furnizat o performanță de recunoaștere de 98,67% (2 flori de iris greșit recunoscute).

Starea procesului de instruire în momentul opririi instruirii este prezentată în Figura 7.20.

Figura 7.20: Variabilele ce monitorizează procesul de instruire a rețelei neuronale, la finalul instruirii

intrare primul strat (strat ascuns)

al doilea strat (strat de ieșire)

Figura 7.19: Structura detaliată a rețelei neuronale

După cum se observă, instruirea s-a oprit la epoca 40, datorită îndeplinirii ultimei condiții de identificare a apariției

fenomenului de suprainstruire. Acest fenomen se poate observa cu ușurință și pe graficul din Figura 7.21, în care este reprezentat numărul de epoci succesive în care eroarea de validare nu scade.

Figura 7.21: Numărul de eșecuri succesive în descreșterea erorii de validare

Page 5: RECUNOASTERE DE FORME UTILIZAND RETELE NEURONALE · PDF fileUrmătorul pas const în crearea reă țelei neuronale artificiale. Pentru aceasta, în Matlab exista atât funcții cât

Figura 7.22: Evoluțiile erorilor pe durata instruirii rețelei neuronale

5

9736,

Figura 7.22 prezintă evoluțiile erorii (mse) pentru cele trei subseturi de date: de instruire (Train), de validare (Validation) și de test (Test). Se observă o tendință globală descrescătoare a celor trei erori, ceea ce înseamnă o bună convergență a procesului de instruire. Chiar dacă de la epoca 20 se observă o stagnare a erorii de validare, nu a apărut încă fenomenul de suprainstruire, având doar 3 epoci succesive cu creștere ușoară a acestei erori. Fenomenul de suprainstruire începe la epoca 34, după care urmează 6 epoci de creștere a erorii de validare, astfel că instruirea se oprește la epoca 40. Algoritmul de instruire furnizează ca soluție finală (rețea neuronală instruită) rețeaua de la epoca 34, la care a fost înregistrată cea mai mică eroare de validare și anume 3 . 510−⋅ Rețeaua neuronală artificială pentru recunoașterea florilor de iris are 3 ieșiri, câte una pentru fiecare clasă. Deși rețeaua a fost instruită cu o matrice țintă care avea doar valori de 1 și 0, este evident că în urma calculelor rețeaua neuronală va furniza la ieșire valori în intervalul [0,1]. Clasa la care este recunoscută ca făcând parte floarea prezentată la intrare, se determină ca fiind cea corespunzătoare ieșirii cu valoarea cea mai mare. În Figura 7.23 sunt prezentate valorile ce apar la ieșirea rețelei dacă la intrarea acesteia se aplică întreg setul celor 150 de date. Se observă ca nu toate valorile sunt de 0 sau 1. Ultima diagramă prezintă comparativ clasele de referință (țintă) și clase determinate utilizând rețeaua neuronală artificială (clasa RN). Pentru exemplificare să considerăm floarea de iris cu indicele 126. Aceasta este corect recunoscută ca fiind din clasa 3, deoarece pe ieșirea a treia RNA a calculat cea mai mare valoare de 0,7696 față de 0,2682 pe ieșirea a doua, respectiv 0,0015 pe prima ieșire.

Page 6: RECUNOASTERE DE FORME UTILIZAND RETELE NEURONALE · PDF fileUrmătorul pas const în crearea reă țelei neuronale artificiale. Pentru aceasta, în Matlab exista atât funcții cât

6

Figura 7.23: Ieșirile determinate de rețeaua neuronală pentru fiecare din cele trei clase (primele trei diagrame). Comparație între clasificarea determinată de rețeaua neuronală și

clasificarea de referință (ultima diagramă)

Floarea de iris cu indicele 56, din clasa de referință 2 este în mod eronat recunoscută ca fiind în clasa 3, deoarece rețeaua a calculat cea mai mare valoare pe ieșirea a treia, de 0,7983 față de 0,235 pe ieșirea a doua, respectiv 0,002298 pe prima ieșire. După cum se observă din ultima diagramă din Figura 7.23, avem două flori de iris greșit recunoscute și anume cea cu indicele 56 (recunoscută eronat ca fiind în clasa 3, deși este în clasa 2 de referință) și cea cu indicele 106 (recunoscută eronat ca fiind în clasa 2, deși este în clasa 3 de referință). O imagine sintetică a performanței de recunoaștere a RN este dată de matricele de confuzie din Figura 7.24. În matricele de confuzie se realizează o comparație între repartizarea de referință a florilor în clase (conform datelor de instruire), menționate în partea de jos a matricei (Target Class) si repartizarea în clase conform recunoașteri florilor de către rețeaua neuronală, menționate în partea stânga a matricei (Output Class).

Page 7: RECUNOASTERE DE FORME UTILIZAND RETELE NEURONALE · PDF fileUrmătorul pas const în crearea reă țelei neuronale artificiale. Pentru aceasta, în Matlab exista atât funcții cât

c) d)

b) a)

Figura 7.24: Matricele de confuzie la recunoașterea florilor de iris a) antrenare, b) validare, c) test, d) întreg setul de date

În continuare se analizează în detaliu matricea de confuzie pentru subsetul de date de instruire (Figura 7.24 a)). Putem afla câte flori avem în fiecare din cele trei clase conform repartizării de referință, prin suma numerelor de pe coloana respectivă din matricea de confuzie:

• flori existente în clasa 1: 34+0+0=34 forme; • flori existente în clasa 2: 0+36+1=37 forme; • flori existente în clasa 3: 0+1+32=33 forme; În total, subsetul de date de instruire conține 34+37+33=104 de forme. Putem afla câte flori au fost recunoscute de rețeaua neuronală în fiecare clasă prin însumarea numerelor de pe rândul

respectiv din matricea de confuzie: • flori recunoscute ca fiind în clasa 1: 34+0+0=34 forme; • flori recunoscute ca fiind în clasa 2: 0+36+1=37 forme; • flori recunoscute ca fiind în clasa 3: 0+1+32=33 forme;

Aceste rezultate trebuie însă analizate cu atenție. Chiar dacă numărul de flori recunoscut de către RNA în fiecare clasă coincide cu numărul de flori din clasele corespondente de referință, nu toate florile au fost corect recunoscute. A apărut confuzie pentru 2 flori. O floare din clasa 2 de referință a fost incorect recunoscută ca fiind în clasa 3 și o floare din clasa 3 de referință a fost incorect recunoscută ca fiind în clasa 2. Interpretarea datelor prezentate în matricea de confuzie aferentă subsetului de instruire, pentru clasa 2 este următoarea:

• pe orizontală, rândul 2 o celula de coordonate (2,1): nici o floare din clasa de referință 1 nu a fost recunoscută eronat ca fiind în clasa

2; o celula de coordonate (2,2) situată pe prima bisectoare: 36 de flori din clasa de referință 2 au fost corect

recunoscute ca fiind în clasa 2, ceea ce reprezintă 34,6% din totalul de 104 flori din subsetul de instruire; o celula de coordonate (2,3): 1 floare din clasa de referință 3 a fost eronat recunoscută ca fiind în clasa 2, ceea

ce reprezintă aproximativ 1% din totalul de 104 flori din subsetul de instruire; o celula de coordonate (2,4): 97,3% (36 din 37) din florile recunoscute ca fiind în clasa 2 sunt corect

recunoscute, iar 2,7% (1 din 37) din florile recunoscute ca fiind în clasa 2 sunt eronat recunoscute (a fost

7

Page 8: RECUNOASTERE DE FORME UTILIZAND RETELE NEURONALE · PDF fileUrmătorul pas const în crearea reă țelei neuronale artificiale. Pentru aceasta, în Matlab exista atât funcții cât

recunoscută eronat în clasa 2 o floare din clasa 3). • pe verticală, coloana 2

o celula de coordonate (1,2): nici o floare din clasa de referință 2 nu a fost recunoscută eronat ca fiind în clasa 1;

o celula de coordonate (3,2): 1 floare din clasa de referință 2 a fost eronat recunoscută ca fiind în clasa 3, ceea ce reprezintă aproximativ 1% din totalul de 104 flori din subsetul de instruire.

o celula de coordonate (4,2): 97,3% (36 din 37) din florile din clasa 2 de referință sunt corect recunoscute, iar 2,7% (1 din 37) din florile din clasa 2 de referință sunt eronat recunoscute (a fost recunoscută eronat ca fiind din clasa 3).

Pe întreg subsetul de instruire procentul de recunoaștere corectă este de 98,1% (102 din 104), iar procentul de recunoaștere eronată este de 1,9% (2 din 104), confirm valorilor din celula de coordonate (4,4)

Pentru subseturile de validare și de test procentele de recunoaștere corectă sunt de 100%. Performanța de recunoaștere corectă pe întreg setul de date este una foarte bună, de 98,67% (148 flori de iris corect recunoscute din totalul celor 150), după cum se poate citi și din celula de coordonate (4,4) din Figura 7.24 d), pe când procentul de recunoaștere eronată este de 1,3% (2 din 150).

7.2 Recunoaștere cifre de mână

7.2.1 Descrierea problemei

Problema de rezolvat constă în recunoașterea automată a cifrelor scrise de mână, cifre preluate dintr-un formular tipizat. Setul de date și descrierea acestuia este disponibilă pentru descărcare și utilizare în baza de date UCI Machine Learning Repository [37]. Informația primară a fost generată cu ajutorul unui număr total de 43 de persoane, 30 dintre acestea generând setul de date de instruire (3823 de cifre) iar celelalte 13 persoane generând un set independent de date de test (1797 de cifre). Distribuția pe clase a cifrelor din cele două seturi de date este prezentată în Tabelul 7.8.

Pentru prelucrarea acestor cifre și extragerea trăsăturilor caracteristice, pentru fiecare cifră s-a extras o imagine bitmap normalizată, de 32x32 pixeli. Astfel, fiecare pixel poate avea fie valoarea 0, ceea ce în reprezentarea grafică înseamnă alb, fie valoarea 1, ceea ce înseamnă negru. Pentru exemplificare, imaginile pentru două exemplare ale cifrei 0 și două exemplare ale cifrei 5 sunt prezentate în Figura 7.36. De asemenea matricea corespunzătoare celei de a doua cifre 5 din Figura 7.36 este prezentată în Figura 7.37.

Cifra 1 2 3 4 5 6 7 8 9 0

Setul de instruire 389 380 389 387 376 377 388 380 382 376 Setul independent de test 182 177 183 181 182 181 179 174 180 178

Tabelul 7.8: Distribuția pe clase a cifrelor

Figura 7.36: Imaginile bitmap normalizate, de 32x32 pixeli pentru câte două exemplare ale cifrelor 0 și 5

8

Page 9: RECUNOASTERE DE FORME UTILIZAND RETELE NEURONALE · PDF fileUrmătorul pas const în crearea reă țelei neuronale artificiale. Pentru aceasta, în Matlab exista atât funcții cât

9

00000000001100000000001000000000 00000000011111100111111111000000 00000000111111111111111111000000 00000001111111111111111110000000 00000011111111111111111110000000 00000011111111111111111100000000 00000011111110000000000000000000 00000011111100000000000000000000 00000001111100000000000000000000 00000001111100000000000000000000 00000001111100000000000000000000 00000001111100000000000000000000 00000001111111111100000000000000 00000001111111111111000000000000 00000001111111111111110000000000 00000001111111111111111100000000 00000001111111111111111100000000 00000001111111111111111110000000 00000000111000000001111110000000 00000000000000000000111111000000 00000000000000000000011111000000 00000000000000000000011111000000 00000000000000000000011111000000 00000000000000000000011111000000 00000000000000000000011111000000 00000000000000000000111111000000 00000000000000011111111110000000 00000000000111111111111110000000 00000000011111111111111100000000 00000000111111111111110000000000 00000001111111111111000000000000 00000001111000000000000000000000

Figura 7.37: Matricea corespunzătoare celei de a doua cifre 5 din Figura 7.36

Într-o primă abordare am putea considera ca fiecare formă de recunoscut (cifră) este descrisă de totalitatea valorilor pixelilor, caz în care pentru descrierea acestor forme am avea un set de 10243232 =⋅ trăsături. Definită în acest fel problema este destul de complexă datorită numărului mare de variabile de intrare (trăsături).

Pentru reducerea dimensionalității datelor și asigurarea unei anumite invarianțe la distorsiuni mici s-a recurs la o metodă simplă de reducere a numărului de trăsături. Astfel, imaginea originală de 32x32 pixeli este divizată în blocuri adiacente, de 4x4 pixeli. Rezultă astfel un număr de 8x8 blocuri, în total 64 de blocuri. Fiecare bloc este caracterizat de numărul de pixeli ‘on’, adică cu valoare 1, pe care îi conține. Rezultă că descrierea fiecărei forme se poate realiza printr-un număr de 64 de trăsături, fiecare cu valori întregi din intervalul [0, 16]. Împărțirea imaginii pe cele 64 de blocuri este ilustrată în Figura 7.38 pentru cea de-a doua cifră 5 din Figura 7.36.

7.2.2 Recunoaștere utilizând rețele neuronale artificiale

Pentru recunoașterea cifrelor scrise de mână utilizând rețele neuronale reamintim că dispunem de un set de date de instruire format din 3823 exemplare ale cifrelor de la 0 la 9. De asemenea mai dispunem de un set independent de 1797

Figura 7.38: Ilustrarea divizării în 64 de blocuri a câte 4x4 pixeli, a imaginiicelei de-a doua cifre 5 din Figura 7.36: a) reprezentare grafica; b) numărul depixeli ‘on’ (de valoare 1) pentru fiecare bloc

0 1 13 11 11 13 5 0

0 8 16 9 8 8 1 0

0 4 16 0 0 0 0 0

0 4 16 16 14 6 0 0

0 2 11 8 9 16 4 0

0 0 0 0 0 12 8 0

0 0 1 5 8 15 6 0

0 2 14 12 12 6 0 0

a) b)

Page 10: RECUNOASTERE DE FORME UTILIZAND RETELE NEURONALE · PDF fileUrmătorul pas const în crearea reă țelei neuronale artificiale. Pentru aceasta, în Matlab exista atât funcții cât

exemplare ale celor zece cifre, care va fi utilizat pentru testarea finală a performanțelor de recunoaștere a rețelei neuronale instruite. Evident, numărul claselor este zece, cele 10 clase fiind etichetate cu cifrele corespunzătoare de la 1 la 9, eticheta pentru clasa ce conține caracterele 0 fiind 10.

Pentru instruirea rețelei neuronale, matricea trăsăturilor (intrările rețelei neuronale) are dimensiunile de 64x3823 (64 de rânduri și 3823 de coloane). Fiecare coloană descrie un exemplar conținând valorile pentru cele 64 de trăsături ale cifrei, matricea de reprezentare a cifrei de dimensiunea 8 x 8 fiind reconfigurată într-un vector coloană de dimensiune 35 x 1.

Având zece clase distincte, matricea țintă (ieșirile rețelei neuronale) are dimensiunea de 10x3823: • 10 rânduri, câte unul pentru fiecare clasă; • 3823 de coloane, fiecare coloană indicând din ce clasă face parte fiecare din cele 3823 de cifre, prin valoarea 1 în

rândul corespunzător clasei, celelalte valori fiind 0. Pentru rețeaua neuronală s-a ales un singur strat ascuns cu un număr de 26 de neuroni, structura rețelei fiind: • (stratul de) intrare cu 64 intrări; • un strat ascuns cu 26 neuroni cu funcția de activare tansig; • stratul de ieșire cu 10 neuroni cu funcția de activare tansig, respectiv cu 10 ieșiri.

Setul de date de instruire este împărțit în trei subseturi: • subsetul de instruire: 60% din totalul setului de instruire, adică 2293 exemplare; • subsetul de validare: 20% din totalul setului de instruire, adică 765 exemplare; • subsetul de test: 20% din totalul setului de instruire, adică 765 exemplare. Divizarea datelor în cele trei subseturi s-a realizat utilizând funcția dividerand care distribuie datele în mod aleator

între cele trei subseturi ținând cont de procentele alocate fiecărui subset. La utilizarea distribuirii aleatoare (dividerand) a datelor inițiale între cele trei subseturi exista riscul dezechilibrării

repartizării formelor dintr-o clasă pe cele trei subseturi. De exemplu majoritatea exemplarelor dintr-o clasă ar putea să fie distribuite în două subseturi, fără a se distribui exemplare din aceea clasa și în al treilea subset. În acest caz desigur ca va fi afectată în mod negativ instruirea rețelei neuronale. De exemplu dacă majoritatea exemplarelor dintr-o clasă sunt distribuite doar în subseturile de validare și de test, atunci subsetul de instruire va conține un număr foarte mic sau chiar deloc de exemplare din aceea clasă, adică aceea clasă nu are reprezentativitate în subsetul de instruire. Evident ca în aceasta situație rețeaua instruită nu va recunoaște corect exemplarele din aceea clasă.

Pentru evitarea unor astfel de situații este recomandat să se repete de câteva ori procesul de instruire a rețelei, păstrând rezultatele cele mai bune din punct de vedere al performanțelor de recunoaștere a rețelei.

O variantă mai sigură, dar care necesită prelucrări suplimentare a datelor, este cea în care distribuția aleatoare pe cele trei subseturi în limitele procentelor alocate să se realizeze în interiorul fiecărei clase, punând apoi împreuna subseturile obținute pe clase pentru a constitui subseturile globale, pentru toate datele. În acest fel se asigură o distribuire (reprezentativitate) echilibrată a exemplarelor din fiecare clasă în fiecare din cele trei subseturi de date.

Starea procesului de instruire în momentul terminării instruirii este prezentată în Figura 7.39. Instruirea s-a oprit la epoca 436, datorită îndeplinirii ultimei condiții și anume cea de identificarea a apariției fenomenului de suprainstruire. Începând de la epoca 316 avem un număr de 120 epoci de instruire succesive fără îmbunătățirea erorii din subsetul de validare. Evoluția numărului de epoci succesive fără descreșterea erorii pentru subsetul de validare (identificarea suprainstruirii) este prezentată în Figura 7.40.

Figura 7.39: Variabilele ce monitorizează procesul de instruire a rețelei neuronale pentru recunoașterea cifrelor de mană, la oprirea procesului de instruire

Evoluțiile erorii mse (care indică performanța de recunoaștere a rețelei) pentru cele trei subseturi de date este

ilustrată în Figura 7.41. Se constată o scădere accentuată a erorii pe durata primelor 5 epoci de antrenare, urmată de o scădere mai lentă a erorii. De asemenea mai apar trei zone cu scurte perioade de scădere accentuată a erorilor pentru toate cele trei subseturi de date, în jurul epocilor 97, 201, respectiv 240 care urmează unor regiuni de platou. De asemenea pe Figura 7.40 se observă că s-au înregistrat mai multe regiuni în care au existat un număr însemnat de epoci succesive fără descreșterea erorii de validare (6 la epoca 65, 83 la epoca 198, 16 la epoca 244, 25 la epoca 316). Se justifica astfel continuarea instruirii peste epoca 65 la care s-a înregistrat prima data valoarea de 6 epoci fără îmbunătățirea erorii de validare. Dacă pentru parametrul Validation Check s-ar fi utilizat valoarea implicită (6), instruirea s-ar fi oprit la epoca 65, fără a mai beneficia de reducerea erorii cu un ordin de mărime până la epoca 316.

10

Page 11: RECUNOASTERE DE FORME UTILIZAND RETELE NEURONALE · PDF fileUrmătorul pas const în crearea reă țelei neuronale artificiale. Pentru aceasta, în Matlab exista atât funcții cât

11

Rețeaua neuronală instruită finală este considerată rețeaua de la epoca 316, la care valoarea erorii de validare este cea mai mică și anume de 0,006. La aceasta epocă eroarea de instruire a fost de 0,00026 iar eroarea de test a fost de 0,0071.

Performanțele de recunoașterea a formelor (cifrelor) rețelei neuronale antrenate sunt foarte bune, pe întreg setul datelor de instruire, procentul de recunoaștere corectă fiind de 98,46% (3764 exemplare din totalul de 3823 fiind corect recunoscute) iar procentul de recunoaștere eronata fiind de 1,54% (59 exemplare din totalul de 3823 fiind incorect recunoscute).

O imagine de sinteză a performanțelor sistemului de recunoașterea a cifrelor de mână este prezentată în Figura 7.42 prin matricea de confuzie pentru întreg setul de date.

Figura 7.41: Evoluțiile erorilor mse, pe durata instruirii

Figura 7.40: Evoluția numărului de epoci succesive fără descreșterea erorii pentru subsetul de validare (identificarea suprainstruirii)

120

0 50 100 150 200 250 300 350 400 4500

20

40

60

80

100

epoci

num

ar e

secu

ri co

nsec

utiv

e

120 epoci succesive fara descresterea erorii de verificare la epoca 436

Page 12: RECUNOASTERE DE FORME UTILIZAND RETELE NEURONALE · PDF fileUrmătorul pas const în crearea reă țelei neuronale artificiale. Pentru aceasta, în Matlab exista atât funcții cât

12

Dacă citim matricea de confuzie pe orizontală (pe rânduri), atunci celulele conțin numărul exemplarelor recunoscute ca fiind din clasa cu eticheta scrisă pe marginea din stânga a matricei (Output Class) pentru fiecare din clasele de referință, cu eticheta scrisă sub matrice (Target Class).

Dacă citim matricea de confuzie pe verticală (pe coloane) atunci celule conțin numărul exemplarelor din clasa de referință, cu eticheta scrisă sub matrice (Target Class) recunoscute ca făcând parte din clasa cu eticheta marcată pe marginea din stânga a matricei (Output Class). Celulele de pe diagonala principală conțin numărul exemplarelor corect recunoscute pentru fiecare clasă. De exemplu pentru cifra 1 care constituie clasa 1 avem următoarele:

• 389 de exemplare conform setului de instruire în clasa de referință 1 (dat de suma valorilor din primele zece rânduri ale primei coloane a matricei de confuzie);

• relativ la clasa 1, rețeaua neuronală artificială o recunoaște corect 383 de exemplare ca fiind în clasa 1, celula de coordonate (1,1); o recunoaște greșit 7 exemplare ca fiind în clasa 1:

1 exemplar din clasa 2 de referință (celula de coordonate (1,2)); 1 exemplar din clasa 4 de referință (celula de coordonate (1,4)); 1 exemplar din clasa 6 de referință (celula de coordonate (1,6)); 4 exemplare din clasa 8 de referință (celula de coordonate (1,8));

o nu recunoaște 6 exemplare din clasa de referință 1 ca fiind în clasa 1: 1 exemplar îl recunoaște greșit ca fiind în clasa 2, (celula de coordonate (2,1)); 1 exemplar îl recunoaște greșit ca fiind în clasa 5, (celula de coordonate (5,1)); 1 exemplar îl recunoaște greșit ca fiind în clasa 6, (celula de coordonate (6,1)); 1 exemplar îl recunoaște greșit ca fiind în clasa 7, (celula de coordonate (7,1)); 2 exemplare le recunoaște greșit ca fiind în clasa 9, (celula de coordonate (9,1)).

Performanța sistemului de recunoaștere a cifrelor scrise de mână poate fi de asemenea foarte bine caracterizată de

procentele (ratele) de recunoaștere, considerate pentru fiecare clasă în parte, în ideea unei clasificări binare. Astfel, pentru fiecare clasă exemplarul care aparține clasei este considerat pozitiv, iar exemplarul care nu aparține

clasei este considerat negativ. Apar următoarele patru concepte: • adevăr pozitiv – un exemplar care aparține clasei este recunoscut corect ca aparținând clasei; • fals pozitiv – un exemplar care nu aparține clasei este recunoscut greșit ca aparținând clasei; • adevăr negativ – un exemplar care nu aparține clasei este recunoscut corect ca neaparținând clasei; • fals negativ – un exemplar care aparține clasei este recunoscut greșit ca neaparținând clasei;

Figura 7.42: Matricea de confuzie pentru întreg setul celor 3823 de date

1 2 3 4 5 6 7 8 9 10

1

2

3

4

5

6

7

8

9

10

38310.0%

10.0%

00.0%

00.0%

10.0%

10.0%

10.0%

00.0%

20.1%

00.0%

98.5%1.5%

10.0%

3769.8%

10.0%

00.0%

00.0%

10.0%

00.0%

10.0%

00.0%

00.0%

98.9%1.1%

00.0%

00.0%

3789.9%

00.0%

30.1%

00.0%

10.0%

10.0%

60.2%

00.0%

97.2%2.8%

10.0%

00.0%

00.0%

38510.1%

00.0%

10.0%

00.0%

00.0%

00.0%

00.0%

99.5%0.5%

00.0%

00.0%

20.1%

00.0%

3709.7%

00.0%

00.0%

20.1%

20.1%

00.0%

98.4%1.6%

10.0%

00.0%

00.0%

10.0%

00.0%

3759.8%

00.0%

00.0%

00.0%

00.0%

99.5%0.5%

00.0%

00.0%

10.0%

10.0%

00.0%

00.0%

38510.1%

00.0%

00.0%

00.0%

99.5%0.5%

40.1%

30.1%

00.0%

20.1%

10.0%

20.1%

00.0%

3649.5%

30.1%

10.0%

95.8%4.2%

00.0%

00.0%

40.1%

10.0%

10.0%

00.0%

00.0%

10.0%

3749.8%

10.0%

97.9%2.1%

00.0%

00.0%

00.0%

10.0%

00.0%

10.0%

00.0%

00.0%

00.0%

3749.8%

99.5%0.5%

98.2%1.8%

98.9%1.1%

97.9%2.1%

98.5%1.5%

98.4%1.6%

98.4%1.6%

99.5%0.5%

98.6%1.4%

96.6%3.4%

99.5%0.5%

98.5%1.5%

Target Class

Out

put C

lass

Confusion Matrix

Page 13: RECUNOASTERE DE FORME UTILIZAND RETELE NEURONALE · PDF fileUrmătorul pas const în crearea reă țelei neuronale artificiale. Pentru aceasta, în Matlab exista atât funcții cât

Se definesc patru procente de recunoaștere: • procentul pentru adevăr pozitiv, TP (true positive rate):

TP = (adevăr pozitiv) / (total recunoscut pozitiv) • procentul pentru fals pozitiv, FP (false positive rate):

FP = (fals pozitiv) / (total recunoscut pozitiv) • procentul pentru adevăr negativ, TN (true negative rate):

TN = (adevăr negativ) / (total recunoscut negativ) • procentul pentru fals negativ, FN (true negative rate):

FN = (fals negativ) / (total recunoscut negativ)

Pentru setul de date de instruire, procentele de recunoaștere sunt sintetizate în Tabelul 7.9.

Clasa Procent de recunoaștere

Eticheta Exemplare în clasa de referință TP [%] FP [%] TN [%] FN [%]

1 389 98.21 1.79 99.83 0.17 2 380 98.95 1.05 99.88 0.12 3 389 97.93 2.07 99.68 0.32 4 387 98.47 1.53 99.94 0.06 5 376 98.40 1.60 99.83 0.17 6 377 98.43 1.57 99.94 0.06 7 388 99.48 0.52 99.94 0.06 8 380 98.64 1.36 99.54 0.46 9 382 96.64 3.36 99.77 0.23

10 376 99.47 0.53 99.94 0.06

Tabelul 7.9: Procentele de recunoaștere pentru setul de date de test

Conform procentelor de recunoaștere, cel mai bine sunt plasate clasele 7 (cifra 7) și 10 (cifra 0). Acestea prezintă cele mai mari valori pentru procentele de recunoaștere adevărată (atât pozitivă cât și negativă) TP=99.48%, TN=99.94% și cele mai mici valori pentru procentele de recunoaștere falsă (atât pozitivă cât și negativă) FP=0.52%, FN=0.06%. Aceeași concluzie referitoare la clasele 7 și 10 rezultă și din analiza matricei de confuzie din Figura 7.42.

Pentru exemplificare ilustrăm modul de calcul a procentelor de recunoaștere pentru clasa 1 (respectiv cifra 1). Astfel conform valorilor din matricea de confuzie avem:

• total recunoscut pozitiv: 383+1+0+1+0+1+0+4+0+0=390 (suma de pe rândul 1); • total recunoscut negativ: 3823 – 390 = 3433 (total-total recunoscut pozitiv); • adevăr pozitiv: 383 (celula de coordonate (1,1)); • fals pozitiv: 1+0+1+0+1+0+4+0+0=7 (suma pe rândul 1, mai puțin celula (1,1)); • fals negativ: 1+0+0+1+1+1+0+2+0=6 (suma pe coloana 1 mai puțin celula (1,1)); • adevăr negativ: 3823-390-6=3427 (total-total recunoscut pozitiv-fals negativ).

Rezultă următoarele valori:

%17.03433

6%83.9934333427

%79.1390

%21.98390

====

====

FNTN

FPTP 7383

(7.3)

Matricele de confuzie la finalul procesului de instruire, separat pe cele trei subseturi de date (instruire, validare și test) sunt prezentate în Figura 7.43.

13

Page 14: RECUNOASTERE DE FORME UTILIZAND RETELE NEURONALE · PDF fileUrmătorul pas const în crearea reă țelei neuronale artificiale. Pentru aceasta, în Matlab exista atât funcții cât

Figura 7.43: Matricele de confuzie la finalul instruirii rețelei neuronale de recunoaștere a cifrelor de mână pentru subseturile de date: a) de instruire; b) de validare; c) de test

a) b)

c)

Suplimentar, sistemul de recunoaștere cu rețea neuronală a cifrelor de mână a fost testat cu un set independent de test ce conține 1797 de cifre (vezi paragraful 7.3.1). Performanțele de recunoaștere sunt foarte bune și pe acest set, obținându-se un procent de recunoaștere corectă de 94,10% (1691 exemplare din totalul celor 1797 fiind corect recunoscute), respectiv un procent de recunoaștere eronată de 5,90% (106 exemplare din totalul celor 1797 nefiind recunoscute corect).

Matricea de confuzie pentru setul independent de test este prezentată în Figura 7.44. Putem face câteva remarci din analiza matricei de confuzie, ca de exemplu:

• pentru cifra 1: o pe lângă cifrele de 1 corect recunoscute (în număr de 180) au mai fost recunoscute în mod eronat ca

fiind cifra 1 și 7 exemplare din cifra 2, 8 exemplare din cifra 8 și câte 1 exemplar din cifrele 4, 6, respectiv 9;

o 2 cifre de 1 nu au fost corect recunoscute, fiind confundate cu cifra 8; • pentru cifra 5:

o pe lângă cifrele de 5 corect recunoscute (în număr de 176), au mai fost recunoscute în mod eronat ca fiind cifra 5 și 4 exemplare din cifra 3, 5 exemplare din cifra 7, 3 exemplare din cifra 8, 6 exemplare din cifra 9, respectiv 7 exemplare din cifra 0;

o 6 cifre de 5 nu au fost corect recunoscute: 1 exemplar a fost confundat cu cifra 3, un exemplar a fost confundat cu cifra 4 și 4 exemplare au fost confundate cu cifra 9.

• cele mai bune performanțe se înregistrează pentru cifra 6 deoarece: o pe lângă cifrele de 6 corect recunoscute (în număr de 178), doar alte 2 cifre (1 exemplar din cifra 2 și

un exemplar din cifra 0) au fost eronat recunoscute ca fiind cifra 6; o doar 3 cifre de 6 nu au fost corect recunoscute, 1 exemplar a fost confundat cu cifra 1 și 2 exemplare

au fost confundate cu cifra 4.

14

Page 15: RECUNOASTERE DE FORME UTILIZAND RETELE NEURONALE · PDF fileUrmătorul pas const în crearea reă țelei neuronale artificiale. Pentru aceasta, în Matlab exista atât funcții cât

15

Pentru setul de date independente de test, procentele de recunoaștere sunt sintetizate în Tabelul 7.10. Din punct de vedere al sensibilității (TP), care măsoară proporția exemplarelor pozitive corect recunoscute cel mai bine se plasează cifra 0 (clasa 10), pentru care TP= 99,41% (168 adevăr pozitiv față de 169 total recunoscut pozitiv). Din punct de vedere al specificității (TN), care măsoară proporția exemplarelor negative corect recunoscute, cel mai bine se plasează cifra 6 (clasa 6) pentru care TN = 99.81% (1614 adevăr negativ față de 1617 total recunoscut negativ).

Clasa Procent de recunoaștere

Eticheta Exemplare în clasa de referință TP [%] FP [%] TN [%] FN [%]

1 182 90.91 9.09 99.87 0.13 2 177 96.57 3.43 99.51 0.49 3 183 98.80 1.20 98.90 1.10 4 181 93.09 6.91 99.63 0.37 5 182 87.56 12.44 99.62 0.38 6 181 98.89 1.11 99.81 0.19 7 179 98.81 1.19 99.20 0.80 8 174 91.02 8.98 98.65 1.35 9 180 88.04 11.96 98.88 1.12

10 178 99.41 0.59 99.39 0.61

Tabelul 7.10: Procentele de recunoaștere pentru setul de date independente de test

O altă măsura a calității unui sistem de recunoaștere a formelor este „caracteristica de funcționare a receptorului” - ROC (receiver operating characteristic) definită pentru fiecare clasă în parte considerând un clasificator binar (vezi paragraful 4.3.2).

Figura 7.44: Matricea de confuzie pentru setul de 1797 date independente de test

1 2 3 4 5 6 7 8 9 10

1

2

3

4

5

6

7

8

9

10

18010.0%

00.0%

00.0%

00.0%

00.0%

00.0%

00.0%

20.1%

00.0%

00.0%

98.9%1.1%

70.4%

1699.4%

00.0%

00.0%

00.0%

10.1%

00.0%

00.0%

00.0%

00.0%

95.5%4.5%

00.0%

50.3%

1659.2%

00.0%

40.2%

00.0%

10.1%

30.2%

40.2%

10.1%

90.2%9.8%

10.1%

00.0%

00.0%

1759.7%

00.0%

00.0%

10.1%

30.2%

10.1%

00.0%

96.7%3.3%

00.0%

00.0%

10.1%

10.1%

1769.8%

00.0%

00.0%

00.0%

40.2%

00.0%

96.7%3.3%

10.1%

00.0%

00.0%

20.1%

00.0%

1789.9%

00.0%

00.0%

00.0%

00.0%

98.3%1.7%

00.0%

00.0%

00.0%

20.1%

50.3%

00.0%

1669.2%

20.1%

40.2%

00.0%

92.7%7.3%

80.4%

10.1%

00.0%

10.1%

30.2%

00.0%

00.0%

1528.5%

90.5%

00.0%

87.4%12.6%

10.1%

00.0%

10.1%

50.3%

60.3%

00.0%

00.0%

50.3%

1629.0%

00.0%

90.0%10.0%

00.0%

00.0%

00.0%

20.1%

70.4%

10.1%

00.0%

00.0%

00.0%

1689.3%

94.4%5.6%

90.9%9.1%

96.6%3.4%

98.8%1.2%

93.1%6.9%

87.6%12.4%

98.9%1.1%

98.8%1.2%

91.0%9.0%

88.0%12.0%

99.4%0.6%

94.1%5.9%

Target Class

Out

put C

lass

Confusion Matrix

Page 16: RECUNOASTERE DE FORME UTILIZAND RETELE NEURONALE · PDF fileUrmătorul pas const în crearea reă țelei neuronale artificiale. Pentru aceasta, în Matlab exista atât funcții cât

16

Curbele ROC obținute pentru setul celor 1797 date independente de test sunt prezentate în Figura 7.45. În Figura

7.45 a) se observă că pentru toate cele 10 clase există o (foarte) bună precizie de recunoaștere a formelor din fiecare clasă, curbele fiind destul de apropiate de colțul din stânga sus al graficului. În Figura 7.45 b) sunt reprezentate curbele ROC pentru clasa cu cea mai bună precizie de recunoaștere, clasa 6, pentru care curba este cel mai aproape de coltul din stânga sus, respectiv clasa cu cea mai puțin bună performanța de recunoaștere, clasa 8, pentru care curba este cea mai depărtată de colțul din stânga sus.

a) b) Figura 7.45: ROC pentru setul de 1797 date independente de test:

a) pentru toate cele 10 clase; b) pentru clasele 6 și 8