Por que o algoritmo de descida “Saddle-Free Newton” não é usado na prática?

13

Recentemente, li um artigo de Yann Dauphin et al. Identificando e atacando o problema do ponto de sela na otimização não convexa de alta dimensão , onde eles introduzem um interessante algoritmo de descida chamado Saddle-Free Newton , que parece ser exatamente adaptado para otimização de rede neural e não deve sofrer por ficar preso em pontos de sela como métodos de primeira ordem como o SGD de baunilha.

O artigo remonta a 2014, então não é nada novo, no entanto, eu não o vi sendo usado "na natureza". Por que esse método não está sendo usado? A computação hessiana é proibitiva demais para problemas / redes do tamanho real? Existe alguma implementação de código aberto desse algoritmo, possivelmente para ser usada em algumas das principais estruturas de aprendizado profundo?

Atualização de fevereiro de 2019: existe uma implementação disponível agora: https://github.com/dave-fernandes/SaddleFreeOptimizer )

Jan Kukacka
fonte
Boa pergunta, não consegui encontrar nada. No entanto, o pseudocódigo é muito simples, portanto, você mesmo pode tentar, nesse caso, existem alguns detalhes úteis de implementação em uma das teses de doutorado dos autores (página 103, papyrus.bib.umontreal.ca/xmlui/bitstream/handle / 1866/13710 /… )
galoosh33 3/17/17
1
Encontrei referência a esse mesmo artigo em uma postagem do Uber Deep-Neuroevolution Blog. Link: eng.uber.com/deep-neuroevolution Você pode perguntar ao autor se eles têm alguma implementação online / compartilhada via GitHub.
Cantren
aqui está uma implementação para o TensorFlow: github.com/dave-fernandes/SaddleFreeOptimizer
Dave F
Se eu tivesse que adivinhar, minha suposição seria que computar + inverter o Hessian é impraticável quando seu modelo tem milhões de parâmetros.
Sycorax diz Restabelecer Monica
1
Você pode refinar sua pergunta de "existe uma implementação"? Isso parece permitir respostas sim / não e / ou soa como uma solicitação de software (que está fora do tópico aqui). Sua pergunta poderia ser elaborada em algo como 'que dificuldades explicam por que não parece ter havido mais implementações'?
gung - Restabelece Monica

Respostas:

2

Melhor otimização não significa necessariamente um modelo melhor. No final, nos preocupamos com o quão generalizado o modelo é, e não necessariamente com a qualidade do desempenho no conjunto de treinamento. As técnicas de otimização mais sofisticadas geralmente têm melhor desempenho e convergem mais rapidamente no conjunto de treinamento, mas nem sempre generalizam, assim como os algoritmos básicos. Por exemplo, este artigo mostra que o SGD pode generalizar melhor que o otimizador do ADAM. Esse também pode ser o caso de alguns algoritmos de otimização de segunda ordem.


[Edit] Removido o primeiro ponto, pois não se aplica aqui. Obrigado a bayerj por apontar isso.

Soroush
fonte
1
Embora eu concorde com o segundo ponto, o primeiro não é válido aqui. Os autores propõem a otimização apenas no subespaço de Krylov, o que não requer complexidade quadrática.
bayerj