Por que usar descida gradiente com redes neurais?


22
  1. Ao treinar uma rede neural usando o algoritmo de retropropagação, o método de descida de gradiente é usado para determinar as atualizações de peso. Minha pergunta é: Em vez de usar o método de descida de gradiente para localizar lentamente o ponto mínimo com relação a um determinado peso, por que não definimos a derivada , e encontre o valor do peso que minimiza o erro?d(Erro)dW=0 0W

  2. Além disso, por que temos certeza de que a função de erro na propagação traseira será mínima? Não é possível que a função de erro seja máxima? Existe uma propriedade específica das funções de esmagamento que garanta que uma rede com qualquer número de nós ocultos com pesos arbitrários e vetores de entrada sempre dê uma função de erro com alguns mínimos?


2
Todos os títulos de maiúsculas não são padrão aqui (por favor, olhe ao seu redor) e aqui e em outros lugares amplamente obsoletos como SHOUTING indesejável.
— Nick Cox

@Nick Cox minhas desculpas
— Minaj

É interessante ver sempre que variáveis ​​ocultas ou latentes são usadas nos modelos de Machine Learning, a otimização (quase?) Sempre fica não linear, não convexa e apenas mais difícil de otimizar.
— Vladislavs Dovgalecs

Respostas:


30
  1. Porque nós não podemos. A superfície de otimização em função dos pesos w é não linear e não existe solução de forma fechada para d S ( w )S(W)W.dS(W)dW=0 0

  2. A descida do gradiente, por definição, desce. Se você atingir um ponto estacionário após a descida, ele deverá ser um mínimo (local) ou um ponto de sela, mas nunca um máximo local.


Se a função fosse côncava, o gradiente decente diminuiria para sempre, pois o único caminho a seguir é para baixo. Você está dizendo que a superfície de erro é garantida para não ser côncava? Além disso, não está claro para mim por que a derivada da função de erro não teria solução de forma fechada. Não é o erro do formulário onde K é uma constante? Essa função parece bastante diferenciável e a expressão resultante analiticamente solucionável. Por favor, ajude-me a esclarecer, pois há algo que claramente não vejo. K-11+eΣWx
— Minaj

8
Isso não pode acontecer, porque todas as funções de erro usadas com frequência têm um mínimo teórico estrito de 0. Os erros nunca podem se tornar negativos.
— Marc Claesen

2
Uma outra interpretação possível de 1. é "É exatamente isso que fazemos, a equação é resolvida usando a descida do gradiente".
— Matthew Drury

1
claramente existe uma forma fechada para o gradiente (é assim que fazemos a descida do gradiente com eficiência). O problema não é raiz de forma fechada do gradiente = 0
— seanv507

@ seanv507 é o que eu pretendia dizer, desculpe pela confusão. Editou minha postagem.
— Marc Claesen

10

Em relação à resposta de Marc Claesen, acredito que a descida do gradiente pode parar no máximo local em situações em que você inicializa no máximo local ou acaba por aí devido a má sorte ou a um parâmetro de taxa de desvio de direção. O máximo local teria gradiente zero e o algoritmo pensaria que havia convergido. É por isso que geralmente executo várias iterações de diferentes pontos de partida e acompanho os valores ao longo do caminho.


1
Editei seu comentário de preâmbulo, pois parece que você já está atraindo votos positivos! Bem vindo ao site!
— Matthew Drury

Obrigado! Eu não tinha certeza se deveria ser um comentário ou uma resposta e não queria que minha primeira resposta fosse rebaixada ao esquecimento com base nisso.
— Jared Becksfort 13/11/2015

6

d(erro)dW=0 0

  • É preciso lidar com segundos derivados (o Hessian, especificamente produtos com vetores Hessian).
  • O "passo de solução" é muito caro em termos de computação: no tempo que leva para fazer uma solução, pode-se ter feito muitas iterações de descida de gradiente.

Se alguém usa um método de Krylov para resolver o Hessiano e não usa um bom pré-condicionador para o Hessiano, os custos se equilibram aproximadamente - as iterações de Newton demoram muito mais, mas fazem mais progresso, de modo que o tempo total seja aproximadamente o mesmo ou mais lento que a descida do gradiente. Por outro lado, se alguém tem um bom pré-condicionador de Hess, o método de Newton ganha muito.

Dito isto, os métodos Newton-Krylov da região de confiança são o padrão-ouro na otimização moderna em larga escala, e eu esperaria que o uso deles aumentasse nas redes neurais nos próximos anos, pois as pessoas querem resolver problemas cada vez maiores. (e também à medida que mais pessoas em otimização numérica se interessam por aprendizado de máquina)


Eu acho que você está enganado. As pessoas usam redes desde os anos 90 e conhecem bem os métodos de segunda ordem. o problema é precisamente que as redes são bem-sucedidas quando há muitos dados, os quais suportam muitos parâmetros. Nesse caso, as restrições de tempo e memória dos métodos de segunda ordem são ineficazes. veja, por exemplo, leon.bottou.org/publications/pdf/compstat-2010.pdf
— seanv507

@ seanv507 Na verdade não. A discussão dos métodos de segunda ordem nesse artigo apresenta muitas falhas, na medida em que eles assumem que é preciso construir e inverter todo o denso Hessiano para usar os métodos de segunda ordem. Simplesmente não é assim que é feito na otimização numérica moderna em larga escala. Nos métodos modernos de segunda ordem, calcula-se a ação do hessiano em vetores, resolvendo problemas adjuntos, e os utiliza em um solucionador iterativo (Krylov). Geralmente, a primeira iteração interna retorna a direção do gradiente e as iterações subsequentes a aprimoram.
— Nick Alger

Embora eu não seja um fã em particular desse artigo, não acho que isso seja verdade. Ele já discutiu / implementou aproximações de diagonal e de classificação reduzida do hessian. E o que dizer do rápido artigo de pearlmutter de 1994 sobre a multiplicação exata por hessian?
— seanv507

Direita. Depois de ter aplicações rápidas do Hessian (seja através do Pearlmutter ou do que você tem), você pode resolver o Hessian inexato com métodos de Krylov, como gradiente conjugado. Ao fazer isso, efetivamente transfere-se as dificuldades de mau condicionamento para longe do otimizador iterativo não-linear, para o solucionador iterativo de álgebra linear, onde há muitas máquinas e técnicas de pré-condicionamento disponíveis para lidar com o problema. Uma boa referência é a seção sobre a região de confiança CG-Steihaug no clássico "Numerical Optimization" de Nocedal e Wright.
— Nick Alger

O que quero dizer é que essa multiplicação por gradientes hessianos e conjugados era conhecida na comunidade de redes desde 1994. Portanto, acredito que há definitivamente uma razão pela qual o SGD é usado, em vez de métodos de segunda ordem (e eu certamente gostaria de uma resolução clara de por que isso é )
— seanv507
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.