Está en la página 1de 8

U7 Training

https://learn.unity.com/course/ml-agents-hummingbirds

Objetivos
 Ver el contenido de la unidad 7 de ML-Agents: Hummingbirds
 Realizar los ejercicios marcados
 Asignar Tareas/Productos

Motivación
Generar enemigos desafiantes es necesario para el desarrollo de videojuegos

Etapa Material
Traducción de ML-Agents: Hummingbirds

Resumen
El aprendizaje por reforzamiento (reinforcement learning) es una de las más fascinantes
Inteligencias Artificiales y el proyecto de Unity ML-Agents es uno de los más sencillos y divertidas
formas de comenzar. El instructor del curso Adam Kelly es un experimentado desarrollador en
Unity que ha creado diversos tutoriales y curso de ML-Agents para la empresa Immersive Limit
desde sus comienzos en 2018.

En este curso aprenderás como crear colibríes voladores inteligentes que pueden navegar hacia las
flores, sumergir sus picos y beber el néctar. Estos colibríes tienen 6 grados de libertad, es decir,
pueden volar (dirigirse x,y,z) y girar en cualquier dirección (x,y,z) para encontrar sus objetivos. Al
tener controles algo más complejos sus rutas de vuelo son difícilmente solucionadas con sistemas
de navegación tradicional. Aprenderás como crear un ambiente de entrenamiento, y entrenar
redes neuronales para desempeñar esta tarea, luego podrás competir contra los colibríes
entrenados en un simple juego.

No hay duda que el Aprendizaje por Reforzamiento es un tema complejo, pero los ML-Agents
separan las partes complicadas a los investigadores para que tu puedas centrarte en solucionar tu
problema. Para el final del curso, tendrás una buena comprensión en como poder crear agentes de
inteligencia artificial e integrarlos a tus propios juegos y simulaciones
Training (Entrenamiento)
Resumen
En este proyecto, configuraremos Anaconda para manejar Python y entrenar nuestros agentes.
Hablaremos de como configurar el entrenamiento, así de la forma en como monitorearlo. Una vez
que hallamos entrenado correctamente la red neuronal, la importaremos en nuestro proyecto.

H: Hierarchy, S: Scene, I: Inspector, P: Project, G: Game

1. Overview (Visión de conjunto) (5m)


En este tutorial aprenderemos acerca de una visión de conjunto para el entrenamiento de ML-
Agents
 Basado en la paquetería de Python mlagents
 Se usará Anaconda para administrar python

2. Anaconda Download and Install (Descarga e instalación de Anaconda) (5m)


En este tutorial aprenderemos a descargar e instalar Anaconda
 Desde la página de Anaconda descargar la edición individual disponible
o https://www.anaconda.com/products/individual
 Para instalar, dejar opciones por default (10 min)

3. Anaconda Environment Setup (Configuración del entorno de Anaconda) (5m)


https://www.youtube.com/watch?v=aHmkL0Wl9uU
En este tutorial aprenderemos como configurar Anaconda para el entrenamiento de ML-Agents
 Abrir Anaconda Prompt
 conda create -n ml-agents-1.0 python=3.7
o escogemos (y), para instalar paquetes
 Por último, nos da los comandos para activar y desactivar el ambiente (directorio o
carpeta de recursos):
o conda activate ml-agents-1.0
o conda deactivate
 Activamos con:
o conda activate ml-agents-1.0

 Descargar ML Agents 8 desde: https://github.com/Unity-Technologies/ml-agents/releases


o Asegurarse de instalar la versión 8, casi al final del Release 8 expandir Assets y
descargar Source code (zip)

o Descomprimir en una ubicación de disco que se utilizará más adelante, por


ejemplo: C:\Users\mvela\Documents\HummingbirdsConfig, al descomprimir
tendrá carpeta C:\Users\mvela\Documents\HummingbirdsConfig\ml-agents-
release_8

 Instalamos ML Agents compatible con el Release 8, esto lo podemos encontrar en la


carpeta descargada, para ello vamos a Unity
o Windows -> Package Manager
o Signo más -> Add package from disk

o Escoger:
"C:\Users\mvela\Documents\HummingbirdsConfig\ml-agents-release_8\com.unity.ml-agents\package.json"
o Esperar a que se añada en Unity, deberá listar ahora el paquete ML Agents
correspondiente (en este caso 1.5.0)
 A continuación, instalaremos ml agents en Anaconda
o pip3 install mlagents

4. Trainer Config YAML (Configuración del entrenador YAML) (10m)


En este tutorial aprenderemos del archivo Trainer Config YAML
 Es un archivo con parámetros necesarios para entrenar la red, más información en:
o https://github.com/Unity-Technologies/ml-agents
 Docs -> Training-Configuration-File.md
 Copiar el archivo trainer_config.yaml al directorio de trabajo con permisos de edición,
podemos usar el mismo de hace un momento C:\Users\mvela\Documents\
HummingbirdsConfig

5. Training Preparation (Preparación para el Entrenamiento) (10m)


