Por que o método de Newton não é amplamente utilizado no aprendizado de máquina?

132

Isso é algo que me incomoda há um tempo e eu não consegui encontrar respostas satisfatórias online, então aqui vai:

Depois de revisar um conjunto de palestras sobre otimização convexa, o método de Newton parece ser um algoritmo muito superior ao da descida do gradiente para encontrar soluções globalmente ótimas, porque o método de Newton pode fornecer uma garantia para sua solução, é invariante afim e, acima de tudo, converge. muito menos etapas. Por que algoritmos de otimização de segunda ordem, como o método de Newton, não são tão amplamente utilizados como a descida estocástica do gradiente em problemas de aprendizado de máquina?

Fei Yang
fonte
24
Para redes neurais, deeplearningbook.org Section "8,6 aproximadas Segunda Ordem-Métodos" dá uma boa visão geral. Em resumo "Além dos desafios criados por certas características da função objetivo, como pontos de sela, a aplicação do método de Newton para o treinamento de grandes redes neurais é limitada pela significativa carga computacional que impõe". Existem alternativas que tentam obter algumas das vantagens do método de Newton enquanto evitam os obstáculos computacionais, mas eles têm seus próprios problemas.
Franck Dernoncourt
1
consulte esta pergunta e comentários relacionados, stats.stackexchange.com/questions/232305/…
Haitao Du
1
Observe que os outros comentários têm alguma aplicabilidade mais ampla ao aprendizado de máquina, além de apenas "aprendizado profundo". Entretanto, embora todos os problemas de ML possam tender a ser "big data", nem todos os problemas de ML são necessariamente "grandes recursos" (isto é, muitos parâmetros a serem ajustados), embora o aprendizado profundo seja invariavelmente.
GeoMatt22
1
Vale a pena notar que no aprendizado de máquina fora do aprendizado profundo, o L-BFGS (que, grosso modo, aproxima o método de Newton) é um algoritmo de otimização bastante comum.
Dougal
2
O método de Newton pressupõe convexidade, os problemas modernos de ML (redes neutras) provavelmente não são nem um pouco próximos do convexo, embora seja reconhecidamente uma área de pesquisa aberta lá. Portanto, o método de Newton é provavelmente um avaliador tão ruim quanto linear em qualquer lugar, mas perto do ponto de cálculo. Você provavelmente ganhará muito pouco com um aumento quadrático na computação. Dito isto, uma conferência recente em Berkeley teve um apresentador continuando a mostrar progresso no uso de métodos de 2ª ordem, por isso não está morto de forma alguma.
David Parks

Respostas:

95

A descida em gradiente maximiza uma função usando o conhecimento de sua derivada. O método de Newton, um algoritmo de busca de raiz, maximiza uma função usando o conhecimento de sua segunda derivada. Isso pode ser mais rápido quando a segunda derivada é conhecida e fácil de calcular (o algoritmo de Newton-Raphson é usado na regressão logística). No entanto, a expressão analítica para a segunda derivada é frequentemente complicada ou intratável, exigindo muita computação. Os métodos numéricos para calcular a segunda derivada também exigem muita computação - se forem necessários valores de para calcular a primeira derivada, N 2 será necessário para a segunda derivada.NN2

