Abbiamo bisogno della discesa del gradiente per trovare i coefficienti di un modello di regressione lineare?


31

Stavo cercando di imparare l'apprendimento automatico usando il materiale Coursera . In questa lezione, Andrew Ng utilizza l'algoritmo di discesa gradiente per trovare i coefficienti del modello di regressione lineare che minimizzerà la funzione di errore (funzione di costo).

Per la regressione lineare, abbiamo bisogno di una discesa gradiente? Sembra che sia possibile differenziare analiticamente la funzione di errore e impostarla su zero per risolvere i coefficienti; è giusto?


3
I modelli lineari sono stati decentemente ben gestiti dal 1700. Ci sono molti modi per gestirli che non richiedono la discesa gradiente (GD). Esistono modelli non lineari in cui la maggior parte di questi metodi si appiattisce in faccia. Andrew ti sta facendo usare un metodo sconosciuto ma molto utile contro un problema molto semplice in modo da poter eseguire il debug del tuo approccio. Quando sei bravo con il metodo puoi applicarlo a problemi incredibilmente non lineari per i quali GD è l'unico metodo per ottenere risultati.
EngrStudent - Ripristina Monica il

10
No, non è necessario utilizzare approcci come la discesa gradiente (non è l'unico metodo di ottimizzazione, in ogni caso). Puoi davvero risolverlo analiticamente, come suggerisci; si differenzia rispetto a ciascun parametro, quindi si ottiene un'equazione per parametro. Ma è utile risolvere semplici problemi che possono essere fatti in altri modi; se conosci già la risposta puoi essere sicuro di ottenere la risposta giusta con discesa gradiente.
Glen_b

Se la funzione di costo è la solita penalità quadratica ('distanza'), esiste una soluzione a forma chiusa. Tuttavia, la discesa gradiente è generalmente molto più rapida, per questo motivo viene generalmente utilizzata.
aginensky,

Inoltre, la discesa gradiente può essere utilizzata per trovare soluzioni numeriche a problemi che sono analiticamente intrattabili. Sospetterei che usa la discesa gradiente all'inizio per abituarsi. Credo quindi che usi la discesa gradiente con reti neurali. Inutile dire che la situazione della rete neurale è più complicata. Penso da una situazione pedagogica, dopo averli visti prima, con modelli lineari, la discesa del gradiente per l'uso con le reti neurali sembra più ragionevole.
aginensky,

3
Grazie per aver pubblicato il link ai video di Andre Ng, ne ho visti diversi. Lo sapevo già, anche se non fino a questo punto estremo, ma è spaventoso vedere cosa sta imparando l'ottimizzazione della maggior parte delle persone, per non parlare di ciò che almeno alcuni di loro stanno imparando sull'informatica statistica. Gene Golub, IL pioniere dell'informatica e dell'utilizzo di SVD, si sarebbe rovesciato nella tomba se avesse saputo cosa gli viene insegnato ora nel suo dipartimento di informatica di Stanford. Il video "più divertente" è youtube.com/watch?v=B3vseKmgi8E , che raccomanda e confronta i 2 algoritmi PEGGIORI per i minimi quadrati
Mark L. Stone,

Risposte:


43

I minimi quadrati lineari possono essere risolti da

0) Utilizzo del solutore dei minimi quadrati lineari di alta qualità, basato su SVD o QR, come descritto di seguito, per minimi quadrati lineari non vincolati, o basato su una versione di Programmazione quadratica o ottimizzazione conica per minimi quadrati rilegati o vincolati linearmente, come descritto di seguito. Un tale risolutore è pre-inscatolato, pesantemente testato e pronto all'uso: usalo.

1) SVD, che è il metodo più affidabile e numericamente accurato, ma richiede anche più elaborazione rispetto alle alternative. In MATLAB, la soluzione SVD del problema dei minimi quadrati lineari non vincolati A * X = b è pinv (A) * b, che è molto accurata e affidabile.

2) QR, che è abbastanza affidabile e numericamente preciso, ma non tanto quanto SVD, ed è più veloce di SVD. In MATLAB, la soluzione QR del problema dei minimi quadrati lineari non vincolati A * X = b è A \ b, che è abbastanza accurata e affidabile, tranne quando A è mal condizionata, cioè ha un numero di condizione elevato. A \ b è più veloce da calcolare rispetto a pinv (A) * b, ma non altrettanto affidabile o preciso.

3) Formare le equazioni normali (TERRIBILE dal punto di vista dell'affidabilità e dell'accuratezza numerica, perché quadra il numero della condizione, il che è una cosa molto brutta da fare) e

3a) risoluzione mediante fattorizzazione di Cholesky (non buona)

3b) invertendo esplicitamente la matrice (ORRIBILE)

4) Risoluzione come problema di programmazione quadratica o problema del cono del secondo ordine

4a) Risolvere utilizzando un software di programmazione quadratica di alta qualità. Questo è affidabile e numericamente preciso, ma richiede più tempo di SVD o QR. Tuttavia, è facile aggiungere vincoli lineari vincolati o generali, o penalità lineari o quadratici (due norme) o termini di regolarizzazione alla funzione obiettivo, e ancora risolvere il problema utilizzando il software di programmazione quadratica.

4b) Risolvi il problema del cono del secondo ordine utilizzando un software di ottimizzazione conica di alta qualità. Le osservazioni sono le stesse del software di programmazione quadratica, ma è anche possibile aggiungere vincoli lineari vincolati o generali e altri vincoli conici o termini di funzione oggettiva, come termini di penalità o di regolarizzazione in varie norme.

