¿Por qué AlphaGo es tan poderoso?
¿Por qué AlphaGo es tan poderoso?
El sistema AlphaGo consta principalmente de varias partes:
La red de políticas, dada la situación actual, predice/muestra el próximo movimiento .
Despliegue rápido, el objetivo es el mismo que 1, pero con el sacrificio apropiado de la calidad del movimiento, la velocidad es 1000 veces más rápida que 1.
Value Network, dada la situación actual, se estima si ganan las blancas o las negras.
Monte Carlo Tree Search (MCTS) conecta las tres partes anteriores para formar un sistema completo.
Nuestros DarkForest y AlphaGo también son sistemas creados con 4. En comparación con AlphaGo, DarkForest fortalece 1 y omite 2 y 3 durante el entrenamiento, y luego reemplaza parcialmente la función de 2 con la política predeterminada del software de código abierto Pachi. Cada parte se presenta a continuación.
1. Red de movimiento de ajedrez
La red de movimiento de ajedrez toma la situación actual como entrada y predice/muestra el siguiente movimiento. Sus predicciones no solo dan el movimiento más fuerte, sino que también dan una puntuación a todos los siguientes movimientos posibles en el tablero. Hay 361 puntos en el tablero de ajedrez y da 361 números. Los buenos movimientos tienen puntuaciones más altas que los malos.
DarkForest es innovador en esta parte al predecir tres movimientos en lugar de uno durante el entrenamiento, mejora la calidad del resultado de la política y la red de ajedrez (RL) que obtuvieron después de usar el aprendizaje por refuerzo para jugar de forma autónoma. play.net) es bastante efectivo. Por supuesto, no utilizaron la red después del aprendizaje por refuerzo en el sistema final, sino que utilizaron la red (red SL) aprendida directamente a través del entrenamiento. La razón es que los movimientos generados por la red RL carecen de cambios, lo que es perjudicial para la búsqueda. .
Lo interesante es que, por razones de velocidad, AlphaGo solo usa una red con un ancho de 192 y no usa la mejor red con un ancho de 384 (consulte la Figura 2 (a)). entonces, si la GPU es más rápida (o más), AlphaGo definitivamente se volverá más fuerte.
El llamado paso de 0,1 segundos consiste simplemente en utilizar este tipo de red para realizar movimientos legales con la mayor confianza. Este enfoque no busca en absoluto, pero tiene una visión general sólida y no caerá en batallas locales. No es un error decir que modela una "sensación de ajedrez". Pusimos la red de ajedrez de DarkForest directamente en KGS y alcanzó un nivel 3D, lo que sorprendió a todos.
Se puede decir que esta ola de avances en Go AI se debe principalmente a los avances en la red de ajedrez. Esto era inimaginable en el pasado, el método de generación de movimientos se basaba en reglas, o en formas locales y un entrenamiento de clasificador lineal simple. Se necesitaron años para ajustar lentamente los parámetros antes de que se pudiera lograr progreso.
Por supuesto, hay muchos problemas con la red que solo usa ajedrez. Como hemos visto en DarkForest, habrá peleas innecesarias por robos sin importar el tamaño, pérdidas innecesarias de prioridad, sin importar la vida local y. muerte y errores al matar, etc. espera. Es un poco como el movimiento de ajedrez aleatorio de un maestro sin pensarlo detenidamente. Debido a que la red de juego de ajedrez no tiene función de juicio de valor y solo juega ajedrez basándose en la "intuición", solo después de agregar la búsqueda la computadora puede tener la capacidad de emitir juicios de valor.
2. Movimientos rápidos
¿Por qué todavía necesitamos hacer movimientos rápidos cuando tenemos una red de ajedrez? Hay dos razones: primero, la velocidad de ejecución de la red de ajedrez es relativamente lenta, dijo AlphaGo, es de 3 milisegundos, que es aproximadamente lo mismo aquí, mientras que los movimientos rápidos pueden alcanzar el nivel de varios microsegundos, que es 1000 veces diferente. Por lo tanto, cuando la red de ajedrez no regresa, es muy importante mantener la CPU inactiva y buscar primero. Después de que la red devuelva un mejor movimiento, se actualizará la información del movimiento correspondiente.
En segundo lugar, se pueden utilizar movimientos rápidos para evaluar el tablero. Debido al número astronómico de posiciones posibles, la búsqueda en Go es desesperada. Cuando la búsqueda alcanza un cierto nivel, es necesario evaluar las posiciones existentes.
Cuando no existe una red de valoración, a diferencia del ajedrez, que puede realizar una valoración más precisa del tablero calculando las puntuaciones de las piezas de ajedrez, la estimación del tablero de Go debe realizarse simulando movimientos, comenzando desde el tablero actual hasta el final. hasta el final, independientemente de Calcule la ganancia o la pérdida en paralelo y luego use el valor de ganancias y pérdidas como una estimación del valor actual del tablero.
Aquí hay una compensación: al mismo tiempo, la calidad de los movimientos simulados es alta, la precisión de la estimación única es alta, pero la velocidad de los movimientos es lenta; Los movimientos son rápidos o incluso se utilizan movimientos aleatorios. Aunque la precisión de una sola estimación es baja, se puede simular varias veces para calcular el promedio y el efecto puede no ser malo. Por lo tanto, si tienes una estrategia de alta calidad y de movimiento rápido, te será de gran ayuda para mejorar tus habilidades en el ajedrez.
Para lograr este objetivo, el modelo de red neuronal es demasiado lento y todavía necesitamos utilizar la coincidencia de patrones locales tradicional (coincidencia de patrones locales) más el método de regresión lineal (regresión logística). No es nuevo, es muy fácil de usar y casi todas las recomendaciones publicitarias, clasificaciones de ofertas y clasificación de noticias lo utilizan.
En comparación con las soluciones más tradicionales basadas en reglas, tiene la capacidad de ajustar automáticamente los parámetros utilizando el método de descenso de gradiente después de absorber muchos juegos expertos, por lo que el rendimiento mejorará más rápido y de manera más rentable. AlphaGo utilizó este método para lograr una velocidad de movimiento de 2 microsegundos y una precisión de movimiento del 24,2%. 24,2% significa que su mejor predicción coincide con el movimiento de un maestro Go con una probabilidad de 0,242. En comparación, la red Go puede alcanzar una precisión del 57% en 2 milisegundos en la GPU. Aquí vemos el equilibrio entre velocidad de movimiento y precisión.
A diferencia del entrenamiento de modelos de aprendizaje profundo, los movimientos rápidos utilizan la coincidencia de características locales, lo que naturalmente requiere algo de conocimiento del dominio Go para seleccionar características locales. En este sentido, AlphaGo solo proporciona la cantidad de funciones locales (consulte la Tabla ampliada 4), pero no explica los detalles específicos de las funciones. Recientemente experimenté con su método y logré una precisión del 25,1% y una velocidad de movimiento de 4-5 microsegundos. Sin embargo, la integración de todo el sistema no reprodujo su nivel.
Siento que el 24,2% no resume completamente su capacidad para moverse rápidamente, porque mientras den un paso clave equivocado, el juicio de la situación será completamente incorrecto y la Figura 2 (b) puede; Reflejan mejor su capacidad para moverse rápidamente Para que la precisión de la estimación de Zi de la situación del mercado alcance el nivel mostrado en la Figura 2(b), es necesario hacer más trabajo que simplemente igualar el 24,2%, y no enfatizaron este punto en. el artículo.
Después de que AlphaGo tiene movimientos rápidos, no necesita una red de ajedrez ni una red de valoración, sin la ayuda de ningún aprendizaje profundo ni GPU, y sin el uso de aprendizaje reforzado, ya ha alcanzado el 3D en un nivel de una sola máquina (consulte la penúltima fila de la Tabla ampliada 7), esto es bastante impresionante. Se necesitarían años para que cualquier programa Go alcance este nivel en una sola máquina utilizando métodos tradicionales. Antes de AlphaGo, Aja Huang escribió una vez un muy buen programa de Go y creo que ha acumulado mucho en este sentido.
3. Red de valoración
Se puede decir que la red de valoración de AlphaGo es la guinda del pastel. A juzgar por la figura 2 (b) y la tabla ampliada 7, AlphaGo no sería lo mismo. sin él, si se vuelve demasiado débil, todavía estará al menos en el nivel de 7d-8d. Sin la red de valoración, la puntuación se reducirá en 480 puntos, pero sin la red de movimiento de ajedrez, la puntuación se reducirá entre 800 y 1000 puntos. Lo que es particularmente interesante es que si solo se usa la red de valoración para evaluar la situación (2177), el efecto no es tan bueno como usar solo movimientos rápidos (2416). Solo la combinación de los dos puede lograr una mayor mejora.
Mi conjetura es que la red de valoración y los movimientos rápidos son complementarios a la estimación del tablero. Al comienzo del juego de ajedrez, cuando todos jueguen más armoniosamente, la red de valoración será más importante pero de forma compleja; situaciones En situaciones de vida o muerte o de duelo, se vuelve más importante estimar el tablero moviéndose rápidamente. Teniendo en cuenta que la red de valoración es la parte más difícil de entrenar de todo el sistema (requiere 30 millones de juegos autónomos), supongo que fue la última en crearse y la que tiene más probabilidades de mejorarse aún más.
En cuanto a la generación de datos de formación de la red de valoración, cabe destacar la letra pequeña del anexo del artículo.
A diferencia de la red de juego de ajedrez, solo se toma una muestra para cada juego de ajedrez para el entrenamiento para evitar un ajuste excesivo. De lo contrario, para el mismo juego, las entradas son ligeramente diferentes pero las salidas son las mismas, lo cual es muy perjudicial. capacitación. Por eso se necesitan 30 millones de juegos, no 30 millones de tableros. Para cada juego de autojuego, el muestreo es muy particular. Primero use la red SL para garantizar la diversidad de movimientos, luego mueva las piezas al azar, tome el tablero y luego use la red RL más precisa para obtener la estimación de resultado más precisa. . Por supuesto, no puedo decir cuánto mejor será esto que usar una sola red.
Una cosa que me sorprendió es que no hicieron ningún análisis local de vida o muerte/combate. Simplemente utilizaron métodos de entrenamiento violentos para entrenar una red de valoración bastante buena. Esto muestra hasta cierto punto que la red convolucional profunda (DCNN) tiene la capacidad de descomponer automáticamente el problema en subproblemas y resolverlos por separado.
Además, supongo que utilizaron reglas chinas para determinar el resultado final al tomar muestras de entrenamiento. Por lo tanto, cuando juegues contra Lee Sedol en marzo, también se requieren las reglas chinas. De lo contrario, si cambias a otras reglas, tendrás que volver a entrenar la red de valoración (aunque estimo que la diferencia en los resultados no será demasiado grande). En cuanto a por qué se utilizaron las reglas chinas desde el principio, supongo que la programación es muy conveniente (también sentí lo mismo al escribir DarkForest).
4. Búsqueda de árbol de Monte Carlo
Esta parte básicamente usa métodos tradicionales. No hay mucho que comentar. Usan UCT con a priori, es decir, considere primero que DCNN lo piense. es un mejor movimiento, luego espera hasta que cada movimiento haya sido explorado más veces y luego elige confiar más en el valor de la tasa de ganancia obtenido de la exploración. DarkForest seleccionó directamente los 3 o 5 mejores movimientos recomendados por DCNN para la búsqueda. Mis experimentos preliminares han mostrado resultados similares. Por supuesto, su método es más flexible cuando se permite una gran cantidad de búsquedas, su método puede encontrar algunos movimientos que DCNN considera que no son buenos pero que son cruciales para la situación.
Un punto interesante es que cada vez que se busca un nodo hoja, el nodo hoja no se expande inmediatamente, sino que se expande hasta que el número de visitas alcanza un cierto número (40), para evitar generar demasiadas visitas. Muchas ramas y dispersión. La atención de búsqueda también puede ahorrar valiosos recursos de la GPU. Al mismo tiempo, al expandirse, la evaluación del disco de los nodos hoja será más precisa. Además, también utilizaron algunos trucos para evitar que varios hilos buscaran cambios al mismo tiempo al comienzo de la búsqueda. También notamos esto en DarkForest e hicimos mejoras.
5. Resumen
En general, todo este artículo es un trabajo sistemático, más que una victoria que se puede lograr mediante avances en uno o dos pequeños puntos. Detrás del éxito está la acumulación de autores, especialmente los dos primeros autores, David Silver y Aja Huang, durante la etapa doctoral y más de cinco años después de graduarse. Esto no se puede lograr de la noche a la mañana. Se lo merecen por poder construir AlphaGo y disfrutar del honor que disfrutan ahora.
También se puede ver en el análisis anterior que, en comparación con los sistemas Go anteriores, AlphaGo depende menos del conocimiento del dominio Go, pero aún está lejos de alcanzar el nivel de un sistema universal. Los jugadores de ajedrez profesionales pueden comprender el estilo de su oponente y adoptar las estrategias correspondientes después de ver algunas partidas, y un jugador senior puede dominar rápidamente una nueva partida después de jugarla varias veces. Sin embargo, hasta ahora, los sistemas de inteligencia artificial aún tienen que alcanzar el nivel humano. Requiere entrenamiento con una gran cantidad de muestras. Se puede decir que sin la acumulación de muchos jugadores de ajedrez durante miles de años en Go, hoy no existiría Go AI.