Tengo una duda sobre cómo se entrena exactamente la función de pérdida de una red Deep Q-Learning. Estoy usando una red de alimentación de 2 capas con capa de salida lineal y capas ocultas relu.
- Supongamos que tengo 4 acciones posibles. Por lo tanto, la salida de mi red para el estado actual es . Para hacerlo más concreto, supongamos que
- Ahora tomo la acción correspondiente al valor es decir, la tercera acción, y un nuevo estado .
- Luego, calculo el paso directo con el estado y digamos que obtengo los siguientes valores en la capa de salida . Digamos también la recompensa y .
Es la pérdida dada por:
O
O
Gracias, lo siento, tuve que escribir esto de una manera muy básica ... Estoy confundido por toda la notación. (Creo que la respuesta correcta es la segunda ...)
Respuestas:
Después de revisar las ecuaciones unas pocas veces más. Creo que la pérdida correcta es la siguiente:
Mi razonamiento es que la regla de actualización de q-learning para el caso general solo está actualizando el valor q para un específico par de .state,action
Esta ecuación significa que la actualización ocurre solo para un específico par de y para la red q neuronal, lo que significa que la pérdida se calcula solo para una unidad de salida específica que corresponde a una específica .state,action action
En el ejemplo proporcionado y el es .Q(s,a)=4.3 target r+γmaxa∗Q(s′,a∗)=11.1
fuente
Probablemente no importará a menos que tenga un gran espacio de acción.
Si su función de pérdida es MSE , entonces la pérdida calculada es la mitad del término pérdida específica (si el espacio de acción = 2). Esto puede importar si su espacio de acción es grande y puede ralentizar el entrenamiento ya que la pendiente de la función de pérdida se reduce en un factor igual al espacio de acción de su problema.
Como mencionó, solo se actualizan los valores q que corresponden a la acción actual realizada. Por lo tanto, el numerador de pérdidas permanece constante.
Suponiendo un espacio de acción de 2 (valores posibles: {0,1}).
Si la acción seleccionada fue
1
entonces el0
valor th permanece sin cambios, por lo tanto, se cancela y viceversa. Por lo tanto, todos los términos se cancelan, excepto la acción que se realiza actualmente. Sin embargo, el denominador seguiría aumentando según el espacio de acción.Para un espacio de acción de
n = 2
,fuente