Saltar al contenido principal

Guia de articulos clave

Este articulo resume los articulos mas importantes en la historia del desarrollo de IA de Go, proporcionando resumenes y puntos tecnicos clave para una comprension rapida.

Los artículos hito en la historia de la IA de Go incluyen: el MCTS de Coulom (2006), AlphaGo (2016), AlphaGo Zero (2017), el generalizado AlphaZero (2017) y KataGo (2019) de David Wu, que aportó numerosas mejoras de eficiencia; para entender los fundamentos conviene leer primero AlphaGo, y como referencia de implementación el artículo de KataGo.


Vision general de articulos​

Linea temporal​

2006  Coulom - MCTS aplicado por primera vez a Go
2016 Silver et al. - AlphaGo (Nature)
2017 Silver et al. - AlphaGo Zero (Nature)
2017 Silver et al. - AlphaZero
2019 Wu - KataGo
2020+ Diversas mejoras y aplicaciones

Recomendaciones de lectura​

ObjetivoArticulo recomendado
Entender lo basicoAlphaGo (2016)
Entender el auto-juegoAlphaGo Zero (2017)
Entender el metodo generalAlphaZero (2017)
Referencia de implementacionKataGo (2019)

1. El nacimiento de MCTS (2006)​

Informacion del articulo​

Titulo: Efficient Selectivity and Backup Operators in Monte-Carlo Tree Search
Autor: Remi Coulom
Publicacion: Computers and Games 2006

Contribucion principal​

Primera aplicacion sistematica de metodos Monte Carlo a Go:

Antes: Simulacion puramente aleatoria, sin estructura de arbol
Despues: Construir arbol de busqueda + seleccion UCB + retropropagacion de estadisticas

Conceptos clave​

Formula UCB1​

Puntuacion de seleccion = Tasa de victoria promedio + C * sqrt(ln(N) / n)

Donde:
- N: Numero de visitas del nodo padre
- n: Numero de visitas del nodo hijo
- C: Constante de exploracion

Cuatro pasos de MCTS​

1. Selection: Seleccionar nodo usando UCB
2. Expansion: Expandir nuevo nodo
3. Simulation: Simular aleatoriamente hasta el final
4. Backpropagation: Retropropagar victoria/derrota

Impacto​

  • Llevo la IA de Go al nivel de dan amateur
  • Se convirtio en la base de todas las IAs de Go posteriores
  • El concepto UCB influyo en el desarrollo de PUCT

2. AlphaGo (2016)​

Informacion del articulo​

Titulo: Mastering the game of Go with deep neural networks and tree search
Autores: Silver, D., Huang, A., Maddison, C.J., et al.
Publicacion: Nature, 2016
DOI: 10.1038/nature16961

Contribucion principal​

Primera combinacion de deep learning y MCTS, derrotando al campeon mundial humano.

Arquitectura del sistema​

+---------------------------------------------+
| Arquitectura AlphaGo |
+---------------------------------------------+
| |
| Policy Network (SL) |
| +-- Entrada: Estado del tablero |
| | (48 planos de caracteristicas) |
| +-- Arquitectura: CNN de 13 capas |
| +-- Salida: Probabilidad de 361 posiciones|
| +-- Entrenamiento: 30 millones de |
| partidas humanas |
| |
| Policy Network (RL) |
| +-- Inicializado desde SL Policy |
| +-- Aprendizaje por refuerzo con |
| auto-juego |
| |
| Value Network |
| +-- Entrada: Estado del tablero |
| +-- Salida: Valor de tasa de victoria |
| unico |
| +-- Entrenamiento: Posiciones generadas |
| por auto-juego |
| |
| MCTS |
| +-- Usa Policy Network para guiar |
| busqueda |
| +-- Usa Value Network + Rollout para |
| evaluacion |
| |
+---------------------------------------------+

Puntos tecnicos​

1. Policy Network con aprendizaje supervisado​

# Caracteristicas de entrada (48 planos)
- Posicion de piedras propias
- Posicion de piedras del oponente
- Numero de libertades
- Estado despues de captura
- Posiciones de movimientos legales
- Posiciones de los ultimos movimientos
...

2. Mejora con aprendizaje por refuerzo​

SL Policy -> Auto-juego -> RL Policy

RL Policy tiene ~80% tasa de victoria contra SL Policy

3. Entrenamiento de Value Network​

Clave para prevenir sobreajuste:
- Tomar solo una posicion de cada partida
- Evitar posiciones similares repetidas

4. Integracion con MCTS​

Evaluacion de nodo hoja = 0.5 * Value Network + 0.5 * Rollout

Rollout usa Policy Network rapido (menor precision pero mas velocidad)

Datos clave​

ItemValor
Precision SL Policy57%
Tasa de victoria RL Policy vs SL Policy80%
GPUs de entrenamiento176
GPUs de partida48 TPU

3. AlphaGo Zero (2017)​

Informacion del articulo​

Titulo: Mastering the game of Go without human knowledge
Autores: Silver, D., Schrittwieser, J., Simonyan, K., et al.
Publicacion: Nature, 2017
DOI: 10.1038/nature24270

Contribucion principal​

Sin necesidad de partidas humanas, aprendizaje desde cero.

Diferencias con AlphaGo​

AspectoAlphaGoAlphaGo Zero
Partidas humanasNecesariasNo necesarias
Numero de redes41 de doble cabeza
Planos de entrada4817
RolloutUsadoNo usado
Red residualNoSi
Tiempo de entrenamientoMeses3 dias

Innovaciones clave​

