Creo que el OP era confuso sobre AlphaGo con alpha-beta. En alpha-beta, de hecho usaría la red de políticas para ayudar con la poda, pero no aquí. Nuevamente, no hay poda ya que el algoritmo se basa en la búsqueda de árbol de Monte-Carlo (MCTS).
Cualquiera que piense que mi respuesta es demasiado larga puede pasar a la sección de resumen, donde explico por qué las dos redes no son redundantes.
En el siguiente ejemplo, haré algunas simplificaciones para que mis ideas sean más fáciles de entender.
Ejemplo:
Imagine que tiene una posición donde hay dos movimientos legales. El primer movimiento es una pérdida perdida para usted, sin embargo, el segundo movimiento le da una ventaja ganadora.
- Primer movimiento: pérdida forzada para ti
- Segundo movimiento: forzado a ganar para ti
Red de evaluación
Asumamos que la red de evaluación que Google le brinda es perfecta. Puede evaluar perfectamente cualquier posición de la hoja en nuestro ejemplo. No cambiaremos nuestra red de valores en el ejemplo.
Para simplificar nuestro ejemplo, supongamos que nuestra red de valores da:
- -1000 para cualquier posición de la hoja que es una pérdida para usted
- +1000 por cualquier posición en la hoja, lo cual es una victoria para ti
Red de políticas
Supongamos que Google te ofrece dos redes de políticas. Las probabilidades generadas para nuestra posición son:
- Política 1: 0.9 para el movimiento 1 y 0.1 para el movimiento 2
- Política 2: 0.2 para el movimiento 1 y 0.8 para el movimiento 2.
Tenga en cuenta que nuestra primera red de políticas proporciona una probabilidad previa incorrecta para nuestro ejemplo. Da 0.9 para el movimiento 1, que es un movimiento perdedor. Esto está bien porque ni siquiera Google podría entrenar una red de políticas perfecta.
Jugando con la primera red política
AlphaGo necesita generar una simulación con Monte-Carlo, y debe elegir el movimiento 1 o 2. Ahora, AlphaGo dibuja una variable aleatoria distribuida uniformemente y seleccionará:
- Mueva 1 si el número aleatorio es <= 0.9
- Mueve 2 si el número aleatorio es> 0.9
Por lo tanto, es mucho más probable que AlphaGo elija el movimiento perdedor para simular (en nuestra primera simulación). En nuestra primera simulación, también usaremos la red de valores para obtener una puntuación para la simulación. En el periódico, es:
Este valor sería -1000, porque esta simulación conduciría a una pérdida.
Ahora, AlphaGo necesita generar la segunda simulación. Nuevamente, el primer movimiento sería mucho más probable que elija. Pero eventualmente, el segundo movimiento sería elegir porque:
- Nuestra probabilidad previa para el segundo movimiento es 0.1, no cero
- Se recomienda a AlphaGo que pruebe movimientos que no se han explorado mucho. En el documento, esto se hace mediante esta ecuación:
Tenga en cuenta que N
es el número de movimientos buscados para el movimiento y está en el denominador. Cuanto más probable sea que se busque nuestro primer movimiento, menor u
será la función. Por lo tanto, la probabilidad de seleccionar nuestro segundo movimiento mejora porque AlphaGo realmente elige un movimiento mediante esta ecuación:
Esta es la ecuación clave . Míralo cuidadosamente:
- Tiene un término
P
para la probabilidad previa (dada por la red de políticas)
- Tiene un término
Q
para los puntajes de evaluación (dados por la red de valores)
Ahora, sabemos que nuestro segundo movimiento finalmente será elegido. Cuando sucede, la red de valor da un +1000. Esto aumentará Q
, lo que hace que el segundo movimiento sea mucho más probable se elija en las simulaciones posteriores.
Dadas suficientes simulaciones, el número de veces que se elige el segundo movimiento para la simulación debe ser mayor que el número de veces que se elige el primer movimiento.
Finalmente, el movimiento que AlphaGo decide hacer es (citado del artículo):
Una vez que se completa la búsqueda, el algoritmo elige el movimiento más visitado desde la posición raíz.
Jugando con la segunda red política
Nuestra segunda red de políticas necesitará menos iteraciones para elegir el movimiento 2 porque su probabilidad previa dada por la red de políticas es correcta en primer lugar.
Observaciones
Todo aquí es muy similar a Bayesian
análisis. Comenzamos con alguna probabilidad previa (dada por la red de políticas), luego generamos datos para mover la perturbación de probabilidad (dada por la red de valores).
Resúmenes
- La red de políticas se utiliza para generar probabilidades previas para guiar qué movimiento debe elegir la búsqueda de Montecarlo
- La red de valor se utiliza para generar datos para validar la red de políticas. Si la red de políticas es mala, AlphaGo necesitaría más recursos informáticos para converger (si alguna vez).
- Puedes pensarlo como un análisis bayesiano