¿Cómo se puede aplicar el aprendizaje automático al póker?

En pocas palabras, jugar póker para computadoras es tan difícil como lo es para los humanos. La decisión teórica, la información imperfecta y los aspectos de incertidumbre de los atletas lo convierten en un banco de pruebas perfecto para muchos campos de IA, incluido el aprendizaje automático. El aprendizaje de refuerzo podría ser el mejor enfoque, como es el caso de muchos otros juegos de IA, sin embargo, el aprendizaje supervisado es posible si pudiera obtener registros históricos, incluida la información ganadora.

Hay un grupo de investigación (página de inicio de CPRG) que trabaja en póker jugando por computadora. Otro grupo de investigación (Bayesian Poker Player) aplicó el enfoque bayesiano para el póker computacional. Este blog sobre bots de póker (Poker Bots) podría dar buenas manos sobre los bots de póker. Se pueden encontrar más artículos en Poker-AI.org. Consulte esta tesis (4) para obtener información detallada.

El problema se puede dividir en:

Estimación de la fuerza de la mano:
Esto es para estimar el potencial ganador de la mano de los jugadores y de los oponentes, en base a las cartas abiertas. Los más exitosos están utilizando el muestreo Monte Carlo basado. La idea es completar las manos mediante el muestreo de tarjetas inaccesibles y contar los #wins, y allí mediante la estimación de la probabilidad.
El cálculo exacto de la probabilidad ganadora es más lento que el muestreo. La estimación paramétrica utilizando datos históricos puede encontrar algunas aplicaciones de aprendizaje automático.

Modelado opuesto :
Esto implica estimar la probabilidad de acciones disponibles (retirarse, igualar, subir) para cada oponente. Aquí podemos usar los datos históricos de los jugadores para la estimación. Un enfoque exitoso es usar la red neuronal para el modelado del oponente (1). Consideran varios factores como el conteo de jugadores, la posición, el tipo de juego, etc. Por supuesto, podría haber diferentes enfoques.

Toma de decisiones y gestión de riesgos :
Esto implica crear funciones de utilidad y estrategias de listado y calificación. Esta es un área potencial para ML. Podemos puntuar estrategias basadas en datos históricos o actuales.

Enfoques:
Se han intentado varios enfoques. algunos de ellos son :
1) Enfoques probabilísticos (redes bayesianas (2), etc.)
2) Basado en reglas (evento, pares de acciones)
3) Basado en funciones (redes neuronales, etc.)
4) Algoritmos genéticos (3)

