Una IA de ajedrez puramente autodidacta

46

Por lo que yo entiendo, parece que, antes de moverse, todo el software de ajedrez fuerte

  1. examina miles o millones de posibles posiciones futuras;
  2. evalúa cada posición futura de acuerdo con alguna heurística, llamada función de evaluación;
  3. evalúa por separado cada posición futura de inactividad, para decidir si explorar las continuaciones desde la posición;
  4. elige entre los movimientos disponibles por minimax; y
  5. usa un libro de apertura.

Hasta aquí todo bien. Sin embargo, la fuerza de un programa de ajedrez parece depender principalmente de la calidad de su evaluación y heurística de inactividad, y también de su libro de apertura que, desde la perspectiva de la computadora, es otra heurística. Tal programa de ajedrez aparentemente, solo, sabe exactamente tanto sobre el juego como el humano que ha creado la heurística. El programa parece no tener ideas propias.

¿Alguien ha escrito alguna vez un programa de ajedrez que tenga ideas propias? ¿Que aprende el juego solo? ¿Que se entrena solo? Tal programa recibiría las reglas del juego, por supuesto, y presumiblemente contaría con una infraestructura mínima de minimax y quiescencia, y sería capaz de reconocer y procesar a un compañero forzado si lo encontraba. Sin embargo, no se proporcionaría heurística. Por ejemplo, no se le diría que abra el juego hacia el centro, ni prefiera torres a caballeros, ni cuál es la defensa siciliana. Tendría que inferir tales principios (o, posiblemente, descubrir mejores principios) por sí solo.

En su forma pura, este programa nunca recibiría juegos maestros para estudiar, sino solo sus propios juegos, jugados contra sí mismos. Solo una vez totalmente autodidacta se desataría en la competencia humana.

¿Existe una IA de ajedrez tan pura? ¿Ha aparecido alguna vez un autodidacta de ajedrez mecánico? De hecho, ¿puede el viejo turco enseñarse a sí mismo?

Aquí parece ser un breve aviso de una IA de ajedrez puro que falló.

( Una pregunta relacionada tangencialmente apareció anteriormente en este sitio, con respecto al estudio computarizado de las aperturas de ajedrez).

ACTUALIZAR

La pregunta está agraciada por tres respuestas diferentes e iluminadoras al momento de escribir este artículo, por @WesFreeman, @GregE. y @Landei. Los tres son muy recomendables y me voy a sentir culpable cuando, de acuerdo con la política del sitio, acepto formalmente a uno con exclusión de los demás. Permítanme agradecer y expresar mi agradecimiento por los tres.

Las preguntas quieren brevedad. Sin embargo, una respuesta a las respuestas podría durar más. Por lo tanto, el lector interesado puede pasar directamente de aquí a las respuestas y luego, si aún está interesado, puede volver a leer la actualización más larga que sigue.

Cuando hice la pregunta, tenía en mente algo como lo siguiente.

Supongamos un pueblo hipotético en las afueras de Shangri-La donde la gente nunca ha oído hablar del ajedrez. Durante tu breve visita, les enseñas a los ancianos de la aldea las reglas del juego, pero nunca les enseñas ninguno de los principios del juego. Dos de los mayores juegan un juego mientras el resto de los mayores observan, mientras que (sin querer interrumpir el juego con kibitzing) limite su comentario a preguntas sobre las reglas. Ningún postmortem sigue el juego, ni el ajedrez se juega o se vuelve a discutir mientras permaneces en Shangri-La. Sin embargo, cuando te vas, para nunca volver, dejas atrás tu juego de ajedrez.

En tu ausencia, los ancianos enseñan el juego a la gente. Más tarde, algunas personas juegan un poco durante las horas de ocio, algunas con entusiasmo creciente, que crean sus propios juegos de ajedrez.

Puede que no sea obvio de inmediato para tales aldeanos que una torre es mejor que un caballero, pero la gente aún podría resolver gradualmente las fortalezas relativas de los ajedrecistas durante el juego de muchos juegos. Del mismo modo, podría no ser inmediatamente obvio para ellos que 1. a4 fue una mala apertura: no pudieron sino probarlo y considerar los resultados.

¿Hasta qué punto la comprensión de los aldeanos del juego finalmente convergería con la del mundo exterior? Al carecer de un libro de apertura, ¿podrían desarrollar nuevas aperturas propias? Por supuesto, uno no esperaría que las aperturas de los aldeanos fueran muy buenas al principio, pero, dado un par de siglos de aislamiento, los aldeanos podrían desarrollar un respetable repertorio de apertura, por lo que sé.

¿Alguna de sus aperturas, desarrolladas independientemente, resultaría interesante para el mundo exterior, cuando el próximo viajero pasara a tomar nota de ellas, 200 años después? ¿Podría Shangri-La darle al mundo la nueva y novedosa defensa Shangri-La?

Si es así, entonces, con respecto a mi pregunta original sobre la IA del ajedrez, lo que tenía en mente era más o menos esto: ¿podría una IA del ajedrez duplicar más o menos el progreso del ajedrez de los aldeanos en las afueras de Shanrgi-La?

Teniendo en cuenta la historia de Sussman en la respuesta de @ Landei a continuación, es indudablemente cierto que mis aldeanos aportarían ciertas ideas preconcebidas al juego. Por ejemplo, entenderían que poseer más de algo útil era generalmente mejor que poseer menos de eso, y por lo tanto, capturar a los ajedrecistas de un oponente era probablemente, generalmente preferible a sufrir la captura de uno mismo. Cuán territorial era la gente ficticia de Shangri-La por naturaleza es una cuestión para la literatura, pero uno puede suponer que reconocerían una posición que ordenara más espacio como superior a una posición que ordenó menos. Y cualquier novato brillante, una vez que se le muestra un juego de ajedrez y se lo instruye en las reglas del juego, puede inferir que una reina es probablemente mejor que un peón, simplemente porque la reina tiene hasta 27 movimientos disponibles,

Mi pregunta, por lo tanto, no debe interpretarse en el sentido de que implica una orden absoluta, al estilo de Sussman, en contra de traer cualquier tipo de conocimiento al tablero de ajedrez; sino más bien implicar un mandato general contra el conocimiento preconcebido específico del ajedrez. Después de todo (sin tener en cuenta la cuestión de la evolución de las reglas del juego hace mucho tiempo), en algún momento del pasado, se jugó el primer juego de ajedrez. Quizás el primer jugador abrió 1. a4; pero finalmente aprendió mejor y enseñó lo que había aprendido a sus discípulos; quien a su vez aprendió más y enseñó más, generación por generación, para darnos Kasparov.

¿Podría una IA no hacer algo así, solo en semanas en lugar de siglos?

Platón sería escéptico, supongo. Hume sería más optimista, pero la cuestión ya no se resolverá solo con la filosofía. Ahora tenemos computadoras electrónicas con las que probar la propuesta, y me preguntaba cuál era el estado del arte de la IA. Las mejores IA de ajedrez en la actualidad parecen ser sistemas expertos completamente poco inteligentes que golpean a todos sin intuir nada. Me preguntaba si las IA un poco más amplias que, en cierto sentido, realmente piensan en el ajedrez, habían tenido un éxito considerable en la enseñanza del juego.

Entiendo que la respuesta es no, probablemente no.

thb
fuente
44
Esta es una de las mejores preguntas en este sitio, de verdad.
Prusswan
55
Parece que la respuesta ahora es sí, ya que DeepMind acaba de publicar una investigación sobre una nueva IA de ajedrez de última generación que han entrenado desde cero (solo autojuego, sin juegos de referencia). arxiv.org/pdf/1712.01815.pdf
Lalaland
1
Agregando el comentario de @Lalaland, después de entrenar durante 10 horas, creo que aplastó por completo al stockfish (no estoy seguro de qué versión) como si el stockfish fuera un principiante. Prácticamente inaudito en juegos de motor contra motor. Parece que a alphago zero le gusta jugar al estilo de Tal
Ariana
2
"¿Podría una IA hacer algo como esto en cuestión de semanas, no siglos? Probablemente no". Bueno, tenías razón en cierto sentido ... Solo tomó horas.
user230452
1
Se supone que muchos jugadores, como Capablanca, han descubierto el juego al verlo jugar una vez. Y recuerda que Alpha Zero no tenía nada más en qué pensar.
Philip Roe

Respuestas:

26

Tienes algunos puntos muy interesantes. Tengo un poco de experiencia en investigación de IA (mi maestría fue en este campo), así que creo que puedo proporcionar algunas ideas.

Investigación en el área

Primero, la investigación en este campo ciertamente está sucediendo: la búsqueda de "ajedrez de enfoque evolutivo" regresó con este artículo de 2001, haciendo casi exactamente lo que sugirió, dejando el enfoque mínimo / máximo y solo modificando la función de evaluación. Es posible desenterrar muchos más, y estoy al tanto de varias personas que estaban trabajando en este campo en general.

Posibilidades teóricas

En mi opinión, el único factor limitante real para la creación de una IA de juego de ajedrez "puro" es el tiempo de cálculo. No hay absolutamente ninguna razón por la cual una IA de este tipo no se pueda crear teóricamente utilizando los enfoques actuales.

Practicidades

Existen dos problemas principales con el uso de enfoques evolutivos o genéticos para desarrollar una función heurística del ajedrez, el primero es que, incluso en su forma más básica, una función heurística para el ajedrez es enormemente compleja. Estamos hablando de cientos de reglas, valoraciones de piezas (que pueden diferir según la posición, etc.), análisis posicionales, etc. Necesitaría un lenguaje de computadora flexible para describir estas reglas, y luego estas reglas podrían generarse al azar, mutado, criado entre sí, etc. Sin duda es posible, pero supongo que terminaría con un conjunto de reglas que se compone de varios miles de entidades. Esa es una gran regla establecida para evolucionar dinámicamente.

El segundo problema es que para evaluar realmente su nueva regla modificada, debe jugar juegos de ajedrez y ver quién termina ganando. Si quieres hacer esto "correctamente", querrás darle a ambos jugadores mucho tiempo para pensar, algo similar a la duración típica de un juego. Sin embargo, jugar con un solo oponente no es suficiente, querrás jugar con muchos oponentes diferentes, y tal vez incluso con los mismos oponentes, muchas veces, antes de que puedas estar realmente convencido de que has encontrado una mejora en la fuerza del juego. Esto probablemente significaría jugar un par de cientos de juegos por persona en su población, y eso le da una generación de su algoritmo.

Por lo general, con este tipo de enfoques, estaría buscando al menos varios cientos de generaciones, o con funciones tan complejas como una heurística del ajedrez, varios cientos de miles (o incluso millones de) generaciones. Algunas matemáticas rápidas deberían convencerlo de que necesitaría varios miles de horas de tiempo de CPU para una sola generación, incluso escalando una granja de servidores de un tamaño significativo, probablemente necesitará varios (posiblemente cientos) de años para evolucionar, exactamente como que mencionas en tu actualización.

Al final de ese tiempo, tendrías un algoritmo interesante que probablemente tendría toneladas de ideas sobre el juego que realmente nunca se han descubierto. Es difícil saber si serían útiles o incluso comprensibles para los humanos. ¿Por qué existe esta regla? Porque durante varios miles de juegos, parecía funcionar.

Futuro

