Con respecto a los recursos:
Aquí hay algunas citas centrales de ADADELTA: un método de tasa de aprendizaje adaptativo , junto con algunos ejemplos y explicaciones breves:
ADAGRAD
La regla de actualización para ADAGRAD es la siguiente:
ΔXt= -η∑tτ= 1sol2τ√solt( 5 )
Aquí el denominador calcula el l 2norma de todos los gradientes anteriores por dimensión y η es una tasa de aprendizaje global compartida por todas las dimensiones.
Si bien existe la tasa de aprendizaje global ajustada a mano, cada dimensión tiene su propia tasa dinámica.
Es decir, si los gradientes en los primeros tres pasos son sol1=⎛⎝una1si1C1⎞⎠,sol2=⎛⎝una2si2C2⎞⎠,sol3=⎛⎝una3si3C3⎞⎠, entonces:
Δx3=−η∑3τ=1g2τ−−−−−−−√g3=−η⎛⎝⎜a21+a22+a23b21+b22+b23c21+c22+c23⎞⎠⎟−−−−−−−−−−−−−−⎷⎛⎝a3b3c3⎞⎠↓Δx3=−⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜ηa21+a22+a23−−−−−−−−−−√a3ηb21+b22+b23−−−−−−−−−√b3ηc21+c22+c23−−−−−−−−−√c3⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟
Aquí es más fácil ver que cada dimensión tiene su propia tasa de aprendizaje dinámico, como se prometió.
Problemas de ADAGRAD que ADADELTA intenta contrarrestar
La idea presentada en este documento se derivó de ADAGRAD para mejorar los dos inconvenientes principales del método: 1) la disminución continua de las tasas de aprendizaje a lo largo de la capacitación, y 2) la necesidad de una tasa de aprendizaje global seleccionada manualmente.
El segundo inconveniente se explica por sí mismo.
Aquí hay un ejemplo para cuando el primer inconveniente es un problema:
considere un caso en el que el valor absoluto de cada componente deg2es mucho mayor que el valor absoluto del componente respectivo del gradiente en cualquier otro paso.
Para cualquiert > 2, sostiene que cada componente de ∑tτ= 1sol2τ-------√ es mayor que el valor absoluto del componente respectivo de sol2. Pero el valor absoluto de cada componente desol2 es mucho mayor que el valor absoluto del componente respectivo de solt, y entonces ΔXtes muy pequeño.
Además, a medida que el algoritmo progresa, se acerca al mínimo, por lo que el gradiente se hace más pequeño, y asíΔXtse vuelve cada vez más pequeño.
Por lo tanto, podría ser que el algoritmo prácticamente se detenga antes de alcanzar un mínimo.
ADADELTA
En lugar de considerar todos los gradientes que se calcularon, ADADELTA considera solo el último w gradientes
Desde el almacenamiento wlos gradientes cuadrados anteriores son ineficientes, nuestros métodos implementan esta acumulación como un promedio exponencialmente decreciente de los gradientes cuadrados. Asumir a tiempot este promedio de funcionamiento es mi[sol2]t entonces calculamos:
mi[sol2]t= ρ E[sol2]t - 1+ ( 1 - ρ )sol2t( 8 )
dónde ρes una decadencia constante [...]. Dado que requerimos la raíz cuadrada de esta cantidad en las actualizaciones de parámetros, esto efectivamente se convierte en elRMS
de gradientes al cuadrado anteriores hasta el momento t:
RMS[ g]t=mi[sol2]t+ ϵ--------√( 9 )
donde una constante ϵ se agrega para mejorar el denominador
(RMSsignifica Root Mean Square .)
Similar:
mi[ ΔX2]t - 1= ρ E[ ΔX2]t - 2+ ( 1 - ρ ) ΔX2t - 1
RMS[ Δ x ]t - 1=mi[ ΔX2]t - 1+ ϵ------------√
Y finalmente:
[...] aproximado ΔXt calculando la descomposición exponencial RMS sobre una ventana de tamaño w de anterior Δ x para dar el método ADADELTA:
ΔXt= -RMS[ Δ x ]t - 1RMS[ g]tsolt( 14 )
donde la misma constante ϵ se agrega al numerador RMStambién. Esta constante sirve tanto para comenzar la primera iteración dondeΔX0 0= 0y para garantizar que se siga avanzando incluso si las actualizaciones anteriores se reducen.
[...]
El numerador actúa como un término de aceleración, acumulando gradientes anteriores en una ventana de tiempo [...]
Es decir, si el gradiente en el paso r es solr=⎛⎝unarsirCr⎞⎠ y ΔXr=⎛⎝yorjrkr⎞⎠, entonces:
ΔXt= -RMS[ Δ x ]t - 1RMS[ g]tsolt= -mi[ ΔX2]t - 1+ ϵ-----------√mi[sol2]t+ ϵ--------√solt=-ρ E[ ΔX2]t - 2+ ( 1 - ρ ) ΔX2t - 1+ ϵ-------------------------√ρ E[sol2]t - 1+ ( 1 - ρ )sol2t+ ϵ--------------------√solt=-ρ ( ρ E[ ΔX2]t - 3+ ( 1 - ρ ) ΔX2t - 2) + ( 1 - ρ ) ΔX2t - 1+ ϵ----------------------------------------√ρ ( ρ E[sol2]t - 2+ ( 1 - ρ )sol2t - 1) + ( 1 - ρ )sol2t+ ϵ----------------------------------√solt=-ρ2mi[ ΔX2]t - 3+pags1( 1 - ρ ) ΔX2t - 2+pags0 0( 1 - ρ ) ΔX2t - 1+ ϵ------------------------------------------√ρ2mi[sol2]t - 2+pags1( 1 - ρ )sol2t - 1+pags0 0( 1 - ρ )sol2t+ ϵ------------------------------------√solt=-ρt - 1mi[ ΔX2]0 0+∑r = 1t - 1ρt - 1 - r( 1 - ρ ) ΔX2r+ ϵ-------------------------------√ρt - 1mi[sol2]1+∑r = 2tρt - r( 1 - ρ )sol2r+ ϵ---------------------------√solt
ρ es una constante de descomposición, por lo que lo elegimos de tal manera que ρ ∈ ( 0 , 1 ) (típicamente ρ ≥ 0.9)
Por lo tanto, multiplicando por un alto poder deρda como resultado un número muy pequeño.
Dejarw ser el exponente más bajo de tal manera que consideremos el producto de multiplicar valores sanos por ρwdespreciable.
Ahora podemos aproximarnosΔXt dejando caer términos insignificantes:
ΔXt≈ -∑r = t - wt - 1ρt - 1 - r( 1 - ρ ) ΔX2r+ ϵ---------------------√∑r = t + 1 - wtρt - r( 1 - ρ )sol2r+ ϵ--------------------√solt=-∑r = t - wt - 1ρt - 1 - r( 1 - ρ )⎛⎝⎜yo2rj2rk2r⎞⎠⎟+ ϵ------------------------⎷∑r = t + 1 - wtρt - r( 1 - ρ )⎛⎝⎜una2rsi2rC2r⎞⎠⎟+ ϵ------------------------⎷⎛⎝unatsitCt⎞⎠↓ΔXt≈ -⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜∑r = t - wt - 1ρt - 1 - r( 1 - ρ )yo2r+ ϵ--------------------√∑r = t + 1 - wtρt - r( 1 - ρ )una2r+ ϵ--------------------√unat∑r = t - wt - 1ρt - 1 - r( 1 - ρ )j2r+ ϵ--------------------√∑r = t + 1 - wtρt - r( 1 - ρ )si2r+ ϵ--------------------√sit∑r = t - wt - 1ρt - 1 - r( 1 - ρ )k2r+ ϵ--------------------√∑r = t + 1 - wtρt - r( 1 - ρ )C2r+ ϵ--------------------√Ct⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