¿Cómo creó OpenAI el bot del juego Dota 2 que supera a los profesionales?

No soy un experto en el tema pero tengo algunos antecedentes.
En Inteligencia Artificial hay algo llamado ‘Aprendizaje de refuerzo’, que es una técnica para reforzar (recompensar) las cosas correctas que hace el programa de computadora durante la simulación y evitar el mal. En términos generales, el programa de computadora está escrito de una manera que le da las reglas básicas (cómo avanzar, por ejemplo) y el objetivo final (ganar juegos o acumular puntos, por ejemplo). Cuando el programa se ejecuta por primera vez, utiliza estas reglas para hacer algo al azar solo para obtener comentarios del entorno. cuando el programa pierde, prueba diferentes parámetros aleatorios. cuando pierde de nuevo, compara los viejos con los nuevos para extraer solo las acciones correctas y evitar las acciones incorrectas. Sigue haciendo esto hasta que obtenga la máxima recompensa posible en el juego. La ventaja de esta técnica es que cuanto más fuerte es el oponente, más fuerte se vuelve el programa de computadora. Básicamente, el programa extraerá todas las cosas que hizo bien en todos sus juegos antes y descartará todo lo incorrecto. Para entender más, mire este video que muestra cómo un robot araña aprende a caminar después de que le rompen la pierna:

Si quieres saber más sobre el tema, aprende sobre algoritmos de evolución. El algoritmo de evolución más popular es el algoritmo genético que se utiliza para el aprendizaje de bots de juegos y muchas otras cosas. Además, creo que el bot OpenAI se basa en este algoritmo, pero no estoy seguro.

Ok, lo primero es lo primero: esto es increíblemente inexacto.

OpenAI entrenó a una red neuronal para jugar 1v1 con un héroe contra el mismo héroe en Dota 2 en el carril central. Este héroe también es estratégicamente increíblemente simple y se basa completamente en cosas en las que la máquina tiene una ventaja inherente.

La única parte impresionante de esto habría sido el aprendizaje no supervisado, pero de acuerdo con lo que se ha revelado hasta ahora, ese no es el caso.

Los desarrolladores parecen haber utilizado el aprendizaje supervisado para fomentar ciertos comportamientos, como la agricultura, la cancelación de animación y el bloqueo de la onda lenta.

Por mucho que admire a Elon Musk, todo este proyecto parece un gran concierto de marketing para decir “¡mira! ¡google no es mucho mejor que nosotros! ”, especialmente con la forma en que Elon tuiteó sobre cómo Dota2 es mucho más complejo que Go.

Dota 2 5v5 es mucho más complejo que Go, seguro. Pero matar a tu oponente de carril dos veces no lo es.

Especialmente si el héroe en uso es uno que no tiene ningún elemento estratégico para su kit y se beneficia inmensamente de las ventajas inherentes que tiene un bot: acceso directo al juego, permitiendo cálculos perfectos en lugar de conjeturas, y tiempos de respuesta perfectos.

Cuando leí el titular, también me emocioné. Pero cuando consideras que es solo un Shadow Fiend 1v1 con una duración máxima de diez minutos …

Demonios, en realidad podría ser capaz de cocinar algo así en unos meses con poca experiencia previa, si tuviera acceso a la potencia de procesamiento.

Todo esto es como decir “¡Hemos enseñado a nuestro robot a jugar al fútbol!”, Mientras que lo que realmente hiciste fue construir un robot, ayudado por 60 cámaras en el campo y un “pie” artificial con fuerza sobrehumana, así como una forma para controla perfectamente el balón, para marcar goles desde 11 metros.

Bueno, no es una mierda que un profesional no pueda interceptar la pelota de manera confiable cuando el robot la acelera a una velocidad supersónica Y tiene 60 cámaras apuntadas al profesional para medir el mejor ángulo posible.

Eso no significa que el robot entienda el juego o haya superado a los profesionales en habilidad en todo el juego.

Ahora, sobre las redes neuronales.

Aquí simplificaré el asunto drásticamente, pero básicamente, programaron un “cerebro” en miniatura, un grupo de neuronas conectadas, que cambian según las recompensas.

Básicamente es cómo funciona nuestro cerebro. Cuando intentas aprender algo, fallas un montón de veces, y obtienes este apuro cuando lo haces un poco mejor. En realidad, esto le dice a su cerebro que fortalezca las vías utilizadas para el enfoque exitoso, por lo que la próxima vez que lo haga es más probable que tenga éxito.

La red neuronal se entrena básicamente probando cosas aleatorias y recompensando los buenos intentos, por lo que se repiten.

Lo que habría sido algo impresionante es que OpenAI solo haya retroalimentado su sistema en función de una victoria o una pérdida.

  • Esto significaría que el bot descubrió cada pequeña cosa que hace por sí mismo. Descubrió que bloquear la onda de creep es una buena idea, descubrió que la agricultura es una buena idea, que ciertos artículos son poderosos, etc.

Lo que parece haber sucedido realmente es que OpenAI utilizó un montón de diferentes funciones de recompensa para alentar estrategias exitosas conocidas, básicamente diciéndole al sistema exactamente cómo jugar sin escribirlo en su código fuente.

Lo que generalmente esperarías al hacer algo como esto completamente sin recompensas específicas es algún tipo de nuevas estrategias intuitivas contrarias.

Diablos, alpha go inicialmente fue entrenado en juegos reales antes de continuar con el aprendizaje de refuerzo, y aún evolucionó para hacer movimientos que los jugadores de nivel superior se están rascando la cabeza hasta el día de hoy.