No tengo dudas de que estos enfoques ganarán más y más popularidad, a medida que aumente la potencia informática. Actualmente, estamos en un punto en el que una máquina tiene el tiempo de computación suficiente para vencer a (casi todos) los humanos, si su inteligencia está cuidadosamente hecha a mano. Dentro de 20 años, es muy posible que los procesadores se hayan movido tanto que uno o dos movimientos adicionales en profundidad ya no brinden a las máquinas "codificadas" suficientes beneficios, sino que las máquinas evolucionadas y extrañamente intuitivas los venzan. millones de horas de evolución detrás de ellos.

Actualización 2018 mayo

Como Robert Kaucher menciona en un comentario a continuación, las noticias recientes merecen una mención aquí. Específicamente, el proyecto AlphaGo de Google parece ser el primer enfoque basado en la inteligencia artificial realmente viable para este tipo de juegos, y a fines de 2017, afirma haber ganado contra StockFish 2 , después de ser re-diseñado para la tarea.

Daniel B
fuente
Gracias. Me doy cuenta de que el papel que vincula entrena su IA primero contra oponentes humanos no maestros y luego contra software de ajedrez existente, que no es exactamente lo que usted y yo teníamos en mente. A un platónico como yo no le sorprendería saber que el tipo de IA que usted y yo estamos discutiendo era una imposibilidad práctica (sabemos que no es una imposibilidad teórica porque el ajedrez se puede resolver en teoría por minimax); pero si una respuesta me sorprende no es el punto. Señalar es preguntar si una IA ha logrado la hazaña propuesta. La respuesta parecería ser no.
thb
2
@thb Creo que ha habido un buen número de intentos en este tipo de IA, aunque podría considerarlos "infructuosos". Sospecho que un intento enormemente exitoso (hoy) probablemente estaría jugando a un nivel amateur muy débil; un gran logro, simplemente no a los ojos del público. Además, no creo que entrenar contra programas existentes y humanos sea trampa, per se, solo una optimización muy grande, aunque una que puede cambiar la dirección del estilo de juego de la IA en evolución.
Daniel B
1
Si está interesado en leer más sobre el enfoque "puro", probablemente tendrá más suerte buscando enfoques de "coevolución competitiva". Esta es la frase utilizada para cuando no hay una buena manera de proporcionar una medida externa de rendimiento (es decir, no podemos jugar contra otros motores de ajedrez), por lo que el entrenamiento de IA tiene que evolucionar jugando varias versiones de sí mismo. Definitivamente funciona, pero lleva mucho más tiempo, lo que probablemente es la razón por la cual es un enfoque menos perseguido.
Daniel B
1
@DanielB ¿AlphaZero es una IA tan grande?
Harry Weasley
1
Es posible que desee actualizar su respuesta. chess.com/news/view/…
Robert Kaucher
17

Sospecho que lo que estás preguntando se clasificaría como algún tipo de algoritmo genético o enfoque de algoritmo evolutivo . Sospecho que no hay una forma realista de diseñar un algoritmo de este tipo sin incorporar intrínsecamente un cierto grado de sesgo humano en un nivel fundamental, ya que el programador todavía tiene que definir las características estáticas de una posición (conteo de materiales, estructura de peones, complejos de colores, etc.) según el cual la IA clasificaría y compararía posiciones de diferentes juegos. Si realiza una búsqueda en Google en la terminología algorítmica anterior en el contexto del ajedrez, encontrará numerosos resultados, pero probablemente poco en el camino de una investigación seria que realmente se haya utilizado para construir IA exitosas y competitivas.

El hecho es que, como consecuencia de la ley de Moore, las computadoras son ahora máquinas de cálculo tan potentes que los métodos de IA extremadamente sofisticados no solo son innecesarios (en términos de jugar a un nivel más alto que los mejores oponentes humanos), sino que incluso pueden ser contraproducentes. El ajedrez es el tipo de juego en el que, debido principalmente a su espacio de búsqueda comparativamente pequeño de movimientos razonables en cualquier posición dada y la existencia de combinaciones tácticas forzadas (que comprenden secuencias de controles, capturas de piezas, amenazas de compañero o pérdida catastrófica de material, etc.) - un enfoque de fuerza bruta con una poda conservadora de árbol de búsqueda es simultáneamente el enfoque más algorítmicamente simple y más efectivo. Si se tiene en cuenta la disponibilidad de tablas finales y libros de apertura, la lógica de ese enfoque solo aumenta. Entiendo que hay ' Todavía hay un gran interés teórico y un valor potencial en el tipo de IA nueva de la que estás hablando, pero sospecho que el ajedrez es el escenario equivocado para desarrollarlo. Por otro lado, un juego como Go, que es menos táctico por naturaleza y abarca un espacio de búsqueda mucho más grande que hace que los enfoques de fuerza bruta sean poco prácticos, podría ser un mejor candidato para la investigación de IA de vanguardia.

Greg E.
fuente
He actualizado la pregunta de AI a la luz de su respuesta. La actualización no es corta, por lo que, a su elección, cuando tenga algo de tiempo, puede revisarla en la medida en que le interese.
thb
2
No se necesitarían tales prejuicios humanos. Simplemente genere 1000 algoritmos aleatorios capaces de jugar ajedrez legal, enfréntelos entre sí en un torneo, luego tome el 20% superior y aplique la mutación y el crossover para construir la próxima generación. Repita en varias poblaciones durante varias generaciones y debería tener algo medio decente al final. La única función física necesaria sería ganar / perder.
superluminario
15

Vea la página de Wikipedia sobre Juego general . Es un área de investigación activa. Hay un torneo anual de GGP en el que los programas reciben las reglas de un nuevo juego, piensan en ello por un tiempo y luego juegan el juego uno contra el otro.

