Această postare va acoperi câteva concepte de bază în învățarea automată, de la algebra liniară la metricele de evaluare. Servește ca un ghid frumos pentru începătorii care doresc să intre în acest domeniu.

Algebra liniară

Algebra liniară este pilonul de bază în domeniul învățării automate. De ce? Algoritmii de învățare automată sunt descriși în cărți, lucrări și pe site-uri web folosind notații vectoriale și matriciale. Algebra liniară este matematica datelor, iar notația sa vă permite să descrieți cu precizie operațiile asupra datelor cu operatori specifici. Cele 2 concepte cele mai importante din algebra liniară cu care ar trebui să fiți familiarizați sunt vectorii și matricile.

1 – Vectorii

Un vector este un tandem de una sau mai multe valori cunoscute sub numele de scalari. Este obișnuit să se introducă vectorii folosind definiția geometrică, în care un vector reprezintă un punct sau o coordonată într-un spațiu cu dimensiuni mari. Principalele operații aritmetice vectoriale sunt adunarea, scăderea, înmulțirea, împărțirea, produsul punct și înmulțirea scalară.

  • Doi vectori de lungime egală pot fi adunați pentru a crea un al treilea vector nou.
  • Un vector poate fi scăzut dintr-un alt vector de lungime egală pentru a crea un al treilea vector nou.
  • Doi vectori de lungime egală pot fi înmulțiți între ei.
  • Doi vectori de lungime egală pot fi împărțiți.
  • Produsul punctat este suma elementelor înmulțite a doi vectori de aceeași lungime pentru a da un scalar.
  • Un vector poate fi înmulțit cu un scalar pentru a scala mărimea vectorului.

Există multe utilizări ale vectorilor. De exemplu, vectorii pot reprezenta un decalaj în spațiul 2D sau 3D. Punctele sunt doar vectori de la origine. Datele (pixeli, gradienți la un punct cheie al imaginii etc.) pot fi, de asemenea, tratate ca un vector.

2 – Matrici

O matrice este o matrice bidimensională de scalari cu una sau mai multe coloane și una sau mai multe rânduri. Dacă matricea are același număr de rânduri și coloane, atunci este o matrice pătrată. Matricea identitară este o matrice pătrată cu 1 pe diagonală și 0 peste tot în rest. Matricea diagonală este o matrice pătrată cu numere pe diagonală și cu 0-uri în altă parte. Un vector coloană este doar o matrice în care există un rând, în timp ce un vector linie este doar o matrice în care există o coloană.

Operațiile de bază ale matricelor sunt: adunarea, scalarea, produsul punct, înmulțirea vectorială, înmulțirea scalară, transpunerea, inversa și determinantul / urma.

  • Două matrici cu aceleași dimensiuni pot fi adunate pentru a crea o a treia matrice nouă.
  • În mod similar, o matrice poate fi sustrasă dintr-o altă matrice cu aceleași dimensiuni.
  • Două matrici cu aceleași dimensiuni pot fi înmulțite împreună, iar acest lucru se numește adesea înmulțire matricială în funcție de elemente.
  • O matrice poate fi împărțită de o altă matrice cu aceleași dimensiuni.
  • Produsul punct al matricelor are intrările a 2 vectori înmulțiți unul cu celălalt și adunarea rezultatului.
  • O matrice și un vector pot fi înmulțite împreună atâta timp cât se respectă regula înmulțirii matricelor.
  • O matrice poate fi înmulțită cu un scalar. Rezultatul este o matrice cu aceeași dimensiune ca matricea mamă în care fiecare element al matricei este înmulțit cu valoarea scalară.
  • Transpunerea matricei este atunci când inversăm coloanele și rândurile unei matrice, astfel încât rândul 1 este acum coloana 1 și așa mai departe.
  • Dată o matrice A, inversa sa A^(-1) este o matrice astfel încât A x A^(-1) = I. Dacă A^(-1) există, atunci A este inversabilă sau nesingulară. În caz contrar, este singulară.

Învățare automată

1 – Abordări principale

Cele 3 abordări majore ale învățării automate sunt:

  • Învățarea nesupravegheată, care este folosită foarte mult în domeniul vederii computerizate. Exemplele sunt k-means, ICA, PCA, modelele de amestecuri gaussiene și autocodificatoarele profunde.
  • Învățare supervizată, care este, de asemenea, utilizată foarte mult în vederea computerizată. Exemple sunt rețelele neuronale supravegheate profunde.
  • Învățarea prin întărire, care este utilizată în principal pentru probleme de robotică și control. Exemple sunt învățarea Q profundă și metodele de gradient de politică.

