Muy recientemente, salió la noticia de que el equipo de investigación DeepMind de Alphabet ha ampliado su motor de aprendizaje automático para jugar tanto al Shogi como al ajedrez. Aparentemente, después de solo unas pocas horas de autoaprendizaje, es decir, solo jugando contra sí mismo dadas las reglas de los juegos, su rendimiento en el ajedrez ya ha superado el de los principales motores actuales como Stockfish 8. Personalmente, todavía no sé cómo se configuraron exactamente las coincidencias, ya que bajo qué condiciones se estableció Stockfish, ya que si los tiempos de cálculo son limitados, los motores pueden funcionar muy mal. En cualquier caso, este es un logro muy impresionante, porque incluso si resulta que uno podría haber configurado Stockfish de manera más óptima, con pocas horas adicionales de entrenamiento, AlphaZero superaría nuevamente el nivel de juego, lo que significa que AlphaZero es fundamentalmente más fuerte que cualquier corriente. motor de ajedrez estándar basado en funciones de evaluación heurística.
Ahora, a la luz de esta noticia, sería genial si alguien pudiera explicar las principales diferencias en el funcionamiento de un motor de ajedrez aprendido por la máquina en comparación con los motores estándar que todos estamos acostumbrados a usar. Más concretamente:
- ¿No es la función de evaluación que utiliza AlphaZero, entrenada por métodos de aprendizaje automático, al final otra función de evaluación heurística? En caso afirmativo, sería justo decir que la diferencia fundamental entre las funciones de evaluación de los dos motores es el hecho de que Stockfish tiene una función de evaluación optimizada ajustada a mano por los humanos, lo que significa que la definición de la función para optimizar es fija, mientras que para AlphaZero, ¿la función de evaluación de objetivos se redefine constantemente a través de capacitación adicional (por ejemplo, a través del auto-juego)? Hacer de este último un enfoque mucho más dinámico.
En última instancia, vagamente hablando, un motor como Stockfish, aplica su función de evaluación al árbol de posibles movimientos, decidiendo qué ramas mantener y cuáles dejar caer, luego a través de un concreto más profundoEl análisis de cada rama, nuevamente a través de su función de evaluación, determina qué rama produjo el valor más alto, y eso se convierte en la variación principal (por supuesto, hay muchas técnicas avanzadas en torno a este proceso para podar eficientemente este gran árbol). Es decir, para cada posición, esta rutina extremadamente concreta debe repetirse para que Stockfish tome una decisión. Por el contrario, me imagino que AlphaZero hace algo muy diferente, es decir, no se basa en un análisis concreto del árbol de posibles movimientos en una posición determinada, sino que su función de evaluación esencialmente asigna un valor a esa posición (que intuitivamente es similar a poner la posición actual en analogía con todas las otras posiciones para las que ha sido entrenado), sin tener que realizar tareas concretasanálisis de la manera en que lo hace Stockfish, o incluso un jugador humano. ¿Es esta una imagen sonora del funcionamiento de AlphaZero o motores de aprendizaje automático con capacitación similar?
Sabemos que el espacio de las posiciones de ajedrez es lo suficientemente grande como para que cualquier intento de muestrear todas las posiciones en él sea, en principio, completamente en vano (complejidad EXPTIME), lo que sugeriría que ninguna cantidad de entrenamiento a través del auto-juego sería suficiente para ha explorado todas las posiciones, entonces, ¿cómo puede ser bueno el resultado final a pesar de haber explorado potencialmente una pequeña fracción de las posiciones del espacio a través del auto-juego? ¿Cuál es la idea clave aquí en juego?
Supongo que AlphaZero tiene una forma muy óptima de comparar cualquier posición dada, incluso si es nueva, con una previamente visitada en su conjunto de entrenamiento, cuanto más cercana sea la comparación, más válida será la evaluación que se pueda sacar de la comparación. Por ejemplo, cuando jugó el movimiento Bg5 en el juego 5 , debe haber explorado una estructura similar durante su entrenamiento, es decir, es capaz de reconocer que esta posición es esencialmente equivalente a una (posiblemente completamente) diferente estudiada en su entrenamiento, en analogía de cómo se logra el reconocimiento facial a través del aprendizaje automático, y como resultado concluye que Bg5 debería ser el mejor movimiento, como lo fue en esa (o esas) otras posiciones similares. ¿Es esto una suposición correcta? No tengo idea de cómo esta comparación está hecho, ya que seguramente no es posible almacenar todas las posiciones entrenadas y analizarlas cada vez.
Esto es simplemente un intento de obtener información sobre el funcionamiento de AlphaZero y cómo se llega a una decisión dada una posición.