El perro alfa: El algoritmo de Montecarlo, ya lo entiendo! (exemplo de código adicional)

El autor:Un sueño pequeño., Creado: 2016-11-02 13:03:03, Actualizado: 2016-11-02 13:11:30

El perro alfa: El algoritmo de Montecarlo, ¡lo entiendo!

El 9 y 15 de marzo de este año, un gran acontecimiento en el mundo del Go tuvo lugar en Seúl, Corea del Sur, cuando se realizó una batalla de cinco rounds entre humanos y máquinas. El resultado de la competencia fue una derrota humana, donde el campeón del mundo de Go fue derrotado por 1 a 4 por el programa de inteligencia artificial AlphaGo de Google. Entonces, ¿qué es AlphaGo y dónde está la clave para ganar? Aquí vamos a aprender un algoritmo: el algoritmo de Monte Carlo.

  • AlphaGo y el algoritmo de Montecarlo

Según Xinhua, el programa AlphaGo es un juego de go-go entre humanos y máquinas desarrollado por el equipo DeepMind de Google Inc. y conocido por los aficionados a los ajedrez en China como el juego de mierda Alpha.

En un artículo anterior, hablamos de un algoritmo de red neuronal que Google está desarrollando para que las máquinas aprendan de forma autónoma, similar a AlphaGo.

El vicepresidente y secretario general de la Asociación de Automatización de China, Wang Feiyu, dijo que los programadores no necesitan ser expertos en el juego, solo necesitan conocer las reglas básicas del juego. Detrás de AlphaGo hay un grupo de destacados científicos informáticos, más bien expertos en el campo del aprendizaje automático. Los científicos usan algoritmos de redes neuronales para ingresar los registros de juegos de los expertos en ajedrez a la computadora y dejar que la computadora juegue contra sí misma, aprendiendo constantemente en el proceso.

Entonces, ¿dónde está la clave para que AlphaGo se vuelva un genio autodidacta?

¿Qué es el algoritmo de Monte Carlo?El algoritmo de Montecarlo es el más común: Si hay 1000 manzanas en la canasta, y cada vez que cierras los ojos buscas la más grande, puedes elegir sin límite de veces. Entonces, puedes cerrar los ojos y elegir al azar una, y luego elegir al azar una en comparación con la primera, y dejarla grande, y luego elegir al azar una, y compararla con la anterior, y dejarla grande. El ciclo se repite de esta manera, mientras más veces tomes, más probabilidades hay de elegir la manzana más grande, pero a menos que elijas una de todas las 1.000 manzanas, no puedes estar seguro de que la que finalmente escoges es la más grande.

En otras palabras, el algoritmo de Monte Carlo es que las más muestras, las mejores soluciones, pero no garantiza la mejor, porque si hay 10.000 manzanas, es probable que se encuentre más grande.

En la actualidad, la mayoría de los usuarios de Twitter están usando el algoritmo de Las Vegas para compararse con él: Se dice que si hay una cerradura, hay 1000 llaves para elegir, pero solo una es correcta. Por lo tanto, cada vez que se intenta abrir una llave al azar, se cambia una más.

Por lo tanto, el algoritmo de Las Vegas es la mejor solución posible, pero no puede encontrarse. Supongamos que de 1000 llaves, no se puede encontrar ninguna llave para abrir la cerradura, la verdadera clave es el número 1001, pero en la muestra no hay el número 1001, el algoritmo de Las Vegas no puede encontrar la llave para abrir la cerradura.

El algoritmo de Monte Carlo de AlphaGoLa dificultad del Go es especialmente grande para la inteligencia artificial, ya que hay tantas formas de jugar al Go que es difícil para los ordenadores distinguirlas. En primer lugar, hay muchas posibilidades de go-go; en cada paso del juego hay muchas posibilidades, y al comenzar el jugador tiene 19 x 19 = 361 opciones de piezas. En una ronda de 150 rondas de go-go, pueden aparecer hasta 10.170 situaciones. En segundo lugar, las reglas son muy sutiles y, en cierta medida, la elección de piezas se basa en la intuición acumulada por la experiencia. Además, en el juego de go-go, las computadoras tienen dificultades para distinguir los puntos fuertes y débiles del juego.

AlphaGo no es solo un algoritmo de Monte Carlo, sino que es una mejora del mismo.

AlphaGo completó el ajedrez con un algoritmo de búsqueda de árboles de Montecarlo y dos redes neuronales profundas. Antes de enfrentarse a Lichtenstein, Google primero entrenó la red neuronal de AlphaGo con casi 30 millones de pasos de humanos contra ratones, para que aprendiera a predecir cómo caen los jugadores humanos profesionales.

