Tamanho da etapa de descida de gradiente adaptável quando você não pode fazer uma pesquisa de linha

9

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.Eϕ(x,t=1.0)ϕ(x,t)Eϕ(x,t=0.0)ϕ(x,t=0.0)αα

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!

NLi10Me
fonte
Acho que não quero modificar a maneira como integro o PDE no momento, pois para mim isso seria uma grande reescrita de código. Além disso, não é tanto que o PDE seja complicado, pois preciso resolvê-lo em uma grade muito densa no espaço-tempo, pois preciso de precisão numérica muito alta.
NLi10Me
Por outro lado, o método BB (com o qual eu não estava familiarizado) parece muito bom; tudo o que tenho que fazer é acompanhar o estado e o gradiente da iteração anterior e recebo uma aproximação de segunda ordem ... isso parece muito bom. No entanto, a derivação assume um quadrático convexo e meu problema quase certamente não é. No entanto, certamente também estou encontrando (e satisfeito com) mínimos locais e não globais. Você sabe o desempenho do BB em problemas dimensionais muito altos?
NLi10Me 14/07/2016
Acho que o que eu quis dizer sobre mínimos locais é que, na vizinhança de um mínimo local, nenhuma função é aproximadamente quadrática? Eu acho que meu estado inicial é suficientemente próximo ao mínimo, pois em muitos casos eu recebo uma convergência suave, mesmo com o tamanho estático da etapa. Portanto, apesar de ter uma dimensão muito alta e, em geral, se você considerar todo o espaço de pesquisa, o problema não é convexo / não quadrático, o BB ainda pode ser uma boa escolha sem pesquisa de linha? ϕ(0)(x,t=0.0)
NLi10Me 14/07/2016
Os outros "ingredientes" para são dados experimentais de imagem. tenta distorcer uma imagem para "corresponder" à outra (medida por alguns funcionais correspondentes, como a norma L2 integrada sobre voxels). Para alguns pares de imagens, obtenho uma convergência suave com (minha escolha atual de) tamanho de passo estático. Para outros pares de imagens, fico bastante oscilante. O sistema precisa ser totalmente automatizado, por isso não posso voltar e editar manualmente o tamanho da etapa para pares de imagens problemáticos. ϕ ( x , t = 1,0 )Eϕ(x,t=1.0)
NLi10Me
Certo, tenho que resolver o sistema adjacente para obter o gradiente (que é um sistema mais desagradável e leva mais tempo). Ok, acho que vou tentar o BB com a pesquisa de linha de retorno. Obrigado muito muito para o conselho; meus consultores costumam ser difíceis de encontrar e muitos deles não estão interessados ​​na implementação, mas apenas no modelo. Estou descobrindo que os métodos numéricos são o componente crucial para demonstrar se um modelo é bom ou não em primeiro lugar, então obrigado novamente, eu realmente aprecio isso.
NLi10Me 14/07

Respostas:

15

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:

  1. Use as informações de segunda ordem (que codificam a curvatura), por exemplo, usando o método de Newton em vez da descida gradiente (para a qual você sempre pode usar o comprimento da etapa suficientemente perto do minimizador).1
  2. Tentativa e erro (com o que, é claro, quero dizer usando uma pesquisa de linha adequada , como o Armijo).

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>0g0:=f(x0)k=0,...

  1. Conjunto esk=αk1gkxk+1=xk+sk
  2. gk+1=f(xk+1)yk=gk+1gk
  3. αk+1=(yk)Tyk(yk)Tsk

f(xk+1)f(xk)σk(0,αk1)

f(xkσkgk)maxmax(kM,1)jkf(xj)γσk(gk)Tgk,
onde é o parâmetro típico de Armijo e controla o grau de monotonicidade (por exemplo, ). Há também uma variante que usa valores de gradiente em vez de valores de função, mas no seu caso, o gradiente é ainda mais caro de avaliar do que a função, portanto, não faz sentido aqui. (Observação: é claro que você pode tentar aceitar cegamente o comprimento dos passos do BB e confiar na sua sorte, mas se precisar de algum tipo de robustez - como você escreveu em seus comentários - seria uma péssima idéia).γ(0,1)MM=10

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 Broyden2f(xk)H0=Idk=0,

