IA 101

Ce este Reducerea Dimensiunii?

mm

Ce este Reducerea Dimensiunii?

Reducerea dimensiunii este un proces utilizat pentru a reduce dimensiunea unui set de date, luând multe caracteristici și reprezentându-le ca mai puține caracteristici. De exemplu, reducerea dimensiunii ar putea fi utilizată pentru a reduce un set de date de douăzeci de caracteristici la doar câteva caracteristici. Reducerea dimensiunii este utilizată în mod obișnuit în învățarea nesupervizată pentru a crea automat clase din multe caracteristici. Pentru a înțelege mai bine de ce și cum se utilizează reducerea dimensiunii, vom examina problemele asociate cu datele de înaltă dimensiune și cele mai populare metode de reducere a dimensiunii.

Mai multe dimensiuni duc la suprapunere

Dimensiunea se referă la numărul de caracteristici / coloane dintr-un set de date.

Adesea se presupune că, în învățarea automată, mai multe caracteristici sunt mai bune, deoarece creează un model mai precis. Cu toate acestea, mai multe caracteristici nu se traduc neapărat într-un model mai bun.

Caracteristicile unui set de date pot varia foarte mult în ceea ce privește utilitatea lor pentru model, multe caracteristici fiind de mică importanță. În plus, cu cât setul de date conține mai multe caracteristici, cu atât sunt necesare mai multe mostre pentru a se asigura că diferitele combinații de caracteristici sunt bine reprezentate în date. Prin urmare, numărul de mostre crește proporțional cu numărul de caracteristici. Mai multe mostre și mai multe caracteristici înseamnă că modelul trebuie să fie mai complex, și pe măsură ce modelele devin mai complexe, devin mai sensibile la suprapunere. Modelul învață prea bine modelele din datele de antrenament și nu reușește să generalizeze la datele din afara mostrelor.

Reducerea dimensiunii unui set de date are mai multe beneficii. Așa cum s-a menționat, modelele mai simple sunt mai puțin predispuse la suprapunere, deoarece modelul trebuie să facă mai puține ipoteze cu privire la modul în care caracteristicile sunt legate între ele. În plus, mai puține dimensiuni înseamnă că sunt necesare mai puține puteri de calcul pentru a antrena algoritmii. Similar, este necesar mai puțin spațiu de stocare pentru un set de date care are o dimensiune mai mică. Reducerea dimensiunii unui set de date poate permite, de asemenea, utilizarea algoritmilor care nu sunt potriviți pentru seturile de date cu multe caracteristici.

Metode comune de reducere a dimensiunii

Reducerea dimensiunii poate fi realizată prin selecția caracteristicilor sau prin ingineria caracteristicilor. Selecția caracteristicilor constă în identificarea celor mai relevante caracteristici ale setului de date, în timp ce ingineria caracteristicilor este procesul de creare a unor caracteristici noi prin combinarea sau transformarea altor caracteristici.

Selecția și ingineria caracteristicilor pot fi realizate programatic sau manual. Atunci când se selectează și se proiectează caracteristici manual, este obișnuit să se vizualizeze datele pentru a descoperi corelații între caracteristici și clase. Realizarea reducerii dimensiunii în acest mod poate fi destul de intensivă din punct de vedere al timpului și, prin urmare, unele dintre cele mai comune moduri de reducere a dimensiunii implică utilizarea algoritmilor disponibili în biblioteci precum Scikit-learn pentru Python. Aceste algoritmi comuni de reducere a dimensiunii includ: Analiza componentelor principale (PCA), Descompunerea valorilor singulare (SVD) și Analiza discriminantă liniară (LDA).

Algoritmii utilizați în reducerea dimensiunii pentru sarcinile de învățare nesupervizate sunt, în general, PCA și SVD, în timp ce algoritmii utilizați pentru reducerea dimensiunii învățării supravegheate sunt, de obicei, LDA și PCA. În cazul modelelor de învățare supravegheată, noile caracteristici generate sunt pur și simplu introduse în clasificatorul de învățare automată. Notați că utilizările descrise aici sunt doar cazuri generale de utilizare și nu singurele condiții în care aceste tehnici pot fi utilizate. Algoritmii de reducere a dimensiunii descriși mai sus sunt pur și simplu metode statistice și sunt utilizate în afara modelelor de învățare automată.

Analiza componentelor principale

Foto: Matrice cu componente principale identificate

Analiza componentelor principale (PCA) este o metodă statistică care analizează caracteristicile / funcțiile unui set de date și rezumă caracteristicile care sunt cele mai influente. Caracteristicile setului de date sunt combinate în reprezentări care păstrează majoritatea caracteristicilor datelor, dar sunt răspândite pe mai puține dimensiuni. Puteți gândi la acest lucru ca la “strivirea” datelor de la o reprezentare de înaltă dimensiune la una cu doar câteva dimensiuni.

Ca exemplu de situație în care PCA ar putea fi utilă, gândiți-vă la modurile diferite în care puteți descrie vinul. În timp ce este posibil să descrieți vinul utilizând caracteristici foarte specifice, cum ar fi nivelurile de CO2, astfel de caracteristici specifice pot fi relativ inutile atunci când încercați să identificați un anumit tip de vin. În schimb, ar fi mai prudent să identificați tipul pe baza unor caracteristici mai generale, cum ar fi gustul, culoarea și vârsta. PCA poate fi utilizată pentru a combina caracteristici mai specifice și a crea caracteristici care sunt mai generale, utile și mai puțin susceptibile de a provoca suprapunere.

