No que diz respeito aos recursos:
Aqui estão algumas citações centrais de ADADELTA: Um método de taxa de aprendizado adaptável , juntamente com alguns exemplos e explicações breves:
ADAGRAD
A regra de atualização para o ADAGRAD é a seguinte:
Δxt= -η∑tτ= 1g2τ√gt( 5 )
Aqui o denominador calcula o l 2norma de todos os gradientes anteriores em uma base por dimensão e η é uma taxa de aprendizado global compartilhada por todas as dimensões.
Embora exista a taxa de aprendizado global ajustada manualmente, cada dimensão tem sua própria taxa dinâmica.
Ou seja, se os gradientes nas três primeiras etapas são g1=⎛⎝uma1b1c1⎞⎠,g2=⎛⎝uma2b2c2⎞⎠,g3=⎛⎝uma3b3c3⎞⎠, então:
Δx3= -η∑3τ= 1g2τ-------√g3= -η⎛⎝⎜uma21+uma22+uma23b21+b22+b23c21+c22+c23⎞⎠⎟--------------⎷⎛⎝uma3b3c3⎞⎠↓Δx3= -⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜ηuma21+uma22+uma23----------√uma3ηb21+b22+b23---------√b3ηc21+c22+c23---------√c3⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟
Aqui é mais fácil ver que cada dimensão tem sua própria taxa de aprendizado dinâmico, conforme prometido.
Problemas do ADAGRAD que o ADADELTA tenta combater
A idéia apresentada neste artigo foi derivada do ADAGRAD para aprimorar as duas principais desvantagens do método: 1) a decadência contínua das taxas de aprendizado durante o treinamento e 2) a necessidade de uma taxa de aprendizado global selecionada manualmente.
A segunda desvantagem é bastante auto-explicativa.
Aqui está um exemplo de quando a primeira desvantagem é um problema:
considere um caso em que o valor absoluto de cada componente deg2é muito maior que o valor absoluto do respectivo componente do gradiente em qualquer outra etapa.
Para qualquert > 2, sustenta que todos os componentes de ∑tτ= 1g2τ-------√ é maior que o valor absoluto do respectivo componente de g2. Mas o valor absoluto de cada componente deg2 é muito maior que o valor absoluto do respectivo componente de gt, e entao Δxté muito pequeno.
Além disso, à medida que o algoritmo progride, ele se aproxima do mínimo, diminuindo o gradiente eΔxttorna-se cada vez menor.
Assim, pode ser que o algoritmo praticamente pare antes de atingir o mínimo.
ADADELTA
Em vez de considerar todos os gradientes calculados, o ADADELTA considera apenas o último W gradientes.
Desde o armazenamento WComo os gradientes quadrados anteriores são ineficientes, nossos métodos implementam esse acúmulo como uma média exponencialmente decadente dos gradientes quadrados. Suponha no momentot essa média atual é E[g2]t então calculamos:
E[g2]t= ρ E[g2]t - 1+ ( 1 - ρ )g2t( 8 )
Onde ρé uma constante de decaimento [...]. Como exigimos a raiz quadrada dessa quantidade nas atualizações de parâmetros, isso se torna efetivamente oRMS
dos gradientes quadrados anteriores até o momento t:
RMS[ g]t=E[g2]t+ ϵ--------√( 9 )
onde uma constante ϵ é adicionado para melhor condição do denominador
(RMSsignifica Root Mean Square .)
Similarmente:
E[ Δx2]t - 1= ρ E[ Δx2]t - 2+ ( 1 - ρ ) Δx2t - 1
RMS[ Δ x ]t - 1=E[ Δx2]t - 1+ ϵ------------√
E finalmente:
[...] aproximado Δxt calculando o decaimento exponencial RMS sobre uma janela de tamanho W dos anteriores Δ x para dar o método ADADELTA:
Δxt= -RMS[ Δ x ]t - 1RMS[ g]tgt( 14 )
onde a mesma constante ϵ é adicionado ao numerador RMStambém. Essa constante serve ao propósito de iniciar a primeira iteração em queΔx0 0= 0e para garantir que o progresso continue sendo feito, mesmo que as atualizações anteriores se tornem pequenas.
[...]
O numerador atua como um termo de aceleração, acumulando gradientes anteriores ao longo de uma janela de tempo [...]
Ou seja, se o gradiente na etapa r é gr=⎛⎝umarbrcr⎞⎠ e Δxr=⎛⎝Eurjrkr⎞⎠, então:
Δxt= -RMS[ Δ x]t - 1RMS[ g]tgt= -E[ Δx2]t - 1+ϵ-----------√E[g2]t+ ϵ--------√gt=-ρ E[ Δx2]t - 2+ ( 1 - ρ ) Δx2t - 1+ ϵ-------------------------√ρ E[g2]t - 1+ ( 1 - ρ )g2t+ ϵ--------------------√gt=-ρ ( ρ E[ Δx2]t - 3+ ( 1 - ρ ) Δx2t - 2) + ( 1 - ρ ) Δx2t - 1+ ϵ----------------------------------------√ρ ( ρ E[g2]t - 2+ ( 1 - ρ )g2t - 1) + ( 1 - ρ )g2t+ ϵ----------------------------------√gt=-ρ2E[ Δx2]t - 3+p1( 1 - ρ ) Δx2t - 2+p0 0( 1 - ρ ) Δx2t - 1+ ϵ------------------------------------------√ρ2E[g2]t - 2+p1( 1 - ρ )g2t - 1+p0 0( 1 - ρ )g2t+ ϵ------------------------------------√gt=-ρt - 1E[ Δx2]0 0+∑r = 1t - 1ρt - 1 - r( 1 - ρ ) Δx2r+ ϵ-------------------------------√ρt - 1E[g2]1+∑r = 2tρt - r( 1 - ρ )g2r+ ϵ---------------------------√gt
ρ é uma constante de decaimento, então escolhemos de tal forma que ρ ∈ ( 0 , 1 ) (tipicamente ρ ≥ 0,9)
Portanto, multiplicando por um alto poder deρresulta em um número muito pequeno.
DeixeiW seja o expoente mais baixo, de modo que consideremos o produto da multiplicação de valores sãos por ρWinsignificante.
Agora, podemos aproximarΔxt eliminando termos insignificantes:
Δxt≈ -∑r = t - wt - 1ρt - 1 - r( 1 - ρ ) Δx2r+ ϵ---------------------√∑r = t + 1 - wtρt - r( 1 - ρ )g2r+ ϵ--------------------√gt=-∑r = t - wt - 1ρt - 1 - r( 1 - ρ )⎛⎝⎜Eu2rj2rk2r⎞⎠⎟+ ϵ------------------------⎷∑r = t + 1 - wtρt - r( 1 - ρ )⎛⎝⎜uma2rb2rc2r⎞⎠⎟+ ϵ------------------------⎷⎛⎝umatbtct⎞⎠↓Δxt≈ -⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜∑r = t - wt - 1ρt - 1 - r( 1 - ρ )Eu2r+ ϵ--------------------√∑r = t + 1 - wtρt - r( 1 - ρ )uma2r+ ϵ--------------------√umat∑r = t - wt - 1ρt - 1 - r( 1 - ρ )j2r+ ϵ--------------------√∑r = t + 1 - wtρt - r( 1 - ρ )b2r+ ϵ--------------------√bt∑r = t - wt - 1ρt - 1 - r( 1 - ρ )k2r+ ϵ--------------------√∑r = t + 1 - wtρt - r( 1 - ρ )c2r+ ϵ--------------------√ct⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