En mis artículos anteriores sobre el aprendizaje por refuerzo, le mostré cómo implementar Q-learning (profundo) usando nada más que un poco de numpy y TensorFlow. Si bien este fue un paso importante para comprender cómo funcionan estos algoritmos en su interior, el código tendía a ser largo, e incluso simplemente implementé una de las versiones más básicas de Q-learning profundo.
Dadas las explicaciones de este artículo, comprender el código debería ser bastante sencillo. Sin embargo, si nosotros en realidad Si queremos hacer las cosas, debemos confiar en bibliotecas bien documentadas, mantenidas y optimizadas. Así como no queremos implementar la regresión lineal una y otra vez, no queremos hacer lo mismo con el aprendizaje por refuerzo.
En este artículo, te mostraré la biblioteca de refuerzo. Líneas de base estables3 que es tan fácil de usar como scikit-learn. Sin embargo, en lugar de entrenar modelos para predecir etiquetas, obtenemos agentes capacitados que pueden navegar bien en su entorno.
Si no está seguro de qué se trata el Q-learning (profundo), le sugiero leer mis artículos anteriores. En un nivel alto, queremos entrenar un agente que interactúe con su entorno con el objetivo de maximizar su recompensa total. La parte más importante del aprendizaje por refuerzo es encontrar una buena función de recompensa para el agente.
Normalmente me imagino a un personaje en un juego buscando la manera de obtener la puntuación más alta, por ejemplo, Mario corriendo de principio a fin sin morir y, en el mejor de los casos, lo más rápido posible.
Para ello, en Q-learning, aprendemos valores de calidad para cada par (s, a) dónde s es un estado y a es una acción que el agente puede realizar. Q(s, a) es el…