Regresia liniară și metodele de recuperare a acesteia

Regresia liniară și metodele de recuperare a acesteia
Sursa: xkcd

Regresia liniară este unul dintre algoritmii de bază pentru multe domenii legate de analiza datelor. Motivul pentru aceasta este evident. Acesta este un algoritm foarte simplu și ușor de înțeles, care a contribuit la utilizarea sa pe scară largă timp de multe zeci, dacă nu sute, de ani. Ideea este că presupunem o dependență liniară a unei variabile de un set de alte variabile și apoi încercăm să restabilim această dependență.

Dar acest articol nu este despre utilizarea regresiei liniare pentru a rezolva probleme practice. Aici vom lua în considerare caracteristici interesante ale implementării algoritmilor distribuiți pentru recuperarea acestuia, pe care le-am întâlnit când scriem un modul de învățare automată în Apache Ignite. Un pic de matematică de bază, învățare automată și calcul distribuit vă pot ajuta să vă dați seama cum să efectuați regresia liniară chiar și atunci când datele sunt distribuite pe mii de noduri.

Despre ce vorbim?

Ne confruntăm cu sarcina de a restabili dependența liniară. Ca date de intrare, este dat un set de vectori de variabile presupuse independente, fiecare dintre acestea fiind asociat cu o anumită valoare a variabilei dependente. Aceste date pot fi reprezentate sub forma a două matrice:

Regresia liniară și metodele de recuperare a acesteia

Acum, deoarece dependența este presupusă și, în plus, liniară, vom scrie ipoteza noastră sub forma unui produs de matrice (pentru a simplifica înregistrarea, aici și mai jos se presupune că termenul liber al ecuației este ascuns în spatele Regresia liniară și metodele de recuperare a acesteia, și ultima coloană a matricei Regresia liniară și metodele de recuperare a acesteia conţine unităţi):

Regresia liniară și metodele de recuperare a acesteia

Sună mult ca un sistem de ecuații liniare, nu-i așa? Se pare, dar cel mai probabil nu vor exista soluții pentru un astfel de sistem de ecuații. Motivul pentru aceasta este zgomotul, care este prezent în aproape orice date reale. Un alt motiv poate fi lipsa dependenței liniare ca atare, care poate fi combătută prin introducerea unor variabile suplimentare care depind neliniar de cele originale. Luați în considerare următorul exemplu:
Regresia liniară și metodele de recuperare a acesteia
Sursa: Wikipedia

Acesta este un exemplu simplu de regresie liniară care arată relația unei variabile (de-a lungul axei Regresia liniară și metodele de recuperare a acesteia) dintr-o altă variabilă (de-a lungul axei Regresia liniară și metodele de recuperare a acesteia). Pentru ca sistemul de ecuații liniare corespunzător acestui exemplu să aibă o soluție, toate punctele trebuie să se afle exact pe aceeași dreaptă. Dar asta nu este adevărat. Dar ele nu se află pe aceeași linie dreaptă tocmai din cauza zgomotului (sau pentru că presupunerea unei relații liniare a fost eronată). Astfel, pentru a restabili o relație liniară din datele reale, este de obicei necesar să se introducă încă o ipoteză: datele de intrare conțin zgomot și acest zgomot are distributie normala. Puteți face ipoteze despre alte tipuri de distribuție a zgomotului, dar în marea majoritate a cazurilor este considerată distribuția normală, care va fi discutată în continuare.

Metoda maximă de probabilitate

Deci, am presupus prezența zgomotului normal distribuit aleatoriu. Ce să faci într-o astfel de situație? Pentru acest caz în matematică există și este utilizat pe scară largă metoda cu maxima probabilitate. Pe scurt, esența sa constă în alegere funcții de probabilitate și maximizarea lui ulterioară.

Revenim la restabilirea unei relații liniare din date cu zgomot normal. Rețineți că relația liniară asumată este așteptarea matematică Regresia liniară și metodele de recuperare a acesteia distribuția normală existentă. În același timp, probabilitatea ca Regresia liniară și metodele de recuperare a acesteia capătă o valoare sau alta, sub rezerva prezenței observabilelor Regresia liniară și metodele de recuperare a acesteia, după cum urmează:

Regresia liniară și metodele de recuperare a acesteia

Să înlocuim acum în schimb Regresia liniară și metodele de recuperare a acesteia и Regresia liniară și metodele de recuperare a acesteia Variabilele de care avem nevoie sunt:

Regresia liniară și metodele de recuperare a acesteia

Tot ce rămâne este să găsim vectorul Regresia liniară și metodele de recuperare a acesteia, la care această probabilitate este maximă. Pentru a maximiza o astfel de funcție, este convenabil să luați mai întâi un logaritm al acesteia (logaritmul funcției va atinge un maxim în același punct cu funcția însăși):

Regresia liniară și metodele de recuperare a acesteia

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

Regresia liniară și metodele de recuperare a acesteia

Apropo, aceasta se numește o metodă cele mai mici pătrate. Adesea, toate considerațiile de mai sus sunt omise și această metodă este pur și simplu utilizată.

Descompunerea QR

Minimul funcției de mai sus poate fi găsit prin găsirea punctului în care gradientul acestei funcții este zero. Și gradientul va fi scris după cum urmează:

Regresia liniară și metodele de recuperare a acesteia

Descompunerea QR este o metodă matriceală pentru rezolvarea problemei de minimizare utilizată în metoda celor mai mici pătrate. În acest sens, rescriem ecuația sub formă de matrice:

Regresia liniară și metodele de recuperare a acesteia