Si le das las reglas del ajedrez a un programa GGP, creo que encontrarás que juega mucho más fuerte que un principiante humano y mucho más débil que un programa de ajedrez escrito específicamente.

Jay Scott
fuente
13

Vale la pena revisar esta pregunta a la luz del reciente éxito sorprendente de AlphaZero contra Stockfish 8 . Una nueva evolución de los programas AlphaGo y AlphaGo Zero de DeepMind , AlphaZero terminó con una puntuación asombrosa de +28 = 72-0 contra uno de los motores de ajedrez "tradicionales" más fuertes del planeta.

AlphaZero se enseñó a sí mismo a jugar a través del aprendizaje por refuerzo, entrenando su arquitectura de red neuronal a través de una serie de juegos contra sí mismo. Según el documento adjunto :

  1. Las características de entrada que describen la posición, y las características de salida que describen el movimiento, están estructuradas como un conjunto de planos; es decir, la arquitectura de la red neuronal se corresponde con la estructura de cuadrícula de la placa.
  2. AlphaZero cuenta con un conocimiento perfecto de las reglas del juego. Estos se utilizan durante MCTS, para simular las posiciones resultantes de una secuencia de movimientos, para determinar la finalización del juego y para puntuar cualquier simulación que alcance un estado terminal.
  3. El conocimiento de las reglas también se usa para codificar los planos de entrada (es decir, enroque, repetición, no progreso) y planos de salida (cómo se mueven las piezas, promociones y caídas de piezas en shogi).
  4. El número típico de movimientos legales se utiliza para escalar el ruido de exploración (ver más abajo).
  5. Los juegos de ajedrez y shogi que exceden un número máximo de pasos (determinados por la duración típica del juego) se terminaron y se les asignó un resultado dibujado; Los juegos de Go se terminaron y se puntuaron con las reglas de Tromp-Taylor, de manera similar al trabajo anterior (29).

AlphaZero no utilizó ninguna forma de conocimiento de dominio más allá de los puntos enumerados anteriormente.

Estoy seguro de que uno puede hacer preguntas sobre cosas como el hardware diferente que se usa: " AlphaZero ... usó una sola máquina con 4 TPU . Stockfish ... jugó en [su] nivel de habilidad más fuerte usando 64 hilos y un tamaño de hash de 1 GB ". - pero en cualquier caso, el resultado de AlphaZero es notable, y está muy en la línea del OP.

Tal vez revelando aún más apoyo por lo poco que estaba en juego el conocimiento específico del dominio, además de vencer a Stockfish en ajedrez, AlphaZero también entrenó en shogi hasta el punto de vencer al programa campeón Elmo, y por supuesto también superó a su predecesor AlphaGo Zero en Go .

Este es uno de los juegos contra Stockfish, un Berlín en el que el desequilibrio material es eventualmente AlphaZero con la pareja obispo contra un caballero y 4 peones para Stockfish después 31.Qxc7. En esa posición, todas las piezas de AlphaZero están en el rango de atrás, con los obispos en sus casillas originales. Finalmente, después de que las reinas salen, las piezas negras maniobran lentamente para recoger peones blancos, y eso es cortinas.

Stockfish - AlphaZero, 2017-12-04, 0-1
1. e4 e5 2. Cf3 Cc6 3. Ab5 Nf6 4. d3 Ac5 5. Axc6 dxc6 6. OO Cd7 7. NBD2 OO 8. QE1 f6 9. Cc4 Tf7 10. a4 Af8 11. KH1 Cc5 12. a5 Ce6 13. Ccxe5 fxe5 14. Cxe5 Rf6 15. Cg4 Rf7 16. Ne5 Re7 17. a6 c5 18. f4 Qe8 19. axb7 Bxb7 20. Qa5 Cd4 21. Qc3 Re6 22. Be3 Rb6 23. Cc4 Rb4 24. b3 a5 25. Rxa5 Rxa5 26. Nxa5 Ba6 27. Bxd4 Rxd4 28. Nc4 Rd8 29. g3 h6 30. Qa5 Bc8 31. Qxc7 Bh3 32. Rg1 Rd7 33. Qe5 Qxe5 34. Nxe5 Ra7 35. Nc4 g5 36. Rc1 Bg7 37. ne5 Ra8 38. Cf3 Ab2 39. Rb1 Ac3 40. Cg1 Ad7 41. Ce2 JLd2 42. Td1 JLe3 43. kg2 Ag4 44. Te1 JLd2 45. Rf1 Ta2 46. h3 Bxe2 47. Rf2 Bxf4 48. Rxe2 Ae5 49. Rf2 Rg7 50. g4 Ad4 51. Re2 Rf6 52. e5 + Axe5 53. KF3 Ra1 54. Rf2 Re1 55. kg2 + Af4 56. c3 Rc1 57. d4 Rxc3 58. dxc5 Rxc5 59. b4 Rc3 60. h4 Re5 61 . hxg5 hxg5 62. Re2 + Rf6 63. Kf2 Ae5 64. Ra2 Rc4 65. Ta6 + Re7 66. Ra5 Re6 67. Ta6 + Ad6 0-1
ETD
fuente
11

Creo que la razón principal por la que es difícil producir una IA de este tipo es por el espacio requerido para que el "entrenamiento" sea efectivo.

Además (como respuesta a su comentario de auto entrenamiento), el auto entrenamiento puede ser perjudicial al tratar de mejorar dicha IA. He realizado algunas investigaciones con tic-tac-toe (ciertamente mucho más simple), y encontró todo tipo de de formas horribles de ganar (y entrenar esas formas horribles) porque ambas partes jugaron horriblemente. Se necesitó mucho más tiempo para obtener un rendimiento razonable con el autoentrenamiento que el entrenamiento contra una buena inteligencia artificial en tres en raya.

