Cómo usar la inteligencia artificial en el ajedrez informático

19

En algunos artículos (históricos), el ajedrez ha sido referido como la drosófila de la inteligencia artificial. Si bien supongo que en la investigación actual, la mera aplicación de un algoritmo de búsqueda es, en el mejor de los casos, una ciencia informática avanzada , creo que todavía hay áreas donde se pueden aplicar (y practicar) técnicas de IA.

Un ejemplo simple sería el aprendizaje del libro de apertura, en el que se puede enseñar al programa si usar o no ciertos movimientos en la apertura porque el programa no es adecuado para ciertos tipos de posición. Podemos utilizar una forma de aprendizaje de refuerzo y automatizar esto: supongo que podría jugar el programa contra sí mismo y aumentar la probabilidad de ganar líneas y disminuir la probabilidad de perder líneas.

El ejemplo más complejo es usar un aprendizaje función de evaluación de (por ejemplo, uno podría ajustar los valores de las tablas de piezas cuadradas ). Sin embargo, estoy pensando:

  • dado todo el ruido debido a que existe una enorme cantidad de posiciones realistas (en oposición a la cantidad de líneas de apertura realistas)
  • y con el costo (duración) de un juego de ajedrez por computadora, y la necesidad de jugar mucho.

¿Cómo se puede hacer esto de manera efectiva? (o debería mirar otras técnicas, por ejemplo, redes neuronales).

ljgw
fuente
3
El enfoque estándar es minimax podado alfa-beta. con una heurística Es de la familia de búsqueda de IA, más bien de la familia de aprendizaje automático.
Lyndon White
2
Los maestros de ajedrez reales básicamente recuerdan todos los juegos que han jugado anteriormente ... Por lo tanto, tienen una fuerte memoria.
2
También está la contrademanda. No recuerdo quién lo dijo, pero es así. Los biólogos usan experimentos en drosophila para obtener una comprensión cada vez más profunda de la fisiología, la genética, etc. Las personas con inteligencia artificial escriben computadoras de ajedrez para jugar mejor y mejor. Esto no nos enseña mucho sobre informática; sería como los biólogos criando drosophila súper rápido y súper fuerte y haciéndolos luchar entre ellos.
David Richerby
Si bien la metáfora, es posiblemente más que "drosophila de inteligencia artificial", tiene diferentes aspectos, especialmente teniendo en cuenta que no venció decisivamente al mejor humano hasta ~ 1997, y la investigación continúa, etc.
vzn

Respuestas:

16

Todo el espacio estatal para el ajedrez es enorme: se puede estimar aproximadamente como 10 43 (número de Shannon (Shannon, 1950) , ( Wikipedia) )).

La idea que presentas - Agentes de aprendizaje por refuerzo que juegan entre sí para aprender el juego - se aplicó con éxito a Backgammon - TD-Gammon (Tesauro, 1995) , ( Capítulo en Aprendizaje por refuerzo de Sutton & Barto ). También usó Redes Neurales para estimar la función de valor del juego. Sin embargo, este problema es mucho más simple, ya que el número de estados en Backgammon es significativamente menor que en el ajedrez, a saber: 18,528,584,051,601,162,496 ( hilo del Archivo del Foro de Backgammon ).

