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:
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.
Claramente, podemos las primeras variaciones de I y R como
Introduciendo un vector de multiplicadores de lagrange , la variación en la función objetivo se puede escribir como
Al reorganizar los términos, podemos escribir:
Por lo tanto, si somos capaces de resolver modo que
Luego se evalúa el gradiente solo en términos de las variables de diseño .
Por lo tanto, un algoritmo de optimización basado en adjuntos recorrería los siguientes pasos:
- Dadas las variables de diseño actuales
- Resolver para las variables de campo (del PDE)
- Resolver para los multiplicadores de lagrange (de la ecuación adjunta)
- Calcular gradientes
- 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.
fuente
Respuestas:
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:
que implica resolver un sistema lineal para cada parámetro en el vector , luego evaluarβ
donde denota una derivada total y denota una derivada parcial.d ∂
El enfoque adjunto señala que
entonces la variable adjunta (multiplicador de Lagrange) se puede definir porλ
que corresponde a la ecuación adjunta
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.
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
fuente
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) .
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
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
fuente