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 , a ) 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 .. n) = 0
En este caso, el problema a resolver es bastante difícil, en comparación con, digamos, R ( syo) = 1 / i2 , donde hay un gradiente de recompensa sobre los estados. Para problemas difíciles, especificar más detalles, por ejemplo, R ( s , a ) o R ( s , a , 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".