Regressione lineale è metudi per a so ricuperazione

Regressione lineale è metudi per a so ricuperazione
Source: xkcd

A regressione lineale hè unu di l'algoritmi basi per parechje spazii ligati à l'analisi di dati. U mutivu di questu hè evidenti. Questu hè un algoritmu assai simplice è cumprendi, chì hà cuntribuitu à u so usu generalizatu per parechje decine, se micca centinaie, d'anni. L'idea hè chì assumemu una dependenza lineale di una variàbile nantu à un inseme di altre variàbili, è poi pruvate à restaurà sta dependenza.

Ma questu articulu ùn hè micca di utilizà a regressione lineale per risolve i prublemi pratichi. Quì cunsideremu caratteristiche interessanti di l'implementazione di algoritmi distribuiti per a so ricuperazione, chì avemu scontru quandu scrivite un modulu d'apprendimentu machine in Apache Ignite. Un pocu di matematica basica, l'apprendimentu automaticu è l'informatica distribuita ponu aiutà à capisce cumu fà a regressione lineale ancu quandu i vostri dati sò distribuiti in migliaia di nodi.

Di chì parlemu ?

Semu di fronte à u compitu di restaurà a dependenza lineale. Cum'è dati di input, un inseme di vettori di variabili suppostamente indipindenti hè datu, ognunu di i quali hè assuciatu cù un certu valore di a varià dipendente. Sta dati pò esse rapprisintatu in forma di dui matrici:

Regressione lineale è metudi per a so ricuperazione

Avà, postu chì a dependenza hè assunta, è, in più, lineare, scriveremu a nostra supposizione in a forma di un pruduttu di matrici (per simplificà l'arregistramentu, quì è sottu si assume chì u termu liberu di l'equazioni hè ammucciatu daretu). Regressione lineale è metudi per a so ricuperazione, è l'ultima colonna di a matrice Regressione lineale è metudi per a so ricuperazione cuntene unità):

Regressione lineale è metudi per a so ricuperazione

Sona assai cum'è un sistema di equazioni lineari, ùn hè micca? Sembra, ma assai prubabile ùn ci sarà micca suluzioni à un tali sistema di equazioni. U mutivu di questu hè u rumore, chì hè presente in quasi tutti i dati veri. Un altru mutivu pò esse a mancanza di dipendenza lineale cum'è tali, chì pò esse cummattitu cù l'intruduzioni di variàbili supplementari chì ùn dependenu micca linearmenti di l'uriginali. Cunsiderate l'esempiu seguente:
Regressione lineale è metudi per a so ricuperazione
Source: Wikipedia

Questu hè un esempiu simplice di regressione lineale chì mostra a relazione di una variabile (à longu l'assi Regressione lineale è metudi per a so ricuperazione) da una altra variabile (longu l'assi Regressione lineale è metudi per a so ricuperazione). Per chì u sistema d'equazioni lineari currispundenti à questu esempiu hà una suluzione, tutti i punti devenu esse ghjustu nantu à a listessa linea recta. Ma questu ùn hè micca veru. Ma ùn si trovanu micca nantu à a listessa linea recta precisamente per via di u rumore (o perchè l'assunzione di una relazione lineale era sbagliata). Cusì, per restaurà una relazione lineare da dati reali, hè di solitu necessariu di introduci una altra ipotesi: i dati di input cuntenenu rumore è questu rumore hà. distribuzione normale. Pudete fà ipotesi nantu à altri tipi di distribuzione di u rumore, ma in a maiò parte di i casi hè a distribuzione normale chì hè cunsiderata, chì serà discututu più.

Metudu di massima probabilità

Dunque, avemu presumitu a prisenza di un rumore aleatoriu distribuitu normalmente. Cosa da fà in una tale situazione? Per questu casu in matematica ci hè è hè largamente utilizatu metudu di massima probabilità. In corta, a so essenza si trova in a scelta funzioni di probabilità è a so maximizazione successiva.

Riturnemu à restaurà una relazione lineale da dati cù u rumore normale. Nota chì a relazione lineale assunta hè l'aspettazione matematica Regressione lineale è metudi per a so ricuperazione distribuzione normale esistente. À u listessu tempu, a probabilità chì Regressione lineale è metudi per a so ricuperazione piglia un valore o un altru, sottumessu à a prisenza di observables Regressione lineale è metudi per a so ricuperazione, cum'è seguita:

Regressione lineale è metudi per a so ricuperazione

Andemu avà rimpiazzà invece Regressione lineale è metudi per a so ricuperazione и Regressione lineale è metudi per a so ricuperazione I variàbili chì avemu bisognu sò:

Regressione lineale è metudi per a so ricuperazione

Il ne reste plus qu'à trouver le vecteur Regressione lineale è metudi per a so ricuperazione, à quale sta probabilità hè massima. Per maximizà una tale funzione, hè cunvenutu per piglià prima un logaritmu di questu (u logaritmu di a funzione righjunghji u massimu à u stessu puntu cum'è a funzione stessu):

Regressione lineale è metudi per a so ricuperazione

Chì, à u turnu, vene à minimizzà a funzione seguente:

Regressione lineale è metudi per a so ricuperazione

In modu, questu hè chjamatu un metudu minimi quadrati. Spessu tutte e considerazioni sopra sò omesse è stu metudu hè simplicemente utilizatu.

A decomposizione QR

U minimu di a funzione di sopra pò esse truvata per truvà u puntu à quale u gradiente di sta funzione hè zero. È u gradiente serà scrittu cusì:

Regressione lineale è metudi per a so ricuperazione

A decomposizione QR hè un metudu matrice per risolve u prublema di minimizazione utilizatu in u metudu di i minimi quadrati. In questu sensu, riscrivimu l'equazioni in forma di matrice:

Regressione lineale è metudi per a so ricuperazione

