Suponho que possa haver alguma diferença entre como os métodos de pesquisa de linha e região de confiança lidam com o dimensionamento, mas realmente não vejo isso na prática desde que estejamos cientes do dimensionamento. E, para ficar claro, o livro Nocedal e Wright estava falando sobre escala afim. A escala não linear é um pouco mais difícil de quantificar.
Para entender por que, digamos que queremos minimizar , mas queremos dimensionar as variáveis por algum tipo de operador não singular e auto- . Defina como a função de objetivo escalado. Então,
a diferença real em algoritmos é o que acontece com a escala de . No método de Newton, resolvemos
ou
Assumindo o Hessiano não é singular, temos
f:X→RA∈L(X)J:X→R
J(x)=∇J(x)=∇2J(x)=f(Ax)A∇f(Ax)A∇2f(Ax)A
A∇2J(x)δx=−∇J(x)
A∇2f(Ax)Aδx=−A∇f(Ax)
Aδx=−∇2f(Ax)−1∇f(Ax)
Basicamente, a escala é cancelada e desaparece, portanto não afeta a direção. É por isso que dizemos que o método de Newton é invariante em escala afim.
Tudo bem, então agora vamos dizer que não temos o hessiano. Realmente, no final do dia, os métodos de confiança-região confiar em resolver o sistema de
por algum tipo de Hesse aproximação . Na maioria das vezes, vamos usar o Steihaug-Toint truncado-CG porque funciona bem. Se reconectarmos nossa escala, temos
Se estivermos lançando CG nesse sistema, isso basicamente significa que temos uma ferramenta para lidar com a escala e esse é o Hessian ou sua aproximação
Hδx=−∇J(x)
HHδx=−A∇f(Ax)
AH. Teoricamente, poderíamos mudar a forma da região de confiança, mas tudo o que realmente significa é interromper nosso passo mais cedo ou mais tarde. Isso afeta a etapa, mas sempre achei difícil controlar.
Em um método de pesquisa de linha, podemos ver nossa iteração como aplicando algum tipo de função mágica ao nosso gradiente. Portanto, para a direção escalada:
Talvez calcule o passo de Newton. Talvez calcule a etapa BFGS. Tanto faz. Certamente, temos algumas restrições, como provavelmente precisamos de para produzir uma direção de descida, mas destaca que há uma grande flexibilidade aqui. Isso significa que temos uma maior quantidade de ferramentas à nossa disposição para lidar com a escala .ϕ
δx=ϕ(−A∇f(Ax))
ϕϕϕA
Agora, quais são essas ferramentas e devemos usá-las? Pessoalmente, acho que a resposta é não. A menos que você realmente conheça sua aplicação e tenha um algoritmo especializado para encontrar a solução, os métodos inexatos de Newton funcionam muito, muito bem. Por Newton inexato, quero dizer resolver o sistema
inexatamente usando CG. Isso é precisamente usando Steihaug-Toint na configuração de região de confiança (pág. 171 em Nocedal e Wright) ou Newton-CG para pesquisa de linhas (pág. 169 em Nocedal e Wright). Eles funcionam praticamente da mesma forma e não se importam com a escala afim. Eles também não exigem o armazenamento do Hessian, apenas produtos de vetor Hessian são necessários. Realmente, esses algoritmos devem ser a base para a maioria dos problemas e eles não se importam com o dimensionamento afim.
∇2J(x)δx=−∇J(x)
Quanto ao pré-condicionador para o problema da região de confiança, não acho que exista uma maneira fácil de dizer a priori se você deseja melhorar o número de iterações gerais de otimização ou não. Realmente, no final do dia, os métodos de otimização operam em dois modos. No modo um, estamos muito longe do raio de convergência do método de Newton, então globalizamos e apenas forçamos as iterações para garantir que o objetivo caia. A região de confiança é uma maneira. A pesquisa de linha é outra. No modo dois, estamos no raio de convergência do método de Newton, por isso tentamos não mexer com ele e deixamos o método de Newton fazer seu trabalho. De fato, podemos ver isso nas provas de convergência de coisas como métodos de região de confiança. Por exemplo, veja o Teorema 4.9 (p.93 em Nocedal e Wright). Muito explicitamente, eles afirmam como a região de confiança se torna inativa. Nesse contexto, qual a utilidade do pré-condicionador? Certamente, quando estamos no raio de convergência do método de Newton, fazemos muito menos trabalho e o número de iterações de CG diminui. O que acontece quando estamos fora desse raio? Isso meio que depende. Se calcularmos o passo de Newton completo, o benefício é que fizemos menos trabalho. Se interrompermos nosso passo mais cedo devido ao truncamento do CG truncado, nossa direção estará no subespaço de Krylov
{−P∇J(x),−(PH)(P∇J(x)),…,−(PH)k(P∇J(x))}
onde é o precondicionador e é a nossa aproximação hessiana. Esse é um subespaço melhor para encontrar uma direção que
É difícil dizer. Talvez. Talvez não. A teoria apenas nos diz que convergimos em um número finito de etapas.
PH{−∇J(x),−(H)(∇J(x)),…,−(H)k(∇J(x))}?
Isso não significa que não há valor em definir um bom pré-condicionador. No entanto, não tenho certeza de como alguém define um pré-condicionador para ajudar na otimização de pontos do raio de convergência do método de Newton. Normalmente, projetamos um pré-condicionador para agrupar os autovalores da aproximação de Hessian, que é uma meta tangível e mensurável.
tldr; Na prática, há uma variedade maior de maneiras para um método de pesquisa de linha gerar uma iteração do que um método de região confiável, portanto, é possível que haja uma maneira incrível de lidar com o dimensionamento afim. No entanto, basta usar um método Newton inexato e isso não importa. Um pré-condicionador afeta o desempenho de um algoritmo longe do raio de convergência do método de Newton, mas é difícil quantificar como; portanto, basta projetar um pré-condicionador para agrupar os valores próprios da aproximação do Hessiasn.