Regressione lineare e metodi per il suo ripristino

Regressione lineare e metodi per il suo ripristino
Fonte: xkcd

La regressione lineare è uno degli algoritmi di base per molte aree legate all'analisi dei dati. La ragione è evidente. È un algoritmo molto semplice e comprensibile, che ne favorisce un ampio utilizzo da decenni, se non secoli. L'idea è che supponiamo un rapporto lineare tra una variabile e un insieme di altre variabili, e poi cerchiamo di ricostruire questo rapporto.

Ma in questo articolo non parleremo dell'applicazione della regressione lineare per risolvere problemi pratici. Qui verranno considerate caratteristiche interessanti della realizzazione di algoritmi distribuiti per il suo ripristino, con cui ci siamo trovati ad affrontare durante la scrittura del modulo di apprendimento automatico in Apache Ignite. Un po' di matematica di base, fondamenti di apprendimento automatico e calcolo distribuito aiutano a capire come ripristinare la regressione lineare, anche se i dati sono distribuiti tra migliaia di nodi.

Di cosa si tratta?

Ci troviamo di fronte al problema di ripristinare una dipendenza lineare. Come dati di input viene fornito un insieme di vettori di variabili presumibilmente indipendenti, a ciascuno dei quali viene associato un certo valore di una variabile dipendente. Questi dati possono essere rappresentati come due matrici:

Regressione lineare e metodi per il suo ripristino

