Comprender las matemáticas de AdaGrad y AdaDelta

8

He estado construyendo algunos modelos para un proyecto, pero no puedo entender los algoritmos matemáticos de Adagrad y Adadelta.

Entiendo cómo funciona el descenso de gradiente de vainilla y he escrito un código para que funcione correctamente.

Estaré agradecido si alguien me explica estas dos cosas o proporciona algún recurso para comprenderlas.

Malayo hazarika
fuente
1
Buena explicación en quora.com/…
mico

Respuestas:

6

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=-ητ=1tsolτ2solt(5 5)
Aquí el denominador calcula el l2norma 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=ητ=13gτ2g3=-η(una12+una22+una32si12+si22+si32C12+C22+C32)(una3si3C3)ΔX3=-(ηuna12+una22+una32una3ηsi12+si22+si32si3ηC12+C22+C32C3)
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 τ=1tsolτ2 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=ρmi[sol2]t-1+(1-ρ)solt2(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[sol]t=mi[sol2]t+ϵ(9 9)
donde una constante ϵ se agrega para mejorar el denominador

(RMSsignifica Root Mean Square .)

Similar:

mi[ΔX2]t-1=ρmi[ΔX2]t-2+(1-ρ)ΔXt-12
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[sol]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=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[sol]tsolt=-mi[ΔX2]t-1+ϵmi[sol2]t+ϵsolt=-ρmi[ΔX2]t-2+(1-ρ)ΔXt-12+ϵρmi[sol2]t-1+(1-ρ)solt2+ϵsolt=-ρ(ρmi[ΔX2]t-3+(1-ρ)ΔXt-22)+(1-ρ)ΔXt-12+ϵρ(ρmi[sol2]t-2+(1-ρ)solt-12)+(1-ρ)solt2+ϵsolt=-ρ2mi[ΔX2]t-3+pags1(1-ρ)ΔXt-22+pags0 0(1-ρ)ΔXt-12+ϵρ2mi[sol2]t-2+pags1(1-ρ)solt-12+pags0 0(1-ρ)solt2+ϵsolt=-ρt-1mi[ΔX2]0 0+r=1t-1ρt-1-r(1-ρ)ΔXr2+ϵρt-1mi[sol2]1+r=2tρt-r(1-ρ)solr2+ϵsolt

ρ es una constante de descomposición, por lo que lo elegimos de tal manera que ρ(0 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-ρ)ΔXr2+ϵr=t+1-wtρt-r(1-ρ)solr2+ϵsolt=-r=t-wt-1ρt-1-r(1-ρ)(yor2jr2kr2)+ϵr=t+1-wtρt-r(1-ρ)(unar2sir2Cr2)+ϵ(unatsitCt)ΔXt-(r=t-wt-1ρt-1-r(1-ρ)yor2+ϵr=t+1-wtρt-r(1-ρ)unar2+ϵunatr=t-wt-1ρt-1-r(1-ρ)jr2+ϵr=t+1-wtρt-r(1-ρ)sir2+ϵsitr=t-wt-1ρt-1-r(1-ρ)kr2+ϵr=t+1-wtρt-r(1-ρ)Cr2+ϵCt)
Oren Milman
fuente
1

De quora encontrará una guía más completa, pero las ideas principales son que AdaGrad intenta etiquetar estos problemas en la selección de la tasa de aprendizaje de gradiente en el aprendizaje automático:

1 Selección manual de la tasa de aprendizaje η.

2 El vector de gradiente gt se escala uniformemente por una tasa de aprendizaje escalar η.

3 La tasa de aprendizaje η permanece constante durante todo el proceso de aprendizaje.

Resuelve las preocupaciones 2 y 3 simplemente dividiendo cada componente de gradiente actual por una norma L2 de gradientes observados en el pasado para ese componente en particular.

Tiene en sí los siguientes problemas:

1 Tasa de aprendizaje en decadencia continua η.

2 Selección manual de la tasa de aprendizaje η.

AdaDelta resuelve la preocupación 1 de AdaGrad sumando los gradientes solo dentro de una determinada ventana W.

La solución de preocupación 2 se relaciona con la falta de coincidencia en las unidades de gradiente y, por lo tanto,

El proceso de acumulación real se implementa utilizando un concepto de impulso.

El último cálculo necesita comprensión sobre la teoría del momento y se explicó brevemente allí en el artículo.

Mi idea era dar las causas principales detrás de lo que se pretendía, tal vez eso facilita la lectura.

mico
fuente