2013-08-12 18 views
55

qual è il vantaggio dell'utilizzo della Discesa di gradiente nello spazio di regressione lineare? sembra che possiamo risolvere il problema (trovando theta0-n quel minimo il costo func) con il metodo analitico, quindi perché vogliamo ancora usare la discesa del gradiente per fare la stessa cosa? grazieperché la discesa del gradiente quando siamo in grado di risolvere analiticamente la regressione lineare

+0

Questa è una grande domanda. È molto comune per i docenti andare direttamente nella discesa del gradiente per trovare la soluzione, il che è fonte di confusione quando uno studente ricorda che la soluzione ordinaria dei minimi quadrati non richiede un algoritmo di ottimizzazione; confusione che potrebbe essere rapidamente superata riconoscendo ciò che @jabaldonedo ha fornito qui. – Merlin

risposta

80

Quando si utilizzano i normali equazioni per risolvere la funzione di costo analiticamente bisogna calcolare:

enter image description here

Dove X è la matrice di osservazioni di input e il vettore di output. Il problema con questa operazione è la complessità temporale del calcolo dell'inverso di una matrice nxn che è O (n^3) e con l'aumentare di n può richiedere molto tempo per terminare.

Quando n è basso (n < 1000 o n < 10000) si può pensare di equazioni normali come la migliore opzione per il calcolo theta, ma per valori maggiori Gradient Descent è molto più veloce, quindi l'unica ragione è il tempo :)

+1

Il numero di campioni o funzioni è n? –

+4

n è il numero di funzioni. – gavinmh

+0

Questo non è necessariamente il collo di bottiglia. Per usare anche le normali equazioni, tipicamente facciamo un'ipotesi non singolare in modo che $ n> p $ (qui sto usando la notazione che $ n $ è il numero di punti dati e $ p $ è il numero di caratteristiche). Ciò significa che il collo di bottiglia è $ O (np^2) $ per formare $ X^\ top X $, non $ $ (p^3) $ inversione. –

12

Dovresti fornire maggiori dettagli sul tuo problema - cosa stai chiedendo esattamente - stiamo parlando di regressione lineare in una o più dimensioni? Quelli semplici o generalizzati?

In generale, perché le persone utilizzano la GD?

  • è facile da implementare
  • è tecnica di ottimizzazione molto generica - anche se si cambia il vostro modello a quello più generale, si può stil usarlo

E per quanto riguarda soluzioni analitiche? Bene, noi do li usiamo, la tua richiesta è semplicemente falsa qui (se stiamo parlando in generale), ad esempio il metodo OLS è una soluzione analitica a forma chiusa, che è ampiamente utilizzata. Se è possibile utilizzare la soluzione analitica, è computazionale conveniente (dato che a volte GD è semplicemente più economico o più veloce), quindi è possibile, e persino dovrebbe, utilizzarlo.

Neverlethles si tratta sempre di alcuni pro e contro: le soluzioni analitiche sono strettamente collegate al modello, quindi implementarle può essere inefficiente se si prevede di generalizzare/modificare i modelli in futuro. Talvolta sono meno efficienti delle loro approssimazioni numeriche e talvolta sono semplicemente più difficili da implementare. Se nessuno dei precedenti è vero, il utilizza la soluzione analitica e le persone lo fanno, davvero.

Per riassumere, si preferisce utilizzare GD sopra soluzione analitica se:

  • si stanno prendendo in considerazione i cambiamenti nel modello, generalizzazioni, l'aggiunta di alcuni più complessi termini/regolarizzazione/modifiche
  • avete bisogno di un metodo generico perché non sai molto sul futuro del codice e del modello (sei solo uno degli sviluppatori)
  • soluzione analitica è più costosa computazionale, e hai bisogno di efficienza
  • soluzione analitica richiede più memoria, che y ou non hanno
  • soluzione analitica è difficile da implementare e avete bisogno di facile, semplice codice
7

ho visto una risposta molto buona da https://stats.stackexchange.com/questions/23128/solving-for-regression-parameters-in-closed-form-vs-gradient-descent

In sostanza, i motivi sono:

1.Per maggior parte dei problemi di regressione lineare non esiste una soluzione in forma chiusa.

2. Anche nella regressione lineare (uno dei pochi casi in cui è disponibile una soluzione di forma chiusa), può essere poco pratico utilizzare la formula. L'esempio seguente mostra un modo in cui ciò può accadere.

0

Un altro motivo è che la discesa del gradiente è immediatamente utile quando si generalizza la regressione lineare, soprattutto se il problema non ha una soluzione in forma chiusa, come ad esempio in Lasso (che aggiunge il termine di regolarizzazione costituito dalla somma dei valori assoluti di vettore di peso).

Problemi correlati