Ora, dato che si presume una dipendenza, e in più lineare, scriviamo la nostra supposizione come un prodotto di matrici (per semplificare l'annotazione si presume qui e in seguito che il termine indipendente dell'equazione sia nascosto da Regressione lineare e metodi per il suo ripristino, e l'ultima colonna della matrice Regressione lineare e metodi per il suo ripristino contiene degli zeri):

Regressione lineare e metodi per il suo ripristino

Assomiglia molto a un sistema di equazioni lineari, vero? Sì, ma è probabile che questo sistema non abbia soluzioni. La ragione è il rumore, che è presente praticamente in qualsiasi dato reale. Inoltre, una causa può essere l'assenza di una dipendenza lineare in sé, che si potrebbe cercare di mitigare introducendo variabili aggiuntive che dipendono non linearmente da quelle originali. Consideriamo il seguente esempio:
Regressione lineare e metodi per il suo ripristino
Fonte: Wikipedia

Questo è un semplice esempio di regressione lineare, che dimostra la dipendenza di una variabile (sull'asse Regressione lineare e metodi per il suo ripristino) da un'altra variabile (sull'asse Regressione lineare e metodi per il suo ripristino). Affinché il sistema di equazioni lineari corrispondente a questo esempio abbia una soluzione, tutti i punti devono trovarsi esattamente su una linea retta. Ma non è così. E non si trovano su una linea retta proprio a causa del rumore (o perché l'ipotesi di una dipendenza lineare era errata). Pertanto, per ripristinare la dipendenza lineare dai dati reali è solitamente necessario introdurre un'altra ipotesi: i dati in ingresso contengono rumore e questo rumore ha una distribuzione normale. Si possono fare ipotesi anche su altri tipi di distribuzione del rumore, ma nella stragrande maggioranza dei casi si considera proprio la distribuzione normale, di cui parleremo in seguito.

Il metodo della massima verosimiglianza

. Dunque, abbiamo ipotizzato la presenza di un rumore casuale distribuito normalmente. Cosa fare in questa situazione? A tal fine, in matematica esiste e viene ampiamente utilizzato il metodo della massima verosimiglianza. In sintesi, consiste nella scelta della funzione di verosimiglianza e nella successiva massimizzazione.

Torniamo al ripristino della dipendenza lineare dai dati con rumore normale. Notiamo che la dipendenza lineare prevista è una media matematica Regressione lineare e metodi per il suo ripristino della distribuzione normale presente. Allo stesso tempo, la probabilità che Regressione lineare e metodi per il suo ripristino assuma un certo valore, a condizione della presenza di osservazioni Regressione lineare e metodi per il suo ripristino, si presenta nel seguente modo:

Regressione lineare e metodi per il suo ripristino

Ora sostituiamo Regressione lineare e metodi per il suo ripristino e Regressione lineare e metodi per il suo ripristino le variabili che ci servono:

Regressione lineare e metodi per il suo ripristino

Resta solo trovare il vettore Regressione lineare e metodi per il suo ripristino, per il quale questa probabilità è massima. Per massimizzare tale funzione è conveniente prima logaritmizzarla (il logaritmo della funzione raggiungerà il massimo nello stesso punto in cui si trova la funzione stessa):

Regressione lineare e metodi per il suo ripristino

Ciò si riduce, a sua volta, a minimizzare la seguente funzione:

Regressione lineare e metodi per il suo ripristino

A proposito, questo è chiamato metodo dei minimi quadrati. Spesso tutte le considerazioni sopra riportate vengono omesse e si utilizza semplicemente questo metodo.

Scomposizione QR

Il minimo della funzione sopra riportata può essere trovato se si trova il punto in cui il gradiente di questa funzione è nullo. E il gradiente sarà scritto nel seguente modo:

Regressione lineare e metodi per il suo ripristino

Scomposizione QR è un metodo matrice per risolvere il problema di minimizzazione utilizzato nel metodo dei minimi quadrati. Pertanto, riscriviamo l'equazione in forma matriciale:

Regressione lineare e metodi per il suo ripristino

Pertanto, scomponiamo la matrice Regressione lineare e metodi per il suo ripristino in matrici Regressione lineare e metodi per il suo ripristino e Regressione lineare e metodi per il suo ripristino e svolgiamo una serie di trasformazioni (l'algoritmo di fattorizzazione QR non verrà considerato qui, soltanto il suo utilizzo rispetto al compito assegnato):

Regressione lineare e metodi per il suo ripristino

Matrice Regressione lineare e metodi per il suo ripristino è ortogonale. Questo ci consente di liberarci dal prodotto Regressione lineare e metodi per il suo ripristino:

Regressione lineare e metodi per il suo ripristino

E se sostituiamo Regressione lineare e metodi per il suo ripristino in Regressione lineare e metodi per il suo ripristino, otteniamo Regressione lineare e metodi per il suo ripristino. Considerando che Regressione lineare e metodi per il suo ripristino è una matrice triangolare superiore, appare nel modo seguente:

Regressione lineare e metodi per il suo ripristino

Questo può essere risolto con il metodo di sostituzione. L'elemento Regressione lineare e metodi per il suo ripristino si trova come Regressione lineare e metodi per il suo ripristino, l'elemento precedente Regressione lineare e metodi per il suo ripristino si trova come Regressione lineare e metodi per il suo ripristino e così via.

Qui vale la pena notare che la complessità dell'algoritmo risultante grazie all'uso della fattorizzazione QR è pari a Regressione lineare e metodi per il suo ripristino. Tuttavia, nonostante l'operazione di moltiplicazione delle matrici si presti bene alla parallelizzazione, scrivere una versione distribuita efficace di questo algoritmo non sembra possibile.

Discesa del gradiente

Parlando della minimizzazione di una certa funzione, è sempre utile ricordare il metodo (stocastico) del gradiente discendente. Questo è un metodo semplice ed efficace per la minimizzazione, basato sul calcolo iterativo del gradiente della funzione in un punto e sul successivo spostamento nella direzione opposta al gradiente. Ogni passo di questo tipo avvicina la soluzione al minimo. Il gradiente assume ancora la stessa forma:

Regressione lineare e metodi per il suo ripristino

Inoltre, questo metodo si presta bene alla parallelizzazione e distribuzione grazie alle proprietà lineari dell'operatore gradiente. Notiamo che nella formula sopra riportata, sotto il segno di sommatoria ci sono termini indipendenti. In altre parole, possiamo calcolare il gradiente in modo indipendente per tutti gli indici Regressione lineare e metodi per il suo ripristino da uno fino a Regressione lineare e metodi per il suo ripristino, parallelamente, calcolare il gradiente per gli indici da Regressione lineare e metodi per il suo ripristino fino a Regressione lineare e metodi per il suo ripristino. Poi sommare i gradienti risultanti. Il risultato della somma sarà lo stesso di se avessimo calcolato il gradiente per gli indici da uno fino a Regressione lineare e metodi per il suo ripristino. Pertanto, se i dati sono distribuiti tra più parti, il gradiente può essere calcolato indipendentemente su ciascuna parte, e poi i risultati di questi calcoli possono essere sommati per ottenere il risultato finale:

Regressione lineare e metodi per il suo ripristino

Dal punto di vista dell'implementazione, ciò rientra nella paradigmatica MapReduce. In ogni fase del gradiente discendente, a ciascun nodo di dati viene assegnato un compito per calcolare il gradiente, quindi i gradienti calcolati vengono raccolti insieme e il risultato della loro somma viene utilizzato per migliorare il risultato.

Nonostante la semplicità di implementazione e la possibilità di esecuzione nella paradigmi MapReduce, il gradiente discendente presenta anche i suoi svantaggi. In particolare, il numero di passi necessari per raggiungere la convergenza è significativamente maggiore rispetto ad altri metodi più specializzati.

LSQR

LSQR è un altro metodo per risolvere il compito assegnato, adatto sia per la ricostruzione della regressione lineare che per la risoluzione di sistemi di equazioni lineari. La sua principale caratteristica è che combina i vantaggi dei metodi matriciali con l'approccio iterativo. Le implementazioni di questo metodo possono essere trovate sia nella libreria SciPy, sia in MATLAB. Non verrà fornita qui la descrizione di questo metodo (puoi trovarla nell'articolo LSQR: An algorithm for sparse linear equations and sparse least squares). Invece, verrà dimostrato un approccio che consente di adattare LSQR per l'esecuzione in un ambiente distribuito.

Alla base del metodo LSQR c'è una procedura di bidiagonalizzazione. Questa è una procedura iterativa, ogni iterazione consiste nei seguenti passaggi:
Regressione lineare e metodi per il suo ripristino

Ma se assumiamo che la matrice Regressione lineare e metodi per il suo ripristino sia partizionata orizzontalmente, allora ogni iterazione può essere rappresentata come due passaggi MapReduce. In questo modo si riesce a minimizzare il passaggio di dati durante ciascuna delle iterazioni (solo vettori di lunghezza pari al numero di incognite):

Regressione lineare e metodi per il suo ripristino

Proprio questo approccio viene utilizzato nell'implementazione della regressione lineare in Apache Ignite ML.

Conclusione

Esistono molti algoritmi per la ricostruzione della regressione lineare, ma non tutti possono essere applicati in qualsiasi condizione. Ad esempio, la decomposizione QR è ottima per risolvere con precisione su piccole masse di dati. Il gradiente discendente si implementa facilmente e consente di trovare rapidamente una soluzione approssimata. LSQR, d'altra parte, combina le migliori caratteristiche dei due algoritmi precedenti, poiché può essere distribuito, converge più rapidamente rispetto al gradiente discendente e consente anche un arresto anticipato dell'algoritmo, a differenza della decomposizione QR per la ricerca di soluzioni approssimate.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster