Cómo hacer que una recompensa funcione en el aprendizaje por refuerzo

18

Mientras estudiaba el aprendizaje por refuerzo, me encontré con muchas formas de la función de recompensa: , R ( s , a , s ' ) e incluso una función de recompensa que solo depende del estado actual. Dicho esto, me di cuenta de que no es muy fácil 'hacer' o 'definir' una función de recompensa.R(s,a)R(s,a,s)

Aquí están mis preguntas:

  1. ¿Hay reglas sobre cómo hacer funciones de recompensa?
  2. ¿Hay otras formas de la función de recompensa? Por ejemplo, ¿una forma polinómica tal vez que depende del estado?
cgo
fuente

Respuestas:

25

Las funciones de recompensa describen cómo se comporta el agente "debería". En otras palabras, tienen contenido "normativo" que estipula lo que desea que el agente logre. Por ejemplo, un estado gratificante s podría representar el sabor de los alimentos. O quizás, (s,un) podría representar el acto de probar la comida. Entonces, en la medida en que la función de recompensa determina cuáles son las motivaciones del agente, ¡sí, tiene que inventarlo!

No hay restricciones absolutas, pero si su función de recompensa se "comporta mejor", el agente aprenderá mejor. Prácticamente, esto significa velocidad de convergencia y no quedarse atascado en los mínimos locales. Pero las especificaciones adicionales dependerán en gran medida de la especie de aprendizaje de refuerzo que esté utilizando. Por ejemplo, ¿el espacio de estado / acción es continuo o discreto? ¿Es el mundo o la selección de acción estocástica? ¿La recompensa se cosecha continuamente o solo al final?

Una forma de ver el problema es que la función de recompensa determina la dureza del problema. Por ejemplo, tradicionalmente, podríamos especificar un solo estado para ser recompensado:

R(s1)=1
R(s2 ..norte)=0 0
En este caso, el problema a resolver es bastante difícil, en comparación con, digamos, R(syo)=1/ /yo2 , donde hay un gradiente de recompensa sobre los estados. Para problemas difíciles, especificar más detalles, por ejemplo, R(s,un) o R(s,un,s) puede ayudar a algunos algoritmos al proporcionar pistas adicionales, pero potencialmente a expensas de requerir más exploración. Es posible que deba incluir los costos como términos negativos enR (por ejemplo,costos energéticos), para que el problema esté bien especificado.

Para el caso de un espacio de estado continuo, si desea que un agente aprenda fácilmente, la función de recompensa debe ser continua y diferenciable . Entonces los polinomios pueden funcionar bien para muchos algoritmos. Además, intente eliminar los mínimos localizados. Hay varios ejemplos de cómo NO hacer una función de recompensa, como la función Rastrigin . Dicho esto, varios algoritmos RL (por ejemplo, máquinas Boltzmann ) son algo robustos para estos.

Si está utilizando RL para resolver un problema del mundo real, probablemente encontrará que aunque encontrar la función de recompensa es la parte más difícil del problema, está íntimamente relacionado con la forma en que especifica el espacio de estado . Por ejemplo, en un problema que depende del tiempo, la distancia a la meta a menudo tiene una función de recompensa pobre (por ejemplo, en el problema del automóvil de montaña ). Dichas situaciones se pueden resolver mediante el uso de espacios de estado de dimensiones superiores (estados ocultos o trazas de memoria) o mediante RL jerárquico.

En un nivel abstracto, se suponía que el aprendizaje no supervisado obviaba la estipulación del desempeño "correcto e incorrecto". Pero ahora podemos ver que RL simplemente transfiere la responsabilidad del maestro / crítico a la función de recompensa. Hay una forma menos circular de resolver el problema: es decir, inferir la mejor función de recompensa . Un método se llama RL inverso o "aprendizaje de aprendizaje" , que genera una función de recompensa que reproduciría los comportamientos observados. Encontrar la mejor función de recompensa para reproducir un conjunto de observaciones también se puede implementar mediante MLE, Bayesiano o métodos teóricos de información, si busca "aprendizaje de refuerzo inverso".

Sanjay Manohar
fuente
Hola, ¿por qué el problema del coche de montaña es un problema que depende del tiempo?
GoingMyWay
Supongo que el problema del automóvil de montaña es "dependiente del tiempo", ya que el problema requiere que la red proporcione la secuencia apropiada de comandos, o una política que determine la secuencia. La idea es que si solo trata la "posición" como su estado, entonces el problema es difícil de resolver: también debe tener en cuenta su velocidad (o energía cinética, etc.). Eso es realmente todo lo que quería decir, con respecto a elegir sabiamente su espacio de estado en problemas dependientes del tiempo.
Sanjay Manohar
@SanjayManohar No creo que el problema del automóvil de montaña sea "dependiente del tiempo", a menos que sea dependiente del tiempo que esté hablando de introducir un horizonte de tiempo finito. La posición y la velocidad son suficientes.
user76284
Creo que esta respuesta mezcla funciones de recompensa y valor. Por ejemplo, se trata de "encontrar" una función de recompensa, que podría ser algo que se hace en el aprendizaje de refuerzo inverso , pero no en el RL utilizado para el control. Además, habla de la necesidad de que la función de recompensa sea continua y diferenciable, y eso no solo no es obligatorio, sino que generalmente no es el caso. Es mucho más probable que encuentre un +1 simple para el éxito, o un -1 fijo por cada paso de tiempo en la literatura, que encontrar alguna heurística diferenciable cuidadosamente construida.
Neil Slater
Gracias @NeilSlater, tienes razón, probablemente debería haber dicho "construir" una función de recompensa en lugar de encontrarla. Con respecto a la "función de valor", generalmente reservo este término para las asignaciones de valor de estado o de acción, es decir, una función que el agente utiliza para estimar la recompensa futura estimada. Entonces "valor" está relacionado con "recompensa", pero la recompensa es parte del problema, no el algoritmo que lo resuelve. Quizás el énfasis en la IA ha sido mostrar su algoritmo de aprendizaje, estipulando recompensas binarias, distales y dispersas, pero si tiene control sobre la función de recompensa, la vida es más fácil si es "agradable".
Sanjay Manohar
4

Diseñar funciones de recompensa es realmente un problema difícil. En general, las funciones de recompensa dispersas son más fáciles de definir (por ejemplo, obtener +1 si gana el juego, de lo contrario 0). Sin embargo, las recompensas dispersas también retrasan el aprendizaje porque el agente necesita tomar muchas acciones antes de obtener cualquier recompensa. Este problema también se conoce como el problema de asignación de crédito .

En lugar de tener una representación de tabla para recompensas, también puede usar funciones continuas (como un polinomio). Este suele ser el caso cuando el espacio de estado y el espacio de acción son continuos en lugar de discretos.

erensezener
fuente