PCA se realizează prin determinarea modului în care caracteristicile de intrare variază de la medie în raport cu una cu alta, determinând dacă există relații între caracteristici. Pentru a face acest lucru, se creează o matrice de covarianță, care este o matrice compusă din covarianțele în raport cu perechile posibile de caracteristici ale setului de date. Acest lucru este utilizat pentru a determina corelațiile între variabile, o covarianță negativă indicând o corelație inversă și o corelație pozitivă indicând o corelație pozitivă.

Componentele principale (cele mai influente) ale setului de date sunt create prin crearea de combinații liniare ale variabilelor inițiale, ceea ce se realizează cu ajutorul conceptelor de algebră liniară numite valori proprii și vectori proprii. Combinațiile sunt create astfel încât componentele principale să fie ne-corelate între ele. Majoritatea informațiilor conținute în variabilele inițiale sunt comprimate în primele câteva componente principale, ceea ce înseamnă că au fost create caracteristici noi (componentele principale) care conțin informațiile din setul de date inițial într-un spațiu cu dimensiune mai mică.

Descompunerea valorilor singulare

Foto: De Cmglee – Lucrare proprie, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=67853297

Descompunerea valorilor singulare (SVD) este utilizată pentru a simplifica valorile dintr-o matrice, reducând matricea la părțile sale componente și făcând calculele cu acea matrice mai ușoare. SVD poate fi utilizată atât pentru matrice reale, cât și pentru matrice complexe, dar pentru scopul acestei explicații, vom examina cum se descompune o matrice cu valori reale.

Presupunem că avem o matrice compusă din date cu valori reale și scopul nostru este de a reduce numărul de coloane / caracteristici din matrice, similar cu scopul PCA. Ca și PCA, SVD va comprima dimensiunea matricei, păstrând totuși cât mai multă variabilitate a matricei. Dacă dorim să operăm pe matricea A, putem reprezenta matricea A ca trei matrice diferite numite U, D și V. Matricea A este compusă din elemente x * y, în timp ce matricea U este compusă din elemente X * X (este o matrice ortogonală). Matricea V este o altă matrice ortogonală conținând elemente y * y. Matricea D conține elementele x * y și este o matrice diagonală.

Pentru a descompune valorile pentru matricea A, trebuie să convertim valorile singulare originale în valorile diagonale găsite într-o matrice nouă. Când lucrăm cu matrice ortogonale, proprietățile lor nu se schimbă dacă sunt înmulțite cu alte numere. Prin urmare, putem aproxima matricea A prin utilizarea acestei proprietăți. Când înmulțim matricele ortogonale împreună cu o transpusă a matricei V, rezultatul este o matrice echivalentă cu matricea noastră originală A.

Când matricea A este descompusă în matricele U, D și V, acestea conțin datele găsite în matricea A. Cu toate acestea, coloanele din stânga ale matricelor vor conține majoritatea datelor. Putem lua doar primele câteva coloane și avem o reprezentare a matricei A care are mult mai puține dimensiuni și conține majoritatea datelor din A.

Analiza discriminantă liniară

 

Stânga: Matrice înainte de LDA, Dreapta: Axă după LDA, acum separabilă

Analiza discriminantă liniară (LDA) este un proces care ia date dintr-un grafic multidimensional și le reproiectează pe un grafic liniar. Puteți imagina acest lucru gândindu-vă la un grafic bidimensional plin de puncte care aparțin la două clase diferite. Presupunem că punctele sunt răspândite astfel încât nu se poate trage o linie care să le despartă pe cele două clase. Pentru a face față acestei situații, punctele din graficul 2D pot fi reduse la un grafic 1D (o linie). Această linie va avea toate punctele distribuite de-a lungul ei și poate fi împărțită în două secțiuni care reprezintă cea mai bună separare a datelor.

Când se efectuează LDA, există două obiective principale. Primul obiectiv este minimizarea varianței pentru clase, în timp ce al doilea obiectiv este maximizarea distanței dintre medii clase. Aceste obiective sunt realizate prin crearea unei noi axe care va exista în graficul 2D. Noua axă creată acționează pentru a separa cele două clase pe baza obiectivelor descrise anterior. După ce a fost creată axa, punctele din graficul 2D sunt plasate de-a lungul axei.

Există trei pași necesari pentru a muta punctele originale într-o nouă poziție de-a lungul noii axe. În primul pas, se calculează distanța dintre medii clase (varianța între clase) pentru a calcula separabilitatea claselor. În al doilea pas, se calculează varianța în cadrul claselor, determinând distanța dintre probă și medie pentru clasa în cauză. În ultimul pas, se creează spațiul cu dimensiune mai mică care maximizează varianța între clase.

Tehnica LDA obține cele mai bune rezultate atunci când mediile pentru clasele țintă sunt departe una de alta. LDA nu poate separa eficient clasele cu o axă liniară dacă mediile pentru distribuții se suprapun.

Blogger și programator cu specializări în Machine Learning și Deep Learning subiecte. Daniel speră să ajute pe alții să folosească puterea inteligenței artificiale pentru binele social.