Regresia liniară și metodele ei de restaurare.

Regresia liniară și metodele ei de restaurare.
Sursa: xkcd

Regresia liniară este unul dintre algoritmii fundamentali pentru multe domenii legate de analiza datelor. Motivul este evident. Este un algoritm foarte simplu și ușor de înțeles, ceea ce contribuie la utilizarea sa pe scară largă de mai multe decenii, dacă nu sute de ani. Ideea este că presupunem o dependență liniară a unei variabile de un set de alte variabile, iar apoi încercăm să recreem această dependență.

Dar, în acest articol nu vom discuta despre aplicarea regresiei liniare pentru rezolvarea problemelor practice. Vor fi analizate aspectele interesante ale implementării algoritmilor distribuiți pentru recrearea acesteia, cu care ne-am confruntat în timpul scrierii modulului de învățare automată în Apache Ignite. Puțină matematică de bază, fundamentele învățării automate și calculului distribuit vor ajuta la înțelegerea modului de restaurare a regresiei liniare, chiar dacă datele sunt distribuite între mii de noduri.

Despre ce este vorba?

Avem în față sarcina de a restaura o dependență liniară. Ca date de intrare, se oferă un set de vectori de variabile presupus independente, fiecăruia fiind asociat o anumită valoare a variabilei dependente. Aceste date pot fi reprezentate sub formă de două matrice:

Regresia liniară și metodele ei de restaurare.

Acum, având în vedere că există o dependență, și că este liniară, să notăm ipoteza noastră sub formă de produs de matrice (pentru a simplifica notarea, aici și mai departe se presupune că termenul liber al ecuației este ascuns sub Regresia liniară și metodele ei de restaurare., iar ultima coloană a matricei Regresia liniară și metodele ei de restaurare. conține unități):

Regresia liniară și metodele ei de restaurare.

Foarte asemănător cu un sistem de ecuații liniare, nu-i așa? Așa pare, dar este probabil ca acel sistem de ecuații să nu aibă soluții. Cauza este zgomotul care există practic în orice date reale. De asemenea, o cauză poate fi absența dependenței liniare ca atare, care poate fi abordată introducând variabile suplimentare, care depind neliniar de cele inițiale. Să luăm în considerare următorul exemplu:
Regresia liniară și metodele ei de restaurare.
Sursa: Wikipedia

Acesta este un exemplu simplu de regresie liniară care demonstrează dependența unei variabile (pe axa Regresia liniară și metodele ei de restaurare.) de o altă variabilă (pe axa Regresia liniară și metodele ei de restaurare.). Pentru ca sistemul de ecuații liniare corespunzător acestui exemplu să aibă o soluție, toate punctele trebuie să se afle exact pe o linie dreaptă. Dar acest lucru nu este cazul. Iar faptul că nu se află pe o linie dreaptă se datorează zgomotului (sau ipotezei greșite privind existența unei corelații liniare). Prin urmare, pentru a reconstrui corelația lineară pe baza datelor reale, în general, este necesar să introducem o altă ipoteză: datele de intrare conțin zgomot și acest zgomot are distribuție normală. Se pot face presupuneri și despre alte tipuri de distribuții ale zgomotului, dar în majoritatea cazurilor se consideră oarecum distribuția normală, despre care se va discuta în continuare.

Metoda maximelor probabilităților

Deci, am presupus că există un zgomot aleator distribuit normal. Ce ar trebui să facem în această situație? În matematică există și se utilizează pe scară largă metoda maximului de verosimilitate. Pe scurt, esența sa constă în alegerea funcției de probabilitate și maximizarea ulterioară a acesteia.

Ne întoarcem la reconstrucția dependenței liniare din date cu zgomot normal. Observăm că dependența liniară presupusă este așteptarea matematică Regresia liniară și metodele ei de restaurare. distribuției normale existente. În același timp, probabilitatea ca Regresia liniară și metodele ei de restaurare. să ia o anumită valoare, sub condiția existenței observabilelor Regresia liniară și metodele ei de restaurare., arată astfel:

Regresia liniară și metodele ei de restaurare.

Acum să înlocuim Regresia liniară și metodele ei de restaurare. și Regresia liniară și metodele ei de restaurare. variabilele necesare:

Regresia liniară și metodele ei de restaurare.

Rămâne doar să găsim vectorul Regresia liniară și metodele ei de restaurare., pentru care această probabilitate este maximă. Pentru a maximiza o astfel de funcție, este convenabil să o logaritmăm mai întâi (logaritmul funcției va atinge maximul în aceeași punct ca și funcția în sine):

Regresia liniară și metodele ei de restaurare.

Ceea ce, la rândul său, se reduce la minimizarea următoarei funcții:

Regresia liniară și metodele ei de restaurare.

Apropo, acest lucru se numește metoda celor mai mici pătrate. De multe ori, toate considerațiile de mai sus sunt omise și se folosește pur și simplu această metodă.

Dezintegrarea QR

Minimul funcției menționate mai sus poate fi găsit, dacă găsim punctul în care gradientul acestei funcții este egal cu zero. Iar gradientul va fi scris în următorul mod:

Regresia liniară și metodele ei de restaurare.

Dezintegrarea QR este o metodă matriceală de rezolvare a problemei de minimizare utilizată în metoda celor mai mici pătrate. În acest sens, vom rescrie ecuația în formă matriceală:

Regresia liniară și metodele ei de restaurare.