Allora decomponemu a matrice Regressione lineale è metudi per a so ricuperazione à matrici Regressione lineale è metudi per a so ricuperazione и Regressione lineale è metudi per a so ricuperazione è eseguisce una seria di trasfurmazioni (l'algoritmu di descomposizione QR stessu ùn serà micca cunsideratu quì, solu u so usu in relazione à u compitu in manu):

Regressione lineale è metudi per a so ricuperazione

Matrix Regressione lineale è metudi per a so ricuperazione hè ortogonale. Questu ci permette di sguassà u travagliu Regressione lineale è metudi per a so ricuperazione:

Regressione lineale è metudi per a so ricuperazione

È si rimpiazzate Regressione lineale è metudi per a so ricuperazione nantu Regressione lineale è metudi per a so ricuperazione, tandu hà da travaglià Regressione lineale è metudi per a so ricuperazione. Cunsiderendu chì Regressione lineale è metudi per a so ricuperazione hè una matrice triangulare superiore, si vede cusì:

Regressione lineale è metudi per a so ricuperazione

Questu pò esse risoltu cù u metudu di sustituzzioni. Elementu Regressione lineale è metudi per a so ricuperazione si trova cum'è Regressione lineale è metudi per a so ricuperazione, elementu precedente Regressione lineale è metudi per a so ricuperazione si trova cum'è Regressione lineale è metudi per a so ricuperazione e accussì on.

Hè da nutà quì chì a cumplessità di l'algoritmu risultatu per l'usu di a descomposizione QR hè uguale à Regressione lineale è metudi per a so ricuperazione. Inoltre, malgradu u fattu chì l'operazione di multiplicazione di a matrice hè bè parallelizata, ùn hè micca pussibule di scrive una versione distribuita efficace di questu algoritmu.

Descente à gradient

Quandu si parla di minimizà una funzione, vale sempre a pena ricurdà u metudu di discendenza di gradiente (stochastic). Questu hè un metudu di minimizazione simplice è efficace basatu annantu à u calculu iterativu di u gradiente di una funzione in un puntu, è poi trasfurmà in a direzzione opposta à u gradiente. Ogni tali passu porta a suluzione più vicinu à u minimu. U gradiente hè sempre u listessu:

Regressione lineale è metudi per a so ricuperazione

Stu metudu hè ancu bè parallelizatu è distribuitu per via di e proprietà lineari di l'operatore di gradiente. Innota chì in a formula sopra, sottu u signu di summa ci sò termini indipendenti. In altri palori, pudemu calculà u gradiente indipindente per tutti l'indici Regressione lineale è metudi per a so ricuperazione da prima à Regressione lineale è metudi per a so ricuperazione, in parallelu cù questu, calculate u gradiente per indici cù Regressione lineale è metudi per a so ricuperazione à Regressione lineale è metudi per a so ricuperazione. Allora aghjunghje i gradienti resultanti. U risultatu di l'aghjuntu serà u listessu cum'è se avemu calculatu immediatamente u gradiente per l'indici da u primu à Regressione lineale è metudi per a so ricuperazione. Cusì, se i dati sò distribuiti trà parechji pezzi di dati, u gradiente pò esse calculatu indipindente nantu à ogni pezzu, è dopu i risultati di sti calculi ponu esse summatu per ottene u risultatu finali:

Regressione lineale è metudi per a so ricuperazione

Da un puntu di vista di implementazione, questu si adatta à u paradigma MapReduce. À ogni passu di a discesa di gradiente, un compitu hè mandatu à ogni nodu di dati per calculà u gradiente, dopu i gradienti calculati sò cullati inseme, è u risultatu di a so summa hè utilizatu per migliurà u risultatu.

Malgradu a facilità di implementazione è a capacità di eseguisce in u paradigma MapReduce, a discesa di gradiente hà ancu i so inconvenienti. In particulare, u numeru di passi necessarii per ottene a cunvergenza hè significativamente più altu cumparatu cù altri metudi più specializati.

LSQR

LSQR hè un altru mètudu per risolve u prublema, chì hè adattatu sia per restaurà a regressione lineale sia per risolve i sistemi di equazioni lineari. A so caratteristica principale hè chì combina i vantaghji di i metudi matrici è un approcciu iterativu. Implementazioni di stu metudu ponu esse truvati in i dui biblioteche SciPy, è in MATLAB. A descrizzione di stu mètudu ùn serà micca datu quì (si pò truvà in l'articulu LSQR: Un algoritmu per equazioni lineari sparse è minimi quadrati sparsi). Invece, un approcciu serà dimustratu per adattà LSQR à l'esekzione in un ambiente distribuitu.

U metudu LSQR hè basatu nantu prucedura di bidiagonalizazione. Questa hè una prucedura iterativa, ogni iterazione cumpostu di i seguenti passi:
Regressione lineale è metudi per a so ricuperazione

Ma si assume chì a matrice Regressione lineale è metudi per a so ricuperazione hè partizionatu orizzontalmente, allora ogni iterazione pò esse rapprisintata cum'è dui passi MapReduce. In questu modu, hè pussibule di minimizzà i trasferimenti di dati durante ogni iterazione (solu vettori cù una lunghezza uguale à u numeru di scunnisciuti):

Regressione lineale è metudi per a so ricuperazione

Hè questu approcciu chì hè utilizatu quandu implementa a regressione lineale in Apache Ignite ML.

cunchiusioni

Ci sò parechji algoritmi di ricuperazione di regressione lineale, ma micca tutti ponu esse appiicati in tutte e cundizioni. Dunque, a descomposizione QR hè eccellente per una suluzione precisa nantu à i picculi gruppi di dati. A discesa di gradiente hè simplice di implementà è vi permette di truvà rapidamente una soluzione apprussimata. È LSQR unisce e migliori proprietà di i dui algoritmi precedenti, postu chì pò esse distribuitu, cunverge più rapidamente in paragunà à a discesa di gradiente, è permette ancu a cessazione anticipata di l'algoritmu, à u cuntrariu di a descomposizione QR, per truvà una suluzione apprussimata.

Source: www.habr.com

Add a comment