É possível treinar uma rede neural sem retropropagação?

94

Muitos livros e tutoriais de redes neurais gastam muito tempo com o algoritmo de retropropagação, que é essencialmente uma ferramenta para calcular o gradiente.

Vamos supor que estamos construindo um modelo com ~ 10K parâmetros / pesos. É possível executar a otimização usando alguns algoritmos de otimização sem gradiente?

Eu acho que calcular o gradiente numérico seria muito lento, mas e quanto a outros métodos, como Nelder-Mead, Recozimento Simulado ou Algoritmo Genético?

Todos os algoritmos sofreriam com mínimos locais, por que obcecados com gradiente?

Haitao Du
fonte
6
@FranckDernoncourt Interpretei a outra pergunta como "por que não usar técnicas de otimização global para treinar redes neurais?", Enquanto essa é mais "por que não usar otimizadores sem derivativos ...".
GeoMatt22
6
Com três respostas votadas, isso não parece muito amplo para ser responsável por mim.
gung
5
Sim, você não precisa se preocupar muito com o fato de o Nelder-Mead ficar preso no mínimo local, porque você terá sorte se isso for útil.
Mark L. Stone
1
BTW, ultra L-BFGS, dá um giro. pode ser bom, mas é tão obscuro que provavelmente ninguém tentou em redes neurais. Veja a equação 2.9 na p. 12 (você precisa ler as poucas páginas anteriores para entender a fórmula) de maths.dundee.ac.uk/nasc/na-reports/NA149_RF.pdf (não chamado de ultra BFGS no documento), que seria necessário entre na versão "L" (memória limitada) para ser ultra L-BFGS, em vez de ultra BFGS. A versão não L é apresentada no artigo. O Ultra BFGS é basicamente um BFGS acelerado ("hot rod") - pode ser mais rápido, mas pode ser um pouco mais selvagem.
Mark L. Stone

Respostas:

80

Os dois primeiros algoritmos mencionados (Nelder-Mead e Simulated Annealing) são geralmente considerados bastante obsoletos nos círculos de otimização, pois existem alternativas muito melhores que são mais confiáveis ​​e menos dispendiosas. Os algoritmos genéticos cobrem uma ampla variedade e alguns deles podem ser razoáveis.

No entanto, na classe mais ampla de algoritmos de otimização sem derivativos (DFO), há muitos que são significativamente melhores do que esses "clássicos", pois essa tem sido uma área ativa de pesquisa nas últimas décadas. Então, algumas dessas abordagens mais recentes podem ser razoáveis ​​para aprendizado profundo?

Um artigo relativamente recente comparando o estado da arte é o seguinte:

Rios, LM, & Sahinidis, NV (2013) Otimização sem derivadas: uma revisão de algoritmos e comparação de implementações de software. Jornal de otimização global.

Este é um artigo interessante, com muitas idéias interessantes sobre técnicas recentes. Por exemplo, os resultados mostram claramente que os melhores otimizadores locais são todos "baseados em modelo", usando diferentes formas de programação quadrática seqüencial (SQP).

No entanto, como observado em seu resumo "Concluímos que a capacidade de todos esses solucionadores em obter boas soluções diminui com o aumento do tamanho do problema". Para se ter uma idéia dos números, para todos os problemas, os solucionadores receberam um orçamento de 2500 avaliações de funções, e os tamanhos dos problemas foram no máximo ~ 300 parâmetros a serem otimizados. Além dos parâmetros O [10], muito poucos desses otimizadores tiveram um desempenho muito bom, e mesmo os melhores apresentaram uma deterioração notável no desempenho à medida que o tamanho do problema foi aumentado.

Portanto, para problemas dimensionais muito altos, os algoritmos DFO simplesmente não são competitivos com os baseados em derivativos. Para dar uma perspectiva, a otimização baseada em PDE (equação diferencial parcial) é outra área com problemas dimensionais muito altos (por exemplo, vários parâmetros para cada célula de uma grande grade de elementos finitos 3D). Nesta região, o " método adjunta " é um dos métodos mais usados. Este também é um otimizador de descida de gradiente baseado na diferenciação automática de um código de modelo de encaminhamento.

