Estou tentando entender como o método de otimização baseado em adjuntos funciona para uma otimização restrita do PDE. Particularmente, estou tentando entender por que o método adjunta é mais eficiente para problemas em que o número de variáveis de design é grande, mas o "número de equações é pequeno".
O que eu entendo:
Considere o seguinte problema de otimização restrita do PDE:
onde é uma função objetiva (suficientemente contínua) de uma variável de projeto vetorial e um vetor de variável de campo desconhecida que depende das variáveis de design, e é a forma residual do PDE.
Claramente, podemos as primeiras variações de I e R como
Introduzindo um vetor de multiplicadores de lagrange , a variação na função objetivo pode ser escrita como
Reorganizando os termos, podemos escrever:
Portanto, se formos capazes de resolver modo que
Então, o gradiente é avaliado somente em termos das variáveis de design .
Assim, um algoritmo de otimização baseado em loop repetiria as seguintes etapas:
- Dadas as variáveis de design atuais
- Solução para as variáveis de campo (do PDE)
- Resolva para os multiplicadores de lagrange (da equação adjunta)
- Calcular gradientes
- Atualizar variáveis de design
Minha pergunta
Como esse "truque" adicional melhora o custo da otimização por iteração no caso em que o número de variáveis de design é grande? Ouvi dizer que o custo da avaliação de gradiente para o método adjacente é 'independente' do número de variáveis de design. Mas como exatamente isso é verdade?
Tenho certeza de que há algo muito óbvio que de alguma forma estou ignorando.
fonte
Respostas:
Penso no custo de uma perspectiva de álgebra linear. (Veja estas notas de Stephen G. Johnson , que acho mais intuitivas que a abordagem multiplicadora de Lagrange). A abordagem avançada equivale a solucionar diretamente as sensibilidades:
que envolve resolver um sistema linear para cada parâmetro no vetor , e avaliarβ
onde indica uma derivada total e indica uma derivada parcial.d ∂
A abordagem adjunta observa que
para que a variável adjunta (multiplicador de Lagrange) possa ser definida porλ
que corresponde à equação adjunta
Esse reagrupamento de termos requer apenas uma resolução linear, em vez de uma resolução linear para cada parâmetro, o que torna a avaliação adjunta barata para o caso de muitos parâmetros.
Não é totalmente independente; presumivelmente, o custo da avaliação e aumentará com o número de parâmetros. As soluções lineares, no entanto, ainda terão o mesmo tamanho, desde que o tamanho de não seja alterado. O pressuposto é que as soluções são muito mais caras que as avaliações de função.(∂I/∂β) (∂R/∂β) u
fonte
Em poucas palavras, a vantagem vem do fato de que, para calcular derivadas do objetivo reduzido , você realmente não precisa conhecer a derivada de em relação a como um objeto separado, mas apenas a parte dele que leva a variações em .I(β,u(β)) u(β) β I(β,u(β))
Deixe-me mudar para uma notação eu sou um pouco mais confortável com: ( ser o variável de projeto, sendo a variável de estado e sendo o objetivo). Digamos que seja bom o suficiente para aplicar o teorema da função implícita, então a equação tem uma solução única que é continuamente diferenciável em relação a e a derivada é dada pela solução de ( e são os derivados parciais) .
Isso significa que você pode definir o objetivo reduzido , que também é diferenciável (se for). Uma maneira de caracterizar o gradiente é através de derivadas direcionais (por exemplo, calcule todas as derivadas parciais em relação a uma base do espaço de design). Aqui, a derivada direcional na direção é dada pela regra da cadeia como Se for bom, a única coisa difícil de calcular é para determinado . Isso pode ser feito multiplicando porj(u):=J(y(u),u) J(y,u) ∇j(u) h
No entanto, se encontrarmos um operador tal que então esse deve ser o gradiente desejado. Olhando para , podemos escrever (com sendo o operador adjunto), então tudo o que precisamos calcular é . Usando isso , isso pode ser feito usando , ou seja, computando e definindo Na otimização com restrição de PDE,∇j
fonte