Eu estava lendo sobre o otimizador de Adam para o Deep Learning e me deparei com a seguinte frase no novo livro Deep Learning de Begnio, Goodfellow e Courtville:
Adam inclui correções de viés nas estimativas dos momentos de primeira ordem (o termo momentum) e dos momentos de segunda ordem (sem centralização) para explicar sua inicialização na origem.
parece que o principal motivo para incluir esses termos de correção de viés é que, de alguma forma, ele remove o viés da inicialização de e .
- Não tenho 100% de certeza do que isso significa, mas parece-me que provavelmente significa que o primeiro e o segundo momento começam em zero e, de alguma forma, iniciá-lo em zero inclina os valores mais próximos de zero de uma maneira injusta (ou útil) para o treinamento ?
- Embora eu adorasse saber o que isso significa um pouco mais precisamente e como isso prejudica o aprendizado. Em particular, quais vantagens a otimização do otimizador tem em termos de otimização?
- Como isso ajuda a treinar modelos de aprendizado profundo?
- Além disso, o que significa quando é imparcial? Eu sei o que significa desvio padrão imparcial, mas não está claro para mim o que significa nesse contexto.
- A correção de viés é realmente um grande problema ou isso é algo exagerado no artigo do otimizador de Adam?
Apenas para que as pessoas saibam que eu tentei muito entender o artigo original, mas fiquei muito pouco lendo e relendo o artigo original. Suponho que algumas dessas perguntas possam ser respondidas lá, mas não consigo analisar as respostas.
machine-learning
neural-networks
optimization
conv-neural-network
adam
Charlie Parker
fonte
fonte
Respostas:
O problema de NÃO corrigir o viés
De acordo com o artigo
Normalmente, na prática,β2 é definido muito mais próximo de 1 que β1 (conforme sugerido pelo autor β2=0.999 , β1=0.9 ), portanto, os coeficientes de atualização 1−β2=0.001 são muito menores que 1−β1=0.1 .
Na primeira etapa do treinamentom1=0.1gt , v1=0.001g2t , m1/(v1−−√+ϵ) na atualização de parâmetro pode ser muito grande se usarmos a estimativa enviesada diretamente.
Por outro lado, ao usar a estimativa corrigida pelo viés,m1^=g1 e v1^=g21 , mt^/(vt^−−√+ϵ) termo torna-se menos sensível aβ1 eβ2 .
Como o viés é corrigidom0 e atualizamos a estimativa gradualmente por mt=βmt−1+(1−β)gt . Portanto, é óbvio que, nos primeiros passos, nossa média móvel é fortemente influenciada pelo m0 inicial .
O algoritmo usa a média móvel para estimar o primeiro e o segundo momento. A estimativa tendenciosa seria: começamos com um palpite arbitrário
Como Mark L. Stone comentou bem
De alguma forma, isso não é exatamente equivalente a
(é claro que pode ser transformado na mesma forma alterando a regra de atualização (veja a atualização da resposta), e acredito que essa linha visa principalmente mostrar a desnecessidade de introduzir o viés, mas talvez valha a pena notar a diferença)
Por exemplo, o primeiro momento corrigido no momento 2
A correção de viés é realmente um grande problema
Uma vez que na verdade afeta apenas os primeiros passos do treinamento, não parece ser um problema muito grande. Em muitas estruturas populares (por exemplo , keras , caffe ), apenas a estimativa tendenciosa é implementada.
Portanto, isso pode ser feito sem a introdução de um termo tendencioso e a correção. Penso que o artigo o colocou na forma de correção de viés para facilitar a comparação com outros algoritmos (por exemplo, RmsProp).
fonte