În învățarea prin întărire, regulile jocului sunt necunoscute. Nu există un supraveghetor, ci doar un semnal de recompensă cu feedback întârziat. Acțiunile agentului influențează datele ulterioare pe care le primește.

În învățarea nesupravegheată, dorim să găsim structura și semnificația în date fără etichete. După cum s-a menționat mai sus, exemple de algoritmi sunt Analiza componentelor principale, k-means, Factorizarea matricelor non-negative, Analiza componentelor independente, Modele de amestecuri gaussiene, Alocarea latentă a Dirichlet și Auto-Encoderele.

În învățarea supravegheată, terminologia de bază este de așa natură încât avem un spațiu inițial de intrare x și un spațiu inițial de ieșire y. După ce vedem o serie de exemple (x, y), dorim să alegem o cartografiere F: x -> y care să reproducă cu acuratețe modelul intrare-ieșire al exemplelor. Există o mulțime de algoritmi pentru a găsi diferite modele ale lui F pornind de la observații etichetate (adevăr de bază). Adesea, învățarea este clasificată în funcție de spațiul de ieșire al acestora, care poate fi fie discret, fie continuu.

  • Spațiul de ieșire continuu este utilizat în problema regresiei. De exemplu, dată fiind intrarea ca o imagine a unei farfurii de mâncare, dorim ca ieșirea să fie numărul total de calorii. Sau, dată fiind intrarea ca fiind fața unei persoane, dorim ca ieșirea să fie reprezentată de vârsta acelei persoane.
  • În cazul spațiului de ieșire discret, de obicei construim clasificatoare. De exemplu, dorim ca ieșirea să fie clasa 1, clasa 2, clasa 3…, unde numerele reprezintă un fel de categorie semnificativă. De asemenea, putem numi aceste etichete sau categorii.

2 – Date de instruire și date de testare

Datele de instruire sunt cele pe care le oferim clasificatorului în timpul procesului de instruire. Acestea sunt datele împerecheate pentru învățarea f(x) = y, unde x este intrarea (un vector de caracteristici în R^d) și y este ieșirea (o etichetă cu clasificare). În timpul instruirii, încercăm să găsim un model bun al lui f(x) care să reproducă relația intrare-ieșire a datelor.

Datele de test sunt utilizate cu un clasificator instruit pentru a-l evalua. Avem x, dar nu știm y. De obicei, doar ne prefacem că nu-l avem pe y în cercetare, dar în lumea reală, cu adevărat nu-l veți avea. Sistemul instruit prezice y pentru noi, iar noi evaluăm cât de bine funcționează sistemul.

3 – Probabilități

În loc să clasificăm o intrare doar într-una dintre cele K clase diferite, am putea dori să cunoaștem probabilitatea fiecăreia dintre aceste clase. Pentru fiecare categorie posibilă, P(C = k | x) returnează o valoare cuprinsă între 0 și 1, valorile mai apropiate de 1 însemnând că clasificatorul „crede” că acea clasă este probabil categoria de intrare. Pentru a clasifica, dorim să alegem cea mai mare P(C = k | x).

4 – Modele parametrice și neparametrice

Modelurile parametrice implică ajustarea parametrilor. De exemplu, dorim să găsim valori bune pentru vectorii w pentru clasificatorul nostru liniar. Modelele parametrice au un număr finit de parametri, în care numărul de parametri este independent de setul de instruire.

Modelurile neparametrice implică stocarea datelor și utilizarea lor într-un fel sau altul. Aici, numărul de parametri depinde de setul de instruire (cât de multe date se stochează). Mai precis, numărul de parametri crește odată cu dimensiunea setului de instruire.

Evaluarea clasificatorilor de învățare automată

După ce vede o serie de exemple (x, y), modelul alege o corespondență F: x -> y care reproduce modelul de intrare-ieșire al exemplelor. Întrebarea este cât de bine funcționează modelul F după antrenament? Putem evalua F pe datele de instruire, dar performanța pe datele de instruire nu ne spune cu adevărat cât de bine se generalizează modelul la alte date. Cu alte cuvinte, F ar putea doar să memoreze datele de instruire. Astfel, trebuie să evaluăm pe datele de testare pentru a avea o idee mai bună despre cât de bine funcționează modelul.