Deci, descompunem matricea Regresia liniară și metodele ei de restaurare. în matrice Regresia liniară și metodele ei de restaurare. și Regresia liniară și metodele ei de restaurare. și realizăm o serie de transformări (algoritmul QR de descompunere nu va fi discutat aici, doar utilizarea sa în raport cu problema stabilită):

Regresia liniară și metodele ei de restaurare.

Matricea Regresia liniară și metodele ei de restaurare. este ortogonală. Aceasta ne permite să scăpăm de produsul Regresia liniară și metodele ei de restaurare.:

Regresia liniară și metodele ei de restaurare.

Și dacă înlocuim Regresia liniară și metodele ei de restaurare. pe Regresia liniară și metodele ei de restaurare., atunci va rezulta Regresia liniară și metodele ei de restaurare.. Având în vedere că Regresia liniară și metodele ei de restaurare. este o matrice triunghiulară superioară, arată astfel:

Regresia liniară și metodele ei de restaurare.

Aceasta se poate rezolva prin metoda substituției. Elementul Regresia liniară și metodele ei de restaurare. se află ca Regresia liniară și metodele ei de restaurare., elementul anterior Regresia liniară și metodele ei de restaurare. se află ca Regresia liniară și metodele ei de restaurare. și așa mai departe.

Aici merită să menționăm că complexitatea algoritmului rezultat datorită utilizării descompunerii QR este egală Regresia liniară și metodele ei de restaurare.. Cu toate acestea, deși operația de înmulțire a matricelor se paralelizează bine, nu pare posibil să scriem o versiune distribuită eficientă a acestui algoritm.

Declinarea gradientului

Vorbind despre minimizarea unei funcții, întotdeauna merită să ne amintim de metoda (stocastică) a coborârii gradientului. Aceasta este o metodă simplă și eficientă de minimizare, bazată pe calculul iterativ al gradientului funcției într-un punct și mutarea ulterioară în direcția opusă gradientului. Fiecare astfel de pas apropie soluția de minim. Gradientul arată în continuare astfel:

Regresia liniară și metodele ei de restaurare.

Această metodă se paralelizează și distribuie bine datorită proprietăților lineare ale operatorului gradient. Observăm că în formula prezentată mai sus sub semnul sumei se află termeni independenți. Cu alte cuvinte, putem calcula gradientul independent pentru toate indicii Regresia liniară și metodele ei de restaurare. de la Regresia liniară și metodele ei de restaurare., în paralel cu calculul gradientului pentru indicii de la Regresia liniară și metodele ei de restaurare. la Regresia liniară și metodele ei de restaurare.. Apoi, se vor aduna gradientele obținute. Rezultatul sumei va fi același ca și cum am fi calculat direct gradientul pentru indicii de la Regresia liniară și metodele ei de restaurare.. Astfel, dacă datele sunt distribuite între mai multe părți ale datelor, gradientul poate fi calculat independent pe fiecare parte, iar apoi rezultatele acestor calcule pot fi adunate pentru a obține rezultatul final:

Regresia liniară și metodele ei de restaurare.

Din punct de vedere al implementării, aceasta se încadrează în paradigma MapReduce. La fiecare pas al coborârii gradientului, o sarcină de calculare a gradientului este trimisă fiecărui nod de date, apoi gradientele calculate sunt adunate, iar rezultatul sumei lor este folosit pentru îmbunătățirea rezultatului.

Deși implementarea sa este simplă și poate fi executată în paradigma MapReduce, declinul gradientului are și dezavantajele sale. În special, numărul de pași necesari pentru a atinge convergența este semnificativ mai mare comparativ cu alte metode mai specializate.

LSQR

LSQR — o altă metodă de rezolvare a problemei, care se potrivește atât pentru recuperarea regresiei liniare, cât și pentru rezolvarea sistemelor de ecuații liniare. Principalul său avantaj constă în faptul că combină beneficiile metodelor matriceale și ale abordării iterative. Implementări ale acestei metode pot fi găsite în biblioteca SciPy, cât și în MATLAB. Descrierea acestei metode nu va fi oferită aici (o puteți găsi în articolul LSQR: An algorithm for sparse linear equations and sparse least squares). În schimb, va fi demonstrată o abordare care permite adaptarea LSQR pentru a fi implementată într-un mediu distribuit.

La baza metodei LSQR se află procedura bidiagonalizării. Aceasta este o procedură iterativă, fiecare iterație constând în următorii pași:
Regresia liniară și metodele ei de restaurare.

Dar, considerând că matricea Regresia liniară și metodele ei de restaurare. este împărțită orizontal, fiecare iterație poate fi reprezentată sub formă de două etape MapReduce. Astfel, se reușește să se minimizeze transferurile de date în cursul fiecărei dintre iterații (doar vectorii cu lungimea egală cu numărul de necunoscute):

Regresia liniară și metodele ei de restaurare.

Această abordare este utilizată în implementarea regresiei liniare în Apache Ignite ML.

Concluzie

Există multe algoritmi pentru recuperarea regresiei liniare, dar nu toți pot fi aplicați în orice condiție. De exemplu, descompunerea QR este excelentă pentru soluții exacte în seturi mici de date. Declinele gradientului se implementează simplu și permit găsirea rapidă a unei soluții aproximative. Însă LSQR combină cele mai bune proprietăți ale celor două algoritmi anterioare, deoarece poate fi distribuit, converge mai repede comparativ cu declinul gradientului și permite oprirea timpurie a algoritmului, spre deosebire de descompunerea QR pentru căutarea unei soluții aproximative.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster