PAC3 – Aprendizaje en Videojuegos
Presentación general
El propósito de esta actividad es hacer una puesta de contacto con los agentes de aprendizaje autónomo (ml-agents) de Unity. Esta actividad ha sido la más compleja con diferencia, y ya voy adelantando que los resultados no son los mejores, pero por limitaciones de tiempo y hardware no he podido dar más de mí con este proyecto. Aun así, estoy orgulloso de lo aprendido y espero que este documento lo refleje correctamente.
Puntualizar que, respecto a la ACT3, algunos de los otros agentes funcionan un poco peor debido al cambio de versión que he tenido que hacer para usar ml-agents (de 2022 a 2023).
Repositorio GitLab: https://gitlab.com/jongompal/artificial-intelligence-unity
Estructura del repositorio
- ACT2: proyecto Unity de la actividad 2.
- Artificial Intelligence: proyecto Unity con la actividad 3 y la PAC1 y 2.
- La carpeta assets incluye todo el contenido de las actividades anteriores. Para la actividad 3 se han añadido archivos en Scripts, scenes, prefabs y creado la carpeta ml-agents con todo lo relacionado con este tema (incluido los archivos .onnx que merece la pena utilizar)
- La escena “final” es la que se llama Main V3-ML
- Build: intento de build de servidor para entrenamiento en paralelo
- ml-agents: repositorio de Unity para ejecutar los entornos de entrenamiento, con todas las configuraciones (.yaml) y los resultados de los múltiples (muchísimos) intentos. Disponibles en las carpetas config y results respectivamente.
Actividades
- ACT 1: instalación de ML-Agents
- ACT 2: Roller Ball tutorial
- ACT 3: Mi propio ML-Agent
Conclusiones
Si tuviera que definir con una palabra esta actividad sería frustración. Y no es por culpa del temario, siquiera por mis resultados; es porque personalmente me apasiona la inteligencia artificial (la tecnología de las redes neuronales más correctamente) y de verdad deseaba hacer esta actividad por este ejercicio. Lo que verdaderamente me ha frustrado ha sido quemarme en el proceso y no estar satisfecho con los resultados.
Definitivamente, desarrollar modelos ya es de por sí una tarea compleja, pero hacerlo en un entorno interactivo como el de los videojuegos lo es aún más. Mis respetos a todos aquellos que lo dominan y se dedican a ello. Y perdón por la longitud que ha adquirido este documento, pero sentía que debía plasmar toda mi experiencia con este trabajo.