La tarea de los jugadores es cooperar y seleccionar los pasos más prometedores, abandonando los fallos obvios y controlando la cantidad de cálculo dentro de lo que las computadoras pueden hacer. Esto es esencialmente lo mismo que lo hacen los jugadores humanos.

El investigador del Instituto de Automatización de la Academia de Ciencias de China, Yi Jianqiang, dijo que el software de ajedrez tradicional, generalmente con búsquedas violentas, incluidas las computadoras de color azul profundo, construye un árbol de búsqueda para todos los resultados posibles (cada resultado es una fruta en el árbol) y realiza una búsqueda de recorrido según sea necesario. Este método también es factible en el ajedrez, el salto, etc., pero no lo es para el go, ya que el go tiene 19 líneas de recorrido y la probabilidad de caídas es tan alta que el ordenador no puede construir el árbol de frutos para realizar una búsqueda de recorrido.

Tanguchi explica además que una de las unidades más básicas de la red neuronal profunda es similar a las neuronas de nuestro cerebro humano, con muchas capas conectadas como si fuera una red neuronal del cerebro humano. Las dos redes neuronales de AlphaGo en el cerebro son las redes estratégicas y las redes de valoración, respectivamente.

La red de estrategias de la broma se utiliza principalmente para generar estrategias de caídas. En el proceso de ajedrez, no piensa en lo que debería suceder, sino en lo que sucedería con los jugadores humanos. Es decir, se basa en un estado actual del tablero de entrada, predice dónde sucederá el siguiente juego humano y propone varias estrategias viables que se ajustan mejor a la mentalidad humana.

Sin embargo, la red estratégica no sabe si su juego es bueno o malo, solo sabe si es el mismo que el humano, y entonces necesita evaluar la red para que funcione.

La red de valoraciones de la hierro evalúa la situación de todo el cuadro para cada posibilidad posible y luego da una hierro de ganancia. Estos valores se reflejan en el algoritmo de búsqueda de árboles de Montecarlo para derivar el camino con la mayor hierro de ganancia mediante la repetición del proceso anterior. El algoritmo de búsqueda de árboles de Montecarlo determina que la red estratégica solo continuará con la hierro de ganancia donde la hierro de ganancia es más alto, para que pueda abandonar ciertas rutas y no usar una sola vía para llegar a negro.

AlphaGo utiliza estas dos herramientas para analizar la situación y juzgar las ventajas y desventajas de cada estrategia posterior, de la misma manera que los jugadores humanos juzgan la situación actual y deducen las situaciones futuras.

Sin embargo, no hay duda de que el algoritmo de Monte Carlo es uno de los núcleos de AlphaGo.

Dos pequeños experimentos Por último, veamos dos pequeños experimentos con el algoritmo de Monte Carlo.

  • 1.计算圆周率pi。

Principio: primero se dibuja un cuadrado, se dibuja su círculo interior, luego se dibuja un punto aleatorio dentro del cuadrado, se establece que el punto cae aproximadamente en el círculo, entonces P = área del círculo / área del cuadrado. P es igual a Pi.RR) / ((2R * 2R) = Pi / 4, es decir, Pi = 4P

Los pasos: 1. Coloque el centro del círculo en el punto de origen y haga un círculo con R como el radio, entonces el área de un cuarto del círculo del primer cuadrado es PiRR / 4 2. Hacer el cuadrado exterior de este círculo 1/4, cuyas coordenadas son ((0,0) ((0,R) ((R,0) ((R,R), entonces el área del cuadrado es R¿Qué es esto? 3. Obtenga el punto ((X, Y) de forma que 0 <= X <= R y 0 <= Y <= R, es decir, el punto dentro del cuadrado. 4. Con la fórmula XSe trata de:YR determina si el punto está dentro de 1/4 de la circunferencia. 5. Si el número de todos los puntos (es decir, el número de veces que se ha experimentado) es N, y el número de puntos (es decir, los puntos que satisfacen el paso 4) que se encuentran dentro de un círculo de 1/4, es M,

P es igual a M/N. Pi es igual a 4 * N/M.imgImagen 1

El resultado de M_C ((10000) es 3.1424

  • 2.蒙特卡洛模拟求函数极值,可避免陷入局部极值

# Generar al azar un número en el intervalo [-2,2], buscar su correspondiente y, encontrar el más grande que se considera el valor máximo de la función en [-2,2]imgImagen 2

Después de 1000 simulaciones encontramos un valor extremo de 185.12292832389875 (muy preciso)

¡Ven aquí, muchachos, ya lo entienden! ¡El código se puede escribir a mano, es divertido! Transcrito desde el portal WeChat


Más.