Metodi basati su Newton nell'ottimizzazione e nella risoluzione di sistemi di equazioni non lineari


12

Ho chiesto chiarimenti su una recente domanda su minpack e ho ottenuto il seguente commento:

Qualsiasi sistema di equazioni equivale a un problema di ottimizzazione, motivo per cui i metodi di ottimizzazione basati su Newton assomigliano molto ai metodi basati su Newton per risolvere i sistemi di equazioni non lineari.

Ciò che mi confonde di questo commento (e delle relative opinioni negative su solutori di minimi quadrati non lineari specializzati come minpack) potrebbe essere meglio spiegato sull'esempio del metodo del gradiente coniugato . Questo metodo è applicabile a sistemi Ax=b con un simmetrica definita positiva matrice A . Potrebbe anche essere usato per risolvere il problema meno quadrato generale minx||Axb||2 per una matrice arbitraria A, ma non è consigliabile farlo. Una spiegazione del motivo per cui non dovremmo farlo è che il numero di condizioni del sistema aumenterebbe in modo significativo.

Ma se trasformare un sistema di equazioni in un problema di ottimizzazione è considerato problematico anche per il caso lineare, perché dovrebbe essere meno problematico per il caso generale? Sembra in qualche modo correlato all'utilizzo di un algoritmo di ottimizzazione all'avanguardia, invece di utilizzare un solutore dei minimi quadrati non lineari leggermente invecchiato. Ma i problemi non sono legati all'eliminazione delle informazioni e all'aumento del numero di condizioni del sistema relativamente indipendente dall'algoritmo di ottimizzazione effettivamente utilizzato?

Risposte:


10

Poiché una delle mie risposte è stata citata, cercherò di chiarire perché ho suggerito di utilizzare IPOPT invece di MINPACK.

Le mie obiezioni all'utilizzo di MINPACK non hanno nulla a che fare con gli algoritmi utilizzati da MINPACK e tutto ciò che riguarda la loro implementazione. La mia obiezione principale è che il software risale al 1980 ed è stato aggiornato l'ultima volta nel 1999. Jorge Moré è in pensione; Dubito che lui o uno qualsiasi degli altri autori del software lo tengano più sotto controllo, e non ci sono team di persone che lo supportano attivamente. L'unica documentazione che posso trovare sul software è l'originale rapporto tecnico Argonne del 1980, scritto da Jorge Moré e dagli altri autori di MINPACK. (I capitoli 1-3 possono essere trovati qui e il Capitolo 4 può essere trovato qui.) Dopo aver cercato il codice sorgente MINPACK e aver consultato la documentazione (i PDF sono immagini scansionate e non possono essere cercate), non vedo alcuna opzione per soddisfare i vincoli. Poiché il poster originale del problema dei minimi quadrati non lineari voleva risolvere un problema dei minimi quadrati non lineare vincolato, MINPACK non risolverà nemmeno quel problema.

Se osservi la mailing list IPOPT, alcuni utenti indicano che le prestazioni del pacchetto sui problemi NLS (nonline linear squares) sono miste rispetto agli algoritmi Levenberg-Marquardt e agli algoritmi NLS più specializzati (vedi qui , qui e qui ). Le prestazioni di IPOPT rispetto agli algoritmi NLS dipendono ovviamente dal problema. Dato il feedback degli utenti, IPOPT sembra una ragionevole raccomandazione relativa agli algoritmi NLS.

Tuttavia, è opportuno sottolineare che gli algoritmi NLS dovrebbero essere studiati. Sono d'accordo. Penso solo che dovrebbe essere usato un pacchetto più moderno di MINPACK perché credo che funzionerà meglio, sarà più utilizzabile e sarà supportato. Cerere sembra un pacchetto candidato interessante, ma al momento non è in grado di gestire problemi vincolati. TAOfunzionerebbe su problemi di minimi quadrati vincolati da box, sebbene non implementasse il classico Levenberg-Marquardt, ma implementasse invece un algoritmo privo di derivati. Un algoritmo senza derivati ​​probabilmente funzionerebbe bene per problemi su larga scala, ma non lo userei per problemi su piccola scala. Non sono riuscito a trovare altri pacchetti che abbiano ispirato molta fiducia nella loro ingegneria del software. Ad esempio, GALAHAD non sembra usare il controllo della versione o alcun test automatizzato, a prima vista. Anche MINPACK non sembra fare queste cose. Se hai esperienza con MINPACK o consigli su un software migliore, sono tutto a posto.

Con tutto ciò in mente, tornando alla citazione del mio commento:

Qualsiasi sistema di equazioni equivale a un problema di ottimizzazione, motivo per cui i metodi di ottimizzazione basati su Newton assomigliano molto ai metodi basati su Newton per risolvere i sistemi di equazioni non lineari.

Un commento migliore è probabilmente qualcosa all'effetto di:

nng(x)=0

Questa affermazione vale anche per la risoluzione di sistemi di equazioni sotto vincoli. Non conosco alcun algoritmo considerato "risolutore di equazioni" nel caso in cui vi siano vincoli sulle variabili. L'approccio comune che conosco, forse itterizzato da diversi semestri di corsi di ottimizzazione e ricerca in un laboratorio di ottimizzazione, è quello di incorporare i vincoli sul sistema di equazioni in una formulazione di ottimizzazione. Se dovessi provare a usare i vincoli in uno schema simile a Newton-Raphson per la risoluzione delle equazioni, probabilmente finiresti con un gradiente proiettato o un metodo di regione di fiducia proiettato, molto simile ai metodi usati nell'ottimizzazione vincolata.


