Articulo de referencia

KataGo

KataGo es un programa informático de Go gratuito y de código abierto , capaz de derrotar a jugadores humanos de alto nivel. Lanzado por primera vez el 27 de febrero de 2019, fue...

KataGo es un programa informático de Go gratuito y de código abierto , capaz de derrotar a jugadores humanos de alto nivel. Lanzado por primera vez el 27 de febrero de 2019, fue desarrollado por David Wu, [ 1 ] quien también desarrolló el programa de juego Arimaa bot_Sharp, que derrotó a tres de los mejores jugadores humanos para ganar el Arimaa AI Challenge en 2015. [ 2 ]

La primera versión de KataGo fue entrenada por David Wu utilizando recursos proporcionados por su empleador, Jane Street Capital , [ 3 ] pero ahora se entrena mediante un esfuerzo distribuido. [ 4 ] Miembros de la comunidad de Go informático proporcionan recursos informáticos ejecutando el cliente, que genera partidas de autoaprendizaje y partidas de clasificación, y las envía a un servidor. Las partidas de autoaprendizaje se utilizan para entrenar redes más recientes y las partidas de clasificación para evaluar la fuerza relativa de las redes.

KataGo admite el Protocolo de Texto de Go , con varias extensiones, [ 5 ] lo que lo hace compatible con interfaces gráficas de usuario populares como Lizzie . Como alternativa, también implementa un protocolo de "motor de análisis" personalizado, que es utilizado por la interfaz gráfica de usuario KaTrain , [ 6 ] entre otras. KataGo es ampliamente utilizado por jugadores humanos de Go de alto nivel, incluido el equipo nacional de Corea del Sur, con fines de entrenamiento. [ 7 ] [ 8 ] KataGo también se utiliza como motor de análisis predeterminado en el sitio web de Go en línea AI Sensei , [ 9 ] así como en OGS (el Servidor de Go en Línea ). [ 10 ]

Tecnología

Basado en técnicas utilizadas por AlphaGo Zero de DeepMind , KataGo implementa la búsqueda en árbol de Monte Carlo con una red neuronal convolucional que proporciona evaluación de posición y guía de política. En comparación con AlphaGo, KataGo introduce muchas mejoras que le permiten aprender más rápido y jugar con mayor fuerza. [ 1 ] [ 11 ] Las características notables de KataGo que no están presentes en muchos otros programas de juego de Go incluyen la estimación de puntuación; soporte para tableros pequeños, rectangulares y grandes; valores arbitrarios de komi y hándicaps ; y la capacidad de usar varios conjuntos de reglas de Go y ajustar su juego y evaluación para las pequeñas diferencias entre ellos.

Red

La red utilizada en KataGo son ResNets con preactivación .

Si bien AlphaGo Zero solo utiliza el historial del tablero como características de entrada (ya que fue diseñado como una arquitectura general para juegos de mesa, convirtiéndose posteriormente en AlphaZero ), la entrada a la red contiene características adicionales diseñadas manualmente específicamente para jugar al Go. Estas características incluyen libertades, paridad komi, pase en vivo y escaleras.

El tronco es esencialmente el mismo que en AlphaGo Zero, pero con capas de agrupación global añadidas para permitir que la red se condicione al contexto global, como las peleas de KO . Esto es similar a la Red de Compresión y Excitación . [ 1 ]

La red tiene dos cabezas: una cabeza de política y una cabeza de valor. Las cabezas de política y de valor son prácticamente iguales a las de AlphaGo Zero, pero ambas cabezas tienen subcabezas auxiliares para proporcionar una señal de pérdida auxiliar para un entrenamiento más rápido:

  • Encabezado de política: predice la política para el movimiento del jugador actual en este turno y el movimiento del jugador oponente en el siguiente turno. Cada política es una matriz logit de tamaño19×19+1{\displaystyle 19\times 19+1}, que representa el logit de hacer un movimiento en uno de los puntos, más el logit de pasar .
  • Valor principal: predice el resultado del juego, la diferencia de puntuación esperada, la posesión esperada del tablero, etc.

La red se describe en detalle en el Apéndice A del informe. [ 1 ]

El código base pasó de usar TensorFlow a PyTorch en la versión 1.12.

Capacitación