Sin embargo, creo que sería interesante ver un híbrido que utiliza tanto la búsqueda profunda como el "entrenamiento", algún tipo de base de datos almacenada de posiciones para el medio juego (en lugar de solo finales y aperturas). Necesitaría mucho espacio.

Tal vez esté pensando en un enfoque de IA más "real" que aprenda conceptos posicionales en lugar de ganar / perder / empatar, pero no creo que sea muy efectivo (en comparación con los motores fuertes).

Eve Freeman
fuente
La respuesta es apreciada. Lo que creo que tenía en mente era una IA que (a) poseía una capacidad mínima, pero (b) carecía de una función de evaluación predeterminada. Tal IA necesariamente resolvería un juego tan pequeño como el tic-tac-toe de minimax puro. En el ajedrez, un juego solo teóricamente susceptible al minimax, la IA evaluaría no la posición actual en el tablero sino las posiciones futuras, después de lo cual minimax elegiría el movimiento. Podría decirse libremente que Nimzowitsch revolucionó el ajedrez al rechazar las heurísticas de evaluación conocidas. Si es así, ¿podría una máquina hacer lo mismo?
thb
1
Entonces, ¿estás diciendo que desarrollaría su propia función de evaluación?
Eve Freeman
2
@thb, como programador, creo que el problema con su idea es que, hasta donde puedo ver, ninguna IA de ajedrez plausible puede comenzar con una pizarra totalmente en blanco para una función de evaluación. Se podría escribir una IA que analice juegos para patrones y use métodos estadísticos / probabilísticos (por ejemplo, inferencia bayesiana) para ajustar sus valoraciones y toma de decisiones, pero el programador debe identificar qué motivos, factores de posición, secuencias de movimiento constituyen dichos patrones y con qué criterios evaluarlos. En otras palabras, el núcleo básico de la función de evaluación aún necesitaría ser diseñado por humanos.
Greg E.
1
Puede ser interesante ver qué se le ocurre a un motor genético minimax, por ejemplo, si comenzara todas las piezas con el mismo valor de material, basado en ganar / perder / empatar, y dejar que los valores del material muten. Estoy seguro de que los creadores del motor ya han intentado ajustar estos, como hacer los caballeros 2.9 y los obispos 3.1 peones.
Eve Freeman
1
@thb, no soy un experto, pero creo que ese es el caso. Incluso la IA a la que se vinculó está limitada por sesgos del programador. Si lee el documento de investigación original, observa que el "vector de características" que capacita a la función de evaluación comprende características del tablero que "fueron cuidadosamente diseñadas a mano". Es decir, el programador todavía tiene que especificar el conjunto de factores posicionales estáticos en los que la IA basa su toma de decisiones. Creo que la principal ventaja de una red neuronal para este proyecto en particular es que el entrenamiento puede ser paralelo, permitiendo el procesamiento asincrónico de cantidades masivas de juegos de manera eficiente.
Greg E.
10

Solo quiero ampliar las respuestas de Greg y Wes aquí. El tipo de IA que propone thb simplemente no existe con la sofisticación que se requiere para esta aplicación. E incluso si lo hicieran, sospecho que fallarían en esto. Es como si quisiera una IA de propósito general fuerte que se le pueda enseñar las reglas básicas del juego y luego se envíe. Pero si nos fijamos en las IA de propósito general que están en desarrollo, a todas se les está enseñando cosas como el reconocimiento de objetos y del habla a nivel de 1 a 2 años. Cualquier IA de propósito general primero necesitaría tener la sofisticación para poder comprender qué es un juego, incluso antes de poder entender cómo jugar un juego. No puede diseñar una IA de propósito general y esperar que funcione como una IA estrecha o especializada. Una IA de propósito general necesitaría que se le enseñe ajedrez como una persona y no se puede esperar reunir a dos jugadores novatos sin conocimiento de la historia del ajedrez y reinventar espontáneamente aperturas y temas estratégicos. Tomaría muchos cientos de instancias de la IA jugando entre sí, cada una con acceso a los datos históricos de todos sus juegos durante cientos de miles de iteraciones. Y cada IA ​​necesitaría tener ciertas características distintas ponderadas en diferentes niveles.

A los humanos les tomó casi 500 años pasar de Rodrigo (Ruy) López de Segura y Pedro Damião a Paul Morphy y luego considerar los cambios adicionales que ocurrieron entre la obra de Steinitz y Alekhine. Y todo ese cambio se produjo a través del dinamismo de muchos cientos de miles de jugadores con diferentes temperamentos y otras características influyentes (como favorecer aleatoriamente a los caballeros sobre los obispos o los obispos sobre los caballeros) sin mencionar los estilos de juego y las modas. Todas estas cosas contribuyeron a la dinamo del cambio que influyó en el ajedrez a través de los siglos. Ninguna IA débil, incluso una IA de propósito general débil, podría duplicar ese tipo de dinamo porque carece de deseo. Solo el deseo puede conducir algo para sentarse durante horas durante muchos días para analizar una apertura con la intención de romperla o mejorarla después de que un rival la "rompió". Realmente es este tipo de impulso para el análisis y la preparación lo que mejoró el juego a lo largo de los siglos, no el juego ciego de millones de juegos entre jugadores igualmente débiles.

Es como tomar un grupo de personas que no hablan inglés y que nunca leen los maestros de literatura de su lengua materna y ponerlos en una habitación con libros de inglés como segundo idioma y esperar que inventen algo como las obras de Shakespeare. Nunca, nunca va a suceder.

EDITAR : Debería haber sabido mejor que hacer esta afirmación porque ha sucedido .

