Source:
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
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:
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). , è l'ultima colonna di a matrice cuntene unità):
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:
Source:
Questu hè un esempiu simplice di regressione lineale chì mostra a relazione di una variabile (à longu l'assi ) da una altra variabile (longu l'assi ). 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à.
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
Riturnemu à restaurà una relazione lineale da dati cù u rumore normale. Nota chì a relazione lineale assunta hè l'aspettazione matematica distribuzione normale esistente. À u listessu tempu, a probabilità chì piglia un valore o un altru, sottumessu à a prisenza di observables , cum'è seguita:
Andemu avà rimpiazzà invece и I variàbili chì avemu bisognu sò:
Il ne reste plus qu'à trouver le vecteur , à 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):
Chì, à u turnu, vene à minimizzà a funzione seguente:
In modu, questu hè chjamatu un metudu
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ì:
Allora decomponemu a matrice à matrici и è 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):
Matrix hè ortogonale. Questu ci permette di sguassà u travagliu :
È si rimpiazzate nantu , tandu hà da travaglià . Cunsiderendu chì hè una matrice triangulare superiore, si vede cusì:
Questu pò esse risoltu cù u metudu di sustituzzioni. Elementu si trova cum'è , elementu precedente si trova cum'è e accussì on.
Hè da nutà quì chì a cumplessità di l'algoritmu risultatu per l'usu di a descomposizione QR hè uguale à . 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:
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 da prima à , in parallelu cù questu, calculate u gradiente per indici cù à . 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 à . 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:
Da un puntu di vista di implementazione, questu si adatta à u paradigma
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
U metudu LSQR hè basatu nantu
Ma si assume chì a matrice 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):
Hè questu approcciu chì hè utilizatu quandu implementa a regressione lineale in
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