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?

Minaj
fonte
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.

Marc Claesen
fonte
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.

Jared Becksfort
fonte
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)

Nick Alger
fonte
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