jwimberley
fonte
5
Vale notar que (as coisas baseadas em) o método de Gauss-Newton são provavelmente mais comuns. Esta é uma especialização de Newton para mínimos quadrados não lineares.
GeoMatt22
4
Eu não chamaria Gauss-Newton de uma especialização de Newton para mínimos quadrados não lineares. Eu chamaria isso de uma aproximação bastardizada de Newton para mínimos quadrados não lineares, que usa uma aproximação Hessiana mais imprecisa, quanto maiores os resíduos nas equações ajustadas e, consequentemente, mais longe o argumento é da otimização.
Mark L. Stone
1
@ MarkL.Stone, eu estava tentando não entrar em detalhes técnicos :) É verdade que os métodos no estilo Gauss-Newton tentam "falsificar" a 2ª ordem com apenas informações da 1ª ordem. Pessoalmente, nunca usei métodos de Newton para otimização, apenas métodos de Gauss-Newton (ou LM ou ~ UKF semelhante) ou DFO-SQP (por exemplo, BOBYQA ). "Optimalidade" é uma pergunta complicada que eu diria ... para um problema de ML versus vs. um problema de otimização de projeto de engenharia, a confiabilidade / informatividade de um "Hessian local" pode ser duvidosa. Talvez o DFO-SQP não local seja ~ "Newton estocástico"? (por exemplo, "online")
GeoMatt22
1
Pensando bem, as abordagens do DFO-SQP tendem a ser não-locais no espaço de parâmetros , em vez de lotes de dados. O UKF pode ser o mais próximo de "Newton estocástico", pois é on-line com memória limitada ... mas assume efetivamente um hessiano de definição positiva (ou seja, Gaussiano aprox.).
GeoMatt22
1
Na verdade, essa é uma razão enganosa, pois existem métodos de segunda ordem, como o CG, que não exigem o cálculo do hessian. k iterações de CG custarão apenas kN. É correto que o CG teoricamente corresponda a Newton apenas em k = N, mas na verdade você não precisa de tantas iterações.
user25322
40

Mais pessoas devem usar o método de Newton no aprendizado de máquina *. Digo isso como alguém com experiência em otimização numérica, que se interessou por aprendizado de máquina nos últimos dois anos.

As desvantagens nas respostas aqui (e mesmo na literatura) não são um problema se você usar o método de Newton corretamente. Além disso, as desvantagens que importam também diminuem o gradiente na mesma quantidade ou mais, mas através de mecanismos menos óbvios.

  • Usar a pesquisa de linha com as condições de Wolfe ou usar ou confiar em regiões impede a convergência para pontos de sela. Uma implementação de descida de gradiente adequada também deve estar fazendo isso. O artigo mencionado na resposta de Cam.Davidson.Pilon aponta problemas com o "método de Newton" na presença de pontos de sela, mas a correção que eles defendem é também um método de Newton.

  • Usar o método de Newton não requer a construção de todo (denso) Hessiano; você pode aplicar o inverso do Hessian a um vetor com métodos iterativos que usam apenas produtos vetoriais de matriz (por exemplo, métodos de Krylov, como gradiente conjugado). Veja, por exemplo, o método de região confiável CG-Steihaug.

  • É possível calcular com eficiência os produtos vetoriais de matriz Hessian, resolvendo duas equações adjuntas de ordem superior da mesma forma que a equação adjunta que já é usada para calcular o gradiente (por exemplo, o trabalho de duas etapas de retropropagação no treinamento de redes neurais).

  • O mau condicionamento diminui a convergência dos solucionadores lineares iterativos, mas também diminui a descida do gradiente de forma igual ou pior. Usar o método de Newton em vez de gradiente descendente muda a dificuldade do estágio de otimização não-linear (onde não é possível fazer muito para melhorar a situação) para o estágio de álgebra linear (onde podemos atacá-lo com todo o arsenal de técnicas de pré-condicionamento de álgebra linear numérica).

  • Além disso, o cálculo muda de "muitas etapas baratas" para "algumas etapas caras", abrindo mais oportunidades de paralelismo no nível da subpasta (álgebra linear).

Para obter informações básicas sobre esses conceitos, recomendo o livro "Otimização Numérica" de Nocedal e Wright.

* Obviamente, o método de Newton não o ajudará com L1 ou outras funções de penalidade / esparsidade comprimida similar que promovem a penalidade, pois elas não possuem a suavidade necessária.

