Esta lección es importante porque…
A continuación vamos explicando las distintas secciones de esta lección…
El meollo de la IA Generativa son los Transformers, LLMs, Diffusion Models, y con esto puedes hacer diálogos, misiones, generar lore, generar assets.. de todo (por saber la tecnología que está debajo de todas estas nuevas herramientas que nos generan de todo como ChatGPT)
Las redes neuronales habrán salido antes (perceptrón multicapa, algoritmos de retropropagación), pero aquí claramente diré algo sobre Aprendizaje Profundo y todo lo moderno (redes convolucionales, redes recurrentes….) No creo que meta aquí algoritmos evolutivos, ni generación procedimental… si acaso algo de IA Gen (aunque de redes y de aprendizaje profundo ya habré ido contando cosas al final de cada tema), algo sobre escalabilidad, rendimiento y despliegue de cara al futuro… de cara a cómo van a trabajar ellos en la industria (ofertas de empleo curiosas que verán en King y demás).
Explicar que a nivel industrial el demonio está en los detalles: recolección de datos, preparación, entrenamiento, evaluación, despliegue (hablar de modelos que pueden correr en un móvil como Gwen y tal) y monitorización (drift)
Los modelos probabilísticos o estadísticos quizá son los que le dejaría a Guille en IAV… ¡pero no los quiso, el jodío!: Naive Bayes, modelos generativos, Bayesianos, probabilidades en ML.
No sé si contarlos en alguna parte…
Realmente estos modelos están en una zona gris entre medios, más cerca de los simbólicos que de los subsimbólicos:
HMM (Hidden Markov Models)
Bayesian Networks
Dynamic Bayesian Networks
Probabilistic Graphical Models
AQUÍ NO HARÍA PRÁCTICAS DE ESTAS:
Práctica A: Programarse el Perceptrón Multicapa (MLP) en Python usando descenso de gradiente y backpropagation.
Encaje: Ideal al principio de este tema. Es el salto lógico de la regresión logística del Tema 3 hacia la complejidad de una red neuronal. Programar el backpropagation (la regla de la cadena para las derivadas hacia atrás) es duro pero fundamental para entender cómo aprende cualquier red profunda.
Herramienta B: Pytorch / Keras.
Encaje: Justo después del MLP manual. Les muestras que el cálculo de gradientes que acaban de programar a mano lo hacen automáticamente estas librerías (autograd).
¿Cuál elegir? Si el perfil es más científico de datos enfocado a producción rápida, Keras es muy intuitivo. Si el perfil es más de ingeniería, desarrollo de software o investigación avanzada, PyTorch es el estándar de la industria actual y ofrece un control más transparente de los tensores.
Propuesta de Práctica Conjunta (Práctica 5 – Redes Neuronales):
Parte A: Programar el MLP básico para un problema clásico de juguete (como las compuertas lógicas XOR o dígitos MNIST simplificados).
Parte B: Utilizar PyTorch/Keras para cargar una arquitectura preentrenada o construir una red convolucional/recurrente simple para clasificar imágenes o texto.
Aplicaciones estrellas del Deep Learning: visión por computador, PLN / LLMs, generación de contenido tipo IA Gen…
Sistemas de recomendación en videojuegos (tiendas y demás) ¿Esto tiene sentido? Desde luego es un aplicación… y entender cómo funciona es bueno para saber posicionar (el famoso ASO, que para posicionarse de cara a la IA seguro que tiene otro nombre, el GEO creo que lo llaman)
Procedural AI o inclugo Gen AI (la diferencia con IAV debería ser en que aquí nos basamos en muchos datos para generar… yo llamaría PROCEDIMENTAL a lo que se cuenta en IAV, AQUÍ SERÍA GENERATIVO, no hay procedimientos muy interesantes salvo la magia estadística de las redes neuronales)
Modelos de predicción de abandono (churn) ¿¿?? (de si la peña va a abandonar un juego o qué?)
Aplicar esto del ML a NPCs inteligentes (no sé si se refiere en chatbots y tal, o comportamiento a saco… porque entiendo que en ICI usan CBR y yo no me meteré mucho en eso, aunque CBR tiene una fase de aprendizaje en realidad)
Reinforcement Learning a agentes de juego… quizá tesis de Maxi y cosas así. Imitation Learning supongo que es una aplicación.
– La generación procedimental más conocida, como generación de mazmorras, se contará en IAV.
– Técnicamente no se menciona Aprendizaje Profundo en los contenidos mínimos de la asignatura… aunque se intentará llegar a contar algo hacia el final, igual que IA generativa.
– Algoritmos genéticos. TÉCNICAMENTE aparece en la descripción de contenidos mínimos 🙁 así que supongo que sí que tengo que contar algo, no? Pero es que hay una asignatura opcional que profundiza en ello… ¿es razonable que yo cuente muy poquito en AAM o debería contar más?
– Comportamientos emergentes. Aparece así en contenidos mínimos. Francamente no sé muy bien a que se refiere con esto… ¿se refiere a usar aprendizaje automático para obtener un modelo que permita luego a un NPC decidir cómo comportarse? ESTO NO LO HE HABLADO CON GUILLE, APROVECHO AQUÍ PARA SACAR EL TEMA 🙂 No es la definición que yo suelo usar de comportamiento emergente, ya que yo lo veo como producir un comportamiento complejo a base de reglas simples (algo que encaja mejor en IAV)… no sé si Guille tiene previsto hablar de comportamiento emergente en IAV, pero si me toca a mi, en todo caso yo lo vería como poner a agentes a aprender por refuerzo cómo comportarse en un Unity ML-Agents y decir que es «emergente» porque llegan a hacer cositas que nos sorprenden 🙂 Eso sí entraría en AAM, entonces.
Guille: Para mí los comportamientos emergentes surgen de cuando al NPC le damos un sistema de “reglas” (no estrictamente reglas como tal) y toma decisiones de acuerdo de manera dinámica de acuerdo a esas normas. Por ejemplo, los smart objects ayudan a la aparición de sistemas emergentes, los sistemas de utilidad, las reglas en sí mismas. Se contraponen a los enfoques predefinidos en los que el diseñador define el comportamiento concreto del NPC (por ejemplo, mediante scripts, FSMs o BTs). De hecho, en el Máster les hago esta distinción y era mi intención hacer lo mismo. Por tanto, yo me encargo de esta definición y si, Fede, quieres usar los ML-agents para definir otros tipos de comportamientos emergentes, adelante.
Más o menos este es el temario de la asignatura.
¿Que cosas podría dar guille en IA que nos ayudaría en esta?
La parte de aprendizaje por refuerzo básico (Q-Learning) podria darse ya que si no nos metemos en la parte de Deep Learning, al fin y al cabo es búsqueda.
Otra cosa que no se ve en la carrera y que puede tener sentido dar es Genéticos (OJO QUE YA ES UNA OPTATIVA), que también es búsqueda y por tanto tiene más sentido contarlo cuando se cuenta A*. Pero vamos hablalo con Guille a ver que opina o si puede llevarse algo más de AA antes y así te da tiempo a contar más de Deep por ejemplo.
Estrictamente en la ficha docente no viene nada de deep learning por lo que no haría falta darlo; ya… lo que veas.
Todo lo que es IA generativa, entraría dentro de AAM… aunque lo contaré como al final y tal.
Motion Planning – Usan datos de jugadores para entrenar el sistema y predecir las animaciones que tienen que poner en cada momento y cómo ponerlas (con distintos tipos de aprendizaje) – Hay cosas de aprendizaje ahí (que me las pase Guille)
¿Cosas de IA generativa aplicada a generación procedimental?
A* → sí, claramente simbólico.
Q-Learning tabular → no exactamente simbólico, pero tampoco claramente subsimbólico (puede que esté más cerca de lo simbólico)
Deep Reinforcement Learning → claramente subsimbólico.
USABILIDAD, 4º, 2º Cuatri.: Guille cuenta telemetría en cuarto, tienen que limpiar esos datos, etc. Yo les daré formación para que luego ellos puedan hacer aplicaciones, contar ejemplos reales de juegos que es lo que les gusta…
(en los TFGs partes del proyecto se permite hacerlas como práctica de Usabilidad).
Les hace ver charlas de 30 min., rellenar un formulario incluso con opinión personal y luego Guille lo comenta en clase (10 personas que se la veían). Los que responden el formulario son los que más “participan”
– En IAV se presentará un mapa general de toda la IA donde se vea claramente que hay temas que se verán en OTRAS asignaturas (como los algoritmos evolutivos, el CBR que se ve en ICI… y todo lo que es aprendizaje automático, que eso sí se verá en AAM). En AAM luego se les recordará ese mapa general, para ubicarles.
– De manera radical NO se contará nada de aprendizaje automático en IAV, para exponerlo todo en AAM (incluido ID3 y tal).
– Los modelos probabilísticos/estadísticos tipo Naive Bayes se contarán, aunque sea superficialmente, en AAM. A ver, la figura de Bayes me mola (me gustaría ver el documental The Bayesian Trap (Veritasium, 2017) y leer el libro The Theory That Would Not Die -ojo que la autora tiene charlas grabadas-). Era un pastor protestante bastante genial, aunque fue Laplace el que difundió sus ideas. La regla de Bayes es una pasada, no sólo la fórmula sino la idea que hay detrás, el ML en realidad es inferencia bayesiana, eso es lo que hace un modelo cuando aprende. Naive Bayes sí es un algoritmo de ML, aunque supervisado y muy simple (se usaba para filtrar emails por palabras aparecidas) y superado por Random Forest, XGBoost, redes neuronales… Las redes bayesianas es ML probabilístico. Hidden Markov Models (HMM) y filtro Kolman son históricamente relevantes… y en la actualidad MDP, POMDP y Bandits SÍ tienen que ver más con ML moderno.
– Aprendizaje por refuerzo, aunque sea el Q-Learning más básico y tal, también se contará en AAM.
– Además de hablar de Minería de Datos en AAM también se mencionarán otras aplicaciones del aprendizaje automático, como recomendadores, motion planning, análisis de datos telemétricos… aunque sin profundizar en todas ellas, claro.
Más información
Para complementar es recomendable consultar otros documentos.
- …
Esta página está licenciada bajo CC BY-NC-SA 4.0 por Laboratorios Narratech.