Perché non usare la terza derivata per l'ottimizzazione numerica?


29

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?


11
Una volta trovato l'ottimale, perché guardare oltre? Anzi, cosa stai davvero cercando di chiedere? Qual è la tua domanda statistica?
whuber

2
In molti casi, la distribuzione limitante di stime che risolvono equazioni di stima ottimali o riducono al minimo le funzioni oggettive sono congiuntamente normali, quindi possono essere caratterizzate interamente dal loro primo e secondo momento.
AdamO,

3
Se riesci a fare qualcosa, non significa che dovresti farlo. I derivati ​​di ordine superiore sono sempre più sensibili al rumore.
Vladislavs Dovgalecs,

6
Sto votando per chiudere questa domanda come fuori tema perché non si tratta di statistiche. Riguarda l'ottimizzazione numerica
Aksakal il

11
Non hai fatto progressi scientifici. Halley ti ha battuto per circa 3 1/4 secoli. Halley, E., 1694, "Un metodo nuovo, esatto e facile per trovare le radici di qualsiasi equazione in generale, e quello senza alcuna riduzione precedente" Philos. Trans. Roy. Soc. Londra, 18, 136-145. Esistono metodi di derivazione di terzo livello per l'ottimizzazione, studiati da molti anni, ma non hanno raggiunto grande popolarità. Se implementato bene, il loro più grande vantaggio può essere un aumento della robustezza rispetto a un metodo di Newton ben implementato. Questo può essere di vantaggio per i problemi più cattivi.
Mark L. Stone,

Risposte:


31

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 hknth(k+n1k1)


3
Potresti spiegare come stai usando derivati ​​più elevati?
whuber

5
@whuber Ciò a cui l'OP si riferisce, estremamente poco chiaro, devo ammetterlo, è il metodo di ottimizzazione di Newton. La domanda è davvero "Perché il metodo di Newton utilizza solo derivati ​​derivati ​​primo e secondo, non derivati ​​terzi o superiori?". È fuori tema oltre ad essere poco chiaro quello che sta chiedendo, ma ho pensato di dare una risposta piuttosto che votare per chiudere per una ragione o per l'altra.
jbowman,

4
+1 Penso che questa sia una buona risposta, ma potrebbe essere migliorata mostrando ciò che stai facendo in base all'espansione di Taylor.
Matthew Drury,

8
Come uno dei miei professori - anche un consulente di grande successo - ci ha detto una volta: "Ogni volta che pensi di aver capito come costruire una trappola per topi migliore, prova a capire perché le 1.000 persone che hanno avuto la stessa identica idea prima di non averlo messo sul mercato ". Il punto centrale dell'uso di Newton è salvare i calcoli, altrimenti faremmo solo ricerche esaustive. Ti assicuro che l'aggiunta di una terza derivata a un problema tridimensionale pagherà molto, molto raramente per il raddoppio del calcolo ad ogni passaggio con iterazioni notevolmente ridotte a meno che la funzione non sia ~ un cubo.
jbowman,

9
No, non lo è - è un commento un po 'più profondo di quanto possa apparire per la prima volta. Il punto è duplice: la maggior parte delle idee che all'inizio sembrano buone, non lo sono, per ragioni che potrebbero non essere affatto ovvie, e la vera chiave per una rottura potrebbe non essere l'idea stessa ma qualcosa che vince o aggira il difetto in l'idea. Questo ragionamento, in effetti, lo sottolinea e ti dice di cercare punti deboli nell'idea. Non si tratta di arrendersi, si tratta di riflettere sulle cose e con un occhio critico a quello.
jbowman il

22

Non vedo davvero quale sia l'aspetto statistico di questa domanda, quindi risponderò alla parte di ottimizzazione.

Ci sono 2 parti della convergenza: costo dell'iterazione e conteggio dell'iterazione

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.1020

Scopriamo cosa sta succedendo.

Quindi: perché non usare derivati ​​del 2 ° ordine?

In parte perché (e questo vale anche per il 2 ° ordine, ma ne parleremo tra poco):

I metodi di ordine superiore generalmente convergono più velocemente solo quando si avvicinano all'ottimale .

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.

Quindi perché fermarsi al 2 ° ordine quando ci si trova vicino alla radice?

Perché il comportamento di convergenza "quadratica" è davvero "abbastanza buono"!

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 :ϵkkc

|ϵk+1|c |ϵk|2

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 !)c=1|ϵ1|=0.1|ϵ2|0.01|ϵ3|0.0001

Perché non fermarsi al 1 ° ordine anziché al 2 ° ordine?

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).ϵk=0.9999999|ϵ|<0.5

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 doublenumero 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.6656

Ma ancora: ricordare che la maledizione della dimensionalità è metà della storia .

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.

Conclusione

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.


Ottima risposta, ma penso che il teorema di Abel-Ruffini sia un'aringa rossa. Prima di tutto, stiamo parlando di problemi multivariati, quindi calcolare zeri di polinomi univariati è al massimo un sottoproblema di facile interesse. E, soprattutto, non importa se esiste una formula chiusa per la soluzione o no: in pratica, per quanto ne so, le persone non usano formule chiuse nemmeno per i polinomi di grado 4. Sono troppo lunghi, complicati e instabili. Gli zeri di polinomi sono calcolati numericamente, in pratica (usando QR sulla matrice compagna).
Federico Poloni,

@FedericoPoloni: Sì, gli stessi pensieri mi sono venuti in mente quando stavo decidendo di inserirla. All'inizio non ce l'avevo ... Pensavo che forse avrei dovuto inserirla come un altro esempio del perché i gradi più alti possano avere problemi imprevisti. Ma immagino che lo toglierò di nuovo se non è utile, grazie per il commento.
Mehrdad,

@FedericoPoloni: PS mentre siamo sull'argomento del calcolo numerico, potresti trovare interessanti le funzioni di Sturm (se non ne hai già sentito parlare).
Mehrdad,

7

Anche calcolare gli hessiani è un bel po 'di lavoro:

H=[2fx122fx1x22fx1xn2fx2x12fx222fx2xn2fxnx12fxnx22fxn2].

Ora guarda come appare la terza derivata: Questa è una matrice tridimensionale. Ecco come appaiono i suoi elementi:

H/x=[Hx1Hx2Hxn]
(H/x)ijk=3fxixjxk

La derivata del sesto sarà una matrice di sei dimensioni:

6fxixjxkxlxmxn

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.


4

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.


2

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.


3
No, la quadratica non è necessariamente convessa o concava (si pensi a ). x2y2
Dirk,

@Dirk uguale a cosa? x2y2
Ovi,

1
È una funzione quadratica ma non convessa né concava.
Dirk,

@Dirk sì hai ragione, avrei dovuto aggiungere un avvertimento semi-definito positivo. Lo aggiungerò alla mia risposta.
Lucas Roberts, il

1

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.dim3/6

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.

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.