Sunteți pe pagina 1din 7

Învățare automată și clasificare

Tehnicile de învăţare automată şi clasificare sunt noţiuni centrale în domeniul


statisticii, calculatoarelor, prelucrării semnalelor, etc. Ambele se ocupă în mod fundamental
cu problema recunoaşterii tiparelor (pattern recognition) prin dezvoltarea de modele
matematice ce suportă o etapă preliminară de antrenare (experienţa), pe baza căreia realizează
operaţii de clasificare/regresie de obiecte şi funcţii.
O parte din numeroasele aplicaţii ale acestor tehnici cuprinde:
(a) recunoaşterea email-urilor de tip spam sau malware;
(b) recunosterea vocii/feţei;
(c) compresia cantităţilor uriaşe de date;
(d) detecţia de tipare în cadrul unei imagini;
(e) recunoaşterea scrisului de mână.

Figura 1.1: Hiperplan de separare a două clase de obiecte

Una dintre cele mai renumite tehnici de recunoaştere/clasificare este SVM - Support
Vector Machine. Această tehnică presupune determinarea unui model matematic ce separă
două sau mai multe clase de obiecte cu o anumită acurateţe. În vederea clasificării sau
recunoaşterii unui obiect necunoscut, se introduc datele obiectului în modelul matematic, iar
la ieşire se primeşte id-ul clasei din care face parte. În cele mai simple cazuri, modelul
matematic căutat este reprezentat de un hiperplan * +, caracterizat de
parametrii și . De aceea, problema se reduce la a găsi parametrii optimi (a,b)
care să separe cât mai bine clasele de obiecte.
Fie setul de puncte recunoscute a priori yi cu i = 1,...,m, reprezentate în Fig. 1.1 de
puncte având două culori diferite. Termenul recunoscute denotă că, pentru fiecare punct yi,
cunoaştem clasa din care face parte. Dacă luăm ca exemplu Fig. 1.1, putem argumenta că se
cunoaşte un parametru auxiliar ci cu valoarea +1 dacă obiectul yi este e.g. de culoare roşie, iar
ci = −1 dacă obiectul este de culoare albastră. Dacă datele de antrenare sunt liniar separabile,
atunci putem selecta două hiperplane în aşa fel încât ele separă datele, nu conţin puncte între
ele şi maximizează distanţa între cele două hiperplane. Aceste două hiperplane pot fi descrise
de ecuaţiile: si . Regiunea dintre aceste două hiperplane se
numește margine și este descrisă de expresia ‖ ‖.
În termenii teoriei optimizării, problema se formulează după cum urmează:

‖ ‖ (1.1)
s.l.: ( )

unde a și b reprezintă parametrii hiperplanului, iar ci indică clasa din care face parte obiectul
yi. Variabilele de decizie , - reprezintă parametrii unui hiperplan de separare a
claselor de obiecte/imagini, aşa cum se observă în Fig. 1.1. Problema de optimizare convexă
pătratică, având numai constrângeri de inegalitate, o rezolvăm prin metoda de punct interior
aplicată problemelor convexe (CP), metodă descrisă în Anexa1.

(a)

(b)

Figura 1.2: Mulțimea de antrenare a modelului matematic de separare: imagini ce fac parte
din clasa I; (b) imagini ce fac parte din clasa II.
În continuare, exemplificăm o aplicaţie practică a tehnicii SVM prin problema
recunoaşterii cifrei 7 dintr-o imagine. Se cunoaşte ca orice imagine poate fi reprezentată sub
forma unei serii de pixeli, unde fiecare pixel la rândul său este definit de o valoare (e.g. între 0
şi 256) data de culoarea acestuia. Pentru a simplifica exemplul, considerăm imagini mono-
colore compuse din 49 de pixeli, în care pixelii sunt reprezentaţi de nivele de gri cu valori
între 0 şi 5 (vezi Fig. 1.2). În etapa de iniţializare a tehnicii SVM se fixează o mulţime de
antrenare compusă din diferite imagini ce conţin variante ale cifrei 7 (ce fac parte din clasa I
de obiecte) şi imagini aleatorii complet diferite de cifră 7 (ce fac parte din clasa II de obiecte).
Deoarece această etapă se mai numeşte şi antrenare, se cunoaşte pentru fiecare
imagine clasa din care face parte. Fiecărei imagini i i se asociază un vector de 49 de
componente (fiecare componentă luând valori întregi între 0 şi 5) şi un parametru c ce
reprezintă indexul clasei din care face parte imaginea respectivă (dacă c = 1 atunci imaginea
conţine cifra 7, dacă c = −1 atunci imaginea este aleatorie). Pe baza acestei mulţimi de
antrenare, urmărim realizarea unui hiperplan de separare a acestor două clase.
Dorim să rezolvăm problema SVM (1.2) în contextul prezentat anterior şi, de
asemenea, să testăm eficienţa soluţiei (hiperplanului) obţinute prin evaluarea ratei de succes în
recunoaşterea cifrei 7. Pentru aceasta alegem un set de imagini ale cifrei 7 (vezi Fig. 1.2 (a))
şi un set de imagini aleatorii (vezi Fig. 1.2 (b)) ce reprezintă mulţimea de antrenare a
hiperplanului de separare.
Transformăm aceste imagini din Fig. 1.2 în vectori de pixeli după cum am descris mai
înainte, apoi aceştia vor fi introduşi într-o funcţie Matlab şi folosiţi în rezolvarea problemei
(1.2). În final, pentru a testa soluţia găsită ,( ) - din rezolvarea problemei
convexe pătratice, calculăm pentru anumite puncte de test (imagini de test date în Fig.1.3)
valoarea hiperplanului:

{
(a)

(b)
Figura 1.3: Exemple de imagini de test aleatorii, ce conțin cifra 7 sau cu
densitate ridicată de pixeli gri

Motivaţia ratei mici de succes în cel de-al doilea caz este dată de doi factori:
• similaritatea ridicată între imaginile cu densitate mică de pixeli şi cele ce conţin cifra
7;
• numărul relativ mic de imagini de antrenare, în cazul nostru 20 de imagini test.
Evident, cu cât mulţimea de antrenare conţine mai multe date (imagini) cu atât hiperplanul
rezultat este mai eficient în recunoaşterea noilor obiecte.

Exerciţii
Să se rezolve problema 1.1 în contextul prezentat anterior. Să se testeze eficienţa soluţiei
(hiperplanului) obţinute prin evaluarea ratei de succes în recunoaşterea cifrei 7.

Rezolvare
Alegem un set de imagini ale cifrei 7(vezi Fig. 1.2 (a)) şi un set de imagini aleatorii (vezi Fig.
1.2 (b)) ce reprezintă mulţimea de antrenare a hiperplanului de separare. Transformăm aceste
imagini în vectori de pixeli cum am descris înainte, ce pot fi introduşi într-o funcţie Matlab şi
folosiţi în rezolvarea problemei 1.1.
Următoarea secvenţă de cod rezolvă problema SVM pe baza mulţimii de antrenare date de
vectorii de pixeli introduşi de la tastatură.

function []=pattern()
%% Elemente clasa 1 din multimea de antrenare
C1=zeros(12,49);
C1(1,:)=[zeros(1,16) 2 2 2 zeros(1,6) 2 zeros(1,5) 2...
zeros(1,6) 2 zeros(1,10)];
C1(2,:)=[zeros(1,15) 3 3 3 zeros(1,6) 3 zeros(1,5) 3...
zeros(1,6) 3 zeros(1,11)];
C1(3,:)=[zeros(1,16) 2 2 2 zeros(1,4) 1 0 2...
zeros(1,6) 2 zeros(1,6) 2 zeros(1,9)];
C1(4,:)=[zeros(1,16) 4 4 4 zeros(1,4) 4 0 4 zeros(1,4) 4...
zeros(1,6) 4 zeros(1,11)];
C1(5,:)=[zeros(1,10) 3 zeros(1,5) 3 0 3 zeros(1,3) 3
zeros(1,3) 3 zeros(1,3) 3 zeros(1,3) 3 zeros(1,14)];
C1(6,:)=[zeros(1,8) 2 2 2 2 2 zeros(1,6) 2 zeros(1,5)...
2 zeros(1,5) 2 zeros(1,6) 2 zeros(1,10)];
C1(7,:)=[zeros(1,15) 2 2 2 2 2 zeros(1,6) 2 zeros(1,5)...
2 zeros(1,5) 2 zeros(1,6) 2 zeros(1,3)];
C1(8,:)=[zeros(1,17) 3 3 3 3 zeros(1,6) 3 zeros(1,5)...
3 zeros(1,6) 3 zeros(1,8)];
C1(9,:)=[zeros(1,17) 3 zeros(1,5) 3 0 3 zeros(1,3)...
3 zeros(1,3) 3 0 3 zeros(1,3) 3 zeros(1,9)];
C1(10,:)=[zeros(1,8) 3 3 zeros(1,5) 3 zeros(1,6) 3...
zeros(1,6) 3 3 3 3 zeros(1,16)];
C1(11,:)=[zeros(1,17) 2 2 2 zeros(1,4) 2 0 2 zeros(1,6) 2...
zeros(1,6) 2 zeros(1,8)];
C1(12,:)=[zeros(1,15) 2 2 2 2 zeros(1,3) 2 zeros(1,7) 2...
zeros(1,6) 2 zeros(1,11)];

%% Elemente clasa 2 din multimea de antrenare


C2=zeros(7,49);
for i=1:7
x=full(round(5*sprand(1,49,0.5)));
x(x<2)=0; C2(i,:)=x;
end

%% Elemente de testare a hiperplanului rezultat


C3=zeros(8,49);
C3(1,:)=[zeros(1,11) 3 3 zeros(1,6) 3 zeros(1,6)...
3 zeros(1,3) 3 3 3 3 zeros(1,15)];
C3(2,:)=[zeros(1,9) 2 3 3 4 zeros(1,3) 2 0 0 4...
zeros(1,6) 4 zeros(1,6) 4 zeros(1,15)];
C3(3,:)=[zeros(1,9) 2 2 2 2 zeros(1,6) 3 zeros(1,5) 3...
zeros(1,6) 3 zeros(1,16)];
C3(4,:)=[ones(1,15) 4 4 4 ones(1,6) 4 ones(1,5) 4...
ones(1,6) 4 ones(1,11)];
C3(5,:)=[0 3*ones(1,5) 0 0 3*ones(1,5) zeros(1,5) 4 4...
zeros(1,4) 4 4 zeros(1,5) 4 4 zeros(1,5) 4 4 zeros(1,9)];
C3(6,:)=[zeros(1,9) 2*ones(1,5) zeros(1,5) 2 2 zeros(1,4)...
2 2 zeros(1,4) 2 2 zeros(1,5) 2 2 zeros(1,9)];
C3(7,:)=[zeros(1,8) 2*ones(1,6) 0 2 zeros(1,3) 2 2...
zeros(1,5) 2 2 zeros(1,5) 2 2 zeros(1,14)];
C3(8,:)=[0 3*ones(1,5) 0 0 3*ones(1,5) zeros(1,5) 3 3...
zeros(1,4) 3 3 zeros(1,5) 3 3 zeros(1,5) 3 3 zeros(1,9)];
C4=zeros(12,49);

for i=1:12
x=full(round(5*sprand(1,49,0.5)));
x(x<2)=0; C4(i,:)=x;
end

%%% Rezolvare problema SVM


cvx_begin
variable w(49);
variable b(1);
minimize ((1/2)*w’*w)
subject to
C1*w-b*ones(12,1)>=ones(12,1);
C2*w-b*ones(7,1)<=-ones(7,1);
cvx_end
end

Pentru a testa soluția găsită ( ) prin rezolvarea problemei 1.1, verificăm certitudinea cu
care hiperplanul rezultat situează punctele de test în clasele aferente:

În cazul punctelor considerate în secvenţa de cod precedentă, tragem următoarele concluzii:


• dacă testăm hiperplanul cu diferite imagini aleatorii cu densitate mare de pixeli gri
(vezi Fig. 1.3) şi respectiv, imagini cu cifra 7 transformată în diverse moduri
(translaţie la stânga/dreapta, înclinare etc.) atunci rezultă o rată de succes
(recunoaştere corectă) de ≈ 80%;
• dacă pentru testare considerăm imagini aleatorii cu densitate mică şi respectiv, imagini
cu cifra 7 transformată în diverse moduri (translaţie la stânga/dreapta, înclinare etc.)
atunci rezultă o rată de succes de ≈ 52%.
Anexa 1: Metode de punct interior pentru probleme convexe
Considerăm problema convexă (CP) generală:

( )
( )

unde funcția obiectiv și funcția vectorială ce definește constrângerile de inegalitate


sunt convexe și de două ori diferențiabile, iar , cu rangul p < n.
Metodele de punct interior rezolvă problema sau condițiile KKT1 corespunzătoare prin
aplicarea metodei Newton2 unei secvențe de probleme supuse numai la constrângeri de
egalitate, sau asupra unei secvențe de condiții (KKT) perturbate. În acest scop, considerăm
aproximarea problemei originale cu o problemă ce conține doar constrângeri liniare de
egalitate:

( ) ∑ ( ( ))

unde am utilizat funcția ( ) ∑ ( ( )), numită și barieră logaritmică pentru


problema de optimizare. Această aproximare a problemei originale este de asemenea o
problemă convexă. După cum se observă și în practică, pentru această metodă, un aspect
esențial este selectarea unei actualizări corespunzătoare pentru τ la fiecare pas.

Condițiile Karush-Kuhn-Tucker (KKT):


Fie problema de optimizare generală:
( )
( ) ( )
Fie un punct de minim local pentru problema anterioară și presupunem că este și regulat. Atunci există un
vector și un vector astfel încât condițiile Karush-Kuhn-Tucker au loc:
( ) ( ) ( )
( )
( ) ( )
2

În analiza numerică și optimizare, metoda lui Newton este o metodă de calcul al rădăcinilor unui sistem de
ecuații. Considerăm sistemul neliniar: ( ) , unde și este o funcție diferențiabilă. Acest
sistem poate fi rezolvat prin metoda Newton, care constă în liniarizarea ecuației în punctul curent :
( ) ( )( )

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