Deja que su tronco tengab{\displaystyle b}bloques residuales ydo{\displaystyle c}canales. Durante su primera ejecución de entrenamiento, se entrenaron múltiples redes con canales crecientes.(b,do){\displaystyle (b,c)}Se necesitaron 19 días utilizando un máximo de 28 GPU Nvidia V100 con 4,2 millones de juegos.

Después de la primera ronda de capacitación, la capacitación se convirtió en un proyecto distribuido dirigido por voluntarios, con redes cada vez más grandes. A partir de agosto de 2024 , ha alcanzado b28c512 (28 bloques, 512 canales).

Ataques adversarios

En 2022, KataGo fue utilizado como objetivo para una investigación de ataques adversarios , diseñada para demostrar los "modos de fallo sorprendentes" de los sistemas de IA. Los investigadores lograron engañar a KataGo para que terminara el juego prematuramente. [ 12 ] [ 13 ]

El entrenamiento adversario mejora la defensa contra ataques adversarios, aunque no de forma perfecta. [ 14 ] [ 15 ]

Referencias

  1. 1 2 3 4 David Wu (27 de febrero de 2019). "Acelerando el aprendizaje por autoaprendizaje en Go". arXiv : 1902.10565 [ cs.LG ].
  2. Wu, David J. (2015-01-01). "Diseño de un programa Arimaa ganador" . ICGA Journal . 38 (1): 19– 40. doi : 10.3233/ICG-2015-38104 . ISSN 1389-6911 . 
  3. David Wu (28 de febrero de 2019). "Acelerando el aprendizaje por autoaprendizaje en Go" (entrada de blog) . Consultado el 2 de noviembre de 2022 .
  4. "Entrenamiento distribuido de KataGo" . Consultado el 2 de noviembre de 2022 .
  5. "Extensiones de KataGo GTP" . GitHub . Consultado el 3 de enero de 2023 .
  6. «KaTrain» . GitHub (repositorio de Github) . Consultado el 3 de enero de 2023 .
  7. 金雷 (1 de marzo de 2021). "AI当道 中国围棋优势缩小了吗?" [ Con el dominio de la IA, ¿se está reduciendo la superioridad de China en Go? ] . Noticias de la tarde de Xinmin . Consultado el 5 de diciembre de 2021 .
  8. Hong-ryeol Lee (14 de abril de 2020) .'AI 기사' 격전장에 괴물 '블랙홀'이 등장했다" [ Un 'agujero negro' monstruo apareció en el campo de batalla de los 'jugadores de AI Go' ] . The Chosun Ilbo . Consultado el 8 de diciembre de 2021 .
  9. ^ "Preguntas frecuentes sobre AI Sensai" . Consultado el 2 de noviembre de 2022 .
  10. Anoek (desarrollador de OGS) (31 de marzo de 2022). "Considerando eliminar a Leela Zero de nuestros revisores de IA compatibles" . Recuperado el 2 de noviembre de 2022 .
  11. David Wu (15 de noviembre de 2020). "Otros métodos implementados en KataGo" . GitHub . Consultado el 4 de noviembre de 2022 .
  12. Benj Edwards (7 de noviembre de 2022). "Un nuevo truco para jugar al Go derrota a una IA de clase mundial, pero pierde contra aficionados humanos" . Consultado el 8 de noviembre de 2022 .
  13. Wang, Tony Tong; Gleave, Adam; Tseng, Tom; Pelrine, Kellin; Belrose, Nora; Miller, Joseph; Dennis, Michael D.; Duan, Yawen; Pogrebniak, Viktor; Levine, Sergey ; Russell, Stuart (2023-07-03). "Las políticas adversarias vencen a las IA de Go superhumanas" . Actas de la 40.ª Conferencia Internacional sobre Aprendizaje Automático . PMLR: 35655–35739 . arXiv : 2211.00241 .
  14. Hutson, Matthew (2024-07-08). "¿Puede la IA ser sobrehumana? Los fallos en el mejor bot de juegos generan dudas" . Nature . doi : 10.1038/d41586-024-02218-7 . PMID 38977931 . 
  15. Tseng, Tom; McLean, Euan; Pelrine, Kellin; Wang, Tony T.; Gleave, Adam (18 de junio de 2024). "¿Pueden las IA de Go ser robustas frente a ataques adversarios?". arXiv : 2406.12843 [ cs.LG ].