La motivación para los gradientes naturales es que cuando actualizamos un modelo que genera una distribución de probabilidad, el tamaño de nuestra actualización debe determinarse por cuánto cambia esta distribución de probabilidad, en lugar de cuánto cambian nuestros parámetros, ya que la parametrización es arbitraria.
¿Qué significa esto?
En el descenso de gradiente estándar, estoy realizando implícitamente
[matemáticas] \ argmin_ {d \ theta} L (D _ {\ theta + d \ theta}) \ text {st} d \ theta \ leq \ epsilon [/ math]
- ¿De qué manera puedes determinar el área de un triángulo usando matrices?
- A y B son dos matrices invertibles cuadradas con la matriz C = a * A + b * B. ¿Qué condiciones deben tener dos números reales a y b para que C sea invertible?
- ¿Por qué multiplicamos matrices de la manera que lo hacemos?
- ¿Qué significa el valor propio? ¿Puede haber valores propios infinitos para un vector propio?
- Cómo resolver [matemáticas] \ left \ {\ begin {matrix} 2x ^ 2 + 3y ^ 2 = 21 & \\ 6x ^ 2 + 9y ^ 2 = 21x \ end {matrix} \ right. [/ Math]
Usando un algoritmo de descenso de gradiente estándar de primer orden, estamos tomando una aproximación de primer orden de la función de pérdida (wrt los parámetros de nuestro modelo) es decir
[matemáticas] L (D _ {\ theta + d \ theta}) \ aprox. L (D _ {\ theta}) + \ nabla L ^ T d \ theta [/ matemáticas]
que se minimiza cuando [math] d \ theta = – \ nabla L [/ math] (ya que el producto de punto es producto de normas multiplicadas por coseno de ángulo), es decir, nuestra actualización de descenso de gradiente estándar.
El problema aquí es que nuestra parametrización de [math] \ theta [/ math] es arbitraria, lo que significa que limitar el tamaño de nuestro paso para que sea menor que [math] \ epsilon [/ math] no es muy significativo. Esto es malo por dos razones. Primero, obtenemos direcciones de pasos extrañas porque implícitamente favorecemos las direcciones en el espacio de parámetros que causan grandes cambios en la distribución de nuestro modelo. En segundo lugar, obtenemos tamaños de pasos extraños, lo cual es malo porque la aproximación de primer orden solo es válida localmente.
Queremos una métrica independiente de la parametrización de cuánto ha cambiado nuestro modelo, por lo que una forma natural de expresar esto es la divergencia KL entre la distribución de probabilidad de nuestros modelos antiguos y nuevos. Entonces nuestro nuevo problema de optimización es:
[matemáticas] \ argmin_ {d \ theta} L (D _ {\ theta + d \ theta}) \ text {st} KL (D _ {\ theta} || D _ {\ theta + d \ theta}) \ leq \ epsilon [/matemáticas]
Usando una aproximación de segundo orden para el término KL, la regla de actualización que obtenemos es el Fisher invertido multiplicado por el gradiente estándar (la derivación es bastante sencilla en la sección 2 de este documento. Intuitivamente, esto significa que debemos corregir por la curvatura de el modelo – si hay direcciones en las cuales
Los métodos de gradiente natural son buenos en problemas de RL donde los tamaños de paso son especialmente importantes. Ver, por ejemplo, TRPO para una buena explicación de estas ideas. También se puede ver como un método aproximado de segundo orden que proporciona una aproximación más precisa que los métodos de primer orden. Este documento tiene una discusión bastante extensa de estas ideas.