Las computadoras han podido jugar al ajedrez durante mucho tiempo utilizando una técnica de "fuerza bruta", buscando a cierta profundidad y luego evaluando la posición. Sin embargo, la computadora AlphaGo solo usa un ANN para evaluar las posiciones (hasta donde yo sé, no realiza ninguna búsqueda profunda). ¿Es posible crear un motor de ajedrez que juegue ajedrez de la misma manera que AlphaGo juega Go? ¿Por qué nadie ha hecho esto? ¿Este programa funcionaría mejor que los mejores motores de ajedrez (y jugadores de ajedrez) de hoy?
32
Respuestas:
EDITAR (después de leer el periódico):
He leído el periódico cuidadosamente. Comencemos con lo que Google afirmó en el documento:
Desafortunadamente, no creo que sea un buen periódico. Voy a explicar con enlaces (para que sepas que no estoy soñando):
https://chess.stackexchange.com/questions/19360/how-is-alpha-zero-more-human tiene mi respuesta sobre cómo AlphaZero jugó como un humano
El partido fue injusto , muy sesgado. Cito a Tord Romstad, el programador original de Stockfish.
Stockfish no podría haber jugado el mejor ajedrez con solo un minuto por jugada. El programa no fue diseñado para eso.
La tabla hash de 1 GB es absolutamente inaceptable para un partido como este. Stockfish frecuentemente encontraría colisión de hash. Se necesitan ciclos de CPU para reemplazar las entradas hash antiguas.
CONCLUSIÓN
Google no ha demostrado sin dudas que sus métodos son superiores a Stockfish. Sus números son superficiales y fuertemente sesgados a AlphaZero. Sus métodos no son reproducibles por un tercero independiente. Todavía es demasiado pronto para decir que el aprendizaje profundo es un método superior a la programación tradicional de ajedrez.
EDITAR (diciembre de 2017):
Hay un nuevo artículo de Google Deepmind ( https://arxiv.org/pdf/1712.01815.pdf ) para el aprendizaje de refuerzo profundo en ajedrez. Desde el resumen, el motor de ajedrez Stockfish número uno del mundo fue derrotado "convincentemente". Creo que este es el logro más significativo en el ajedrez informático desde el partido Deep Blue de 1997. Actualizaré mi respuesta una vez que lea el documento en detalle.
Original (antes de diciembre de 2017)
Aclaremos su pregunta:
ANN puede usarse para motores de ajedrez:
La jirafa juega aproximadamente al nivel de maestro internacional, que es aproximadamente la calificación FIDE 2400. Sin embargo, Stockfish, Houdini y Komodo juegan a aproximadamente FIDE 3000. Esta es una gran brecha. ¿Por qué? ¿Por qué no Monte-Carlo Tree Search?
Se investigó que Monte Carlo Tree Search no escala bien para el ajedrez. Go es un juego diferente al ajedrez. Los algoritmos de ajedrez no funcionan para Go porque el ajedrez se basa en tácticas brutales. La táctica es posiblemente más importante en el ajedrez.
Ahora, hemos establecido que MCTS funciona bien para AlphaGo pero menos para el ajedrez. El aprendizaje profundo sería más útil si:
Si el aprendizaje profundo puede lograr lo siguiente, superará el algoritmo tradicional:
Déjame señalar:
uno mas:
Referencia:
Yo cito:
fuente
DeepBlue ya ha vencido a Kasparov, por lo que este problema se resuelve con un enfoque mucho más simple. Esto fue posible porque la cantidad de movimientos posibles en el ajedrez es mucho menor que en el juego , por lo que es un problema mucho más simple. Además, tenga en cuenta que tanto NN como la fuerza bruta necesitan enormes recursos informáticos ( aquí puede encontrar una foto de la computadora detrás de AlphaGo, observe que no utiliza ni GPU, sino TPU para el cálculo). Todo el alboroto con go fue que cuando Deep Blue venció a Kasparov, la comunidad go ha argumentado que esto no sería posible con go (por muchas razones diferentes, pero para resumir los argumentos necesitaría dar una introducción detallada al juego de ir). Sí, puedes enseñarle a NN a jugar ajedrez, Mario , o intentar enseñarlo a jugarStarcraft ...
Supongo que la razón es que simplemente no se escucha a menudo en los medios convencionales sobre casos en que las personas resuelven problemas que ya se resolvieron.
Además, su premisa es incorrecta, el aprendizaje profundo se utiliza para jugar al ajedrez, por ejemplo, como se describe en Deep Learning Machine Teaches Self Chess en 72 horas, juega a nivel internacional de maestría . Vea también el documento correspondiente, Jirafa: Uso del aprendizaje de refuerzo profundo para jugar al ajedrez .
fuente