Se os hessianos são tão bons em otimização (veja, por exemplo, o método de Newton ), por que parar aí? Vamos usar o terceiro, quarto, quinto e sexto derivados? Por que não?
Se os hessianos são tão bons em otimização (veja, por exemplo, o método de Newton ), por que parar aí? Vamos usar o terceiro, quarto, quinto e sexto derivados? Por que não?
Respostas:
Estou interpretando a pergunta como sendo "Por que o método de Newton usa apenas a primeira e a segunda derivadas, não as derivadas de terceiros ou superiores?"
Na verdade, em muitos casos, ir para a terceira derivada ajuda; Eu já fiz isso com coisas personalizadas antes. No entanto, em geral, ir para derivadas mais altas acrescenta complexidade computacional - você precisa encontrar e calcular todas essas derivadas e, para problemas multivariados, há muito mais derivadas terceiras do que derivadas iniciais! - supera em muito as economias na contagem de etapas que você obtém, se houver. Por exemplo, se eu tiver um problema tridimensional, eu tenho 3 primeiras derivadas, 6 segundas derivadas e 10 terceiras derivadas, portanto, ir para uma versão de terceira ordem mais do que duplica o número de avaliações que tenho que fazer (de 9 para 19), para não mencionar o aumento da complexidade do cálculo da direção / tamanho da etapa depois que eu tiver feito essas avaliações, mas quase certamente não reduzirá o número de etapas que tenho que executar pela metade.
Realmente não vejo qual é o aspecto estatístico dessa pergunta, então responderei a parte da otimização.
Praticamente todas as respostas aqui estão focadas apenas no custo da iteração e ignorando a contagem de iterações . Mas os dois são importantes. Um método que itera em 1 nanossegundo, mas que leva iterações para convergir não fará nenhum bem. E um método que explode também não ajuda, por mais barato que seja o custo da iteração.
Vamos descobrir o que está acontecendo.
Em parte porque (e isso também é válido para a segunda ordem, mas mais sobre isso daqui a pouco):
Por outro lado, explodem mais facilmente quando estão mais longe do ideal!
(Obviamente, isso nem sempre é verdade; por exemplo, um quadrático irá convergir em 1 passo com o método de Newton. Mas, para funções arbitrárias no mundo real que não têm boas propriedades, isso geralmente é verdade.)
Isso significa que, quando você está mais longe do ideal, geralmente deseja um método de ordem baixa (leia-se: primeira ordem). Somente quando você estiver perto, você deseja aumentar a ordem do método.
Para entender por que, primeiro você precisa entender o que significa "convergência quadrática" .
Matematicamente, convergência quadrática significa que, se for seu erro na iteração , o seguinte será válido para alguma constante :
Em inglês simples, isso significa que, quando você estiver próximo do ideal (importante!), Cada etapa extra dobra o número de dígitos de precisão .
Por quê? É fácil ver com um exemplo: para e , você tem , , etc., o que é ridiculamente rápido . (É super-exponencial !)
Na verdade, as pessoas costumam fazer isso quando os derivativos de segunda ordem ficam muito caros. Mas a convergência linear pode ser muito lenta. por exemplo, se você obteve , talvez precise de 10.000.000 de iterações com convergência linear para obter , mas apenas 23 iterações com convergência quadrática. Então você pode ver por que há uma diferença drástica entre convergência linear e quadrática. Isso não é verdade para a convergência de segunda e terceira ordem, por exemplo (veja o próximo parágrafo).
Nesse ponto, se você conhece alguma ciência da computação, entende que, com a convergência de segunda ordem, o problema já está resolvido . Se você não vê o porquê, eis o porquê: não há nada prático a ganhar ao triplicar o número de dígitos a cada iteração, em vez de dobrá -lo - o que ele vai comprar? Afinal, em um computador, mesmo um double
número de precisão tem 52 bits de precisão, que tem cerca de 16 dígitos decimais.
Talvez isso diminua o número de etapas necessárias de 16 para 3 ... o que parece ótimo, até você perceber que isso custa o preço de ter que calcular terceiros derivados a cada iteração, e é aí que está a maldição da dimensionalidade.bate forte em você. Para um problema de dimensão , você acabou de pagar um fator de para obter um fator de , o que é idiota. E no mundo real, os problemas têm pelo menos centenas de dimensões (ou mesmo milhares ou até milhões), e não apenas ! Então você ganha um fator de talvez 20 pagando um fator de, digamos, 20.000 ... dificilmente é uma troca sábia.
A outra metade é que você geralmente tem um comportamento pior quando está longe do ideal, o que geralmente afeta negativamente o número de iterações que você deve fazer.
Em um cenário geral, métodos de ordem superior a 2 são uma má idéia. Obviamente, se você pode trazer suposições úteis adicionais para a tabela (por exemplo, talvez seus dados se assemelhem a um polinômio de alto grau ou você tenha maneiras de limitar a localização do ótimo etc.), talvez seja possível que eles sejam uma boa idéia - mas essa será uma decisão específica do problema, e não uma regra geral a seguir.
Até calcular Hessianos é bastante trabalhoso:
Agora veja como é a terceira derivada: Essa é uma matriz tridimensional. Veja como seus elementos se parecem:
A derivada da sexta será a matriz tridimensional:
Normalmente, o trade-off não é favorável para ir mais alto que o Hessian. Quero dizer a troca entre ganho potencial em velocidade através do uso de aproximações de ordem superior versus amplificação de ruído. Você sempre tem ruído nas entradas, porque estamos falando de aplicações estatísticas. Este ruído será amplificado pelos derivados.
Se você joga golfe, a analogia na otimização é primeiro balançar tentando chegar ao verde, não se preocupe muito com um buraco. Uma vez, no verde, colocaremos um buraco.
Normalmente, quando você analisa a eficácia de tais algoritmos, encontrará resultados como uma etapa de um algoritmo de quarta ordem com aproximadamente a mesma eficácia de duas etapas de um algoritmo de segunda ordem.
Portanto, a escolha de qual algoritmo usar é relativamente simples: se uma etapa do algoritmo de quarta ordem exige duas vezes mais trabalho ou mais de uma etapa do algoritmo de segunda ordem, você deve usá-lo.
Essa é a situação típica para esses tipos de métodos: o algoritmo clássico possui a taxa ideal de trabalho / eficácia para problemas gerais. Embora existam problemas ocasionais em que uma abordagem de ordem superior é incomumente fácil de calcular e possa superar a variante clássica, eles são relativamente incomuns.
Você pode pensar na ordem das derivadas como a ordem de uma aproximação polinomial da função. A maioria das rotinas de otimização depende de convexidade. Um polinômio quadrático será convexo / côncavo em todos os lugares, enquanto um polinômio de terceira ordem ou superior não será convexo em todos os lugares. A maioria das rotinas de otimização se baseia em aproximações sucessivas de funções convexas com quadráticos por esse motivo. Uma aproximação quadrática que é convexa exige que uma condição de definição positiva seja imposta para que o quadrático seja convexo.
Deixe-me ser o único aqui defendendo métodos de 3ª ordem para a convergência SGD, mas definitivamente não em todo o espaço o que precisaria coeficientes, mas por exemplo, em apenas uma direção, que precisa apenas de um único coeficiente adicional se já tendo modelo de 2ª ordem nessa direção.
Por que o modelo de 3ª ordem de direção única pode ser benéfico? Por exemplo, porque quase zero segundo derivado nessa direção significa basicamente dois cenários alternativos: platô ou ponto de inflexão - apenas o primeiro requer tamanho de passo maior e o terceiro derivado permite distingui-los.
Acredito que iremos para métodos híbridos de múltiplas ordens: método de 2ª ordem em um subespaço de baixa dimensão, por exemplo, do PCA de gradientes recentes, o que ainda permite a descida simultânea de gradiente de 1ª ordem gratuita em direção a parte do gradiente ortogonal a esse subespaço ... e adicionalmente Eu acrescentaria, por exemplo, o modelo de terceira ordem para uma única direção mais relevante.