Comprensione del costo del metodo aggiunto per l'ottimizzazione vincolata da pde


11

Sto cercando di capire come funziona il metodo di ottimizzazione basato sull'aggiunta per un'ottimizzazione vincolata PDE. In particolare, sto cercando di capire perché il metodo aggiunto è più efficiente per problemi in cui il numero di variabili di progettazione è grande, ma il "numero di equazioni è piccolo".

Quello che ho capito:

Si consideri il seguente problema di ottimizzazione vincolata PDE:

minβ I(β,u(β))s.t.R(u(β))=0

dove I è una funzione oggettiva (sufficientemente continua) di una variabile di disegno vettoriale β e un vettore di variabili di campo sconosciute u(β) che dipendono dalle variabili di disegno, e R(u) è la forma residua del PDE.

Chiaramente, possiamo le prime variazioni di I e R come

δI=Iβδβ+Iuδu

δR=Rβδβ+Ruδu=0

Introducendo un vettore di moltiplicatori di lagrange λ , la variazione della funzione obiettivo può essere scritta come

δI=Iβδβ+Iuδu+λT[Rβδβ+Ruδu]

Riorganizzando i termini, possiamo scrivere:

δI=[Iβ+λTRβ]δβ+[Iu+λTRu]δu

Quindi, se siamo in grado di risolvere per tale cheIλ

Iu+λTRu=0 (adjoint equation)

Quindi viene valutato il gradiente solo in termini di variabili di progettazione .βδI=[Iβ+λTRβ]δββ