O mais próximo de um otimizador de DFO de alta dimensão talvez seja o Ensemble Kalman Filter , usado para assimilar dados em simulações complexas de PDE, por exemplo, modelos climáticos. Curiosamente, essa é essencialmente uma abordagem SQP, mas com uma interpretação bayesiana-gaussiana (portanto, o modelo quadrático é definido positivamente, ou seja, sem pontos de sela). Mas não acho que o número de parâmetros ou observações nessas aplicações seja comparável ao que é visto no aprendizado profundo.

Nota lateral (mínimos locais): Pelo pouco que li sobre aprendizado profundo, acho que o consenso é que são pontos de sela e não mínimos locais, que são mais problemáticos para espaços com parâmetros NN de alta dimensão.

Por exemplo, a recente revisão da Nature diz que "Resultados teóricos e empíricos recentes sugerem fortemente que os mínimos locais não são um problema sério em geral. Em vez disso, a paisagem é repleta de um número combinatorialmente grande de pontos de sela em que o gradiente é zero e o superfície se curva na maioria das dimensões e curvas no restante. "

Uma preocupação relacionada é a otimização local versus a otimização global (por exemplo, essa questão apontada nos comentários). Embora eu não tenha aprendido profundamente, na minha experiência o sobreajuste é definitivamente uma preocupação válida. Na minha opinião, os métodos de otimização global são mais adequados para problemas de projeto de engenharia que não dependem fortemente de dados "naturais". Em problemas de assimilação de dados, qualquer mínimo global atual pode mudar facilmente com a adição de novos dados (ressalva: minha experiência está concentrada em problemas de geociência, onde os dados geralmente são "esparsos" em relação à capacidade do modelo).

Uma perspectiva interessante é talvez

O. Bousquet e L. Bottou (2008) As vantagens e desvantagens do aprendizado em larga escala. NIPS.

que fornece argumentos semi-teóricos sobre por que e quando a otimização aproximada pode ser preferível na prática.

Nota final (meta-otimização): Embora as técnicas baseadas em gradiente pareçam ser dominantes nas redes de treinamento, pode haver uma função do DFO nas tarefas associadas de meta-otimização.

Um exemplo seria o ajuste de hiperparâmetros. (Interessante, os otimizadores de DFO baseados em modelo da Rios & Sahinidis podem ser vistos como essencialmente resolvendo uma sequência de problemas de projeto de experimentos / superfície de resposta .)

Outro exemplo pode ser o projeto de arquiteturas, em termos de configuração de camadas (por exemplo, número, tipo, sequência, nós / camada). Nesse contexto de otimização discreta, algoritmos de estilo genético podem ser mais apropriados. Observe que aqui estou pensando no caso em que a conectividade é determinada implicitamente por esses fatores (por exemplo, camadas totalmente conectadas, camadas convolucionais, etc.). Em outras palavras, a conectividade é meta-otimizada explicitamente. (A força da conexão cairia em treinamento, onde, por exemplo, a esparsidade poderia ser promovida pela regularização e / ou ativações ReLU ... essas opções poderiam ser meta-otimizadas no entanto.)O[N2]notL1

