Eu tenho uma função objetiva dependente de um valor , onde é a solução para um PDE. Estou otimizando por descida gradiente na condição inicial do PDE: . Ou seja, atualizo e, em seguida, tenho que integrar o PDE para calcular meu residual. Isso significa que, se eu fizesse uma pesquisa de linha para o tamanho da etapa de descida do gradiente (chame-o ), para cada valor potencial de eu teria que integrar o PDE novamente.
No meu caso, isso seria proibitivamente caro. Existe outra opção para o tamanho da etapa de descida de gradiente adaptável?
Não estou apenas procurando esquemas de princípios matemáticos aqui (embora, é claro, seja melhor que algo exista), mas ficaria feliz com qualquer coisa que geralmente seja melhor do que um tamanho de passo estático.
Obrigado!
fonte
Respostas:
Começarei com uma observação geral: informações de primeira ordem (ou seja, usando apenas gradientes que codificam a inclinação) podem fornecer apenas informações direcionais: podem dizer que o valor da função diminui na direção da pesquisa, mas não por quanto tempo . Para decidir até onde ir na direção da pesquisa, você precisa de informações adicionais (a descida do gradiente com comprimentos de passo constantes pode falhar, mesmo para problemas quadráticos convexos). Para isso, você basicamente tem duas opções:
Se, enquanto você escreve, você não tem acesso a segundas derivadas e a avaliação da função objetiva é muito cara, sua única esperança é comprometer-se: use informações aproximadas de segunda ordem suficientes para obter uma boa extensão de etapa candidata para que uma linha a pesquisa precisa apenas de avaliações (ou seja, no máximo um múltiplo constante (pequeno) do esforço necessário para avaliar seu gradiente).O(1)
Uma possibilidade é usar comprimentos de passo Barzilai - Borwein (veja, por exemplo, Fletcher: no método Barzilai-Borwein . Otimização e controle com aplicativos, 235–256, Appl. Optim., 96, Springer, Nova York, 2005 ). A idéia é usar uma aproximação de diferença finita da curvatura ao longo da direção da busca para obter uma estimativa do tamanho da etapa. Especificamente, escolha arbitrário, defina e, em seguida, para :g 0 : = ∇ f ( x 0 ) k = 0 , . . .α0>0 g0:=∇f(x0) k=0,...
Uma abordagem alternativa (e, na minha opinião, muito melhor) seria usar essa aproximação de diferenças finitas já no cálculo da direção da pesquisa; isso é chamado de método quase-Newton . A idéia é construir incrementalmente uma aproximação do Hessian usando diferenças de gradientes. Por exemplo, você pode (a matriz de identidade) e, para resolve e defina com como acima e . (Isso é chamado atualização Broyden∇2f(xk) H0=Id k=0,…
Felizmente, neste contexto, existe uma abordagem alternativa que utiliza todas as avaliações de funções. A idéia é que, para simétrico e definido positivo (que é garantido para a atualização BFGS), resolver seja equivalente a minimizar o modelo quadrático Em um método de região confiável , você faria isso com a restrição adicional que , em que é um raio da região confiável adequadamente escolhido (que desempenha o papel do comprimento da etapa ). A idéia principal agora é escolher esse raio de forma adaptável, com base na etapa computada. Especificamente, você olha para a proporção (1) q k ( s ) = 1Hk (1)
fonte