Deci descompunem matricea Regresia liniară și metodele de recuperare a acesteia la matrice Regresia liniară și metodele de recuperare a acesteia и Regresia liniară și metodele de recuperare a acesteia și efectuați o serie de transformări (algoritmul de descompunere QR în sine nu va fi luat în considerare aici, ci doar utilizarea lui în raport cu sarcina în cauză):

Regresia liniară și metodele de recuperare a acesteia

matrice Regresia liniară și metodele de recuperare a acesteia este ortogonală. Acest lucru ne permite să scăpăm de muncă Regresia liniară și metodele de recuperare a acesteia:

Regresia liniară și metodele de recuperare a acesteia

Și dacă înlocuiești Regresia liniară și metodele de recuperare a acesteia pe Regresia liniară și metodele de recuperare a acesteia, atunci se va rezolva Regresia liniară și metodele de recuperare a acesteia. Având în vedere că Regresia liniară și metodele de recuperare a acesteia este o matrice triunghiulară superioară, arată astfel:

Regresia liniară și metodele de recuperare a acesteia

Acest lucru poate fi rezolvat folosind metoda substituției. Element Regresia liniară și metodele de recuperare a acesteia este situat ca Regresia liniară și metodele de recuperare a acesteia, element anterior Regresia liniară și metodele de recuperare a acesteia este situat ca Regresia liniară și metodele de recuperare a acesteia și așa mai departe.

Este demn de remarcat aici că complexitatea algoritmului rezultat datorită utilizării descompunerii QR este egală cu Regresia liniară și metodele de recuperare a acesteia. Mai mult, în ciuda faptului că operația de multiplicare a matricei este bine paralelizată, nu este posibil să se scrie o versiune distribuită eficientă a acestui algoritm.

Coborâre în gradient

Când vorbim despre minimizarea unei funcții, merită întotdeauna să ne amintim metoda de coborâre a gradientului (stochastic). Aceasta este o metodă simplă și eficientă de minimizare bazată pe calcularea iterativă a gradientului unei funcții într-un punct și apoi deplasarea acesteia în direcția opusă gradientului. Fiecare astfel de pas aduce soluția mai aproape de minim. Gradientul arată în continuare același:

Regresia liniară și metodele de recuperare a acesteia

Această metodă este, de asemenea, bine paralelizată și distribuită datorită proprietăților liniare ale operatorului de gradient. Rețineți că în formula de mai sus, sub semnul sumei există termeni independenți. Cu alte cuvinte, putem calcula gradientul independent pentru toți indicii Regresia liniară și metodele de recuperare a acesteia de la primul la Regresia liniară și metodele de recuperare a acesteia, în paralel cu aceasta, se calculează gradientul pentru indici cu Regresia liniară și metodele de recuperare a acesteia la Regresia liniară și metodele de recuperare a acesteia. Apoi adăugați gradienții rezultați. Rezultatul adunării va fi același ca și cum am calcula imediat gradientul pentru indici de la primul la Regresia liniară și metodele de recuperare a acesteia. Astfel, dacă datele sunt distribuite între mai multe date, gradientul poate fi calculat independent pe fiecare bucată, iar apoi rezultatele acestor calcule pot fi însumate pentru a obține rezultatul final:

Regresia liniară și metodele de recuperare a acesteia

Din punct de vedere al implementării, aceasta se potrivește paradigmei MapReduce. La fiecare pas de coborâre a gradientului, o sarcină este trimisă fiecărui nod de date pentru a calcula gradientul, apoi gradienții calculati sunt colectați împreună, iar rezultatul sumei lor este folosit pentru a îmbunătăți rezultatul.

În ciuda ușurinței de implementare și a capacității de a executa în paradigma MapReduce, coborârea gradientului are și dezavantajele sale. În special, numărul de pași necesari pentru a obține convergența este semnificativ mai mare în comparație cu alte metode mai specializate.

LSQR

LSQR este o altă metodă de rezolvare a problemei, care este potrivită atât pentru restabilirea regresiei liniare, cât și pentru rezolvarea sistemelor de ecuații liniare. Caracteristica sa principală este că combină avantajele metodelor matriceale și o abordare iterativă. Implementări ale acestei metode pot fi găsite în ambele biblioteci SciPyși în MATLAB. O descriere a acestei metode nu va fi oferită aici (poate fi găsită în articol LSQR: Un algoritm pentru ecuații liniare rare și cele mai mici pătrate rare). În schimb, va fi demonstrată o abordare pentru adaptarea LSQR la execuția într-un mediu distribuit.

Metoda LSQR se bazează pe procedura de bidiagonalizare. Aceasta este o procedură iterativă, fiecare iterație constând din următorii pași:
Regresia liniară și metodele de recuperare a acesteia

Dar dacă presupunem că matricea Regresia liniară și metodele de recuperare a acesteia este partiționat orizontal, apoi fiecare iterație poate fi reprezentată ca doi pași MapReduce. În acest fel, este posibil să se minimizeze transferurile de date în timpul fiecărei iterații (doar vectori cu o lungime egală cu numărul de necunoscute):

Regresia liniară și metodele de recuperare a acesteia

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

Concluzie

Există mulți algoritmi de recuperare a regresiei liniare, dar nu toți pot fi aplicați în toate condițiile. Deci, descompunerea QR este excelentă pentru soluții precise pe seturi mici de date. Coborârea în gradient este ușor de implementat și vă permite să găsiți rapid o soluție aproximativă. Și LSQR combină cele mai bune proprietăți ale celor doi algoritmi anteriori, deoarece poate fi distribuit, converge mai rapid în comparație cu coborârea gradientului și, de asemenea, permite oprirea timpurie a algoritmului, spre deosebire de descompunerea QR, pentru a găsi o soluție aproximativă.

Sursa: www.habr.com

Adauga un comentariu