"A AlphaZero no se le" enseñó "el juego en el sentido tradicional", explica Chess.com. "Eso significa que no hay libro de apertura, no hay tablas de final de juego, y aparentemente no hay algoritmos complicados que analicen las diferencias mínimas entre los peones centrales y los peones laterales". Esto sería similar a que un robot tenga acceso a miles de partes y piezas de metal, pero sin conocimiento de un motor de combustión, luego experimenta varias veces con todas las combinaciones posibles hasta que construye un Ferrari. ... El programa tuvo cuatro horas para jugar muchas, muchas veces, convirtiéndose así en su propio maestro ".

Mi continuo, obviamente balbuceo sin fundamento:

Damos por sentado todo el conocimiento implícito que tenemos sobre el mundo. Para poder entender que si tengo trozos de madera y un clavo, entonces un martillo es más útil para mí que un destornillador, primero tengo que entender que ciertas clases de cosas son más útiles en ciertas situaciones que otras. También tengo que entender que las cosas tienen un uso que se puede aplicar a un objetivo. Estas son las heurísticas. Si no se le puede decir a la IA que ciertas piezas tienen más valor que otras, ¿cómo puede siquiera entender qué es el compañero? Si no puede programarse con heurísticas específicas, debe ser capaz de extrapolar estas ideas como la experiencia de la forma de "valor" y "utilidad". Y ese no es el dominio de la IA estrecha. Es el dominio de propósito general, IA fuerte.

Robert Kaucher
fuente
1
Excelente respuesta Creo que su primer párrafo realmente cristaliza la idea que estaba tratando de transmitir, pero lo hace con mayor lucidez.
Greg E.
Gracias Greg. Solo quiero agregar que estoy hablando de una IA de propósito general débil. Creo que una verdadera IA fuerte podría hacer algo como esto a través de muchas instancias durante muchas iteraciones en un marco de tiempo altamente comprimido. Pero todavía no tenemos una IA fuerte. en.wikipedia.org/wiki/Strong_AI
Robert Kaucher
Estoy de acuerdo con todo lo que dijiste, excepto la sección sobre deseo. La inteligencia artificial puede sentarse durante horas haciendo lo que los diseñadores quieran: la potencia de la computadora suficiente puede resolver el ajedrez, es solo que todavía no tenemos suficiente potencia.
Eve Freeman
Eso es cierto, Wes, pero luego estamos inyectando el sesgo del "programador" o lo que sea en la IA; que es una de las cosas que el autor de la pregunta no quería.
Robert Kaucher
@ EveFreeman, creo que estás malentendido lo que estoy diciendo. No digo que las computadoras no "resuelvan el ajedrez". Digo que el escenario específico de la OP se ve afectado hasta el punto de que no funcionará. Si el sistema no tiene heurística, ¿cómo puede valorar las piezas?
Robert Kaucher
9

Medita sobre los siguientes AI Koan:

En los días en que Sussman era un novato, Minsky se le acercó una vez mientras se encontraba pirateando el PDP-6. "¿Qué estás haciendo?", Preguntó Minsky. "Estoy entrenando una red neuronal cableada al azar para jugar Tic-Tac-Toe", respondió Sussman. "¿Por qué la red está conectada al azar?", Preguntó Minsky. "No quiero que tenga ideas preconcebidas sobre cómo jugar", dijo Sussman. Minsky luego cerró los ojos. “¿Por qué cierras los ojos?”, Le preguntó Sussman a su maestra. "Para que la habitación esté vacía". En ese momento, Sussman se iluminó.

Nuestras aplicaciones siempre tienen ideas preconcebidas, ya sea que cierre o no los ojos ...

Landei
fuente
Tu anécdota es muy persuasiva. En la medida en que le interese, su anécdota me ha llevado a extender la pregunta con una actualización, que puede ver arriba cuando tenga tiempo.
thb
8

¿Alguien ha escrito alguna vez un programa de ajedrez que tenga ideas propias? ¿Que aprende el juego solo? ¿Que se entrena solo?

Si. Echa un vistazo al motor de ajedrez Jirafa escrito por Matthew Lai. Escribió el motor de ajedrez como parte de su investigación de Inteligencia Artificial para una maestría en ciencias de la computación.

Hubo mucha discusión sobre este último año en el foro de programación de ajedrez TalkChess . Lo sé porque soy un autor de motores de ajedrez cuyo motor es aproximadamente tan fuerte como Giraffe. Sin embargo, implementé mi motor usando técnicas tradicionales, mientras que el autor de Giraffe entrenó su motor usando "aprendizaje de refuerzo de diferencia temporal con redes neuronales profundas". Matthew todavía tenía que implementar la búsqueda alfa / beta tradicional para evaluar dinámicamente una posición, en otras palabras, para mirar hacia adelante muchos movimientos. Su innovación está en entrenar el motor para evaluar una posición estática . En comparación, escribí conocimiento específico en la rutina de evaluación estática de mi motor.

Escribí código para ajustar los parámetros de evaluación usando un algoritmo de enjambre de partículas (vea la página de agradecimiento en mi blog para enlaces a discusión técnica) que arrojó resultados positivos, un motor más fuerte. Sin embargo, esto no fue una tarea de lograr que el motor "aprendiera" sino minimizar el error en un espacio extremadamente grande de parámetros de evaluación (el orden de 10 ^ 150 combinaciones de parámetros discretos).

Matthew discute su disertación en el foro TalkChess. Ahora trabaja para Google en DeepMind, si no recuerdo mal.

Además, echa un vistazo al blog de Thomas Petzke . Ha escrito un motor de ajedrez extremadamente fuerte, iCE, y ha utilizado algoritmos genéticos para mejorar la evaluación estática del motor. Vea sus publicaciones de 2013 y anteriores, como Aprendizaje incremental basado en la población .

