¿Cuál es la diferencia entre el algoritmo que venció a los humanos en el ajedrez y el algo que venció a los humanos en Go?

Supongo que el algoritmo de ajedrez al que te refieres es el Deep Blue de IBM.

Los enfoques son similares en algunos aspectos. La idea general es esta:

Ahora sabemos cómo se ve el tablero de juego. Sabemos cuáles son los posibles movimientos. Si tomamos cualquiera de esos movimientos, podemos encontrar los posibles movimientos que tiene nuestro oponente. En efecto, tenemos las herramientas para “simular” el resultado del juego. Podemos usar esto para encontrar el movimiento que nos da la mayor probabilidad de ganar.

Sin embargo, examinar CADA jugada no es computacionalmente posible en Go (y en las primeras jugadas del ajedrez tampoco lo es). Así que hay un truco para usar “funciones de valor”. Las funciones de valor nos dicen qué tan bueno es un estado dado. Le da una buena idea de si ganará o no desde esa posición.

Entonces simulas el juego unos pocos movimientos, luego usas esta función de valor para evaluar los estados simulados del juego que alcanzas.

Go complica aún más las cosas porque hay muchas más posiciones, por lo que DeepMind empleó una función de política y una función de valor. La función de política ayudó a AlphaGo a elegir solo unos pocos movimientos para evaluar que se consideraban buenos.

Como se explica en el artículo, esta función de política ayuda a controlar la amplitud de los movimientos explorados, mientras que la función de valor ayuda a controlar la profundidad de los movimientos explorados.

AlphaGo utiliza el aprendizaje profundo, por lo que aprende ambas funciones jugando juegos de Go y recibiendo señales positivas / negativas cuando gana o pierde, y potencialmente en varios puntos del juego.


Espero que ayude :).

El ajedrez es un juego de suma cero.

La forma de ganar es mediante “fuerza bruta”, un término que significa que ejecuta todos los movimientos posibles hasta que encuentre la combinación con las mayores posibilidades de ganar. Como resultado, es fácil para un algoritmo de ajedrez relativamente simple vencer a los mejores campeones de ajedrez del mundo. Se ha hecho por décadas.

Ir es otro asunto completamente diferente. Las tácticas y estrategias empleadas son de una naturaleza completamente diferente. Como resultado, es increíblemente difícil escribir un programa que pueda vencer consistentemente a un humano promedio y mucho menos a nuestros mejores jugadores.

Ni siquiera sabía que se había escrito uno exitoso hasta que me topé con tu pregunta.

Como nota al margen. Se dice que los chinos son fuertes jugadores de ajedrez porque usan una mentalidad de “ir” en su juego de ajedrez. No sé si esto es anecdótico o no, pero he comenzado a emplear los aspectos de asedio del territorio de ir y descubrir que ha mejorado drásticamente mi juego de ajedrez.

El programa de ajedrez Deep Blue de IBM se basa en reglas heurísticas que imitan el pensamiento de la lógica humana durante un juego de ajedrez (cuál es el movimiento más eficiente para permitir que mi caballo coopere de manera más efectiva con mis otras piezas para poder atacar más tarde ese peón).

El programa Go AlphaGo de DeepMind se basa en el reconocimiento de patrones y posiciones de Go que no imitan el pensamiento de la lógica humana en absoluto durante un juego de mesa de Go (este y estos patrones están realmente presentes, en tales posiciones que ocurren en los juegos desde los cuales el programa de aprendizaje profundo originalmente aprendió que un movimiento de seguimiento común era esto y esto, ahora basado en la evaluación del tablero del programa y los cálculos limitados, AlphaGo seleccionará el ‘mejor’ movimiento con la mayor probabilidad de ganar el juego).

El aprendizaje profundo AlphaGo combina de manera inteligente diferentes tipos de redes neuronales para la selección de movimientos y la evaluación de posición con Monte Carlo Tree Search (MCTS). En la base, utiliza redes neuronales convolucionales que usan una imagen de 19 × 19 de la posición del tablero con 48 planos de características como entrada (17328 entradas).