En este tutorial aprenderemos como prepara la escena para el entrenamiento así como a utilizar
los comandos de Python para ML-Agents
 Asegurarse que la escena Training este abierta
 Vamos a duplicar FloatingIsland moviéndola 30m en Z
 Duplicamos el Par moviéndola 30 en X
 Duplicamos el Par moviéndola a 60 en X
 Duplicamos el Par moviéndola a 90 en X
 Teniendo ahora un total de 8 islas

 Si se ralentiza la pc probar con menos islas


 Guardar
 Regresamos a Anaconda
 Navegar al directorio del archivo yml con cd directorio
o Substituya directorio con la ruta al directorio del archivo yml por ejemplo
 cd C:\Users\mvela\Documents\HummingbirdsConfig
 En caso de estar en un disco diferente (D: ) será necesario teclear d:
después
 Probamos el comando mlagents learn por medio de
 mlagents-learn -h
 desplegando la ayuda
 En caso de ocurrir algún error instalar la librería faltante
o Para Pytorch:
conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch

6. Training (Entrenamiento) (5m)


En este tutorial aprenderemos correr el comando de entrenamiento
 mlagents-learn ./trainer_config.yaml --run-id hb_01
 Una vez que salga la leyenda Listening on Port, vamos a Unity y damos play
o Si sale una alerta de FireWall darle acceso
 Regresamos a Anaconda y pulsamos enter (cada que regresemos a anaconda pulsaremos
enter)
 Comenzará el entrenamiento, una vez superadas los 10000 pasos comenzará a dar
estadísticas de tiempo y valor promedio de la recompensa

 Igualmente en Unity puede verse como el Colibrí se mueve solo por la escena

7. Training Progress and Time Scale (Progreso del Entrenamiento y Escala de


Tiempo) (5m) (Puede Omitirse)
En este tutorial aprenderemos del progreso del entrenamiento en escena
 La recompensa puede ponerse negativa lo que quiere decir que los colibríes chocaron con
los límites
 Una vez comenzado el entrenamiento, Unity se mantiene en modo Play y es posible salir
de ello dando clic derecho en game -> Minimize

 Esto nos permite ir al modo de escena y observar a los colibríes, y empezaremos poco a
poco a ver flores azules
 En Project settings -> Time Scale podemos cambiar de 20 a 1, con lo cual lo pondremos a
velocidad normal para analizar mejor el comportamiento
o Una vez analizado es importante volver a ponerlo en 20
8. Tensorboard (Tensorboard) (10m) (Puede Omitirse)
En este tutorial aprenderemos de Tensorboard
 Abrimos otro prompt de Anaconda
 Activamos el Medio con: conda activate ml-agents-1.0
 Vamos al directorio de ml-agents-1.0
o cd C:\Users\mvela\Documents\HummingbirdsConfig
 tensorboard --logdir results --port 6006
 saldrá un mensaje con un localhost
o lo colocamos en un navegador (chrome) como: localhost:6006
 nos permite visualizar el comportamiento de los resultados

Puede ser necesario instalar tensorflow con: pip3 install tensorflow

9. Importing .nn File & Inference (Importando el archivo .nn & Inferencia) (10m)
En este tutorial aprenderemos a realizar inferencia con un agente ya entrenado
 Después de pasar las 5 000 000 de ciclos de entrenamiento, la recompensa promedio son
la mayor parte de las flores después de 2h 30 min de entrenamiento

 Si deseamos detenerlo antes podemos:


o presionar Ctr+C en anaconda
o Salir de modo play en Unity
 Debe aparecer la leyenda wrote ./model/Hummingbird.nn file que es el archivo que
contiene la red neuronal (neural network), puede haber un cambio de extensión a .onnx
 Localizamos el archivo y lo arrastramos a Assets
 Arrastramos el Asset Hummingbird.nn (en las nuevas versiones se llama onnx) al Prefab de
Colibrí en I: Behavior Parameters -> Model

10. Re-training (Re-entrenamiento) (5m)


En este tutorial aprenderemos acerca de continuar el entrenamiento
 Es posible crear otro entrenamiento
 Salvar las redes que funcionen bien

11. Training Wrap-up & Challenge (Resumen del Entrenamiento & Reto) (30m)
En este tutorial te retaremos acerca de como resultaría el entrenar con diferentes parámetros
 E
Autoevaluación
 ¿Cómo se añaden los códigos a la escena?

Productos
Etapa Verbal
 INDIVIDUAL
o Verifique que pueda responder las preguntas de autoevaluación, en caso de faltar
alguna investigue su solución, de no encontrarla pregunte a su profesor o
compañeros.

Etapa mental
 INDIVIDUAL Tarea: ML-Agents Parte 4
o Revise los videos de la plataforma de Unity
o Apóyese en la guía en español (clase escrita) de ser necesario para la realización
de los puntos aquí descritos
 Realice la configuración necesaria y ponga una captura de pantalla con la
recompensa media superior a 30 unidades, o bien, las curvas de
TensorBoard

También podría gustarte