Red de conocimiento informático - Problemas con los teléfonos móviles - Gradiente de políticas

Gradiente de políticas

Referencias:

?1.?/p/21725498

2.

La idea básica del algoritmo de aprendizaje por refuerzo basado en valores es calcular cada paso basado en el valor actual de una acción, y luego elige con avidez acciones basadas en ese valor. Si omitimos el paso intermedio, es decir, elegir una acción directamente en función del estado actual, también conducirá a otro algoritmo muy importante en el aprendizaje por refuerzo, a saber, el gradiente de políticas (PG). En esta publicación de blog, presentaremos la versión más básica de este algoritmo y su implementación simple.

Gran parte del contenido de esta publicación proviene del curso de aprendizaje por refuerzo del Sr. Mo, que puede encontrar en el sitio b: /video/av16921335/#page=22

1. ¿Qué es el gradiente de políticas?

De hecho, en la parte de introducción, hemos introducido la idea básica del gradiente de políticas, que es generar acciones directamente de acuerdo con el estado de la acción. La idea es generar directamente la operación o la probabilidad de la operación en función del estado. ¡La forma más sencilla de hacerlo es utilizar una red neuronal!

Usamos una red neuronal para ingresar el estado actual y luego la red genera la probabilidad de cada acción que realizamos en ese estado. Entonces, ¿cómo debemos entrenar la red para lograr la convergencia final?

El método más común que utilizamos para entrenar redes neuronales es el algoritmo de retropropagación. Necesitamos una función de error para minimizar la pérdida por el descenso de gradiente. Pero para el aprendizaje por refuerzo, no sabemos si la acción es correcta. Solo podemos juzgar la calidad relativa de la acción a través del valor de la recompensa. Con base en las ideas anteriores, tenemos una idea muy simple:

Si un comportamiento se recompensa más, entonces haremos que sea más probable que suceda; si un comportamiento se recompensa menos, entonces lo lograremos; es menos probable que suceda.

Basándonos en esta idea, construimos la siguiente función de pérdida: loss= -log(prob)*vt

Describiremos brevemente los conceptos básicos de la función de pérdida anterior en un formato fácil de usar. -comprender el principio del lenguaje, para saber por qué se usa en matemáticas, ver: Por qué consideramos la probabilidad logarítmica Por qué consideramos la probabilidad logarítmica y no la probabilidad en la distribución gaussiana.

De hecho, originalmente queríamos aumentar aún más la probabilidad de S-a. Es decir, maximizar tanto como sea posible en la dirección del gradiente

Dado que solo hay una función de minimización en tensorflow, la pérdida se define como pérdida = -log (prob) * vt, pero vale la pena. Tenga en cuenta que vt aquí debe ser el valor acumulativo después de una ronda de eventos (incluida la desintegración gamma), y -log (prob) está disminuyendo monótonamente en general. Entonces, esto significa que si vt es grande, entonces para reducir la pérdida, -log(prob) debe reducirse significativamente, ¿qué significa? Aumentar el valor de prob en un gran paso en el gradiente, ?En general, esto significa que cuanto mayor es vt (cuanto mayor es el valor de recompensa acumulativa), mayor es el prob en la cadena vt que debe ajustarse ?Si vt es; más pequeño, Esto significa que solo se requiere un pequeño aumento en prob (el resultado es una pequeña disminución en -log (prob). El significado físico de esta situación es que la pérdida ya es pequeña, por lo que la pérdida disminuirá poco a poco). a lo largo del gradiente.

No hay ningún problema con la idea anterior, pero la premisa es que vt siempre debe ser positivo, lo que conducirá a aumentar continuamente la probabilidad de que todos los pares s-a encontrados en el camino ocasional para reducir continuamente la pérdida. mientras que otras rutas no incidentales El valor de probabilidad s-a parece estar disminuyendo de manera pasiva (porque la suma de las probabilidades de todas las operaciones correspondientes a an s permanece 1 cada vez). Esto tiene cierto sentido y es consistente con la idea de "si tienes más episodios, haré que sea más probable que aparezcas la próxima vez". Esto es como, mientras seas un conocido, aumentaré tu probabilidad de ser ascendido a un nivel superior (dándote puntuaciones altas). En este caso, las calificaciones de los conocidos son definitivamente más altas que las de los extraños. Pero esto no es del todo razonable, porque hay algunos conocidos que efectivamente han aparecido en tu vida varias veces, pero su desempeño no es necesariamente bueno, no pueden cumplir con tus requisitos e incluso pueden ofenderte.

