Upgrade to Pro — share decks privately, control downloads, hide ads and more …

StarCraft Education: aprendiendo a programar ju...

StarCraft Education: aprendiendo a programar jugando con Inteligencia Artificial

En los últimos años se ha democratizado el uso de la "Inteligencia Artificial" mediante la utilización masiva de modelos construidos mediante la utilización de redes de neuronas. Pero existe algo más que redes de neuronas o es esto toda la Inteligencia Artificial que podemos utilizar o el resto de técnicas son demasiado complejas para poder utilizarlas en problemas desde un punto de vista empresarial y/o industrial.

En esta charla presentaremos una nueva plataforma para aprender a programas en Java o Python utilizando técnicas de Inteligencia Artificial en los videojuegos Starcraft I o II. Para ellos analizaremos que tipo de técnicas de Inteligencia Artificial podemos utilizar para resolver ciertos problemas y como podemos implementar estás técnicas utilizando las capacidades de un lenguaje de programación básico y/o utilizando librerías actuales que han sido creadas para el ámbito empresarial. El ecosistemas de algoritmos de Inteligencia Artificial tiene algo más que redes de neuronas. En esta charla presentaremos como utilizar un red de neuronas para crear comportamientos pero no las utilizaremos para absolutamente todo, por lo que la intentaremos combinar con otras técnicas que no necesitan procesos de aprendizaje tan complejos.Hay más Inteligencia Artificial entre la nada y las redes de neuronas y la mejor forma de conocerlas es jugando.

Acompáñanos en esta aventura para descubrir otras técnicas de Inteligencia Artificial aparte de las famosísimas redes de neuronas. Para ellos intentaremos presentar como implementar y/o utilizar algoritmos de Inteligencia Artificial para resolver diferentes problemas desde la perspectiva de un bot y como combinarlos entre sí con el fin de construir un sistema de toma de decisiones. Quién sabe, tal vez encuentres alguna similitud con tus problemas del ámbito empresarial y descubras una manera más de resolverlos.

Moisés Martínez

November 22, 2019
Tweet

More Decks by Moisés Martínez

Other Decks in Research