Pertanto, un algoritmo di ottimizzazione basato su aggiunta verrebbe eseguito in sequenza sui seguenti passaggi:

  1. Date le variabili di progettazione correntiβ
  2. Risolvi per le variabili di campo (dal PDE)u
  3. Risolvi per i moltiplicatori di lagrange (dall'equazione aggiunta)λ
  4. Calcola i gradientiIβ
  5. Aggiorna variabili di progettazioneβ

La mia domanda

In che modo questo "trucco" aggiunto migliora il costo dell'ottimizzazione per iterazione nel caso in cui il numero di variabili di progettazione sia elevato? Ho sentito che il costo della valutazione del gradiente per il metodo aggiunto è "indipendente" dal numero di variabili di progettazione. Ma com'è esattamente vero?

Sono sicuro che c'è qualcosa di molto ovvio che in qualche modo sto trascurando.


3
A proposito, il moltiplicatore di Lagrange viene solitamente aggiunto all'obiettivo funzionale, non alla variazione; quindi . Impostando la derivata rispetto a su zero si ottiene l'equazione aggiunta e inserendo questa (e la soluzione dell'equazione di stato ) nella derivata rispetto a ottiene il gradiente. Se inizi con la formulazione debole del PDE, le cose diventano ancora più semplici: basta inserire il moltiplicatore di Lagrange al posto della funzione di test. Non è necessario per la forma forte o l'integrazione parziale ovunque. u u R ( u , β )minu,βmaxλI(u,β)+λTR(u,β)uuβR(u,β)=0β
Christian Clason,

1
La parte più costosa di qualsiasi simulazione è la fase di risoluzione. Usando l'aggiunto si ottiene il gradiente in due soluzioni, molto più economico rispetto alle differenze finite in cui è necessario almeno n + 1 soluzioni, essendo n il numero di parametri liberi nel modello.
Stali,

Risposte:


10

In che modo questo "trucco" aggiunto migliora il costo dell'ottimizzazione per iterazione nel caso in cui il numero di variabili di progettazione sia elevato?

Penso al costo da una prospettiva di algebra lineare. (Vedi queste note di Stephen G. Johnson , che trovo più intuitive rispetto all'approccio del moltiplicatore di Lagrange). L'approccio forward equivale a risolvere direttamente le sensibilità:

uβ=(Ru)1Rβ

che comporta la risoluzione di un sistema lineare per ciascun parametro nel vettore , quindi la valutazioneβ

dIdβ=Iβ+Iuuβ,

dove indica un derivato totale e indica un derivato parziale.d

L'approccio aggiunto lo osserva

dIdβ=IβIu(Ru)1Rβ,

così la variabile aggiunta (moltiplicatore di Lagrange) può essere definita daλ

Iu(Ru)1=λT,

che corrisponde all'equazione aggiunta

Iu+λTRu=0.

Questo raggruppamento di termini richiede solo una risoluzione lineare, anziché una risoluzione lineare per ciascun parametro, il che rende la valutazione aggiuntiva economica per il caso di molti parametri.

Ho sentito che il costo della valutazione del gradiente per il metodo aggiunto è "indipendente" dal numero di variabili di progettazione. Ma com'è esattamente vero?

Non è totalmente indipendente; presumibilmente il costo della valutazione e aumenterà con il numero di parametri. Le soluzioni lineari, tuttavia, avranno comunque le stesse dimensioni, purché le dimensioni di non cambino. Il presupposto è che i risolti sono molto più costosi delle valutazioni delle funzioni.( R /β ) u(I/β)(R/β)u


8

In breve, il vantaggio deriva dal fatto che per calcolare le derivate dell'obiettivo ridotto , non è necessario conoscere la derivata di rispetto a come oggetto separato, ma solo quella parte di esso che porta a variazioni in .u ( β ) β I (I(β,u(β))u(β)βI(β,u(β))

Vorrei passare a una notazione con cui mi sento un po 'più a agio con: ( essendo il variabile di progettazione, come variabile di stato e come obiettivo). Let esempio è abbastanza bello applicare la funzione teorema implicita, quindi l'equazione ha una soluzione unica che è continuamente differenziabile rispetto a , e il derivato è dato dalla soluzione di ( ed sono i derivati ​​parziali) .u y

miny,uJ(y,u)subject toe(y,u)=0
uye ( y , u ) e ( y , u ) = 0 y ( u ) u y ( u ) e y ( y ( u ) , u ) y ( u ) + = 0 e yJe(y,u)e(y,u)=0y(u)uy(u)
(1)ey(y(u),u)y(u)+eu(y(u),u)=0
eyeu

Ciò significa che puoi definire l'obiettivo ridotto , che è anche differenziabile (se è). Un modo per caratterizzare il gradiente è tramite derivate direzionali (ad esempio, calcolare tutte le derivate parziali rispetto a una base dello spazio di progettazione). Qui, la derivata direzionale nella direzione è data dalla regola della catena come Se è carino, l'unica cosa difficile da calcolare è per data . Questo può essere fatto moltiplicando perJ ( y , u ) ) h h ( 1 ) h y (J y ( uj(u):=J(y(u),u)J(y,u)h j ' ( u ; h ) = J y ( y ( u ) , u ) , y ' ( u ) u ) , u ) , h .j(u)h

(2)j(u;h)=Jy(y(u),u),y(u)h+Ju(y(u),u),h.
Jy(u)hh(1)hda destra e risolvendo per (che il teorema della funzione implicita consente), ovvero, calcolo e inserendo questa espressione in . Nell'ottimizzazione con vincolo PDE, ciò equivale a risolvere un PDE linearizzato per ogni vettore base dello spazio di progettazione.y(u)h
(3)[y(u)h]=ey(y(u),u)1[eu(y(u),u)h]
(2) h

Tuttavia, se troviamo un operatore tale che allora questo deve essere il gradiente desiderato. Guardando , possiamo scrivere (con essendo l'operatore aggiunto), quindi tutto ciò che dobbiamo calcolare è . Usando quello , questo può essere fatto usando , cioè, computing e impostazione vincolata PDE,j( 1 ) J y ( y ( u ) , u ) , y ' ( u ) h ) ( A B ) * = B * A * ( 3 ) λ : J y ( y ( u ) , u ) λ u

j(u;h)=j,hfor all h,
(1)
Jy(y(u),u),y(u)h=y(u)Jy(y(u),u),h
y(u)y(u)jy(y(u),u)(AB)=BA(3)
λ:=ey(y(u),u)Jy(y(u),u)
j(u)=eu(y(u),u)λ+Ju(y(u),u).
Jy(y(u),u)di solito è una sorta di residuo, e computing implica la risoluzione di un singolo PDE aggiunto (lineare), indipendente dalla dimensione dello spazio di progettazione. (In effetti, questo funziona anche con parametri distribuiti, cioè se una funzione in uno spazio di Banach a dimensione infinita, dove il primo approccio è impossibile.)λu
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.