Aunque una persona así aparece varias veces, cada vez que aparece, es un punto negativo para tu cerebro; esto significa que no necesariamente seguimos la fórmula anterior. ¿La fórmula anterior siempre suma puntos? Esto también significa que no necesariamente tenemos que seguir aumentando el valor de la recompensa de acuerdo con la fórmula anterior. Esto también significa que no tenemos que aumentar continuamente el valor de la recompensa de acuerdo con la fórmula anterior, sino agregar una línea base a la recompensa:

El resultado de agregar una línea base b es: an s-a, pero su recompensa no es tan alta como se esperaba, lo que significa que ? menos b es negativo, lo que significa que las actualizaciones en realidad están disminuyendo a lo largo de la dirección de descenso del gradiente. Entonces, pensemos en la lógica física detrás de esto: cuando la recompensa excede b en un valor mayor, significa que el valor aumenta significativamente en la dirección del gradiente, y el aumento en el valor significa una modificación de la estrategia, mejorando así aún más esta s-a Probabilidad de ocurrencia (en cuanto a por qué, puede mirar el programa y cruzar la entropía). Si el valor de la recompensa es mayor que b, pero solo aumenta ligeramente, entonces esto corresponde a un pequeño aumento en el valor de la recompensa, lo que significa que la probabilidad de que ocurra s-a aumenta ligeramente. Si el valor de la recompensa es menor que b, equivale a una disminución en el valor Theta. Cuanto menor sea el valor de la recompensa, cuanto más lejos del valor esperado de b, mayor será la disminución en el valor Theta, lo que significa que la probabilidad de el par s-a que aparece se reducirá considerablemente.

?Lo anterior es el efecto después de agregar la línea de base b, que obviamente es más razonable. Por supuesto, a veces, como en el programa de Morvan, la línea base b se calcula normalizando el valor de recompensa en cada paso. Normalización, es decir, cada recompensa equivale a restar el valor de recompensa promedio de todos a bajo esta s y luego dividir por la desviación estándar.

? A diferencia de la familia q-learning, el gradiente de políticas no optimiza la tabla q, sino que optimiza directamente el pai de políticas, es decir, la probabilidad de elegir cada acción para cada observación. Es decir, ¡la probabilidad de que se seleccione cada acción para cada observación! (Tenga en cuenta que no es el valor q en q-learning).

?Entonces, ¿cómo optimizar este par de valores de probabilidad? La primera dirección es que cuanto más recompensa obtienes de una acción, más quieres que aumente la probabilidad de s-a y menos quieres que la probabilidad disminuya.

Entonces, después de enumerar el gráfico completo en tensorflow, ¿cómo se define la pérdida para comenzar a entrenar?

La definición de pérdida es la siguiente: pérdida= -log(prob)*vt?

(Primero, debemos declarar que la función logarítmica es monótonamente decreciente cuando la base es 0-1, y aumenta monótonamente cuando la base es >1, aquí está lo último, excepto que x de loga x es un valor de probabilidad, un dato entre 0 y 1, lo que da como resultado que el valor logarítmico general sea negativo).

vt es el valor de la recompensa. Cuanto mayor es vt, menor es la probabilidad y el valor de la pérdida final será mayor que la probabilidad. Cuanto mayor es vt, menor es prob y mayor es la pérdida final. Esto requiere que corrijamos inmediatamente prob (aumentemos prob) a lo largo de la dirección del gradiente para acercar el valor de -log(prob)*vt a un nivel razonable. . Tenga en cuenta: el objetivo final de la corrección de gradiente es obtener una tabla de probabilidad muy razonable para s-a, en la que cuanto mayor sea vt, mayor será la probabilidad de buen comportamiento (tenga en cuenta que el vt máximo no es necesariamente 1, ese tipo de codicia es incorrecto), y cuanto menor sea vt, menor debería ser la probabilidad del comportamiento.

Dado que -log(prob) es una función monótonamente decreciente, es decir, cuanto menor es el problema, mayor es -log(prob) para que el producto sea igual o cercano al. La tabla de probabilidad s más razonable es necesaria Cuanto menor sea el vt emparejado, si cuanto mayor es el vt, menor es la probabilidad, entonces la red de probabilidad necesita ajustar un gran paso en la dirección del gradiente. De manera similar, si es un vt más pequeño, debe coincidir con un prob más pequeño y el producto debe ser más moderado, para estar más cerca de una red de probabilidad razonable; si es un vt más pequeño, debe combinarse con un; problema mayor, entonces simplemente calcule

enlace:/p/2ccbab48414b