(1)Hksk=gk,
ykxk+1=xk+sk
Hk+1=Hk+(ykHksk)T(sk)T(sk)Tsk
ykxk+1=xk+ske raramente é usado na prática; uma atualização melhor, mas um pouco mais complicada, é a atualização do BFGS , para a qual - e mais informações - refiro-me ao livro Nocedal Optimization de Nocedal e Wright .) A desvantagem é que: a) isso exigiria a solução de um sistema linear em cada etapa (mas apenas do tamanho do desconhecido que, no seu caso, é uma condição inicial, portanto, o esforço deve ser dominado pela resolução de PDEs para obter o gradiente; também existem regras de atualização para aproximações do Hessian inverso , que exigem apenas o cálculo de uma única matriz - produto vetorial) eb) você ainda precisa de uma pesquisa de linha para garantir a convergência ...

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)

qk(s)=12sTHks+sTgk.
sΔkΔkσk
ρk:=f(xk)f(xk+sk)f(xk)qk(sk)
da redução real e prevista no valor da função. Se for muito pequeno, seu modelo estava incorreto e você descartará e tente novamente com . Se estiver próximo de , seu modelo é bom e você define e aumenta . Caso contrário, basta definir e deixar paz. Para calcular o minimizador real deρkskΔk+1<Δkρk1xk+1=xk+skΔk+1>Δkxk+1=xk+skΔkskminsΔkqk(s), existem várias estratégias para evitar a necessidade de resolver o problema de otimização com restrições completas; o meu favorito é o método de CG truncado de Steihaug . Para mais detalhes, refiro-me novamente a Nocedal e Wright.
Christian Clason
fonte
Só agora estou olhando isso de novo e percebo que tenho uma pergunta. Na etapa três do método BB, você tem ; onde e . O numerador e o denominador na expressão para parecem produtos internos. No meu caso, , onde é um espaço vetorial com uma métrica riemanniana não trivial: K. Ou seja, . Isso afeta a definição de ? αk+1=(yk)Tyk(yk)Tskyk=gk+1gksk=αk1gkαk+1gkVVgk,gkV=gk,KgkL2αk+1
NLi10Me 11/08/16
Sim, se você possui uma estrutura de espaço vetorial não trivial, deve respeitar isso nos algoritmos. Em particular, você deve distinguir entre produtos internos de duas funções no mesmo espaço (por exemplo, e ) e produtos de dualidade entre uma função no espaço e outra no espaço dual (por exemplo, e ) - para o último, você precisa incluir o mapeamento de Riesz para transformá-lo em um produto interno primeiro. (Isto pode ser interpretado como pré-condicionamento.)ykykskyk
Christian Clason
Dr. Clason, vou enviar um artigo para o ISBI 2017 detalhando alguns experimentos que fiz usando o método de pesquisa de linha BB + para uma tarefa de registro de imagens difeomórficas. Deseja ser incluído como autor no manuscrito? Ainda não o escrevi, mas tenho a maioria dos experimentos completos ou em andamento. Por favor deixe-me saber.
NLi10Me 1/16
@ NLi10Me Obrigado pela gentil oferta, mas não fiz nada que merecesse co-autoria - tudo o que escrevi é um material padrão para livros didáticos. Se você se sente bem com isso, pode me agradecer por "observações úteis sobre (o que quer que isso tenha ajudado)", mas nem isso seria necessário. Saber que o que escrevi foi útil é suficiente!
Christian Clason
11
Desculpe, você está certo, isso é um erro de digitação - corrigido! (A condição de Armijo geralmente é escrita como , onde é a direção da pesquisa - não necessariamente a negativa gradiente - e o tamanho do passo, o que deve tornar mais claro o que está acontecendo).f(x+σs)f(x)γf(x)T(σs)sσ
Christian Clason