La Revolución silenciosa: IA aplicada a los juegos
El concepto de Inteligencia Artificial aplicada en juegos no es en absoluto nada nuevo, desde siempre se han implementado algo parecido a I.A para simular mecánicas de juego y que los diferentes juegos pudieran confrontar a los jugadores, las ha habido mejores peores y han evolucionado con el paso del tiempo como es normal, hasta ahí todo normal ninguna novedad.
Pero algo ha cambiado, de un tiempo a esa parte desde la presentación de las RTX de Nvidia, hemos asistido a la llegada de los Tensor Cores al mundo doméstico, un hardware de alto rendimiento y muy especifico diseñado para las I.A en el mercado profesional, generalmente venia en hardware de un precio altísimo destinado a grandes desarrollos y cargas de trabajo extremas.
Ahora lo tenemos al alcance de ¿TODOS? Lamentablemente no podemos decir que este aun al alcance de todos, las tarjetas gráficas RTX que proveen este hardware tan interesante tienen un precio bastante brutal, teniendo en cuenta en el segmento que estamos hablando, no obstante, es cuestión de tiempo que bajen de precio y antes o después esta tecnología se volver a accesible, ya se ha dado el primer paso al menos.
El Machine Learning aplicado a API’s de Windows está permitiendo a los desarrolladores de juegos aprovechar estos Tensor Cores y explorar el potencial que encierran en sus redes neuronales aplicado a juegos, algo que hasta ahora era directamente imposible, no era una cuestión económica siempre han existido graficas potentes para la época, pero esto es completamente nuevo, lo cambiara todo dado que estamos hablando de una funcionalidad completamente nueva nunca antes vista.
Las redes neuronales son un subconjunto especifico dentro del Machine Learning que a su vez es un subconjunto contenido en lo que se conoce como Inteligencia Artificial I.A. Es importante tener esto bien claro para no liarnos con la sopa de letras.
El Concepto de Red Neuronal.
Con el aumento exponencial de la capacidad de computo que han tenido las GPU’s en los últimos años hemos llegado a un punto en el que se pueden afrontar los ingentes cálculos matriciales que se necesitan para ejecutar redes neuronales y aquí se encierra una de las claves de todo este asunto, cálculos matriciales.
Es increíble que toda esta complejidad brutal descanse sobre algo tan simple como operar matrices entre sí, algo que se puede hacer fácilmente a mano (matrices pequeñas claro) y precisamente las GPUs y no las CPUs son ideales para operar con matrices a velocidades altísimas pequeños cálculos simples a la mayor velocidad posible: Para eso están diseñadas la GPU en definitiva y es por eso que se usan intensivamente en los centros de datos actualmente.
Las redes neuronales se crean mediante el procesamiento de grandes cantidades de datos a través de capas de nodos (neuronas) que pueden aprender sobre las propiedades de esos datos, leer patrones y “comprender” lo que están leyendo de manera que entre todas conforman un modelo, un modelo que va cambiando con el paso del tiempo en tanto en cuanto al red neuronal reciba datos de los que “alimentarse” y comprobar su modelo una y otra vez.
Si las predicciones del modelo no se ajustan del todo a los datos de entrada, se reajusta dicho modelo para adecuarlo cada vez mas y mas a los datos de entrada, exactamente igual que un ser humano aprendería a por ejemplo tocar un instrumento. Al principio su cerebro no sabe manipularlo, es un estímulo complementa mente nueva y el resultado es pésimo, pero con el tiempo y con la práctica nuestros cerebros van aprendiendo y adaptándose a lo que se necesita de tal forma que empezamos a mejorar en como tocar un instrumento. Eso es exactamente el funcionamiento que sigue una red neuronal artificial.
Hablamos e Redes Neuronales Profundas (DNN) Deep Neural Network cuando tenemos 2 o más capas de neuronas, a mayor cantidad de neuronas mas interacciones entre las mismas son posibles y la potencia y complejidad de la red neuronal aumentan exponencialmente.
El mundo de las Redes Neuronales es amplísimo o directamente inabarcable, pero esta bien conocer que existen diferentes tipos de redes neuronales en base a sus propiedades y usos, como si de herramientas se tratara, tenemos multitud de herramientas adaptadas a diferentes trabajos, no es lo mismo aflojar un tornillo que clavar un clavo, pese a que son procesos que guardan ciertas semejanzas.