A variável de código na função nlm ()

9

Em R existe uma função nlm () que realiza uma minimização de uma função f usando o algoritmo de Newton-Raphson. Em particular, essa função gera o valor do código da variável definido da seguinte maneira:

codifique um número inteiro indicando por que o processo de otimização foi encerrado.

1: o gradiente relativo está próximo de zero, a iteração atual é provavelmente a solução.

2: iterações sucessivas dentro da tolerância, a iteração atual é provavelmente a solução.

3: a última etapa global falhou ao localizar um ponto abaixo da estimativa. Qualquer estimativa é um mínimo local aproximado da função ou o steptol é muito pequeno.

4: limite de iteração excedido.

5: tamanho máximo do passo stepmax excedeu cinco vezes consecutivas. Ou a função é ilimitada abaixo, torna-se assintótica a um valor finito de cima em alguma direção ou o stepmax é muito pequeno.

Alguém pode me explicar (talvez usando uma ilustração simples com uma função de apenas uma variável) a que correspondam as situações 1-5?

Por exemplo, a situação 1 pode corresponder à seguinte imagem:

insira a descrição da imagem aqui

Agradeço antecipadamente!

ocram
fonte

Respostas:

8

Essas situações são entendidas mais claramente quando se tem em mente o que realmente é a minimização ou maximização e como a otimização funciona.

Suponha que tenhamos a função que tem um mínimo local em . Os métodos de otimização tentam construir a sequência que converge para . É sempre mostrado que, em teoria, a sequência construída converge para o ponto mínimo local para algumas classes de funções .fx0xix0f

Para obter o próximo candidato na iteração pode ser um processo demorado, por isso é normal que todos os algoritmos de limitar o número de iterações. Isso corresponde à situação 4 .i

Então, para cada próximo de , temos que . Portanto, se isso é uma indicação de que atingimos o mínimo. Isso corresponde à situação 3xx0f(x)>f(x0)f(xi)>f(xi1)

Agora, se a função tem uma derivada em então necessariamente . O método de Newton-Raphson calcula o gradiente em cada etapa, portanto, se , é provavelmente uma solução, que corresponde à situação 1 .fx0f(x0)=0f(xi)0xi

Cada sequência convergente de vetores reais é a sequência de Cauchy e vice-versa, o que significa aproximadamente que se está próximo de , então está próximo de e vice-versa, onde é o número da iteração. Portanto, se , e sabemos que, em teoria, converge para , então devemos estar próximos do ponto mínimo. Isso corresponde à situação 2 .xix0xixi+1i|xixi1|<εxix0

Seqüências convergentes têm a propriedade que contraem, ou seja, se estivermos próximos da convergência, todos os elementos restantes da sequência estarão contidos em uma pequena área. Portanto, se a sequência que em teoria deveria convergir começar a dar grandes passos, isso é uma indicação de que provavelmente não há convergência. Isso corresponde à situação 5

Nota Definições matemáticas estritas foram deixadas de fora intencionalmente.

mpiktas
fonte