5) Risolvi utilizzando un software di ottimizzazione non lineare di alta qualità per scopi generici. Questo potrebbe ancora funzionare bene, ma in generale sarà più lento del software di programmazione quadratica o di ottimizzazione conica e forse non altrettanto affidabile. Tuttavia, potrebbe essere possibile includere non solo vincoli lineari e generali, ma anche vincoli non lineari nell'ottimizzazione dei minimi quadrati. Inoltre, può essere utilizzato per minimi quadrati non lineari e se alla funzione obiettivo vengono aggiunti altri termini non lineari.

6) Risolvi usando pessimi algoritmi di ottimizzazione non lineare per scopi generici -> NON FARE MAI QUESTO.

7) Risolvi utilizzando l'algoritmo di ottimizzazione non lineare IL PIÙ POSSIBILE possibile, ovvero la discesa del gradiente. Usalo solo se vuoi vedere quanto può essere cattivo e inaffidabile un metodo di soluzione Se qualcuno ti dice di usare la discesa gradiente per risolvere i problemi dei minimi quadrati lineari

7 i) Scopri il calcolo statistico da qualcuno che ne sa qualcosa

7 ii) Impara l'ottimizzazione da qualcuno che ne sa qualcosa.


Bel post, perché pensi che Cholesky non sia buono dato che il tuo sistema è PD? (e non con un numero di condizione ridicola) A proposito, penso che tu voglia dire (o aggiungere) la nozione di inverso generalizzato (usato principalmente per scopi educativi ovviamente) al punto "SVD" o "invertendo esplicitamente".
usεr11852 dice Reinstate Monic il

2
A proposito, è ridicolo la frequenza con cui vengono generate matrici con numeri di condizione molto elevati, specialmente dalle masse non lavate (vale a dire, la maggior parte delle persone che fanno minimi quadrati lineari, soprattutto vista la democratizzazione nell'accesso), che non sono in sintonia con esso.
Mark L. Stone,

1
mldivide, cioè. barra rovesciata, ovvero \ usa QR quando m ~ = n (minimi quadrati), come ho affermato nella seconda frase del mio paragrafo (2) sopra. Saresti sorpreso di quanta merda ci sia in MATLAB, non solo nelle cassette degli attrezzi, alcune delle quali sono assolutamente orribili, ma in misura minore anche in alcune delle funzioni principali.
Mark L. Stone,

1
@ MarkL.Stone, ottima risposta! potresti per favore spiegare un po 'di più sul perché non è consigliabile usare la discesa gradiente per risolvere il minimo quadrato! (nella mia comprensione è solo un approccio iterativo rispetto agli altri (approcci di direzione) che hai menzionato sopra). Inoltre, potresti anche commentare il problema: "se avessi n> = 30.000 funzionalità per un problema, il metodo di equazione normale sarebbe molto lento poiché invertire la matrice n * n sarebbe terribile! D'altra parte, GD funzionerebbe in questo caso carino! qualsiasi pensiero su come si esibiranno SVD e QR ". qualsiasi suggerimento sarebbe utile.
anu,

1
@ anu Utilizzare solo la discesa del gradiente come ultima risorsa. e sarebbe solo se il problema fosse troppo grande per essere risolto da SVD o QR. Non formare mai le equazioni normali, figuriamoci invertire esplicitamente una matrice per risolvere equazioni normali, MAI. 30.000 funzionalità non sembrano molte al giorno d'oggi.
Mark L. Stone,

0

Trovare coefficienti di un modello lineare è tecnicamente il processo di ricerca di soluzioni a un insieme di equazioni lineari .

Per il calcolo di tali soluzioni, molte optimization techniquessono state sviluppate ed Gradient Descentè una di queste.
Pertanto, la discesa gradiente non è l'unico modo per farlo.

Andrew Ng lo utilizza nel corso perché è semplice da capire, senza occuparsi di algebra lineare avanzata e calcolo numerico.


Sebbene non sia sbagliato, penso che la tua risposta non rispecchi il quadro generale concentrandosi su un caso non standard. La stragrande maggioranza dei modelli di regressione lineare viene adattata utilizzando la decomposizione QR impiegando una soluzione a forma chiusa. GD-gradient decent- è usato come esempio per introdurre metodi più avanzati (es. SGD- stocastico GD).
usεr11852 dice Reinstate Monic il

Puoi elaborare cos'è la decomposizione QR?
Victor,

3
UNX=BUN=QRRQUNX=BQRX=BRX=QTBRQTQ=ioSGD. Poiché la maggior parte delle persone non ha matrici molto grandi, la decomposizione QR è migliore. In generale la decomposizione QR ha plasmato il mondo numerico; SIAM lo ha selezionato come uno dei migliori 10 algoritmi del 20 ° secolo.
usεr11852 dice Reinstate Monic il

@ usεr11852 sì, naturalmente. Questo perché, volevo mantenere la risposta semplice, in modo da evitare concetti come la decomposizione QR, rimanendo rilevante per il dominio del livello del corso di Ng.
Vikas Raturi,

3
QR è stato uno dei 10 migliori algoritmi del 20 ° secolo. Ma il tempo passa e, sebbene gli algoritmi efficaci per il calcolo della SVD risalgano agli anni '60, devi considerare l'importanza delle aree di applicazione. Quindi credo che SVD sia l'algoritmo TOP del 21 ° secolo. Francamente, hai mai sentito parlare del QR usato per raccomandare i film? No, SVD è utilizzato per quella critica. SVD è chiaramente l'algoritmo di scelta quando Twitter invia raccomandazioni indesiderate a vecchi fanatici conservatori su quali celebrità adolescenti dovrebbero seguire. Vediamo QR farlo !!!
Mark L. Stone,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.