Ho esperienza con MINPACK. È abbastanza buono come metodo locale. Mi piace che i criteri di arresto funzionino bene senza modificare. So che la cosa con i vincoli può essere fastidiosa, soprattutto perché non sarebbe un grande cambiamento all'algoritmo stesso. Conosco anche implementazioni LM che offrono limiti alle variabili e vincoli lineari generali, ma queste implementazioni non sono molto più giovani di MINPACK stesso e non mi sono preoccupato di valutarle.
Thomas Klimpel,

1
g(x)=0g(x)2

@JedBrown: dovrei cambiare la lingua. A mio avviso, l'ottimizzazione senza derivati ​​(DFO) è preferibile solo quando le valutazioni delle funzioni sono molto costose. Per qualche ragione, il caso fondamentale che viene in mente è quando l'obiettivo consiste nel risolvere un PDE, motivo per cui ho detto "su larga scala" (ovviamente, per me, nell'ottimizzazione, "PDE su larga scala" significa qualcosa di diverso rispetto a per voi, che risolvete le PDE in parallelo su base regolare). Quando penso a "risolvere equazioni con vincoli", il problema che ho in mente è . (proseguendo)g(x)=0,xS,SRn,SRn
Geoff Oxberry,

@JedBrown: un modo standard per affrontare questo problema è risolvere . Potrebbero esserci altri modi, ma non ne conosco nessuno. Non sto suggerendo che uno scarti ; i minimi con valori di funzione oggettivi diversi da zero non risolvono chiaramente il sistema di equazioni da risolvere. Nel caso non convesso, sono necessari metodi di ottimizzazione globale per certificare l'esistenza o l'inesistenza di soluzioni. Non ho molta esperienza con le disuguaglianze variazionali, quindi non mi è immediatamente chiaro dove i VI entrano in gioco qui, specialmente perché non è necessariamente un cono. minxSg(x)2g(x)=0S
Geoff Oxberry,

1
Quindi è ancora necessario per essere in grado di definire con precisione cosa si intende per una soluzione che si trova al confine di . I VI, spesso scritti come una formulazione di complementarità, fanno esattamente questo. Ho un'opinione opposta rispetto ai derivati, soprattutto quando lo spazio di progettazione è ampio. Se l'obiettivo comporta una costosa risoluzione di PDE, lo considero un requisito in base al quale abbiamo un ausilio in modo da poter utilizzare i gradienti per esplorare lo spazio di progettazione. Un aggiunta PDE costa solo un piccolo multiplo di una risoluzione in avanti indipendente dalla dimensione dello spazio. Ciò pone ulteriori requisiti sulla scorrevolezza del modello. S
Jed Brown,

14

Se un determinato sistema non lineare è la condizione di ottimalità del primo ordine per un problema di ottimizzazione, allora spesso possiamo produrre un algoritmo più robusto utilizzando tali informazioni. Ad esempio, considera l'equazione

Trama dell'obiettivo originale

Questo ha chiaramente un minimo unico e ci aspettiamo che il nostro metodo di ottimizzazione lo trovi indipendentemente dal punto di partenza. Ma se osserviamo solo le condizioni di ottimalità del primo ordine, stiamo cercando una soluzione di [Wolfram Alpha]xf(x)=0

pendenza

che ha una soluzione unica, ma molti metodi di ricerca dei root possono rimanere bloccati al minimo locale.

Se riformuliamo un nuovo problema di ottimizzazione per minimizzare la norma del gradiente quadrato, stiamo cercando un minimo globale di [Wolfram Alpha] che ha più minimi locali.xf(x)2

inserisci qui la descrizione dell'immagine

Per riassumere, abbiamo iniziato con un problema di ottimizzazione che aveva una soluzione unica che potevamo garantire che un metodo avrebbe trovato. Abbiamo riformulato come un problema di ricerca delle radici non lineare che aveva una soluzione unica che potevamo identificare localmente, ma un metodo di ricerca delle radici (come Newton) potrebbe ristagnare prima di raggiungerlo. Abbiamo quindi riformulato il problema della ricerca della radice come un problema di ottimizzazione che presentava più soluzioni locali (nessuna misura locale può essere utilizzata per identificare che non siamo al minimo globale).

In generale, ogni volta che convertiamo un problema dall'ottimizzazione al rootfinding o viceversa, rendiamo i metodi disponibili e le garanzie di convergenza associate più deboli. I meccanismi reali dei metodi sono spesso molto simili, quindi è possibile riutilizzare molto codice tra solutori non lineari e ottimizzazione.


Jed, quei link WA non vanno proprio a quello che dici che fanno. Le parentesi vengono ignorate o passate erroneamente nell'URL.
Bill Barth,

Strano, i collegamenti funzionano per me. Potrebbe dipendere dal browser web? Qualche suggerimento per un modo alternativo di presentare questo?
Jed Brown,

Non sono sicuro. Tagliare e incollare il collegamento riformattato da una scheda all'altra fa sì che avviti WA per rovinarlo di nuovo da solo!
Bill Barth,

Qualcun altro ha problemi con i collegamenti? Ho provato in più browser e funziona bene in ogni caso.
Jed Brown,

Questa è una bella risposta Tuttavia, ho deciso di accettare invece la risposta di Geoff Oxberry, perché parte di ciò che stavo cercando di capire sono le questioni del "mondo reale" relative alla domanda. Ciò include che persone come me usano e raccomandano MINPACK, nonostante siano a conoscenza delle sue carenze, e che altre persone chiedono consigli sulla risoluzione di sistemi non lineari "banalmente piccoli", ma non riescono a testare nemmeno un singolo solutore per un periodo di tre mesi lasso di tempo.
Thomas Klimpel,
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.