Erik Madsen
fuente
Bienvenido al foro! Mas uno.
SmallChess
5

Una búsqueda en Google como esta puede generar resultados como este .

Más particularmente, creo que querrás ver este artículo . Le dan a su motor algunos datos iniciales, como valores de piezas, por lo que no es exactamente lo que está pidiendo, pero funcionó bastante bien.

David Spencer
fuente
+1 porque aprecio la interesante cita de IEEE. Ya estoy familiarizado con la página de NeuroChess. Sin embargo, ninguno de los dos parece hacer lo que tenía en mente.
jueves
3

Es posible con el aprendizaje automático.

Abrir libros de motores de ajedrez utiliza el aprendizaje automático. Engine prueba las líneas de apertura en el libro al jugarlas, si una línea obtiene una mejor puntuación comparando a otra, entonces promueve esa línea en el árbol de apertura. Con el tiempo, el motor aprende las mejores líneas.

Después de que finaliza la fase de apertura, el motor deja de usar el libro y comienza a usar la función de evaluación.


¿Cómo implementar un motor de autoaprendizaje utilizando el aprendizaje automático?

Imagine un motor usando un libro sin una función de evaluación. Y el libro está vacío inicialmente. Entonces el motor no tiene conocimiento sobre el ajedrez.

El motor comienza a jugar con este libro vacío y no cierra el libro hasta el final del juego. Podemos pensarlo como un motor normal que usa un libro de apertura hasta el final del juego.

Con el tiempo, el motor encontraría las mejores continuaciones estadísticamente, ya que las líneas malas obtendrían peores resultados en el tiempo. Pero, por supuesto, se deben jugar muchos juegos para obtener un buen libro. No sé cuántos, pero tantos como podamos decir poco prácticos.

Actualización de diciembre de 2017 : Bueno, supongo que Alpha Zero me demostró que estaba equivocado al entrenarme lo suficientemente fuerte como para vencer a uno de los motores más fuertes, Stockfish, con una cantidad práctica de juegos.

fermentar
fuente
2

Independientemente de lo que intente en esta área, asegúrese de leer primero la historia de Turry aquí: http://waitbutwhy.com/2015/01/artificial-intelligence-revolution-2.html

TL; DR; versión de spoiler por solicitud:

En la historia de Turry, la IA de auto entrenamiento de Turry tiene que escribir buenas notas escritas a mano y termina deshaciéndose de los humanos porque no son necesarias para lograr el objetivo aparentemente inocuo de escribir buenas notas escritas a mano. La analogía es que un motor de ajedrez autodidacta con IA probablemente también eliminará a los humanos porque no son necesarios para mejorar el objetivo aparentemente inocuo de mejorar las habilidades de ajedrez.

Energía
fuente
Su respuesta es interesante, aunque quizás no del todo convincente. He leído el artículo vinculado (ambas partes) en su consejo. El escritor debilita un poco su caso atacando a algunos hombres de paja, pero es un tipo reflexivo. No creo que tuviera en mente algo muy parecido al Turry del artículo. Un tablero de ajedrez de 8 por 8 en el que dos jugadores toman 40 o más turnos discretos es un caso fundamentalmente más simple. Me parece notable que la IA ni siquiera pueda pensar en el ajedrez de manera general. Para una opinión contraria, lectura asignada: Feser, Edward. La última superstición. Aún así, +1 por interés.
2015
1

Y hay AlphaZero. Celebre una nueva generación de motores de ajedrez.

Prusswan
fuente
0

El uso de terminología antropomórfica cuando se trata de sistemas informáticos es un síntoma de inmadurez profesional.

De ¿Cómo le decimos verdades que pueda herir? por Edsger W.Dijkstra resume más o menos la suposición errónea subyacente a su pregunta. La inteligencia artificial puede ser artificial pero no es inteligencia en el sentido humano.

En las Conferencias Reith de 1984 para la BBC, el filósofo estadounidense John Searle explica exactamente lo que está mal con la IA dura. El resumen "demasiado largo, no escuché" de su argumento es "La sintaxis no es semántica" pero, sin embargo, le animo a que escuche al menos la conferencia 2 "Latas de cerveza y máquinas de carne ".

Una vez que haya entendido lo que Dijkstra y Searle decían hace más de 30 años, reconocerá lo que está mal con sus preguntas:

¿Alguien ha escrito alguna vez un programa de ajedrez que tenga ideas propias? ¿Que aprende el juego solo?

Los seres humanos tienen "ideas" y pueden aprender. Las computadoras no pueden. Su aldea de humanos primitivos podría reproducir durante siglos la teoría de la apertura del ajedrez, pero las computadoras no.

Brian Towers
fuente
¿Argumenta que las computadoras no alcanzarán la inteligencia a nivel humano, o que incluso "pensar" y "comprender" están reservados para los humanos?
BlindKungFuMaster
@BlindKungFuMaster Si se toma la molestia de escuchar "Latas de cerveza y máquinas de carne" en el enlace de arriba, tendrá claro lo que piensa John Searle. Me convenció y comparto su punto de vista.
Brian Towers
La comprensión simplista de Searle de los programas informáticos de IA es excusable, después de todo, solo es 1984. Pero las arquitecturas modernas de IA imitan solo la arquitectura de la mente humana, por lo que solo la arquitectura se describe sintácticamente, no lo que finalmente hace el "pensamiento". El "poder (todavía no) equivalente al poder del cerebro humano" proviene de la ingesta de grandes cantidades de datos, mediante el "aprendizaje". Solo en este paso se captura el contenido semántico.
BlindKungFuMaster
Por lo tanto, el argumento de la Sala China es erróneo al suponer que puede simular la comprensión solo con un gran libro de reglas, lo que de hecho es relativamente absurdo, y al renunciar a la posibilidad de que la arquitectura apropiada pueda capturar contenido semántico a partir de grandes cantidades de datos. De hecho, de esto se trata el procesamiento del lenguaje natural en estos días: cs224d.stanford.edu/syllabus.html
BlindKungFuMaster
@BlindKungFuMaster Hay una palabra clave en lo que dices que me parece que no entiendes. Es la palabra "simular". Llevo 35 años como ingeniero informático y durante ese tiempo tengo muchos simuladores y también he escrito algunos. Los simuladores a menudo son componentes vitales de un proyecto, pero en un proyecto en tiempo real nunca reemplazan por completo el equipo objetivo. Sin duda, las computadoras son excelentes para simular inteligencia y comprensión semántica, pero nunca pueden alcanzar la conciencia, la voluntad y la comprensión.
Brian Towers
0