1. Red unica de doble cabeza​

              Entrada (17 planos)
|
+----+----+
| Torre |
| residual|
| (19 o |
| 39 |
| capas) |
+----+----+
+-------+-------+
| |
Policy Value
(361) (1)

2. Caracteristicas de entrada simplificadas​

# Solo 17 planos de caracteristicas
features = [
current_player_stones, # Piedras propias
opponent_stones, # Piedras del oponente
history_1_player, # Estado historico 1
history_1_opponent,
... # Estados historicos 2-7
color_to_play # Turno
]

3. Evaluacion solo con Value Network​

Ya no usa Rollout
Evaluacion de nodo hoja = Salida de Value Network

Mas simple, mas rapido

4. Proceso de entrenamiento​

Inicializar red aleatoria
|
v
+-----------------------------+
| Auto-juego genera partidas | <--+
+-------------+---------------+ |
| |
v |
+-----------------------------+ |
| Entrenar red neuronal | |
| - Policy: Minimizar | |
| entropia cruzada | |
| - Value: Minimizar MSE | |
+-------------+---------------+ |
| |
v |
+-----------------------------+ |
| Evaluar nueva red | |
| Si es mejor, reemplazar |----+
+-----------------------------+

Curva de aprendizaje​

Tiempo de entrenamiento    Elo
-------------------------
3 horas Principiante
24 horas Supera a AlphaGo Lee
72 horas Supera a AlphaGo Master

4. AlphaZero (2017)​

Informacion del articulo​

Titulo: Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm
Autores: Silver, D., Hubert, T., Schrittwieser, J., et al.
Publicacion: arXiv:1712.01815 (posteriormente en Science, 2018)

Contribucion principal​

Generalizacion: El mismo algoritmo aplicado a Go, ajedrez y shogi.

Arquitectura general​

Codificacion de entrada (especifica del juego) -> Red residual (general) -> Salida de doble cabeza (general)

Adaptacion entre juegos​

JuegoPlanos de entradaEspacio de accionesTiempo de entrenamiento
Go1736240 dias
Ajedrez11946729 horas
Shogi3621125912 horas

Mejoras de MCTS​

Formula PUCT​

Puntuacion de seleccion = Q(s,a) + c(s) * P(s,a) * sqrt(N(s)) / (1 + N(s,a))

c(s) = log((1 + N(s) + c_base) / c_base) + c_init

Ruido de exploracion​

# Agregar ruido de Dirichlet en el nodo raiz
P(s,a) = (1 - epsilon) * p_a + epsilon * eta_a

eta ~ Dir(alpha)
alpha = 0.03 (Go), 0.3 (ajedrez), 0.15 (shogi)

5. KataGo (2019)​

Informacion del articulo​

Titulo: Accelerating Self-Play Learning in Go
Autor: David J. Wu
Publicacion: arXiv:1902.10565

Contribucion principal​

50x de mejora en eficiencia, permitiendo a desarrolladores individuales entrenar una potente IA de Go.

Innovaciones clave​

1. Objetivos de entrenamiento auxiliares​

Perdida total = Policy Loss + Value Loss +
Score Loss + Ownership Loss + ...

Los objetivos auxiliares hacen que la red converja mas rapido

2. Caracteristicas globales​

# Capa de pooling global
global_features = global_avg_pool(conv_features)
# Combinar con caracteristicas locales
combined = concat(conv_features, broadcast(global_features))

3. Aleatorizacion de Playout Cap​

Tradicional: Buscar N veces fijas
KataGo: N muestreado aleatoriamente de una distribucion

Hace que la red aprenda a funcionar bien en varias profundidades de busqueda

4. Tamano de tablero progresivo​

if training_step < 1000000:
board_size = random.choice([9, 13, 19])
else:
board_size = 19

Comparacion de eficiencia​

MetricaAlphaZeroKataGo
Dias-GPU para nivel superhumano5000100
Mejora de eficienciaBase50x

6. Articulos de extension​

MuZero (2020)​

Titulo: Mastering Atari, Go, Chess and Shogi by Planning with a Learned Model
Contribucion: Aprende el modelo de dinamica del entorno, no necesita reglas del juego

EfficientZero (2021)​

Titulo: Mastering Atari Games with Limited Data
Contribucion: Gran mejora en eficiencia de muestras

Gumbel AlphaZero (2022)​

Titulo: Policy Improvement by Planning with Gumbel
Contribucion: Metodo mejorado de mejora de politica

Recomendaciones de lectura de articulos​

Orden para principiantes​

1. AlphaGo (2016) - Entender arquitectura basica
2. AlphaGo Zero (2017) - Entender auto-juego
3. KataGo (2019) - Entender detalles de implementacion

Orden avanzado​

4. AlphaZero (2017) - Generalizacion
5. MuZero (2020) - Aprender modelo del mundo
6. Articulo original de MCTS - Entender fundamentos

Tecnicas de lectura​

  1. Ver primero resumen y conclusiones: Captar rapidamente la contribucion principal
  2. Ver las figuras: Entender la arquitectura general
  3. Ver seccion de metodos: Entender detalles tecnicos
  4. Ver apendices: Encontrar detalles de implementacion e hiperparametros

Enlaces de recursos​

PDFs de articulos​

ArticuloEnlace
AlphaGoNature
AlphaGo ZeroNature
AlphaZeroScience
KataGoarXiv

Implementaciones de codigo abierto​

ProyectoEnlace
KataGoGitHub
Leela ZeroGitHub
MiniGoGitHub

Lectura adicional​