Categorías
Universitario Videojuego

Métodos basados en política

Los métodos basados en política consiguen superar las limitaciones de los métodos basados en valor para hacer Aprendizaje por Refuerzo cuando los espacios de acciones son continuos o la dinámica del sistema requiere acciones estocásticas.

En lugar de aprender indirectamente una función de valor de acción Q(s, a) y seleccionar la acción con el valor máximo, parametrizamos directamente la política pitheta(a|s) mediante una función (como puede ser una red neuronal artificial con pesos theta) que devuelve una distribución de probabilidad sobre las acciones. Es un cambio conceptual en el que pasamos de evaluar estados a optimizar acciones (se llama policy search).

Las ventajas estructurales de estos métodos son, en primer lugar, que manejan estados de acciones continuas de forma natural (ej. cuantos grados debe girar un volante, cuanta aceleración hay que meterle a un motor… cosas que no se hacen bien con Q-Learning). En segundo lugar estos métodos pueden aprender políticas estocásticas (óptimas en juegos de información imperfecta como el póker, donde ser predecible te hace vulnerable). Y en tercer lugar presenta mejores propiedades de convergencia en espacios de alta dimensión.

El Aprendizaje por Imitación -sobre el que quizá comentemos algo más adelante, en Cuestiones avanzadas- suele funcionar con este tipo de métodos basados en políticas.

Teorema del gradiente de la política

Es un teorema que demuestra cómo podemos calcular analíticamente el gradiente del rendimiento esperado respecto a los parámetros de la red nablatheta J(theta), incluso sin conocer la dinámica de transición del entorno.

El algoritmo REINFORCE, que también se llama Monte Carlo Policy Gradient funciona de la siguiente manera:

  1. El agente juega un episodio completo recopilando una trayectoria de estados, acciones y recompensas.
  2. Evalúa el retorno real obtenido al final de la partida.
  3. Aumenta la probabilidad de las acciones que llevaron a retornos altos y reduce la de aquellas que acabaron en derrota.

El inconveniente de esto es que presenta una varianza muy alta en la estimación del gradiente, lo que hace que el entrenamiento sea lento e inestable.

Arquitecturas Actor-Crítico

A estas arquitecturas Actor-Critic algunas las consideran la combinación perfecta porque unen lo mejor de los métodos basados en política y los métodos basados en valor para reducir la varianza.

Se trata de hacer una división de roles. El actor modela y actualiza la política pitheta(a|s), de manera que decide qué acción tomar. El crítico estima la función de valor de estado Vw(s), de manera que evalúa si el estado alcanzado es bueno o malo.

La clave es que el actor se actualiza basándose en el valor de la ventaja o advantage function: A(s, a) = Q(s, a) – V(s), que mide cuánto mejor fue la acción elegida comparada con la acción promedio en ese estado.

Algoritmos de estado del arte

Actualmente los que más se están usando son estos dos:

  • Proximal Policy Optimization (PPO). Es el estándar actual de la industria (utilizado por OpenAI para entrenar bots en Dota 2 y por Unity ML-Agents). Restringe el tamaño de la actualización de la política mediante un recorte (clipping) en la función de pérdida para evitar que la red sufra «colapsos catastróficos» de rendimiento en un solo paso de optimización.
  • Soft Actor-Critic (SAC). Es un algoritmo off-policy para acciones continuas que maximiza tanto la recompensa acumulada como la entropía de la política. Esto fomenta una exploración muy agresiva y evita que la IA se quede estancada en mínimos locales.

En cualquier caso es importante entender que estos algoritmos ya no se programan desde cero en C++, es muy raro hacerlo… lo habitual es entrenarlos conectando marcos de trabajo como Python (en particular bibliotecas como PyTorch) con motores de juego como Unity o Unreal Engine a través de APIs de comunicación en tiempo real. Un Aprendizaje por Refuerzo podría tener sentido para la locomoción física de bípedos generados procedimentalmente, conducción autónoma en simuladores de vehículos como coches de carreras o aviones de combate.

Más información

Para complementar es recomendable consultar otros documentos.