El autor de la pregunta original da esta respuesta, cuatro años después de la pregunta. No sustituye ni reemplaza las respuestas dadas anteriormente, ya que la mayoría de las respuestas anteriores son más interesantes que esta. Sin embargo, esta respuesta podría agregar algún contexto adicional.

Por lo que puedo decir, la mayoría de las investigaciones sobre IA parecen dar por sentado implícitamente la premisa de que el pensamiento y la razón eran fenómenos exclusivamente materiales, o al menos que los resultados que no se pueden distinguir del pensamiento y la razón necesariamente deben lograrse mediante procesos únicamente materiales. No cuestiono la premisa (ni aquí la promuevo, para el caso). Simplemente observo que parece ser una premisa.

Y, después de todo, en la investigación de IA, ¿cómo no debería ser esto una premisa? Los investigadores de IA deben trabajar a través de procesos materiales, ya sea que lo hagan o no.

Los escolares de filosofía realista , desde Duns Scotus, St. Thomas, Aristóteles y Platón, han tenido mucho que decir sobre la teoría de la mente. Representacionistas como Kant han tenido cosas bastante diferentes que decir. La investigación de IA probablemente esté más cerca de Kant, pero esto no hace que los escolares se equivoquen.

Es cierto que hay una objeción de Dios de las brechas que tiende a aparecer en este momento en conversaciones del tipo actual, sin embargo, un filósofo profesional le diría que la objeción de Dios de las brechas ataca a un hombre de paja, que esta objeción tiende a ser útil solo contra personas que no han estudiado filosofía y, por lo tanto, no saben de qué están hablando. Según Aristóteles, es la causalidad formal y final que podría estar implicada en la cuestión de la IA del ajedrez autodidacta. Sin embargo, en términos aristotélicos, el investigador de IA trabaja puramente con causalidad material y, especialmente, eficiente.(excepto tal vez oblicuamente, en la medida en que los entrenadores humanos traen personalmente elementos formales y finales al sistema). Si la razón es formal, si el pensamiento es definitivo, si la habitación china de Searle demuestra ser una imposibilidad ontológica (como podría serlo), entonces puede ser que una IA de ajedrez puramente autodidacta no se pueda lograr en teoría.

Sospecho que se puede lograr una IA de ajedrez puramente autodidacta, y lo será, que, en términos aristotélicos, esta pregunta demostrará ser adecuadamente enmarcable en vista de una causalidad meramente eficiente. En general, soy más escéptico con respecto a la IA fuerte, pero esto debe demostrarse con experiencia, ¿no es así? Nadie realmente lo sabe todavía.

La filosofía de la causalidad y la mente es sutil, comprendida por pocos (y probablemente por pocos, incluso entre los investigadores de IA, que son hombres más prácticos). Si desea aprender tal filosofía, vale la pena aprenderla; pero tenga en cuenta que, en Internet e incluso a menudo en forma impresa, es extremadamente fácil encontrar explicaciones engañosas basadas en malentendidos no instruidos. Por mi dinero, el mejor maestro introductorio que escribe hoy sobre el tema es Edward Feser, cuyos libros permanecen impresos a precios razonables. Puedes aprender mucho más de él.

Sin embargo, ¡uno duda que incluso el Dr. Feser aventuraría una respuesta autorizada a la presente pregunta! La respuesta queda por demostrar en los laboratorios de IA.

thb
fuente
-3

Quiero que publiquen el código, luego podemos hablar. No es tan fácil resolver el ajedrez, Alpha no lo resolverá ni siquiera en medio siglo. Curiosamente, todavía juega 1.d4. ¿Por qué? Debido a que ha sido entrenado en juegos humanos y la teoría humana da la tasa de rendimiento más alta para 1.d4. El pobre no sabe 1 ... c5 logra un empate en precisamente 8 movimientos. Ahora quieren que crea que Alpha no usó un libro de aperturas simulado ... Dicen que Alpha jugó grandes aperturas. Bueno, sí, con algunas excepciones. 1.d4 ciertamente no habla bien del nivel de inteligencia que alcanzó el programa. Afortunadamente, SF es aún más débil en la etapa inicial. :)

Lyudmil Tsvetkov
fuente
3
Usted hace afirmaciones audaces al decir que 1. ... c5 logra un empate en 8 movimientos y que Stockfish es débil en la etapa inicial. ¿Podría por favor proporcionar referencias a estas afirmaciones?
Pablo S. Ocal
1
1.d4 ciertamente no habla bien del nivel de inteligencia que alcanzó el programa. Como jugador 1.d4, me pregunto si debería considerar que mi inteligencia está siendo insultada aquí.
Evargalo
Aunque no han publicado el código o ni siquiera han publicado el documento, se lanzó un proyecto para reproducir su resultado: lczero.org Incluso puedes jugar con el "AlphaZero" en evolución
Junyan Xu el