Nick Alger
fonte
2
Acho que estamos de acordo violento um com o outro, não com todos os outros.
Mark L. Stone
1
É como comparar se o Reino Unido ou os EUA produzem melhores matemáticos de pesquisa, comparando as habilidades matemáticas de quem abandonou o ensino médio em toxicodependentes de 26 anos, em vez de comparar o escalão superior dos estudantes de graduação em matemática que saem das melhores escolas de cada país. O documento está assinado, selado e entregue, ninguém, e quero dizer que ninguém o está mudando ou retirando agora. Incroyable.
Mark L. Stone
3
@ MarkL.Stone Parece que uma conversa aconteceu aqui e foi excluída enquanto eu estava fora. De qualquer forma, acho que você está certo que concordamos um com o outro e com mais ninguém. Eu acho que isso é esperado com base em nossos antecedentes, em comparação com as outras pessoas aqui. Como você provavelmente espera, não penso muito no artigo vinculado. Por outro lado, acho que o método de Newton Riemanniano , onde se faz uma trajetória geodésica na direção de busca de Newton, é uma técnica com muitas promessas para problemas muito difíceis.
Nick Alger #
2
Como você lidaria com um grande conjunto de treinamento? Se você tem, por exemplo, 1 milhão de amostras de treinamento, basta avaliar o objetivo de otimização atual, que exige testar 1 milhão de amostras. E você precisa fazer isso várias vezes durante uma pesquisa de linha. Assim, no momento em que você deu 1 passo de Newton, a descida estocástica do gradiente já fez alguns milhões de atualizações.
Nikie
2
Nick e @ MarkL.Stone: Você está falando basicamente dessa abordagem ? Isso é algo que foi brevemente popular no aprendizado profundo, especialmente para redes recorrentes, mas desde então caiu em desuso, presumo, porque simplesmente não funcionou empiricamente muito melhor do que os métodos de gradiente adaptativo. Se eles estavam apenas fazendo algo errado, e você conserta o que quer que seja e mostra que geralmente supera a atual variante padrão do SGD Adam, você pode causar um grande impacto: o artigo de Adam teve 1345 citações em dois anos ...
Dougal
33

Recentemente, eu mesmo aprendi isso - o problema é a proliferação de pontos de sela no espaço de alta dimensão, para a qual os métodos de Newton desejam convergir. Consulte este artigo: Identificando e atacando o problema do ponto de sela na otimização não-convexa de alta dimensão .

De fato, a razão entre o número de pontos de sela e os mínimos locais aumenta exponencialmente com a dimensionalidade N.

Enquanto a dinâmica da descida do gradiente é repelida de um ponto de sela para um erro menor, seguindo as direções da curvatura negativa, ... o método Newton não trata os pontos de sela de maneira apropriada; como discutido abaixo, os pontos de sela tornam-se atraentes sob a dinâmica de Newton.

Cam.Davidson.Pilon
fonte
3
Você poderia adicionar alguma explicação para o motivo? Em teoria, o método de Newton pré-forma uma descida gradiente ponderada com pesos "ótimos" para cada um dos vetores próprios.
Nbubis
4
O que esse artigo diz sobre os métodos de Newton "que desejam" convergir para pontos de sela é válido apenas para implementações de lixo do método de Newton.
Mark L. Stone
O artigo reparameteriza o problema em termos de autovalores e autovetores, e usa isso para mostrar que a descida gradiente se afasta de um ponto de sela: se move para o ponto de sela na direção de vetores eletrônicos negativos, mas se afasta na direção de vetores eletrônicos positivos, então, em última análise, deixa o ponto de sela. Newton, por outro lado, não tem essa garantia.
Elizabeth Santorella
O novo algoritmo que eles defendem neste artigo é (uma variante do) método de Newton. é basicamente o método de Newton para as direções da curvatura positiva e o método negativo de Newton para as direções da curvatura negativa.
Nick Alger
26

Uma combinação de dois motivos:

  • O método de Newton atrai para pontos de sela;
  • pontos de sela são comuns no aprendizado de máquina ou, de fato, em qualquer otimização multivariável.

f=x2-y2
insira a descrição da imagem aqui

xn+1=xn-[Hf(xn)]-1f(xn)

