Comprender el costo del método adjunto para la optimización con restricción de pde

11

Estoy tratando de entender cómo funciona el método de optimización basado en adjuntos para una optimización restringida PDE. Particularmente, estoy tratando de entender por qué el método adjunto es más eficiente para problemas donde el número de variables de diseño es grande, pero el "número de ecuaciones es pequeño".

Lo que yo entiendo:

Considere el siguiente problema de optimización restringida de PDE:

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

donde es una función objetivo (suficientemente continua) de un vector de variables de diseño y un vector de variables de campo incógnitas que dependen de las variables de diseño, y es la forma residual del PDE.Iβu(β)R(u)

Claramente, podemos las primeras variaciones de I y R como

δI=Iβδβ+Iuδu

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

Introduciendo un vector de multiplicadores de lagrange , la variación en la función objetivo se puede escribir comoλ

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

Al reorganizar los términos, podemos escribir:

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

Por lo tanto, si somos capaces de resolver modo queλ

Iu+λTRu=0 (adjoint equation)

Luego se evalúa el gradiente solo en términos de las variables de diseño .δI=[Iβ+λTRβ]δββ

Por lo tanto, un algoritmo de optimización basado en adjuntos recorrería los siguientes pasos:

  1. Dadas las variables de diseño actualesβ
  2. Resolver para las variables de campo (del PDE)u
  3. Resolver para los multiplicadores de lagrange (de la ecuación adjunta)λ
  4. Calcular gradientesIβ
  5. Actualizar variables de diseñoβ

Mi pregunta

¿Cómo mejora este 'truco' adjunto el costo de la optimización por iteración en el caso en que el número de variables de diseño es grande? Escuché que el costo de la evaluación de gradiente para el método adjunto es 'independiente' del número de variables de diseño. Pero, ¿cómo es exactamente esto cierto?

Estoy seguro de que hay algo muy obvio que de alguna manera estoy pasando por alto.

Paul
fuente
3
Por cierto, el multiplicador de Lagrange generalmente se agrega al objetivo funcional, no a la variación; así . Establecer la derivada con respecto a en cero produce la ecuación adjunta, e insertar esto (y la solución de la ecuación de estado ) en la derivada con respecto a produce el gradiente. Si comienza con la formulación débil del PDE, las cosas se vuelven aún más simples: simplemente inserte el multiplicador de Lagrange en lugar de la función de prueba. No hay necesidad de la forma fuerte o la integración parcial en ningún lado. minu,βmaxλI(u,β)+λTR(u,β)uuR(u,β)=0β
Christian Clason
1
La parte más cara de cualquier simulación es la fase de resolución. Al usar el adjunto obtienes el gradiente en dos soluciones, mucho más barato en comparación con las diferencias finitas donde al menos necesitas n + 1 soluciones, siendo n el número de parámetros libres en tu modelo.
stali

Respuestas:

10

¿Cómo mejora este 'truco' adjunto el costo de la optimización por iteración en el caso en que el número de variables de diseño es grande?

Pienso en el costo desde una perspectiva de álgebra lineal. (Ver estas notas de Stephen G. Johnson , que encuentro más intuitivas que el enfoque multiplicador de Lagrange). El enfoque hacia adelante equivale a resolver las sensibilidades directamente:

uβ=(Ru)1Rβ

que implica resolver un sistema lineal para cada parámetro en el vector , luego evaluarβ

dIdβ=Iβ+Iuuβ,

donde denota una derivada total y denota una derivada parcial.d

El enfoque adjunto señala que

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

entonces la variable adjunta (multiplicador de Lagrange) se puede definir porλ

Iu(Ru)1=λT,

que corresponde a la ecuación adjunta

Iu+λTRu=0.

Esta reagrupación de términos requiere solo una solución lineal, en lugar de una solución lineal para cada parámetro, lo que hace que la evaluación adjunta sea barata para el caso de muchos parámetros.

Escuché que el costo de la evaluación de gradiente para el método adjunto es 'independiente' del número de variables de diseño. Pero, ¿cómo es exactamente esto cierto?

No es totalmente independiente; presumiblemente, el costo de evaluar y aumentará con el número de parámetros. Sin embargo, las soluciones lineales seguirán siendo del mismo tamaño, siempre que el tamaño de no cambie. La suposición es que las soluciones son mucho más caras que las evaluaciones de funciones.(I/β)(R/β)u

Geoff Oxberry
fuente
8

En pocas palabras, la ventaja proviene del hecho de que para calcular las derivadas del objetivo reducido , realmente no es necesario conocer la derivada de con respecto a como un objeto separado, pero solo esa parte del mismo que conduce a variaciones en .I(β,u(β))u(β)βI(β,u(β))

Permítanme cambiar a una notación que estoy un poco más cómodo con: ( ser el variable de diseño, siendo la variable de estado, y siendo el objetivo). Digamos que es lo suficientemente bueno como para aplicar el teorema de la función implícita, por lo que la ecuación tiene una solución única que es continuamente diferenciable con respecto a , y la derivada viene dado por la solución de ( y son las derivadas parciales) .

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

Esto significa que puede definir el objetivo reducido , que también es diferenciable (si es). Una forma de caracterizar el gradiente es a través de derivadas direccionales (por ejemplo, calcular todas las derivadas parciales con respecto a una base del espacio de diseño). Aquí, la derivada direccional en la dirección viene dada por la regla de la cadena como Si es agradable, lo único difícil de calcular es para dada . Esto se puede hacer multiplicando conj(u):=J(y(u),u)J(y,u)j(u)h

(2)j(u;h)=Jy(y(u),u),y(u)h+Ju(y(u),u),h.
Jy(u)hh(1)hdesde la derecha y resolviendo para (que permite el teorema de la función implícita), es decir, calcular y conectando esta expresión en . En la optimización restringida por PDE, esto equivale a resolver un PDE linealizado para cada vector base del espacio de diseño.y(u)h
(3)[y(u)h]=ey(y(u),u)1[eu(y(u),u)h]
(2) h

Sin embargo, si encontramos un operador tal que entonces este debe ser el gradiente deseado. Mirando , podemos escribir (con siendo el operador adjunto), por lo que todo lo que necesitamos para calcular es . Usando eso , esto se puede hacer usando , es decir, computando y estableciendo En la optimización restringida por PDE,j

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)suele ser algún tipo de residuo, y la computación implica la resolución de un PDE adjunto (lineal) único , independiente de la dimensión del espacio de diseño. (De hecho, esto incluso funciona para parámetros distribuidos, es decir, si es una función en algún espacio de Banach de dimensión infinita, donde el primer enfoque es inviable).λu
Christian Clason
fuente