GeoMatt22
fonte
1
A "revisão" citada é dos principais defensores das redes neurais; Eu questionaria a afirmação sobre mínimos locais - uma crítica teórica bem conhecida das NNs é precisamente que qualquer modelo complexo não pode ser otimizado pela descida do gradiente, porque ficará preso nos mínimos locais. Não está claro se são apenas os sucessos dos nns que podem ser resolvidos com o pano de fundo e você não ouve as falhas.
Seanv507
2
@ GeoMatt22 A divergência contrastante é uma aproximação especial ao gradiente de uma classe especial de modelos, na qual os RBMs se enquadram. Deve-se notar que as RBMs são modelos probabilísticos que implicam certo tipo de distribuição, para os quais o gradiente da estimativa de máxima verossimilhança é intratável. Redes neurais são modelos computacionais, que podem ser usados ​​sem nenhum ponto de partida probabilístico, por exemplo, através da otimização de uma perda de dobradiça. Para encurtar a história, o CD não é um meio geral de otimizar redes neurais.
bayerj
2
@ seanv507 Embora a reivindicação tenha sido feita pelos principais proponentes, há artigos revisados ​​por pares das principais conferências de aprendizado de máquina que avaliam essas reivindicações rigorosamente, por exemplo, arxiv.org/abs/1406.2572 . Até agora, essa alegação é amplamente aceita na comunidade mais ampla de ML, principalmente devido a seus argumentos teóricos superiores e evidências empíricas. Não acho que um argumento ad hominem seja adequado aqui.
precisa saber é
1
Concordo que a teoria da DL está ausente. Ainda assim, você deve reconhecer que artigos como este estão avançando nisso. Se você acha que o artigo está apresentando resultados incorretos e as conclusões (como "mínimos locais são menos um problema do que pontos de sela") são inválidas, é preciso fazer melhor do que declarar mais um ataque ad hominem, desta vez visando o Comunidade ML como um todo.
precisa saber é
1
Trabalhos recentes mostram que, com a inicialização aleatória, a descida do gradiente converge para um mínimo local (em vez de um ponto de sela). Artigo aqui: arxiv.org/abs/1602.04915 e blog aqui: offconvex.org/2016/03/24/saddles-again Por outro lado, há uma hipótese (menos) recente de que em grandes redes neurais os mínimos locais são sobre o que é tão bom quanto o global, discutido aqui: stats.stackexchange.com/questions/203288/…
DavidR
12

Você pode usar todos os tipos de algoritmos de busca local; a retropropagação acabou de ser a mais eficiente para tarefas mais complexas em geral ; há circunstâncias em que outras pesquisas locais são melhores.

Você pode usar subidas aleatórias em uma rede neural para encontrar rapidamente uma solução aceitável, mas não seria viável encontrar uma solução quase ideal.

Wikipedia (eu sei, não é a melhor fonte, mas ainda) diz

Para problemas em que encontrar o ótimo global preciso é menos importante do que encontrar um ótimo local aceitável em um período fixo de tempo, o recozimento simulado pode ser preferível a alternativas como descida em gradiente.

fonte

Quanto aos algoritmos genéticos, eu veria retropropagação versus algoritmo genético para o treinamento em redes neurais

O caso principal que eu consideraria para o backprop é que ele é amplamente utilizado e teve muitas melhorias . Essas imagens realmente mostram alguns dos incríveis avanços na propagação da baunilha.

Eu não pensaria no backprop como um algoritmo, mas como uma classe de algoritmos.

Eu também gostaria de acrescentar que, para redes neurais, os parâmetros de 10k são feijões pequenos. Outra pesquisa funcionaria muito bem, mas em uma rede profunda com milhões de parâmetros, isso não é prático.

Liam McInroy
fonte
12

Bem, as redes neurais originais, antes da revolução da retropropagação nos anos 70, eram "treinadas" à mão. :)

Dito isto:

Existe uma "escola" de aprendizado de máquina chamada máquina de aprendizado extremo que não usa retropropagação.

O que eles fazem é criar uma rede neural com muitos, muitos, muitos nós - com pesos aleatórios - e treinar a última camada usando quadrados mínimos (como uma regressão linear). Eles então apuram a rede neural posteriormente ou aplicam a regularização na última etapa (como o laço) para evitar o ajuste excessivo. Eu já vi isso aplicado a redes neurais com apenas uma camada oculta. Não há treinamento, por isso é super rápido. Fiz alguns testes e, surpreendentemente, essas redes neurais "treinadas" dessa maneira são bastante precisas.

A maioria das pessoas, pelo menos com quem trabalho, trata essa "escola" de aprendizado de máquina com escárnio e é um grupo de excluídos com suas próprias conferências e assim por diante, mas na verdade acho que é meio ingênuo.


Outro ponto: na retropropagação, existem alternativas raramente mencionadas, como a retropropagação resiliente , que são implementadas em R no neuralnetpacote, que usam apenas a magnitude do derivado. O algoritmo é composto de condições if-else em vez de álgebra linear. Eles têm algumas vantagens sobre a retropropagação tradicional, ou seja, você não precisa normalizar seus dados porque eles não sofrem com o problema de gradiente de fuga .