H=[2fx122fx1x22fx1xn2fx2x12fx222fx2xn2fxnx12fxnx22fxn2].

H=[20 00 0-2]

[Hf]-1=[1/20 00 0-1/2]

f=[2x-2y]

Obtenha a equação final:

[xy]n+1=[xy]n-[1/20 00 0-1/2][2xn-2yn]=[xy]n-[xy]n=[0 00 0]

x=0 0,y=0 0

Por outro lado, o método de descida gradiente não levará ao ponto de sela. O gradiente é zero no ponto de sela, mas um pequeno passo afastaria a otimização, como você pode ver no gradiente acima - seu gradiente na variável y é negativo.

Aksakal
fonte
1
Graças a você, eu realmente entendi como esse método funciona de A a Z, então muito obrigado por este exemplo claro!
greenoldman
Qual seria o ponto favorito aqui?
Ben
14

Você fez duas perguntas: por que mais pessoas não usam o método de Newton e por que tantas pessoas usam a descida estocástica do gradiente? Essas perguntas têm respostas diferentes, porque existem muitos algoritmos que diminuem a carga computacional do método de Newton, mas geralmente funcionam melhor que o SGD.

HO(N2)NgO(N)H-1gO(N3)para calcular. Assim, enquanto a computação do Hessian é cara, invertê-lo ou resolver mínimos quadrados é muitas vezes ainda pior. (Se você tem recursos esparsos, os assintóticos parecem melhores, mas outros métodos também têm melhor desempenho, portanto a escarsidade não torna Newton relativamente mais atraente.)

Segundo, muitos métodos, não apenas a descida em gradiente, são usados ​​com mais frequência do que Newton; geralmente são imitações do método de Newton, no sentido de que se aproximam de um passo de Newton a um custo computacional mais baixo por passo, mas são necessárias mais iterações para convergir. Alguns exemplos:

  • H-1

  • O(N2)

  • Quando você não deseja lidar com a aproximação de derivadas secundárias, a descida em gradiente é atraente, porque ela usa apenas apenas informações de primeira ordem. A descida do gradiente aproxima-se implicitamente do Hessiano inverso à medida que a taxa de aprendizado vezes a matriz de identidade. Pessoalmente, raramente uso descida de gradiente: o L-BFGS é igualmente fácil de implementar, pois requer apenas a especificação da função objetivo e do gradiente; tem uma aproximação Hessiana inversa melhor do que a descida do gradiente; e porque a descida do gradiente exige o ajuste da taxa de aprendizado.

  • Às vezes, você tem um número muito grande de observações (pontos de dados), mas pode aprender quase tão bem com um número menor de observações. Quando esse for o caso, você pode usar "métodos em lote", como descida de gradiente estocástico, que alternam usando subconjuntos das observações.

Elizabeth Santorella
fonte
(+1) Vale ressaltar que o L-BFGS é da mesma ordem de complexidade que a descida do gradiente em relação ao número de parâmetros. Este não é o caso do BFGS. Portanto, não é apenas a parte de memória limitada do L-BFGS que o torna atraente.
Cliff AB
12

A direção da descida do gradiente é mais barata de calcular e a realização de uma pesquisa de linha nessa direção é uma fonte de progresso mais confiável e estável em direção a um ótimo. Em resumo, a descida do gradiente é relativamente confiável.

O método de Newton é relativamente caro, pois você precisa calcular o Hessian na primeira iteração. Então, em cada iteração subsequente, você pode recalcular completamente o Hessian (como no método de Newton) ou simplesmente "atualizar" o Hessian da iteração anterior (nos métodos quase-Newton) que é mais barato, mas menos robusto.

No caso extremo de uma função muito bem-comportada, especialmente uma função perfeitamente quadrática, o método de Newton é o vencedor. Se for perfeitamente quadrático, o método de Newton convergirá em uma única iteração.

