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?
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?
22
Respostas:
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
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.
fonte
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.
fonte
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)
fonte