Ricardo Cruz
fonte
Cabine você (a maioria ou todos) o discurso no seu quarto parágrafo e, em seguida, use o resultado como ponto de partida para uma otimização baseada em derivativos para "ajustá-lo".
Mark L. Stone
1
@ MarkL.Stone Não conheço ninguém que tenha feito retropropagação aplicando primeiro uma regressão linear à última camada. Parece interessante.
Ricardo Cruz
1
Até onde eu sei, a controvérsia em torno dos ELMs se deve principalmente a aspectos éticos, não a implementação. Schmidt et al. Já haviam abordado o assunto em 1992, com sua Feedforward Network com pesos aleatórios.
Firebug
3

Você pode usar praticamente qualquer algoritmo de otimização numérica para otimizar pesos de uma rede neural. Você também pode usar algoritmos mistos de otimização contínua e discreta para otimizar não apenas pesos, mas o próprio layout (número de camadas, número de neurônios em cada camada, até mesmo o tipo de neurônio). No entanto, não há algoritmo de otimização que não sofra "maldição de dimensionalidade" e optimas locais de alguma maneira

transeunte
fonte
3

Você também pode usar outra rede para aconselhar como os parâmetros devem ser atualizados.

Há as interfaces neurais dissociadas (DNI) do Google Deepmind. Em vez de usar a retropropagação, ele usa outro conjunto de redes neurais para prever como atualizar os parâmetros, o que permite a atualização paralela e assíncrona dos parâmetros.

O artigo mostra que o DNI aumenta a velocidade de treinamento e a capacidade do modelo de RNNs e fornece resultados comparáveis ​​para RNNs e FFNNs em várias tarefas.


O artigo também listou e comparou muitos outros métodos de não retropropagação

Nosso modelo de gradiente sintético é mais análogo a uma função de valor usada para subida de gradiente [2] ou a uma função de valor usada para inicialização. A maioria dos outros trabalhos que visam remover a retropropagação o fazem com o objetivo de executar uma atribuição de crédito biologicamente plausível, mas isso não elimina o bloqueio de atualização entre as camadas. Por exemplo, a propagação de alvo [3, 15] elimina a dependência de passar gradientes entre as camadas, ao invés disso gera ativações de alvo que devem ser ajustadas. No entanto, esses destinos ainda devem ser gerados sequencialmente, propagando-se para trás pela rede e as camadas ainda são atualizadas e bloqueadas para trás. Outros algoritmos removem o bloqueio para trás, permitindo que perdas ou recompensas sejam transmitidas diretamente para cada camada - por exemplo, REINFORCE [21] (considerando que todas as ativações são ações),1e Redes de coagentes com gradiente de política [20] - mas ainda permanecem bloqueadas para atualização, pois exigem que as recompensas sejam geradas por uma saída (ou um crítico global). Embora o aprendizado recorrente em tempo real [22] ou aproximações como [17] possa parecer uma maneira promissora de remover o bloqueio de atualização, esses métodos exigem a manutenção do gradiente completo (ou aproximado) do estado atual em relação aos parâmetros. Isso inerentemente não é escalável e também requer que o otimizador tenha conhecimento global do estado da rede. Por outro lado, ao enquadrar a interação entre camadas como um problema de comunicação local com o DNI, removemos a necessidade de conhecimento global do sistema de aprendizagem. Outros trabalhos como [4, 19] permitem o treinamento de camadas em paralelo sem retropropagação,

dontloo
fonte
2

Contanto que essa seja uma pergunta da comunidade, pensei em adicionar outra resposta. "Propagação traseira" é simplesmente o algoritmo de descida de gradiente. Envolve usar apenas a primeira derivada da função para a qual se está tentando encontrar os mínimos ou máximos locais. Existe outro método chamado método de Newton ou Newton-Raphson que envolve o cálculo do Hessiano e, portanto, utiliza segundas derivadas. Pode ter êxito em casos em que a descida do gradiente falha. Outros dizem que tenho mais conhecimento do que eu, e sim, este é um apelo de segunda mão à autoridade, que não é usado em redes neurais porque o cálculo de todas as segundas derivadas é muito caro em termos de computação.

aginensky
fonte