Al reconocer las posiciones y los patrones del tablero, ciertamente no imita el proceso lógico humano en absoluto, ya que AlphaGo casi no comprende los conceptos lógicos como rodear, sente, aji, influencia, dónde hacer territorio de manera más eficiente, etc. En cambio, ha aprendido a seleccionar movimientos ganadores de alta probabilidad ultrarrápidos y eficientes y luego ‘estima’ el resultado del juego desde una posición dada usando básicamente lanzamientos de MCTS. Puede encontrar más información sobre cómo AlphaGo ha sido entrenado y funciona bajo el capó en mi blog: Parte 2: AlphaGo bajo una lupa (El partido histórico del aprendizaje profundo AlphaGo vs. Lee Sedol) REVISADO

Para el ajedrez tiene un espacio de estado mucho más pequeño (alrededor de 20 movimientos posibles por media vuelta) y, por lo tanto, un factor de ramificación por movimiento, y tiene métricas de evaluación de posición fáciles de desarrollar (quién tiene más piezas; quién controla más del tablero; seguridad del rey; control de ciertas casillas; estructura de peón; distancia de peón a la promoción; libertad de movimiento para piezas, etc.).

Go tiene un espacio de estado extremadamente grande (200 movimientos posibles por media vuelta) y, por lo tanto, enormes factores de ramificación. Las métricas de evaluación son extremadamente difíciles de crear, excepto en circunstancias limitadas (evaluación de secuencias de movimiento forzado, juego de esquina).

La IA para ambos usa despliegues y busca para explorar los posibles movimientos futuros. Para el ajedrez, los algoritmos para evaluar la posición fueron desarrollados principalmente por aportes de expertos. Para ir, la evaluación se desarrolló entrenando un sistema para predecir movimientos de expertos basados ​​en posiciones de juegos de muestra (aprendizaje supervisado) y luego usándolo para predecir movimientos probables y hacer despliegues. Luego, la posición podría evaluarse según los lanzamientos. Esto se puede retroalimentar para actualizar el valor y la red de políticas para futuras evaluaciones.

More Interesting

¿Ha habido algún trabajo teórico que delinee qué clase de algoritmos pueden y no pueden mapearse para mapear / reducir?

¿Debo usar una matriz o un objeto para implementar una clase de cola de JavaScript?

¿Las ventajas del arreglo lineal desaparecen si el arreglo es demasiado corto? ¿Por qué veo 4-6 cajas de cajas?

Quiero aprender la estructura de datos y Java, ¿cuál debería aprender primero?

¿Qué debo hacer después de aprender Python? ¿Programación competitiva o aprender Djanjo o aprender algoritmos y estructura de datos en Python?

¿Hay alguna manera / hay algoritmos para dividir los caracteres chinos en radicales?

¿Crees que el rendimiento de Renaissance Capital puede estar vinculado a algoritmos que también se usan en el reconocimiento de voz?

¿Dónde se puede encontrar una foto y detalles biográficos de Burton Howard Bloom, inventor del filtro Bloom?

¿Son los algoritmos iguales para todos los lenguajes de programación?

Me resultó difícil entender los algoritmos de clasificación. ¡Cuando profundizo en los algoritmos, siento que mi mente se bloquea! ¿Qué debo hacer para sentirme cómodo con los algoritmos?

¿Cuál sería un algoritmo eficiente para ordenar millones de líneas de cadenas / enteros en un archivo?

Cómo diseñar un algoritmo de movimiento para un robot hexápodo

¿Cuál es la diferencia entre algoritmos y programación?

¿Cuál es la forma más eficiente de recoger pelotas de tenis en una cancha?

¿Cuándo la piratería se convirtió en algo malo? Pensé que hackear era una forma inteligente / ingeniosa de desarrollar un algoritmo para resolver un problema.