Transcript

  1. Quiénes somos 2 PhD in Computer Science and AI Big

    Data & AI Architect in Sngular Researcher on different universities T3chFest and GDG Cloud Madrid Organizer GDE en Machine Learning by Google @moisipm momartinm Moisés Martínez
  2. 3 Quiénes somos PhD in Computer Science and AI AI

    Engineer Sngular T3chFest cofounder Women Techmaker Scholar by Google Condecoración a la Orden del Mérito Civil Divulgación en conferencias, formación, empresas, instituciones etc. Nerea Luis @sailormerqury nerealuis
  3. ¿Qué es la Inteligencia Artificial? Artificial Intelligence: A Modern Approach

    Peter Norvig and Stuart Russell Artificial Intelligence (AI) is the process of designing and building intelligent agents that receive percepts from the environment and take actions that affect that environment. La inteligencia artificial (IA), es la inteligencia llevada a cabo por máquinas. Wikipedia
  4. ¿Qué es la Inteligencia Artificial? In computer science, Artificial Intelligence,

    sometimes called machine intelligence, is intelligence demonstrated by machines, in contrast to the natural intelligence displayed by humans. Wikipedia Inteligencia Autónoma Inteligencia Asistida Inteligencia Aumentada
  5. ¿Qué es la Inteligencia Artificial? Inteligencia Autónoma Inteligencia Asistida Inteligencia

    Aumentada Es el tipo de Inteligencia Artificial donde las máquinas son capaces de resolver tareas de tipo repetitivo y muy estandarizadas. Wikipedia Inteligencia Autónoma Inteligencia Asistida Inteligencia Aumentada In computer science, artificial intelligence (AI), sometimes called machine intelligence, is intelligence demonstrated by machines, in contrast to the natural intelligence displayed by humans.
  6. ¿Qué es la Inteligencia Artificial? Inteligencia Autónoma Inteligencia Asistida Inteligencia

    Aumentada Es el tipo de Inteligencia Artificial donde las máquinas son capaces de colaborar con los humanos con el fin de resolver problemas más complejos. Wikipedia Inteligencia Autónoma Inteligencia Asistida Inteligencia Aumentada In computer science, artificial intelligence (AI), sometimes called machine intelligence, is intelligence demonstrated by machines, in contrast to the natural intelligence displayed by humans.
  7. ¿Qué es la Inteligencia Artificial? Inteligencia Autónoma Inteligencia Asistida Inteligencia

    Aumentada Es el tipo de Inteligencia Artificial donde las máquinas son capaces de adaptarse a nuevos problemas e incluso resolverlos de forma autónoma creando nuevos racionamiento, técnicas, etc. Wikipedia Inteligencia Autónoma Inteligencia Asistida Inteligencia Aumentada In computer science, artificial intelligence (AI), sometimes called machine intelligence, is intelligence demonstrated by machines, in contrast to the natural intelligence displayed by humans.
  8. AlphaStar become in grandmaster on Starcraft II 2019 Turing Test

    Devised 1950 ELIZA 1964 AlphaGo defeat Go Champion Lee Sedol 2016 IBM DeepBlue defeat chess champion Garry Kasparov 1996 Shakey robot uses Heuristic Search for reasoning 1966 Dartmouth conference 1956 Multilayer perceptron 1968 AI nuclear winter Expert systems (LISP) 1980 Subsumption architectures 1987 DARPA 1957 IBM Watson 2011 TESLA autopilot 2013 RoboCup 1997 Roomba 2002 Amazon Alexa 2004 Cloud
  9. ¿Qué es Starcraft? Es un videojuego comercial de estrategia en

    tiempo real que consiste en gestionar las estructuras, tecnologías y unidades de una “raza” con el fin de eliminar a todos los oponentes.
  10. RestNet Feed Foward Transformer Entorno Economía Unidades Unit Embedding Deep

    LSTM Arguments head Function head Arguments Function Entradas Salidas Redes Core Heads Arquitectura de AlphaStar
  11. St(AI)craft Education Plataforma gratuita para aprender a programar (Java y

    Python) mediante la creación de jugadores para Starcraft: Brood War y Starcraft II basados en técnicas de Inteligencia Artificial.
  12. 27 St(AI)craft Agente compuesto por los siguientes elementos: • Toma

    de decisiones: ◦ Árboles de Comportamiento ◦ Redes de Neuronas • Mapas • Variables de control (listas)
  13. Redes de neuronas Programando redes de neuronas • Utilización de

    clases • Herencia • Búsqueda • Grafos • Redes de neuronas Conceptos de programación Estructuras de datos
  14. Redes Feed Forward Las redes de neuronas prealimentadas son redes

    donde la información se mueve en una única dirección. Información
  15. Redes Feed Forward Las redes de neuronas prealimentadas son redes

    donde la información se mueve en una única dirección. Información Back propagation
  16. Redes Feed Foward Las redes de neuronas prealimentadas son redes

    donde la información se mueve en una única dirección. Información Back propagation 1. Comparación de la salida esperada con la salida obtenida = Error 2. Error se propaga hacia atrás (retroalimentación) para recalcular los pesos de las conexiones 3. Descenso de gradiente (optimización): Derivada de la función de error con respeto a los pesos
  17. Toma de decisiones: Behavior trees Programando árboles de comportamiento •

    Utilización de clases • Herencia • Programación por eventos • Funciones matemáticas • Matrices • Árboles • Listas • Colas (FIFO) Conceptos de programación Estructuras de datos
  18. Siguen una estructura de árbol, nodos internos y hoja. •

    Nodos hoja: Condiciones o Acciones • Nodos internos: Dos tipos: ◦ Compuestos (Composites): Selectores y Secuencias ▪ Selector: Recorren los hijos y devuelven verdadero en cuanto uno de ellos lo haga ▪ Secuencia: Recorren los hijos y devuelven verdadero si todos lo hacen ◦ Decoradores: Repetición, filtros o condiciones extra Toma de decisiones: Behavior trees
  19. REPETIR Selector RECOLECTAR ENTRENAR Secuencia Comprobar Recursos Seleccionar edificio Entrenar

    unidad Secuencia Condición Trabajador libre Selector Asignar Gas Asignar Mineral Acción Acción Condición Acción Acción Seleccionar Trabajador Acción
  20. ◎ A nivel de regiones ◎ A nivel local Estructura

    de datos + Algoritmo A* Identificar regiones colindantes y puntos de contacto Exploración en dos niveles
  21. Exploración: Búsqueda Heurística Programando algoritmos de búsqueda heurística • Utilización

    de clases • Herencia • Recursividad • Funciones matemáticas • Grafos • Árboles • Listas • Colas (FIFO) Conceptos de programación Estructuras de datos
  22. • Definición de “Búsqueda” Conjuntos de algoritmos de Inteligencia Artificial

    para resolver problemas mediante la búsqueda en un espacio de estados mediante la aplicación de un conjunto de acciones. 49 Estado Inicial Estado Meta Estado 1 Estado n-1 ……. Búsqueda Heurística
  23. 50 Estado: Una representación específica del problema. Espacio de estados:

    Todos los posibles estados que definen el problema. Conjunto de acciones: • Acciones aplicables sobre estado actual • Generación sucesores del estado (Nuevos estados) Estado Inicial Definición general del problema Estado Meta Definición específica Solución: Secuencia de acciones entre el estado inicial y la meta Búsqueda Heurística
  24. 51 Estado Inicial Sucesor 1 Sucesor 2 Sucesor 3 Acción

    1 Acción 3 Acción 2 Definición en el espacio de estados (Árbol de Búsqueda) • Generar estado Meta • Consumir toda la memoria • Consumir todo el tiempo • Alcanzar una determinada profundidad. Condición de parada Búsqueda Heurística
  25. 52 Meta Ejemplo: 8 Puzzle Estado Inicial Sucesores 0 1

    2 3 4 5 Profundidad Búsqueda Heurística
  26. 53 Búsqueda en grafos o árboles n-arios que utiliza el

    orden en que los nodos han sido generados para buscar la meta. Es decir, no utilizan ningún tipo de información para guiar la búsqueda. • Generación: Proceso de creación de un nuevo estado mediante la aplicación de una acción. Es insertado en un lista enlazada o una cola. • Expansión: Proceso de generación de todos los sucesores del primer nodo de la lista enlazada o pila de almacenamiento. Profundidad Anchura Profundidad Iterativa Búsqueda Heurística
  27. 54 Proceso de Búsqueda mediante la utilización de grafos o

    árboles que utiliza información del problema (función heurística) para seleccionar el siguiente nodo a expandir. Función heurística: Función que permite estimar el coste (comúnmente es una estimación del número de acciones) desde un determinado estado hasta un estado meta (solución). h(e) es la función heurística. 7 6 8 3 1 2 4 5 h(e) = 3 Búsqueda Heurística
  28. Starcraft: Brood war Starcraft II Bwapi en Java pysc2 en

    Python Creando mi jugador para Starcraft
  29. St(AI)craft education Plataforma gratuita para aprender a programar (Java y

    Python) mediante la creación de jugadores para Starcraft: Brood War y Starcraft II basados en Inteligencia Artificial Módulo 1 Aprendiendo con mis unidades Diciembre Clases y objetos Módulo 2 Construyendo edificios Enero Matrices, listas y colas Módulo 3 Descubriendo el mundo Enero Árboles, pilas y búsqueda Módulo 4 Calculando mi influencia Febrero Matrices y búsqueda Módulo 5 Comportamientos sencillos Febrero Árboles de comportamiento Módulo 6 Reforzando neuronas Marzo Redes de neuronas
  30. AlphaStar - Redes Feed Foward Las redes de neuronas prealimentadas

    son redes donde la información se mueve en una única dirección. Información Back propagation 1. Comparación de la salida esperada con la salida obtenida = Error 2. Error se propaga hacia atrás mediante (retroalimentación) para recalcular los pesos de las conexiones 3. Descenso de gradiente (optimización): Serivada de la función de error con respeto a los pesos
  31. AlphaStar - Redes Feed Foward Las redes de neuronas prealimentadas

    son redes donde la información se mueve en una única dirección. Información Back propagation 1. Comparación de la salida esperada con la salida obtenida = Error 2. Error se propaga hacia atrás mediante (retroalimentación) para recalcular los pesos de las conexiones 3. Descenso de gradiente (optimización): Serivada de la función de error con respeto a los pesos