logo

Dot CSV

Inteligencia Artificial, Tecnología, Ciencia y Futuro! Bienvenidos a la 4ª Revolución Industrial 🚀 Inteligencia Artificial, Tecnología, Ciencia y Futuro! Bienvenidos a la 4ª Revolución Industrial 🚀

Transcribed podcasts: 213
Time transcribed: 5d 22h 50m 3s

This graph shows how many times the word ______ has been mentioned throughout the history of the program.

Hola chicos y chicas, bienvenidos a DotCSV, a tu canal sobre inteligencia artificial favorito,
en el que hoy en un nuevo Data Coffee vamos a tratar un tema muy interesante. Si recuerdan
en el último vídeo de noticias, de todas las noticias que vimos, pues dejé que los patreons
del canal, aquellos que apoyan financieramente el contenido que yo hago, pues pudieran votar sobre
qué tema quería que tratara con más profundidad. Entre todos los temas, se eligió AlphaStar,
que para el que no lo sepas es esta inteligencia artificial diseñada por la empresa DeepMind,
que te permite pues ganar, dominar el juego del StarCraft 2 con un nivel sobrehumano,
ganando a un profesional, bueno, ganando a dos profesionales del StarCraft y la cual
pues realmente representa una hazaña dentro del campo de la inteligencia artificial. Un nuevo hito
conquistado en esto de ir ganando a videojuegos y que yo creo que tiene mucho mucho contenido que
podemos decranar hoy, del cual podemos aprender cosas interesantes. Así que hoy vamos a ver con
un poco más de detalle de qué se trata esto de AlphaStar. Antes que nada quiero dejar una cosa
clara y es que como ha ocurrido en data coffees anteriores, pues de todo lo que vamos a hablar
hoy no está realmente basado en ningún artículo científico que haya sido publicado, todo lo que
vamos a estar comentando pues está basado en el post que emitieron ellos en su blog principal de
la página de DeepMind, en entrevistas que han ido haciendo en diferentes portales de internet como
Reddit o en diferentes declaraciones que he podido recopilar de diferentes fuentes. Todos estos
recursos los voy a dejar abajo en la caja de descripción por si los quieran ir consultando y
también durante toda la duración del vídeo pues iré marcando aquellos recursos que sean realmente
interesantes. Cuando haya una publicación oficial, cuando hay un nuevo artículo, si surgieran detalles
que no hemos comentado o que realmente no eran precisamente lo que hemos comentado aquí, pues
hará la correspondiente actualización y lo veréis aquí en el canal, por lo cual es importante
estar suscrito y con la campanita dada. Igualmente también hago una invitación a Oriol Viñals que
es el investigador español que está liderando este proyecto dentro de DeepMind a que si quiere
aportar más información o quiere venir al canal y ser entrevistado o contarnos más proyectos de los
que estén trabajando o simplemente discutir un poco sobre inteligencia artificial que tiene
las puertas de este canal abiertas, como no puede ser de otra manera. Dicho esto, un poco de contexto,
estamos hablando de Alphastar que es una inteligencia artificial que ha sido desarrollada
por la empresa DeepMind que como muchos sabrán pues en 2014 fue adquirida por Google. Esta
empresa ha sido bastante conocida por diferentes avances, diferentes desarrollos muy importantes
dentro del campo de la inteligencia artificial con bastante orientación sobre toda la parte
de aprendizaje reforzado como por ejemplo DQN que ya lo comentamos en el vídeo de Montezuma's
Revenge o AlphaGo, la inteligencia artificial que aprendió a ganar al juego del Go o Go que
lo digo mucho en los vídeos Go y mucha gente me dice Carlos no se dice Go, se dice Go. AlphaZero
que es la evolución que tuvo AlphaGo y donde dejaron atrás pues el uso de aprendizaje por
imitación de partidas humanas y fue también otro hito bastante interesante o por ejemplo AlphaFold,
esta inteligencia artificial que también comentamos en otro vídeo y que te permite resolver un
problema tan importante como es el de descubrir la estructura tridimensional de una proteína en
base solamente a la secuencia de aminoácidos dada como input, es decir una serie de proyectos muy
importantes que tanto por su valor real en la aplicación de la inteligencia artificial como
en el desarrollo de las herramientas de inteligencia artificial que hacen para solucionar ese problema
pues hace que esta empresa sea muy interesante y que sea muy seguida tanto por medios convencionales
como medios que estamos interesados en el mundo de la inteligencia artificial.
Si miramos mucho de los avances más sonados de esta empresa nos daremos cuenta que aquellos
que son más mediáticos se relacionan con inteligencias artificiales que consiguen dominar
un juego determinado, ya comentamos en el vídeo de Montezuma's Revenge de por qué hay una importancia
en esto de utilizar videojuegos a la hora de testear nuestros modelos de machine learning,
ya dijimos que bueno que un videojuego es un entorno ideal donde tú puedes realizar benchmarks
donde comprobar hasta qué nivel tus herramientas de machine learning están lo suficientemente
desarrolladas como para poder solucionar el problema que ese juego te plantea. Cuando un
juego es dominado por una inteligencia artificial o por una arquitectura terminada de machine
learning lo normal es buscar el siguiente juego dentro de este escalón de progreso que te suponga
un nuevo desafío y que te obligue a desarrollar más y mejores herramientas. Este es el caso
de lo que vamos a ver hoy que es el juego del StarCraft 2.
Si como yo eres de esas raras personas que nunca fue un ciber café a jugar a este tipo
de juegos te voy a hacer una introducción muy rápida.
El StarCraft 2 es un juego multijugador de estrategia en tiempo real donde el objetivo
principal de una partida es muy sencillo, destruir a tu oponente. Cada jugador se sitúa
en un extremo del mapa y empezará su partida con un número de trabajadores con los que
comenzará a recolectar recursos, en este juego minerales y gas. Estos recursos te servirán
para ir desarrollando y mejorando tu economía añadiendo cada vez más trabajadores, construcciones,
bases y tecnología. Todo esto con el único fin de liarte a palos contra el otro oponente
que también estará trabajando en desarrollar su economía para destruirte a ti. Esto hace
que a nivel competitivo cada decisión cuente tanto estratégicamente como en tiempo para
así arañar una ventaja competitiva que te permite ir por delante de tu oponente y que
llegado el momento de la batalla te permita ganar.
Por tanto una inteligencia artificial que sepa dominar al juego del StarCraft deberá de
saber dominar cuatro fases importantes que se desarrollan siempre dentro de una partida
de StarCraft. Estas son recolectar recursos, construir tu base, construir tus unidades
y vencer a tu enemigo. Y claro, esto es algo que para alcanzar un nivel de jugabilidad
profesional requiere que sepas tomar las decisiones correctas en el momento adecuado. Un balance
entre aquellas estrategias de microgestión y macrogestión que tiene que estar balanceado
y que te obliga a tomar decisiones dentro de un árbol de posibilidades muy amplio.
Pero claro, a lo mejor alguno de ustedes pensará, bueno Carlos, esto de explorar un árbol de
búsqueda muy complejo es algo que ya resolvimos cuando AlphaGo ganó al juego del Go. También
era un juego que decíamos que tenía tantas posibilidades como átomos en el universo.
¿Qué diferencia hay? La diferencia con los desafíos como el Go o el ajedrez radican
dos puntos principales. La primera es que en este tipo de juegos como el ajedrez o como
el Go, pues cada oponente se va turnando sus jugadas. Es decir, primero el oponente número
uno hace su movimiento, luego el siguiente oponente hace el suyo y así se va sucediendo
la partida. En este caso, en el StarCraft II no sucede así. Es decir, esto es un juego
en tiempo real donde ambos oponentes están realizando su estrategia y tomando decisiones
al mismo tiempo de manera simultánea. Esta sucesión de acciones que se va desencadenando
de forma frenética hace que el árbol de búsqueda que se vaya configurando durante
una partida del StarCraft sea muy superior al que se producía por ejemplo en una partida
de Go, que ya en su momento era bastante grande. La segunda diferencia es que durante una partida
del StarCraft II, ninguno de los dos oponentes tiene una visión completa de lo que está
pasando en el mapa. Es decir, cada uno está situado en un extremo diferente y ninguno
pues sabe realmente lo que está pasando en la otra zona del mapa. A menos que hayas
mandado una unidad a explorar lo que está ocurriendo en la base enemiga, tú no puedes
saber si está construyendo un tipo de tecnología, cuántas bases ha construido, qué tipo de
tecnología tiene. Es decir, está jugando con información imperfecta. Esto hace que
la partida sea mucho más complicada porque cada oponente tiene que plantear una estrategia
sin realmente saber qué está haciendo su enemigo. Algo que por ejemplo no sucede en
una partida de Go o no sucede en una partida de ajedrez, donde ambos oponentes pueden ver
completamente el tablero. ¿Te imaginas lo que sería jugar por ejemplo al ajedrez con
ciertas zonas del mapa sin poder ser visible, sin saber dónde se coloca una ficha? Sería
un problema interesante.
Con estos dos elementos sobre la mesa, con el hecho de que sea un juego en tiempo real
con un árbol de decisión grandísimo y que sea un juego de información imperfecta, creo
que ya tengo los argumentos suficientes como para que veas que el StarCraft 2 es un desafío
muy interesante a ser resuelto por una inteligencia artificial. Ahora vamos a ver cómo lo ha resuelto
AlphaStar.
Ya lo he mencionado antes, a día de hoy tenemos muy pocos detalles de cómo es el funcionamiento
de AlphaStar. De hecho, casi toda la información sobre su arquitectura la podemos encontrar
en un único párrafo publicado en el artículo del blog de la página de DeepMind, donde
básicamente dicen lo siguiente.
El comportamiento de AlphaStar está generado por una red neuronal profunda que recibe datos
de entrada de la interfaz del juego y predice la secuencia de instrucciones que constituye
una acción dentro del juego. Más concretamente, la arquitectura de la red neuronal aplica
un conjunto de transformers a las unidades, similar a la red neuronal relacional presentada
en este paper, y combinada con un núcleo LSTM y una policy head autoregresiva, combinada
con una pointer network que… vale, vale, vale, vale, aquí hay muchísima literatura
que analizar. Y bueno, realmente esto no deja de ser piezas de un puzzle que habría que
ver cómo están conectadas unas con otras para diseñar este sistema que sería AlphaStar.
En realidad habría que esperar hasta tener el paper final para poder entender cómo es
el funcionamiento de esta arquitectura, pero eso no quita que Papadot haya hecho los deberes
y haya encontrado por internet un poco de información extra.
Más específicamente me refiero a una charla realizada por Demis Hasavis, CEO de la empresa
DeepMind, titulada The Power of Self Learning Systems y realizada en el Meet. En esta charla
él se centra en explicar los diferentes hitos y sistemas que ha desarrollado la empresa
como AlphaGo, AlphaGo Zero, AlphaZero, AlphaFault, AlphaStar… wow, esta empresa tiene un problema
con todos los naming de los productos. Pero realmente es una charla bastante recomendable
de ver, dejo el link aquí abajo en la cajita de descripción para que vayan a verlo según
acabe este video, y que realmente te presenta bastante información sobre los diferentes
sistemas y donde he podido encontrar el siguiente diagrama, que nos explica un poco cómo están
conectadas todas las piezas que mencionábamos antes. Así que vamos a analizarlo y vamos
a intentar intuir cómo es el funcionamiento de AlphaStar.
Como vemos, inicialmente este sistema toma tres fuentes de información diferentes de
la partida. Estas serían información espacial, es decir, el mapa. Las siguientes serían
variables sobre tu economía, como por ejemplo cuánta cantidad de recursos tienes de minerales
o cuánta cantidad de recursos tienes de gases, y también un listado de información sobre
aquellas unidades que has ido construyendo. Es decir, tengo tantas unidades de este tipo,
tengo tantas unidades de este otro tipo. Si nos fijamos, para hacer este análisis,
esta percepción del mapa, ellos están utilizando una red neuronal residual, una resnet. Una
red neuronal residual, una resnet, es básicamente un tipo de red neuronal convolucional con
sus típicas capas de convolución, no linealidad, max pooling y que poco a poco va a ir comprimiendo
la información que va percibiendo, pero que además añade una serie de conexiones que
permiten saltar ciertas capas dentro de la arquitectura. Estas conexiones, estas skip
connections que se llaman, lo que permiten es que la red pueda añadir, pueda pilar un
mayor número de capas. Creo que este es un tema interesante como para tratarlo en un
vídeo aparte, así que de momento para hoy solamente quiero que entiendas que este tipo
de redes, las resnet, pues nos sirven para hacer un análisis perceptual del contenido
del minimapa. Posterior a esto, tenemos el siguiente módulo, que es básicamente una
red neuronal normal, que se va a encargar de tomar todas las variables que le entran y
básicamente generar información más compleja, hacer un análisis de estas variables para
encontrar una definición más abstracta de la economía de la gente que está jugando.
Y finalmente contamos con el procesamiento de las unidades, que como ya hemos dicho antes,
conectan a todas aquellas construcciones, unidades de batallas que el jugador va colocando
dentro del mapa. Estas están siendo analizadas por un módulo de transformers. Esto para
el que sea habitual en el canal ya lo habrá escuchado antes, y es que son este tipo de
arquitecturas que últimamente se están demostrando muy útiles a la hora de resolver varios problemas
de Machine Learning, sobre todo en el campo del Natural Language Processing. Y creo que
realmente va a ser interesante estar atento a este tipo de arquitecturas en los próximos
meses, porque parece que están despuntando en muchos otros campos también. Por ejemplo,
tal y como lo plantea Oriol Viñals en Reddit, indica como respuesta a otro comentario de
otro usuario que no le sorprende para nada el rendimiento dado por los transformers,
ya que los transformers es, en su opinión, un paso más allá de lo que serían las redes
neuronales convolucionales o las redes neuronales recurrentes, y que están mostrando un rendimiento
por encima del estado del arte en muchos otros problemas. Así que sí, creo que esta va
a ser otra arquitectura que va a ser muy interesante comentar en otro vídeo.
Hazmelo saber en los comentarios si te interesa. En este caso, la utilización de transformers,
lo que busca es utilizar este mecanismo de autotensión que caracteriza este tipo de
sistemas en el listado de unidades que le estamos suministrando como entrada. El fin
de esto es implementar una cosa denominada Relational Learning, aprendizaje relacional,
que lo que busca es que el sistema pueda aprender a encontrar cuáles son aquellas entidades
de importancia para resolver el problema que queremos resolver, que en este caso es ganar
el StarCraft, y también cuáles son las relaciones interesantes que existen entre estas entidades.
Esto es algo importante, así que vamos a pararnos un poco para verlo con más detalle.
Cuando permites que un modelo pueda aprender a estructurar un problema en base a las entidades
y las relaciones que relacionan a estas entidades, lo que estás permitiendo es que este pueda
aprender de una manera más generalizable, ya que al encontrar estas piezas naturales
que realmente representan el problema que está intentando resolver, puede utilizarla
de manera combinatoria, componiéndola, para así poco a poco ir desarrollando su conocimiento.
Esto se explica muy bien en el paper donde detallan todo esto y donde presentan un caso,
un juego que ellos han diseñado llamado BoxWorld, que es básicamente una rejilla de 12x12 pixeles
donde un agente, que solamente viene representado por un pixel, tiene que ir moviéndose buscando
diferentes llaves que servirán para abrir una determinada cerradura.
Estas cerraduras desbloquean una serie de cajas que contienen llaves que le permitirá
abrir otras cajas y así en un proceso que al final acabará cuando la gente encuentra
una gema, que en este caso viene representado por un pixel blanco.
Este juego puede parecer sencillo a priori, pero realmente está diseñado para que, si
el agente se equivoque en alguna de las decisiones que tome, como por ejemplo coger una llave
y utilizarla en la cerradura incorrecta, ya a partir de ese momento no pueda alcanzar
la gema, es decir, no pueda llegar un resultado satisfactorio.
Por tanto, para resolver este tipo de problema es muy importante que la gente pueda aprender
cuál es la naturaleza intrínseca de los elementos con los que está trabajando.
En este caso se demostró que implementando con los transformers este mecanismo de relational
learning, el agente podía aprender entidades tan importantes como por ejemplo que era una
llave o que era una cerradura, y más interesante aún cuál era la relación que relacionaba
estas dos entidades, que en este caso sería el de desbloquear una cerradura.
Claro, cuando tú permites que la gente pueda aprender estos conceptos básicos del juego
que está intentando resolver, pues hace mucho más sencillo que pueda encontrar y que pueda
empezar a optimizar ese proceso combinatorio de esta llave de aquí, abre esta cerradura
de acá y no está de acá, etc.
Es decir, el mecanismo de atención suministrado por el transformer había permitido que la
gente en este juego pues pudiera aprender estas relaciones, de hecho se podía comprobar
que cuando la gente cogía una llave de un determinado color, la atención en ese momento
hacia los diferentes elementos del escenario pues se activaba para aquellas entidades,
para aquellas cerraduras que estuvieran relacionadas con esa llave.
Algo que nos plantea que efectivamente el agente se ha entendido la naturaleza del juego
que quiere resolver.
¿Ves qué fácil ha sido de repente pasar al deep learning pero basado en relaciones
y entidades?
Si quieres saber más te dejo el paper abajo también en la descripción.
Volviendo al Starcraft 2, todo lo que acabo de explicar se resume en este módulo de aquí,
el transformer, que básicamente lo que está haciendo es coger las unidades del juego y
haciendo este proceso de relational learning para ver cuáles son aquellas entidades y
las relaciones importantes a aprender para poder tener una representación más rica y
más abstracta de lo que sería la dinámica del juego.
Con esto ya tenemos tres fuentes de información que el sistema estaría utilizando para hacerse
una representación interna de lo que sería el estado de la partida en ese momento.
Toda esta información va a confluir hacia lo que sería el núcleo del sistema y que
en este caso viene implementado con una red tipo LSTM, que para el que no lo conozca representa
las palabras Long Short Term Memory.
Y el sentido de utilizar esta arquitectura es obvio, porque al final lo que te permite
una red LSTM es poder codificar y memorizar aquella información de la partida que sea
relevante a lo largo del tiempo.
Es decir, si por ejemplo la gente quiere tomar una decisión en el punto actual, pues tendría
sentido que se esté basando en información que haya codificado en pasos anteriores.
Al final lo que te permite una LSTM es poder codificar y memorizar estas dependencias entre
toda la información del juego incluso en el largo plazo, algo que para una partida de
StarCraft tiene bastante sentido.
En este caso la red LSTM utilizada cuenta con tres niveles diferentes, con 384 neuronas
cada una.
Y como digo, esta red estaría encargada de en parte memorizar toda la dinámica que está
realizándose en la partida.
Sin embargo es curioso porque no toda la información queda memorizada en esa red.
Y es que por ejemplo cuando nosotros le suministramos información sobre las unidades del juego,
le estamos dando incluso información de aquellas unidades que hemos construido previamente.
Información que obviamente no está siendo memorizada por la LSTM y que por tanto estará
almacenada en un fichero aparte o en un estado aparte mantenido fuera de lo que sería el
sistema neural de AlphaStar.
Una vez toda esta información es procesada por la red LSTM, toca decidir qué acción
va a tomar el agente, y en este caso de esto se encargan las cabezas del sistema.
Hemos mencionado antes que esta toma de decisión, estas cabezas son autorregresivas, lo que
viene a significar que la acción que están tomando está condicionada, estadísticamente
condicionada, por las acciones que se han tomado previamente.
Estas acciones que se tienen que decidir se dividen en dos componentes diferentes, uno
sería la función que se va a realizar, por ejemplo mover unidades, y otro sería una
serie de argumentos que te indicarían pues qué unidades vas a mover, cuántas, a qué
localización del mapa, etc.
Y con esto ya puedes tener una idea de cómo es todo el flujo de procesamiento desde el
input hasta el output que se produce dentro de AlphaStar desde el momento en el que se
percibe el estado del juego hasta que genera una acción.
Es cierto que es una visión bastante general y que incluso así es bastante compleja de
entender.
Lo mejor es que posiblemente me haya dejado fuera muchos elementos que sean importantes
dentro de este sistema, pero que yo creo que será más relevante verlos cuando ya conozcamos
los detalles finales cuando se publique el paper.
Sin embargo, si lo anterior te ha parecido muy complejo, creo que la siguiente visualización
te puede ayudar, y es que en el evento que retransmitieron durante enero donde comentaban
las diferentes partidas que se jugaron en diciembre, mostraron la siguiente visualización,
donde se puede ver un poco todo el proceso que acabamos de explicar.
Lo que estamos viendo en esta visualización representa una de las partidas jugadas por
AlphaStar, cuya partida se simula en la ventana izquierda superior y Mana, uno de los competidores
profesionales de StarCraft, a la derecha.
En la mitad de abajo nos encontramos con unas cuantas visualizaciones que simplifican el
proceso que hemos visto previamente.
Para comenzar, empezando por la izquierda tenemos la visualización del minimapa, donde se puede
ver la situación de todas aquellas unidades que AlphaStar puede ver localizadas en su
posición.
Es curioso porque si se fijan, hay una flecha que parpadea encima de este minimapa y que
representa cada vez que AlphaStar decide observar el mapa para actuar.
Fíjate como las unidades del minimapa no son actualizadas hasta que una nueva observación
ha sido realizada.
Es decir, lo que significa esto es que AlphaStar no está recibiendo un flujo continuado de
toda la información que ocurre en la partida, sino que realmente él tiene la capacidad
de decidir cuándo quiere absorber nueva información y tomar una nueva decisión.
Una vez que la gente observa el estado del juego, y recordemos que lo procesa con las
diferentes arquitecturas que vimos antes, envía esa representación al núcleo de la
arquitectura, que como ya hemos dicho está basado en una LSTM de tres niveles.
En este caso, estos tres niveles de LSTM vienen representados por esto de aquí, que realmente
no me dice mucho de lo que estoy viendo.
Desde que vi esta visualización por primera vez siempre me llamó mucho la atención esta
visualización porque quería entender realmente qué información me estaba aportando, y por
suerte para este vídeo he podido investigarlo.
Esta esfera de aquí multicolor ya la vimos en un video anterior del canal, cuando repasamos
uno de los logros de DeepMind en el juego de captura a la bandera.
¿Ves?
Aquí está.
¿Pero qué significa?
Bueno, esto de aquí es un Neural Response Map, es decir, un mapa de respuesta neural.
¿Y Carlos, esto qué es?
Bueno, si nos vamos a este paper de aquí, link en la descripción, vemos cómo se construye
y qué viene a representar.
Cada una de estas capas de LSTM contiene un conjunto de neuronas que se activan y desactivan
con diferentes valores numéricos.
Gráficamente podríamos representarlo como una serie temporal, pero que difícilmente
nosotros como humanos podríamos interpretar para comparar si dos conjuntos de activaciones
son similares o no.
La solución a esto ha sido coger una muestra de las activaciones de la neurona de la LSTM
a lo largo del tiempo con el cual te generas un dataset de señales, y a esto se le aplica
un algoritmo de reducción de la dimensionalidad como podría ser TCNE, y eso lo que va a hacer
es que pueda visualizar en por ejemplo dos dimensiones una distribución de las neuronas
donde estén próximas aquellas que se activen de manera similar en el tiempo.
Es en esta representación bidimensional, en forma de esfera, donde ellos utilizan cada
punto, cada activación de la neurona, como un vértice de un triángulo cuyo color será
el de la medida de las activaciones de su vértice, y de ahí surgen estos bonitos testículos
deshelados.
Pero Carlos, ¿y esto para qué sirve?, ¿qué información me aporta?
Bueno, realmente los diferentes patrones de activación que se van a producir dentro de
esta bola de activaciones te van a reflejar diferentes estados que se pueden dar dentro
de una partida.
Lo que ha hecho el algoritmo de reducción de dimensionalidad es colocar en zonas próximas
aquellas neuronas que normalmente se activan de manera correlacionada, y esto lo que va
a hacer es que, por ejemplo, podamos identificar estados del juego como podemos ver en este
listado para el caso de capturar la bandera.
Por ejemplo, aquí podemos ver como hay ciertos patrones que representan estados como mi compañero
está en la misma habitación que yo, el enemigo está en mi habitación, mi bandera está visible,
o la bandera del enemigo está visible.
Como digo, en realidad me parece una visualización bastante interesante, pero que para alguien
ajeno a lo que realmente significa le aporta muy poca información, además de que tendrías
que tener ese catálogo de diferentes patrones asociados a diferentes estados del juego para
poder entender lo que está pasando.
Siempre la ves codificada.
Llegas a acostumbrarte, yo ya ni veo el código, solo veo una rubia, una morena, una pelirroja.
Intuyo que todo esto está puesto en el vídeo porque al final lo que hace es que la visualización
mole más.
A partir de ahí, tras las tres esferas representando las activaciones de las redes LCTM, ya tenemos
el output donde se decide la acción que la gente ha decidido tomar, en este caso están
visualizando solo dos componentes de lo que creo debería ser un espacio de salida mayor.
Aquí solo se está mostrando parcialmente el vector de decisión que indica qué tipo
de unidad se va a elegir y el mapa de atención que ubica donde la gente está decidiendo
aplicar su acción, por ejemplo mover estas unidades a esta zona determinada del mapa.
Y esto es algo interesante y que posiblemente comentaremos en un futuro, porque realmente
AlphaStar si te fijas tiene la visión completa del mapa, cosa que no se ajusta exactamente
a lo que sería la forma de jugar de un humano que tiene que ir decidiendo dónde colocar
su cámara para tomar sus acciones.
Aquí como hemos visto, el agente puede decidir en el mapa de atención en qué zona quiere
aplicar su acción, es esto justo, es esto comparable, frente a esto la gente de DeepMind
ha explicado que aunque efectivamente el sistema tiene la capacidad de poder observar todo
el mapa completamente y de decidir dónde quiere poner su foco de atención con una
mayor libertad que un agente humano que debería ir moviendo la cámara, esto se está realizando
en un ratio similar a lo que lo haría un humano, es decir, si tú miras cuál es el
ratio en el que la gente cambia su foco de atención en este mapa de atención que tenemos
aquí, pues verás que el ratio será algo aproximado a unas 30 cambios de contexto
por minuto, algo que se asemeja a las cifras mostradas por Teleo y Mana, que son los dos
jugadores profesionales de StarCraft, es decir, que aunque el sistema tuviera esta libertad
a la hora de focalizar su atención, pues parece que está calibrado con un rendimiento
similar al de un humano.
Hemos visto más o menos cuál es la visión, los sentidos, el cerebro, la salida de todo
este sistema, hemos visto su arquitectura, pero ahora nos faltaría ver cómo aprende,
cómo pasamos de un sistema que es completamente idiota a un sistema que es capaz de vencer
a jugadores profesionales, como aprende, aprende desde cero, aprende por imitación, jugando
contra sí mismo, el sistema DeepMind lo ha definido como un sistema de autojuego con
esteroides.
Y es que en este caso el sistema de aprendizaje se divide en dos fases diferentes, una sería
una fase de aprendizaje supervisado y la otra sería una fase de aprendizaje reforzado.
En la fase de aprendizaje supervisado lo que se ha hecho es coger partidas administradas
por Blizzard, que son partidas de gente normal, de humanos, básicamente.
En esta fase lo que se consigue es que AlphaStar, gracias a la imitación de estrategias realizadas
por humanos, pues pueda inicializarse hasta un nivel equivalente a lo que sería un nivel
Gold dentro de la liga de StarCraft, es decir, que haya aprendido un poco a jugar.
En la segunda fase de aprendizaje reforzado lo que se implementa es un sistema de liga
multiagente, donde partimos de la gente que hemos entrenado de manera supervisada y lo
empezamos a clonar para empezar a competir unos contra otros.
Cada iteración de la liga lo que va a hacer es que se vayan sumando nuevos agentes que
aprendan a desarrollar estrategias que le permitan vencer a aquellos agentes de las
fases anteriores, y esto se repite de manera iterativa conservando en cada fase a todos
los agentes que se han desarrollado anteriormente.
Esto se hace para que en ningún momento un agente olvide cómo vencer a una estrategia
que había aprendido a vencer anteriormente.
Iterativamente y realizando este proceso de competición entre agentes, lo que se está
consiguiendo es que cada vez se vayan desarrollando estrategias mucho más avanzadas.
Además, en todo este proceso se hace uso de lo que ya vimos en el vídeo de Montezuma's
Revenge, que era la motivación intrínseca.
Si recuerdas, la motivación intrínseca la podemos utilizar para dar señales de recompensa
a la gente a ciertos comportamientos que nosotros queremos favorecer en este sistema.
En este caso, la utilización de la motivación intrínseca se ha utilizado para establecer
una serie de objetivos que hagan que cada agente se especialice en una forma de juego
diferente.
Estos objetivos pueden ser por ejemplo del tipo, pues construye x unidades de este tipo
y luego vence la partida.
Con esto lo que se consigue es que tu liga de agentes no solo se especialice en ganar
de una manera determinada, sino que se desarrollen estrategias múltiples y variadas que también
te permitan alcanzar esta victoria en el juego.
Lo interesante es que al final de esta liga, tras múltiples iteraciones en el futuro,
lo que se hace es coger aquellos cinco agentes cuya estrategia combinada pues permita ganar
a toda la liga, pero que independientemente pues tengan estrategias variadas, que sean
diferentes formas de juego.
Con lo cual es interesante porque realmente no estaríamos hablando de una única versión
de AlphaStar, sino de cinco versiones diferentes que establecen cinco estrategias, cinco formas
de juego diferentes.
Y Carlos, en esta liga de todos contra todos, ¿cuánto tiempo de entrenamiento se le dedicó
a cada agente, cuánto tiempo estuvieron entrenándose?
Vale, pues agárrate bien a la silla porque vamos a ver cifras un poco impresionantes.
Y es que aunque esta liga de StarCraft solamente duró su entrenamiento real 14 días, y digo
solamente porque 14 días es bastante bestial, cada uno de los agentes entrenó con 16 tpus
cada uno.
Es decir, no ha trascendido el número de agentes que participó en esta liga pero podemos
pensar que fueron bastante y cada uno de estos agentes utilizó 16 tpus, que puede ser el
equivalente a unas 50 gpus cada uno.
Esto se traduce en que cada agente experimentó un gran desarrollo de juegos de StarCraft
donde el mayor número registrado fue que un agente jugó 200 años de partidas de StarCraft.
Guau.
Y claro, con todo este tinglado la empresa pues se vino arriba y dijo, bueno, ¿a quién
le damos felpa?
Y de ahí que en diciembre invitaran a Teleo, que es un jugador profesional de StarCraft,
para probar su sistema.
Hay un detalle que no he comentado antes y que creo que es bastante relevante.
Y es que dentro de StarCraft tú puedes elegir tres razas diferentes para desarrollar tu
partida.
Cada raza va a definir una forma diferente de juego y va por tanto a definir un árbol
de decisiones y de estrategias bastante diferentes.
En este caso Alphastar solo se ha especializado en jugar con un único tipo de raza, que es
la raza Protos.
Y solo se ha especializado en partidas de Protos vs Protos, es decir, que los dos jugadores
tienen que participar con esa raza.
Esto yo creo que es importante y ya lo comentaremos en un futuro, porque en este caso Teleo, el
jugador profesional, tuvo que jugar con la raza Protos que no era su raza principal con
la que él se ha especializado.
También hay que mencionar que la versión con la que jugó de Alphastar era una versión
que había sido entrenada durante solamente siete días, es decir, la mitad de este procesamiento
que hemos indicado antes.
Con todo esto, el resultado del torneo fue que de cinco partidas, Alphastar ganó 5 a
0.
Y claro, esto es una hazaña increíble, pero claro, la empresa se planteó, bueno, hemos
llamado un jugador profesional pero que ha tenido que jugar con una raza diferente a
la suya, quizás esto no es justo, vamos a buscar un jugador que realmente haya jugado
con la raza de Protos, la entrenada con Alphastar.
Y para eso llamaron a Mana, un jugador cuyo nivel es superior al de Teleo.
Claro, Mana tiene un rendimiento superior al de Teleo, pero lo que se hizo fue seguir
entrenando Alphastar durante otra semana más, y ahí alcanzaríamos los catorce días que
mencionamos antes.
Se realizó un torneo también en diciembre de cinco partidas, de las cuales Alphastar
volvió a ganar todas.
Si eres jugador de Starcraft o te interesa el tema de lo que estamos hablando hoy, que
se ha llegado a este punto de vídeo, te recomiendo que visualices el evento que se
realizó en enero, donde pues comentaron varios detalles del sistema y se comentaron algunas
de las partidas jugadas en diciembre con los protagonistas, tanto con Teleo y Mana.
Te dejo el link también abajo aquí en la descripción para que te lo veas, son dos
horas pero bastante amena te ver.
En este mismo evento de enero que acabo de comentar, además de comentar las partidas,
hicieron un último torneo, Alphastar contra Mana, y una versión de Alphastar que había
introducido un nuevo cambio. ¿Cuál fue el resultado?
Te lo digo ahora.
Pero antes te hago una pregunta, y es que en el vídeo de hoy te he presentado toda
la arquitectura, toda la forma de funcionar, cómo está entrenado, cuál es la intuición
detrás de las piezas que componen su arquitectura, qué información recibe, qué información
saca, cuál ha sido las competiciones que ha hecho con jugadores profesionales.
Mi pregunta es, ¿es este sistema justo?
¿Le ves algún fallo que pueda ser reseñable, alguna crítica?
¿Se puede decir que Alphastar ha ganado al Starcraft 2?
Todo esto lo voy a comentar en un siguiente vídeo, en la segunda parte sobre este data
coffee de Alphastar, porque es cierto que ha habido cierta controversia en algunos puntos
que yo creo que va a ser bastante interesante de comentar y de los cuales yo daré mi opinión
también.
Creo que podremos aprender cosas bastante interesantes también de eso, pero eso lo
dejaremos para un vídeo que saldrá muy prontito, va a salir esta semana, así que no se preocupen.
Por lo pronto solamente te digo que este contenido me ha costado bastante desarrollarlo, ha sido
elegido por los patreons del canal, así que si valoras que haga este tipo de vídeos,
pues puedes apoyarlo financieramente a través de Patreon, tienes también el link en la
descripción.
De momento les dejo que procesen un poco toda esta información que les he dado hoy y que
vayan pensando cuál puede ser ese punto débil que le han encontrado al sistema o ese punto
de crítica y si realmente está justificado.
Yo lo comentaré, lo veremos pronto en el vídeo que vendrá en el canal y también
comentaremos el por qué la victoria número 11 contra Mana la ganó...Mana.