1) A. Davidson, D. Billings, J. Schaeffer y D. Szafron. Oponente mejorado
modelado en póker. En la Conferencia Internacional sobre Inteligencia Articial,
ICAI’00, páginas 1467–1473, 2000.
2) AE Nicholson, KB Korb y D. Boulton. Uso de redes bayesianas para jugar al póquer Texas Hold’em
3) C. Cheng. Reconocer manos de póker con programación genética y restringida
iteración. En J. Koza, editor, Algoritmos genéticos y programación genética en
Stanford, 1997
4) Algoritmos y evaluación en Computer Poker. Darse Billings, Ph.D. Disertación, septiembre de 2006 (http://poker.cs.ualberta.ca/publ…)

Un proceso de decisión de Markov (MDP) es un término acuñado en inteligencia artificial en el que un agente se encuentra en un espacio de estado y, en momentos discretos, decide qué hacer en función del estado actual, lo que provoca una transición a otro estado.

En cierto sentido, el póker puede verse como una generalización de un MDP llamado MDP parcialmente observable (POMDP), donde el agente tiene información parcial sobre el estado en el que se encuentra. Una forma en que un agente puede modelar el mundo es manteniendo un estado de creencia en cada momento dado las tendencias de los oponentes y sus acciones. Después de ver muchas manos (especialmente aquellas que van al enfrentamiento), un agente puede llegar a conclusiones sobre las tendencias de diferentes oponentes y su rango (o distribución sobre las posibles cartas enteras posibles de un oponente dadas sus acciones). Existen muchos algoritmos (bajo el paraguas del aprendizaje por refuerzo) que pueden encontrar acciones óptimas basadas en recompensas por acciones anteriores, como Q-learning e iteración de valores.

Las empresas más comunes para usar el aprendizaje automático para jugar al póker son los juegos heads-up (dos jugadores) ya que hay menos variables y un agente no necesita considerarlo como un gran estado de creencia. Por ejemplo, Polaris (bot de póker), un proyecto de la Universidad de Alberta, ha jugado Heads-up Limit Hold-em (menos complicado que el No-Limit Hold-em comúnmente jugado) con cierto éxito, incluso contra profesionales.

Un tutorial interesante para escribir un bot de póker para No-Limit Hold-em es de un curso en Stanford: http://cs229.stanford.edu/proj20… . Habla sobre el entrenamiento de un bot y los diferentes algoritmos que se pueden usar para ajustar las acciones del bot.

En términos de póker humano, la teoría de juegos y el aprendizaje automático están teniendo su marca en el juego moderno, para jugadores de 6 jugadores y especialmente Heads-up. El juego en línea ha aumentado la gran cantidad de datos que los jugadores tienen sobre otros jugadores. Un enfoque moderno de Heads-up No-Limit enfatiza encontrar el juego “óptimo” (subir, igualar, apostar, retirarse, pasar) para cada situación, dadas las tendencias del oponente y su rango. Este enfoque a veces incluso implica calcular explícitamente los equilibrios de Nash. De hecho, los profesionales en línea de alto riesgo consideran que Heads-up No-limit es un juego casi “resuelto” por esta misma razón.

Nate Silver tuvo un capítulo sobre la aplicación de una simple inferencia bayesiana al póker en su popular libro: La señal y el ruido: por qué fallan tantas predicciones, pero algunas no: Nate Silver: 9781594204111: Amazon.com: Libros.

Es una lectura interesante. La idea básica es aplicar el teorema de Bayes para actualizar en línea su creencia en función del comportamiento de otro jugador. Ese enfoque podría llegar bastante lejos una vez que tenga toneladas de datos, como estadísticas históricas del jugador.

¡Muchas respuestas geniales aquí!

Como soy tanto un jugador de póker como un analista, intentaré dirigirme a ambos lados.

Primero, ¿para qué usaríamos el aprendizaje automático?

  • Para calcular EV en una mano determinada? Si es así, ¿pre-flop? En cualquier calle?
  • ¿Para predecir la fuerza de nuestra mano dado el contexto de la tabla?
  • Para calcular EV por sesión en un juego de efectivo?
  • Para calcular las probabilidades de una determinada ubicación en un torneo?

Muchas posibilidades probablemente apuntan a diferentes direcciones, así que …

Como analista , ¡absolutamente! Difícil, algunas tareas más que otras pero posibles. Dado que tiene datos, es muy poco probable en muchos contextos.

Por otro lado, ciertamente visitaré algunos de los enlaces de este hilo sobre el uso bayesiano en el póker. La razón de esto es que cualquier jugador de póquer medio decente hoy en día sabe lo que es cambiar de marcha, es decir, cambiar los rangos de apertura, el tamaño de las apuestas, la agresión, todo este tiempo extra y de acuerdo con la tabla.

Esto es algo en lo que creo que la inferencia bayesiana se destacaría. El aprendizaje automático probablemente estaría sesgado a la mayor cantidad de datos que teníamos y tomaría demasiado tiempo adaptarlo.

Como jugador de póker , prefiero pensar que puedo adaptarme a cualquier algoritmo y ni siquiera soy tan bueno como jugador.

La razón de esto es que el póker es un juego de estrategias y contra estrategias. No hay una estrategia perfecta, siempre hay una estrategia para vencer a alguna otra estrategia en el transcurso de una sesión.

Me encantaría jugar contra alguna IA. Por un lado porque no soy un gran jugador. Por otro lado, porque me gustaría intentar engañarlo.

Si por aprendizaje automático te refieres a clasificación y regresión, estas técnicas se han utilizado para predecir la probabilidad de una acción del oponente dada una situación. Aaron Davidson lo usó en Page en cs.ualberta.ca. Una técnica más elaborada que tuvo en cuenta tanto al jugador actual como a jugadores similares se exploró en Bayes-Relational Learning of Opponent Models de Incomplete …

Si extiende el aprendizaje automático para incluir el cálculo de Nash Equilibria, muchos investigadores de póker informático lo están haciendo. Google

Si incluye aprendizaje basado en casos, existe SARTRE: Descripción general del sistema. Un agente basado en casos para dos jugadores … Existe un amplio margen para aplicar el teorema de Bayes en el póker: un ejemplo sería Bayes ‘Bluff: Opponent Modeling in Poker

Ver también Poker AI

Siga las publicaciones del grupo de investigación de póker de la Universidad de Alberta.

Página de CPRG

Son la vanguardia de la investigación de póker (o la mejor pública, si algún grupo privado los supera).

Creo que la lectura de rostros para la detección de mentiras es excelente para esto.

Puedes leer algunos materiales al respecto aquí.
Página en cámara

Si la máquina tiene la capacidad de lectura de rostros para la detección de mentiras, entonces la máquina solo necesita otras pocas habilidades, como farolear e involucrar al competidor en una conversación para provocar que se analice más expresión facial.
Quizás Watson de la tecnología de lectura facial IBM + sería una buena combinación para esto.

Si la máquina ha aprendido esta capacidad, estoy seguro de que puede enfrentar a cualquier oponente desde el principio, sin la necesidad de tener datos históricos masivos del comportamiento del oponente.

Un amigo mío (desafortunadamente aún no está en quora) está escribiendo su doctorado sobre la aplicación del aprendizaje por refuerzo a los juegos de póker. Teniendo en cuenta los datos históricos, parece que no es demasiado difícil establecer el proceso de aprendizaje, pero dice que evitar los óptimos locales a veces es complicado (una vez más, no soy un experto en el tema).
En este momento está poniendo mucho esfuerzo en su proyecto. La razón de esto es la siguiente competencia / conferencia:
http: //www.computerpokercompetit
Aparentemente, ahí es donde se encuentran todas las grietas del póker informático y (dejan que sus algoritmos) jueguen.

More Interesting

¿R necesita una herramienta de flujo de trabajo visual como RapidMiner y Knime?

¿Cuál es la diferencia entre gaussiano y bayesiano?

¿Hay alguna forma de llamar a las funciones de Python desde mi aplicación NodeJS para aprovechar el poder del aprendizaje automático en una aplicación Node?

¿Qué significa splines de regresión adaptativa múltiple (MARS) en términos simples?

¿Cuál es la diferencia entre una red neuronal y una red de codificador automático?

¿Qué tipos de trabajos están disponibles en la industria financiera para un máster en ML / AI graduado?

¿Por qué no es una práctica estándar publicar pesos de modelos entrenados junto con el código fuente para trabajos de investigación de aprendizaje profundo?

¿El aprendizaje automático como campo todavía está en su infancia, o ya es sofisticado y está bien desarrollado?

¿Cómo entrenamos redes neuronales en imágenes en lugar de datos numéricos?

En la clasificación binaria, ¿es una buena práctica siempre sobre / submuestrear su conjunto de datos para tener un número idéntico de muestras de las dos clases?

¿Por qué Apple no forma parte de la Asociación en IA?

¿Es efectivo el entrenamiento de confrontación contra los ejemplos de confrontación en general?

¿Es indistinguible si el método t-SNE no muestra dos grupos claros (para un problema de clasificación de 2 clases)?

¿Cuál es la diferencia entre un modelo paramétrico y un modelo no paramétrico?

En una red neuronal, ¿cómo podemos resolver (o limitar) el problema de la saturación de las neuronas?