Se gli hessiani sono così buoni per l'ottimizzazione (vedi ad esempio il metodo di Newton ), perché fermarsi qui? Usiamo il terzo, il quarto, il quinto e il sesto derivato? Perchè no?
Se gli hessiani sono così buoni per l'ottimizzazione (vedi ad esempio il metodo di Newton ), perché fermarsi qui? Usiamo il terzo, il quarto, il quinto e il sesto derivato? Perchè no?
Risposte:
Sto interpretando la domanda come "Perché il metodo di Newton utilizza solo derivati derivati primo e secondo, non derivati terzi o superiori?"
In realtà, in molti casi, andare al terzo derivato aiuta; L'ho fatto con cose personalizzate prima. Tuttavia, in generale, passare a derivati più elevati aggiunge complessità computazionale - devi trovare e calcolare tutti quei derivati e, per problemi multivariati, ci sono molti più derivati di quanti ce ne siano i primi! - che supera di gran lunga i risparmi nel conteggio dei passi che ottieni, se presenti. Ad esempio, se ho un problema tridimensionale, ho 3 primi derivati, 6 secondi derivati e 10 terzi derivati, quindi passare a una versione di terzo ordine più che raddoppia il numero di valutazioni che devo fare (da 9 a 19), per non parlare della maggiore complessità del calcolo della direzione / dimensione del passo una volta che ho fatto quelle valutazioni, ma quasi certamente non taglierà il numero di passi che devo compiere a metà.
Ora, nel caso generale con variabili, la raccolta di derivate parziali sarà numero , quindi per un problema con cinque variabili, il numero totale di terzo , il quarto e il quinto derivato parziale equivalgono a 231, un aumento di oltre 10 volte rispetto al numero di derivati secondari primo e secondo (20). Dovresti avere un problema che è molto, molto vicino a un polinomio del quinto ordine nelle variabili per vedere una riduzione abbastanza grande dei conteggi dell'iterazione per compensare quel carico computazionale aggiuntivo.n t h
Non vedo davvero quale sia l'aspetto statistico di questa domanda, quindi risponderò alla parte di ottimizzazione.
Praticamente ogni risposta qui si concentra solo sul costo dell'iterazione e ignora il conteggio dell'iterazione . Ma entrambi contano. Un metodo che scorre in 1 nanosecondo ma impiega iterazioni per convergere non ti farà bene. E un metodo che esplode non aiuterà neanche, non importa quanto sia economico il costo dell'iterazione.
Scopriamo cosa sta succedendo.
In parte perché (e questo vale anche per il 2 ° ordine, ma ne parleremo tra poco):
D'altra parte, esplodono più facilmente quando sono più lontani dall'ottimale!
(Naturalmente, questo non è sempre vero; ad es. Un quadratico converge in 1 passaggio con il metodo di Newton. Ma per le funzioni arbitrarie nel mondo reale che non hanno belle proprietà, questo è generalmente vero.)
Ciò significa che quando sei più lontano dall'ottimale, generalmente vuoi un metodo di basso ordine (leggi: primo ordine). Solo quando sei vicino vuoi aumentare l'ordine del metodo.
Per capire perché, devi prima capire cosa significa "convergenza quadratica" .
Matematicamente, la convergenza quadratica significa che, se è il tuo errore , alla fine vale quanto segue per qualche costante :
In parole povere, ciò significa che, una volta che sei vicino all'ottimale (importante!), Ogni passaggio aggiuntivo raddoppia il numero di cifre dell'accuratezza .
Perché? È facile da vedere con un esempio: per e , hai , , ecc. Che è incredibilmente veloce . (È super-esponenziale !)
In realtà, le persone spesso lo fanno quando i derivati di secondo ordine diventano troppo costosi. Ma la convergenza lineare può essere molto lenta. ad esempio, se hai potresti aver bisogno di 10.000.000 di iterazioni con convergenza lineare per ottenere , ma solo 23 iterazioni con convergenza quadratica. Quindi puoi capire perché c'è una drastica differenza tra convergenza lineare e quadratica. Questo non è vero per la convergenza del 2o e 3o ordine, ad esempio (vedi paragrafo successivo).
A questo punto, se conosci qualche informatica, capisci che con la convergenza del 2 ° ordine, il problema è già risolto . Se non vedi il perché, ecco perché: non c'è nulla di pratico da guadagnare triplicando il numero di cifre in ogni iterazione invece di raddoppiarlo: che cosa ti comprerà? Dopotutto, in un computer, anche un double
numero di precisione ha 52 bit di precisione, che è di circa 16 cifre decimali.
Forse ridurrà il numero di passaggi richiesti da 16 a 3 ... il che suona alla grande, fino a quando non ti rendi conto che ha il prezzo di dover calcolare i terzi derivati ad ogni iterazione, che è dove la maledizione della dimensionalitàti colpisce forte. Per un problema a dimensioni, hai appena pagato un fattore per ottenere un fattore di , che è stupido. E nel mondo reale i problemi hanno almeno centinaia di dimensioni (o addirittura migliaia o addirittura milioni), non solo ! Quindi ottieni un fattore di forse 20 pagando un fattore di, diciamo, 20.000 ... quasi un saggio compromesso.
L'altra metà è che generalmente si ottiene un comportamento peggiore quando si è lontani dall'ottimale, il che generalmente influisce negativamente sul numero di iterazioni che si devono fare.
In un contesto generale, i metodi di ordine superiore a 2 sono una cattiva idea. Naturalmente, se si può portare ulteriori ipotesi utili per la tavola (ad esempio, forse i dati fa assomigliare ad un polinomio di grado elevato, o si dispone di modi di delimitazione la posizione ottimale, ecc), allora forse si può trovare che sono una buona idea, ma quella sarà una decisione specifica del problema e non una regola generale da seguire.
Anche calcolare gli hessiani è un bel po 'di lavoro:
Ora guarda come appare la terza derivata: Questa è una matrice tridimensionale. Ecco come appaiono i suoi elementi:
La derivata del sesto sarà una matrice di sei dimensioni:
Di solito, il compromesso non è favorevole per andare più in alto dell'Assia. Intendo il compromesso tra potenziale guadagno di velocità attraverso l'utilizzo di approssimazioni di ordine superiore rispetto all'amplificazione del rumore. Hai sempre rumore negli ingressi perché stiamo parlando di applicazioni statistiche. Questo rumore sarà amplificato dai derivati.
Se giochi a golf, l'analogia nell'ottimizzazione è quella di oscillare prima cercando di arrivare al green, non preoccuparti troppo di una buca. Una volta, sul green, metteremo puntando un buco.
In genere, quando si analizza l'efficacia di tali algoritmi, si ottengono risultati come un passaggio di un algoritmo del quarto ordine che ha all'incirca la stessa efficacia di due passaggi di un algoritmo del secondo ordine.
Quindi la scelta dell'algoritmo da utilizzare è relativamente semplice: se un passaggio dell'algoritmo del quarto ordine richiede il doppio del lavoro o più di un passaggio dell'algoritmo del secondo ordine, è necessario utilizzare quest'ultimo.
Questa è la situazione tipica per questo tipo di metodi: l'algoritmo classico ha il rapporto ottimale tra lavoro ed efficacia per problemi generali. Mentre ci sono problemi occasionali in cui un approccio di ordine superiore è insolitamente facile da calcolare e può sovraperformare la variante classica, sono relativamente rari.
Puoi pensare all'ordine dei derivati come all'ordine di approssimazione polinomiale della funzione. La maggior parte delle routine di ottimizzazione si basa sulla convessità. Un polinomio quadratico sarà convesso / concavo ovunque mentre un polinomio di terzo ordine o superiore non sarà convesso ovunque. La maggior parte delle routine di ottimizzazione si basano su approssimazioni successive di funzioni convesse con quadratica per questo motivo. Un'approssimazione quadratica convessa richiede l'imposizione di una condizione di definitività positiva affinché il quadratico sia convesso.
Consentitemi di essere l'unico qui a difendere i metodi del 3 ° ordine per la convergenza SGD, ma sicuramente non nell'intero spazio ciò che richiederebbe coefficienti, ma ad esempio in una sola direzione, che richiede solo un singolo coefficiente aggiuntivo se avendo già il modello del 2 ° ordine in questa direzione.
Perché il modello del terzo ordine a direzione singola può essere utile? Ad esempio perché una derivata vicina allo zero in questa direzione significa sostanzialmente due scenari alternativi: plateau o punto di flesso - solo il primo richiede una dimensione del gradino maggiore e il terzo derivato consente di distinguerli.
Credo che andremo verso metodi ibridi multi-ordine: metodo del 2 ° ordine in un sottospazio a bassa dimensione, ad es. Da PCA di gradienti recenti, ciò che consente ancora una discesa gradiente simultanea del 1 ° ordine verso una parte del gradiente ortogonale a questo sottospazio ... e inoltre Aggiungerei, ad esempio, il modello del 3 ° ordine per un'unica direzione più rilevante.