Sin embargo, si usted termina el juego después de unos pocos movimientos iniciales y apunta solo a aprender "buenas aperturas", podría tener éxito con un enfoque análogo. El principal problema sería evaluar el juego después del juego de apertura, lo que parece difícil. Solo una medida de similitud con las posiciones establecidas después de aperturas bien conocidas no es suficiente, porque la posición puede estar lejos de ellas si el oponente haría un movimiento estúpido (por lo que no sería debido al error del agente de aprendizaje, por lo que la posición incluso si es "incorrecta" "debe evaluarse como un buen resultado).

Referencias

BartoszKP
fuente
1
La parte más difícil es encontrar una forma empírica de calificar el resultado de las aperturas. Diferentes aperturas son buenas de diferentes maneras, por lo que probablemente haya una multitud de aperturas aceptables.
JDong
3

Estoy bastante seguro de que cualquier método posible (o extraño) de IA o ML en los libros de texto ha sido probado y falló en comparación con la fuerza bruta simple.

Mi perspectiva personal es que el ajedrez per se ya no es de interés para la IA moderna ... Simplemente, porque se resuelve : simplemente usando una computadora moderna y la fuerza bruta. Por lo tanto, no creo que sea necesario crear un sistema "inteligente" para resolverlo de manera más eficiente (funciona bien en mi teléfono celular), y creo que ni siquiera existe la necesidad de algo desconocido y más enfoque "inteligente" para existir.

iliasfl
fuente
1
No estoy seguro de por qué esto fue rechazado. El argumento de que el ajedrez está "resuelto" es un poco inexacto, ya que ninguna computadora puede mirar cualquier posición posible y evaluarla perfectamente. Dicho esto, iliasfl reconoce que el ajedrez ha perdido la mayor parte de su atractivo para la investigación de IA. Por un lado, los mejores programas de ajedrez de la computadora ahora son mucho más fuertes que los mejores humanos, dada la suficiente potencia de procesamiento y tiempo. Esto hace que sea cada vez más difícil para los programadores incluso evaluar qué tan bien funciona un algoritmo.
elixenide
1
Gracias, dije resuelto en el sentido de que la fuerza bruta es una solución. Por supuesto, la comunidad de IA (en general, no solo aquí) no está contenta con esa "solución". Sin embargo, ya tenemos un sistema computacional que presenta un comportamiento "inteligente" para resolver esta tarea, e incluso ganar los mejores humanos, punto. Personalmente, creo que el ajedrez estará fuera de tema para la IA después de unos años, cuando la masa actual de académicos que pasaron carreras atacando se retira.
No llamaría a las implementaciones actuales de ajedrez de la computadora como 'resueltas por la fuerza bruta': todavía están buscando grandes cantidades de estados de juego, pero hay muchos componentes de la fuerza no bruta allí. Por supuesto, no son una solución de "estilo humano" que se generalizaría bien a otros problemas, pero no me sorprendería que si tuviéramos una IA de ajedrez de "estilo humano", sería menos de múltiples órdenes de magnitud eficiente que las soluciones especializadas actuales, lo que lo hace simplemente inferior.
Peteris
Creo que esta respuesta y sus comentarios fueron refutados claramente por el AlphaZero de Google: en.wikipedia.org/wiki/AlphaZero Incluso si acepta las críticas sobre la configuración de Stockfish y habían sacado todas las coincidencias, un sistema que llegó a ese nivel con unas pocas horas de entrenamiento es claramente superior.
Kamal
2

Creo que vale la pena señalar que para determinar cómo abordar un problema de IA debes definirlo. Si es totalmente observable o parcialmente observable , y si es determinista o estocástico / azar.

El ajedrez es totalmente observable (a diferencia del Backgammon, Monopoly o Poker, por ejemplo) También es determinista (como Checkers y Go, por ejemplo) Por último, existen adversarios y por eso, al determinar el próximo mejor movimiento, es útil usar el tipo de Adversarial Search de algoritmos como MiniMax. Clasificar un problema puede ayudarnos a determinar qué tipo de algoritmo de búsqueda nos gustaría aplicar. Y en el caso del ajedrez, la Búsqueda Adversarial sería adecuada.

Minimax en particular tiene un

O(sinorte)

O(simetro)

Entonces, en el caso del ajedrez, b sería 35 ym sería 100. Hay formas de evitarlo o estrategias para hacerlo más eficiente, como el corte alfa-beta.

Iancovici
fuente
También vale la pena señalar en este contexto, que los juegos finales para el ajedrez de hasta pocas piezas ya están tabulados, una optimización adicional.
BartoszKP
Este es el enfoque normal pero no un enfoque de aprendizaje automático. La pregunta utiliza la etiqueta de aprendizaje automático.
Lyndon White
@Oxinabox, aunque eso solía ser cierto, el autor de la pregunta no mencionó en qué parte del título o cuerpo estaba interesado en el enfoque de aprendizaje automático, solo al final donde compartía un ejemplo de un enfoque que tenía en mente. No es necesario restringir el problema al aprendizaje automático, ni a un solo algoritmo de aprendizaje (NN).
Iancovici
De hecho, esto es bueno
Lyndon White
para ser precisos, el ajedrez no es completamente observable, ya que dada una posición que no conocemos, por ejemplo, si un rey o una torre ya se movieron o no, aunque es importante para la generación de movimientos (¿todavía es posible el enroque?), pero un programador puede hacerlo completamente Observable cambiando la representación de posición diferenciando rey / torre no movido y rey ​​/ torre movido como figuras diferentes, aunque agrega algunas dificultades.