Cea mai simplă măsură de evaluare pentru clasificare este acuratețea, care este fracțiunea de puncte clasificate corect. Acuratețea poate fi calculată ca fiind suma dintre adevăratele pozitive și adevăratele negative, împărțită la toate punctele de date. Rata de eroare este pur și simplu 1 – Precizia, sau suma falselor pozitive și a falselor negative, împărțită la toate punctele de date.

Pentru a implementa precizia, cel mai bun mod este să stocați predicțiile pentru fiecare vector de test x_t. Astfel, dacă aveți un total de T vectori de testat, ajungeți la un vector T-dimensional cu toate predicțiile dvs. și apoi doar îl comparați cu adevărul de bază. Ați putea, de asemenea, să salvați probabilitățile pentru a calcula alți parametri, dar acest lucru ar putea necesita multă memorie dacă aveți multe clase.

1 – Matrice de confuzie

O matrice de confuzie este o dispunere specifică a unui tabel care permite vizualizarea performanței unui algoritm, de obicei unul de învățare supravegheată. Fiecare rând al matricei reprezintă instanțele dintr-o clasă prezisă, în timp ce fiecare coloană reprezintă instanțele dintr-o clasă reală. Aceasta vă permite să vedeți ce clase sunt cele mai confuze. O diagonală „puternică” indică o performanță bună. Într-o matrice de confuzie normalizată, rândurile sunt normalizate pentru a însuma 1.

2 – Precizia și Recall

Precizia este numărul de exemple pozitive clasificate corect împărțit la numărul total de exemple care sunt clasificate ca fiind pozitive. Recall este numărul de exemple pozitive clasificate corect împărțit la numărul total de exemple pozitive reale din setul de testare. Precision-Recall este o măsurătoare dominantă în detectarea obiectelor și este deosebit de utilă atunci când categoriile sunt dezechilibrate. O precizie ridicată înseamnă că un algoritm a returnat substanțial mai multe rezultate relevante decât cele irelevante, în timp ce o rechemare ridicată înseamnă că un algoritm a returnat majoritatea rezultatelor relevante.

3 – Praguri ale clasificatorului

De multe ori, un clasificator va avea o anumită valoare de încredere în fiecare categorie. Acestea sunt cel mai adesea generate de clasificatorii probabilistici. Uneori, stabilim praguri pentru valorile de probabilitate. În vederea computerizată, acest lucru se întâmplă foarte des în detecție. Pragul optim variază în funcție de sarcini. Unii parametri de performanță sunt sensibili la prag. Modificând valoarea pragului de la minim la maxim (de la 0 la 1), putem trasa o curbă (curbele ROC și Precision-Recall).

Puterea modelului

1 – Supraadaptare & Subadaptare

Se spune că clasificatorul dvs. F este supraadaptat la date dacă performanța de instruire este mult mai mare decât performanța de testare. Pe de altă parte, F subadaptează datele atunci când nu este suficient de puternic pentru a modela relația intrare-ieșire.

2 – Capacitatea modelului

Capacitatea modelului se referă la numărul de parametri. O capacitate mai mare înseamnă, în general, că aveți nevoie de mai multe date de antrenament pentru a antrena modelul, altfel, acesta are un risc ridicat de supraadaptare. Pe de altă parte, o capacitate mică înseamnă probabil că vă subadaptați semnificativ la datele de instruire.

În mod specific, în cazul rețelelor neuronale, mai mulți neuroni înseamnă o capacitate mai mare. O analogie bună este că clasificatorul liniar are o capacitate foarte mică, iar rețeaua neuronală profundă are o capacitate foarte mare. Cu mai multe date de antrenament, modelul mai complex câștigă. Clasificatoarele cu un model mai mare pot crea limite de decizie complexe, dar prea complexe pot fi un model slab pentru datele de test, mai ales dacă datele sunt limitate.

3 – Complexitatea eșantioanelor

Complexitatea eșantioanelor este numărul de eșantioane de instruire pe care trebuie să le furnizăm algoritmului de învățare astfel încât funcția returnată de algoritm să se încadreze într-o eroare arbitrar de mică față de cea mai bună funcție posibilă (instruire și test). Algoritmii cu o capacitate mai mare a modelului tind să aibă o complexitate a eșantioanelor mai slabă, deoarece au mai mulți parametri de ajustat și este posibil să se supraajusteze în cazul în care datele de instruire sunt insuficiente. În aceste cazuri, tehnicile de regularizare pot fi de ajutor.

Dacă sunteți interesat de acest material, urmăriți publicația Cracking Data Science Interview pentru a primi articolele mele ulterioare despre cum să spargeți procesul de interviu pentru știința datelor.

.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *