Sunteți pe pagina 1din 6

Tema: Învățarea supervizată clasică.

Clasificare. Regresie.

Obiectivele lecției:
1. Vei obține o înțelegere mai profundă a învățării automate supervizate
clasice, precum problemele de regresie și clasificare
2. Te vei familiariza cu diverse metode de clasificare, și câteva metode de
bază de regresie
3. Vei afla cum să evaluezi algoritmii de clasificare și regresie

Cu acest capitol începem să ne aprofundăm în tehnicalitățile algoritmilor de


inteligență artificială. Și vom începe cu unul dintre cele mai utile metode, care
stă la baza multor altora, regresia liniară. Aceasta este o metoda de regresie.
Regresia este o clasă de probleme unde având datele, trebuie să deducem
funcția, sau și mai bine spus legitatea cărei aceste date se supun.

Mai sus poți observa diferența dintre clasificare (stânga) și regresie (dreapta).

Un exemplu tipic de regresie este problema prezicerii prețului unui apartament


în baza metrajului și altor atribute, sau consumului unui automobil în baza
volumului motorului și anului de producere.

Acum că am luminat un pic problema regresiei, să revenim la algoritm. Deci


regresia liniară încearcă să găsească parametrii wi în formula:

y = w1x1 + w2x2 + w3x3 + … wnxn + b


Cu alte cuvinte, pentru fiecare atribut x exista un coeficient w combinația liniară
a cărora, plus un termen special b ce permite ca dreapta obținută să nu treacă
necesar prin originea axelor de coordonate.
Bine, dar cum aflăm acești coeficienți? Pentru asta trebuie mai întâi să
aflăm cât de bine explică datele noastre coeficienții pe care deja îi avem. Cu alte
cuvinte, avem nevoie de funcții obiective, dar și de metrici de evaluare. Este
important de distins aceste două noțiuni. În linii generale, funcțiile obiective pot fi
și ele considerate metrici de evaluare, dacă dorim, dar nu și invers. Funcțiile
obiective sunt funcții care ne ajută să cuantizăm cât de bine lucrează algoritmul
nostru și valorile acesteia ghidează procesul de optimizare a parametrilor
modelelor. Deseori este important ca funcțiile obiective care le utilizăm să fie
diferențiabile, adică o astfel de funcție trebuie să fie continuă, fără omisiuni sau
sărituri bruște, și să poată fi derivată în orice punct, iar derivata să fie o valoare
exactă, nu infinit. Acest criteriu poate avea mici excepții, de exemplu funcția este
diferențiabilă în orice punct în afară de 0. Această condiție este importantă
deoarece căutarea parametrilor optimi pentru un model implică căutarea valorii
minime a funcției obiective, asta se numește optimizare, și numeroși algoritmi de
optimizare utilizează derivate ca să identifice mai rapid unde este valoarea
minimă a unei funcții. Spre exemplu în cazul problemelor de clasificare, așa
numita funcție de entropie încrucișată sau cross-entropie, iar pentru probleme
de regresie, eroarea pătrată medie poate fi utilizată în calitate de funcție obiectiv.
Pe de altă parte, în domeniul învățării automate avem și numeroase tipuri
de metrici de evaluare, în dependență de problema pe care încercăm să o
rezolvăm. Metrici populare sunt precizia, acuratețea și spre exemplu eroarea
pătrată medie. Precizia formal înseamnă raportul dintre numărul de clasificări
corecte din toate valorile clasificate cu o anumită clasă, pe când acuratețea
înseamnă numărul de clasificări corecte raportat la numărul total de clasificări. Pe
de altă parte eroarea pătrată medie, adică diferența dintre prezicere și valoarea
actuală, ridicată la pătrat, și după calculată media acestei operații, este un metric
utilizat mai des pentru probleme de regresie. În general metricile sunt definite mai
puțin formal, și scopul lor este de a ne permite să estimăm cât de bine lucrează
un algoritm, dar și să îl putem compara cu altele.
Acum că am clarificat cum este învățat un model de regresie liniară pentru
a rezolva probleme de regresie, cred că ar fi cazul să discutăm și despre algoritmi
de clasificare. Și de fapt unul dintre cele mai populare și robuste metode este
regresia logistică. Probabil te întrebi, de ce iarăși regresie, dacă vorbim despre
clasificare? Ei bine, pentru că acest algoritm ia regresia liniară pe care deja o
cunoști, și o transformă într-un algoritm de clasificare, totul cu doar două
modificări. Prima, care la fel explică numele metodei, este adăugarea funcției
logistice.
y = σ(w1x1 + w2x2 + w3x3 + … wnxn + b)
1
unde σ(x) =
1−e− x
Funcția logistică este o funcție cuprinsă între zero și unu și cu domeniul de la plus
infinit până la minus infinit. Și arată în felul următor:
Din cauza formei acesteia funcția dată poate mapa, sau transforma,
valorile ei de intrare în numere fie aproape de zero sau unu, într-un fel
reprezentând probabilitatea apartenenței datelor la clasa pozitivă sau negativă.
Așa dar, regresia logistică este un algoritm de clasificare binară. Mai târziu o să-ți
descriu tehnici care permit acestui algoritm să rezolve și probleme cu mai multe
clase. Ca să fie mai clar efectul funcției logistice asupra comportamentului
regresiei logistice, să următorul exemplu:
Fie dată informația despre dimensiunea și greutatea a două fructe, care din ele
este un măr și care este o portocală?
Fie dat:
Măr - diametru: 7cm, greutate: 150g
Portocală - diametru: 12cm, greutate: 250g
w
1 = 12 , w2 = 3 și b = - 800
Rezultă:
y(Măr) = 0 = 1 / [1 - e -(12 x 7 + 3 x 150 - 800)]
y(Portocală) = 1 = 1 / [1 - e -(12 x 12 + 3 x 250 - 800)]
Pentru regresia liniară există posibilitatea de a determina parametrii optimi
în mod direct, utilizând așa numita formă închisă, sau analitică.
param* = (XTX)-1XTY
Unde * înseamnă optim, T înseamnă transpusa unei matrici, și -1, inversa.
Însă aceasta poate fi aplicată doar la volume mici de date, când este
necesar de a antrena o regresie liniară, spre exemplu, pe milioane de intrări în
setul de date, forma analitică ar consuma prea multă memorie, și din acest motiv
ar fi rezonabil de utilizat metode de optimizare și funcții obiective. La fel nu există
o formulă similară cu cea de sus pentru regresia logistică.
Este de menționat că deseori dorim să aplicăm constrângeri algoritmilor
noștri, pentru a minimiza efectul de overfitting sau supraîncadrare dar în același
timp permițând învățarea de relații complexe. Aceste constrângeri ne permit să
creăm algoritmi foarte expresivi, dar în același timp să putem controla pe cât de
mult aceștia memorează datele în loc de a le generaliza.
Forma generală a unei funcții obiective regularizate este:
Obiectiv(X, y, θ) + λ x Regularizare(θ) sau
C x Obiectiv(X, y, θ) + Regularizare(θ)
Unde C și λ sunt coeficienți de regularizare, ce specifică cât de puternic
regularizarea să influențeze valoarea funcției obiective, iar θ parametrii
modelului.
De obicei folosim fie distanța euclidiană pătrată (L 22 sau ||L||2), fie valoarea
absolută (L1). Distanța euclidiană pătrată promovează combinațiile de parametri
unde toți sunt relativ mici, deci fără submulțimi mici de parametri ce ar avea o
contribuție disproporționat de mare. Pe de altă parte aplicarea valorii absolute ca
termen de regularizare promovează modele cu mulțimea de parametri rară, adică
multe zerouri. O astfel de regularizare este eficientă când multe atribute în setul
de date sunt redundante sau pur și simplu fără folos, astfel algoritmii ce utilizează
regularizarea L1 fac în mod implicit o selecție de atribute. Deseori aceasta ajută
algoritmii să identifice relațiile între atribute și variabila prezisă ignorând informația
irelevantă.
Mai există desigur și alți algoritmi, spre exemplu arbori de decizie, care pot
fi imaginați ca o formă de condiții if/else cuibărite. Arborii de decizie pot fi
regularizați și ei, în baza numărului minim de itemi per ramură, și după adâncime.
Aceștia la fel ca regresia logistică și liniară sunt ușor interpretabili, dar dacă sunt
utilizați corect, pot reprezenta probleme cu mult mai complexe decât regresia
liniară sau logistică. Algoritmul de învățare detaliat nu este preconizat în acest
curs, dar idea este de a încerca de a găsi o partiție bună per atribut. Fie dat
același exemplu cu mere și portocale, un arbore de decizie ar arăta în felul
următor:
Culoarea = Roșu
Da | Nu
________|_____________
| |
Măr Masa > 200g
Da | Nu
________|_________
| |
Portocală Măr
Decizia pentru ce valori reale ale diferitor atribute să fie utilizate la
ramificație este una învățată, și teoretic este un parametru al modelului. Totuși
este convenit că arborii de decizie sunt niște modele non-parametrice. Aceasta
din motiv că numărul de parametri ai arborilor de decizie nu este unul definit,
precum la regresia logistică sau liniară, dar poate crește odată cu volumul da
date. Adică un arbore de decizie poate avea un set de parametri când lucrează cu
10 itemi într-un set de date, și un set cu mult mai mare când are 1000 de
elemente, pe când regresia logistică are numărul de parametri interni predefinit de
către programator, și deja le ajustează în baza datelor prezentate.
În final mai avem un algoritm non-parametric interesant, kNN sau k-nearest
neighbours, ori k cei mai apropiați vecini, ce nu conține în general parametri
interni, ci se bazează direct pe setul de date pentru a face predicții. Algoritmul
kNN în principiu nu are nevoie de etapa de învățare și poate face predicții direct,
având la dispoziție setul de date. Totuși în practică în etapa de învățare a unui
model kNN datele se indexează pentru a face predicțiile mai considerabil mai
rapide.
Înainte de a trece la următoarea temă, consider necesar să îți spun despre
un aspect practic important, care este aplicat cam mereu în învățarea automată -
este aducerea datelor la aceeași scară numerică. Pentru aceasta există două
metode populare, standardizarea și scalarea, sau uneori i se mai spune
normalizarea datelor. Normalizarea înseamnă ajustarea datelor pentru a nivela
magnitudinea diferitor atribute. Din păcate normalizarea nu lucrează bine dacă
setul de date conține valori anormale, despre acestea v-om vorbi mai târziu în
cadrul cursului. Standardizarea pe de altă parte este mai robustă, dar pe de altă
parte există posibilitatea de a avea atribute cu valori negative, și nu este impusă o
limită la valorile care pot fi obținute în urma standardizării.

xistandard = (xi - media(x)) / deviația_standard(x)


xinormalizat = (xi - min(x)) / (max(x) - min(x))

Majoritatea algoritmilor sunt sensibili la spectrul de valori între atribute


deoarece aceștia utilizează diferite forme de distanțe, spre exemplu distanța
euclidiană, iar acestea la rândul lor asumă faptul că aceeași scară este utilizată
pentru toate atributele. Dacă am fi să nu luăm în considerație faptul dat, algoritmii
noștri ar învăța cu mult mai greu sau nu ar lucra deloc. Spre exemplu rețelele
neuronale necesită ca datele să aibă valori cuprinse între 0 și 1 pentru a lucra
eficient, în astfel de condiții normalizarea este necesară.

Exerciții

1. Dă exemple de probleme ce ar beneficia de utilizarea algoritmilor de învățare


automată supervizată? Divizează-le în probleme de clasificare și regresie.
2. Cum funcționează regresia liniară? Care diferența dintre acesta și regresia
logistică?
3. Rulează exercițiile propuse. ipynb

Test
1. Care este diferența dintre un sistem cu IA simbolic și unul ce utilizează
abordarea statistică?
2. Cum lucrează un algoritm de învățare supervizată?

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