No caso extremo oposto de uma função muito mal comportada, a descida do gradiente tenderá a vencer. Ele seleciona uma direção de pesquisa, pesquisa nessa direção e, finalmente, dá um passo pequeno, mas produtivo. Por outro lado, o método de Newton tenderá a falhar nesses casos, especialmente se você tentar usar as aproximações quase-Newton.

Entre a descida do gradiente e o método de Newton, existem métodos como o algoritmo Levenberg-Marquardt (LMA), embora eu tenha visto os nomes um pouco confusos. A essência é usar uma pesquisa mais informada por gradiente de descida quando as coisas são caóticas e confusas, depois alternar para uma pesquisa mais informada pelo método Newton quando as coisas estão ficando mais lineares e confiáveis.

Nat
fonte
3
Rapaz, você deve usar implementações terríveis de Newton e quase-Newton. Se você estiver usando um Hessiano definido não positivo, use regiões de confiança ou faça uma pesquisa de linha ao longo das direções da curvatura negativa. Nesse caso, eles são mais confiáveis ​​que a descida mais íngreme (ou seja, descida de gradiente com pesquisa de linha ou região de confiança). Em resumo, a descida gradual é muito menos confiável do que um método Quasi-Newton implementado corretamente, que é menos confiável que um método Newton implementado corretamente. O tempo de computação e os requisitos de memória por iteração são uma questão diferente.
Mark L. Stone
4
Eu acho que você quer dizer função perfeitamente quadrática. Ou seja, o método de Newton converge em uma única iteração com uma função objetiva quadrática, que possui um gradiente linear.
Elizabeth Santorella
1
@ElizabethSantorella: Sim, você está certo! Eu atualizei a resposta.
Nat
2
1/2xTx
1
Eu fiz o meu caso. se você deseja pensar em descidas mais íngremes, a descida em gradiente é maravilhosa, especialmente em funções com mau comportamento, esse é o seu negócio. Derrube-se.
Mark L. Stone
7

Hd=g para uma direção pode ser caro. Também é mais difícil fazer um paralelo.

O método de Newton funciona bem quando perto de uma solução, ou se o Hessian está variando lentamente, mas precisa de alguns truques para lidar com a falta de convergência e a falta de definição.

Muitas vezes, busca-se uma melhoria, em vez de uma solução exata, caso em que o custo extra de Newton ou métodos semelhantes a Newton não se justifica.

Existem várias maneiras de melhorar o acima, como métricas variáveis ​​ou métodos de região de confiança.

Como uma observação lateral, em muitos problemas, uma questão importante é a escala e o Hessian fornece excelentes informações de escala, embora a um custo. Se alguém pode se aproximar do Hessian, muitas vezes pode melhorar consideravelmente o desempenho. Até certo ponto, o método de Newton fornece a 'melhor' escala na medida em que é invariante afim.

copper.hat
fonte
0

Existem muitas dificuldades em relação ao uso do método de Newton para SGD, especialmente:

  • ele precisa da matriz Hessiana - como estimar, por exemplo, a partir de gradientes barulhentos com precisão suficiente a um custo razoável?

  • Hessian completo é muito caro - precisamos de algumas restrições, por exemplo, para um subespaço (qual subespaço?),

  • H-1λ=0 0

  • O método de Newton atrai diretamente para o ponto mais próximo com gradiente zero ... o que geralmente é uma sela aqui. Como repelir eles? Por exemplo , Newton livre de sela inverte as direções negativas da curvatura, mas requer controle de sinais de autovalores,

  • seria bom fazê-lo on-line - em vez de fazer muitos cálculos em um único ponto, tente dividi-lo em vários pequenos passos para explorar mais informações locais.

Podemos ir da 1ª à 2ª ordem em pequenas etapas, por exemplo, adicionando atualização de apenas 3 médias ao método de momentum, podemos simultaneamente o MSE ajustar a parábola em sua direção para uma escolha mais inteligente do tamanho da etapa ... Modelagem de 2ª ordem em um subespaço de baixa dimensão ainda é possível usar as coordenadas restantes para a descida simultânea do gradiente.

Jarek Duda
fonte