IA para Humanos. Parte 1

IA para Humanos. Parte 1

El buen patrón

Cuando intento explicar algo relativamente complejo siempre me acuerdo de las palabras de uno de los mejores profesores que he tenido. Explícalo como si los que tienes enfrente tuvieran 8 años. Personalmente, es como a mí me gusta que me expliquen las cosas. No por eso eres más tonto o tienes una capacidad cognitiva menor, pero si algo te lo explican con peras y manzanas es más fácil de entender, y más divertido.

Hoy me hallo aquí con la titánica tarea de tratar de explicar cómo funcionan sistemas como ChatGPT de la forma más mundana posible. Poca broma. ¿Te gustaría saber cómo trabajan internamente? ¿Quieres descubrir al que maneja los hilos? ¿Quieres poder explicárselo a tu abuela sin que a ambos os dé una embolia? Bueno, vamos a intentarlo.

Debido a la complejidad y extensión del tema, he dividido la explicación en varios posts. En este primer post, explicaré de que va eso del Machine Learning y las Redes Neuronales Artificiales. Quizá haya lectores avispados que ya conozcan la materia y piensen: ¡Buah! ¿Qué me va a contar este a mí? Bueno, ya sabemos que eres una persona muy espabilada, pero recuerda que este es es un blog para todos los públicos y las casas se empiezan desde los cimientos.

En primer lugar, se debe destacar que dentro de la Inteligencia Artificial pueden existir distintos objetivos y diferentes caminos para llegar a ellos. No es lo mismo que un robot aprenda a andar mediante prueba-error, que generar imágenes en función de una descripción de texto. Depende del problema que queramos resolver, tendremos que elegir adecuadamente cuáles son las herramientas más adecuadas para resolverlo. Herramientas como GPT y otras Inteligencias Artificiales modernas, utilizan un conjunto de técnicas a las que se han denominado Machine Learning o Aprendizaje Automático. ¿Qué es Machine learning? Para hacerlo sencillo: Un sistema basado en Machine Learning es un programa informático que aprende a resolver problemas gracias a extraer patrones de los datos con los que se alimenta.

Pongamos que queremos resolver el siguiente problema: Un programa de ordenador que no sabe nada de pepinos o calabacines debe distinguir entre imágenes de pepinos y calabacines. ¿Qué podemos hacer? Bueno, podríamos ejecutar un sistema basado en Machine Learning que aprenda cuáles son imágenes de pepinos y cuáles de calabacines. Hasta aquí parece lógico, ¿verdad? Vamos a hacer una analogía. Imagina que este programa que utiliza Machine Learning es tu tío Pepe. Imagina que Pepe nunca ha visto un pepino ni un calabacín, pero la parienta le ha encargado que plante en el jardín un huerto de pepinos. Un calabacín y un pepino son relativamente parecidos, entonces, ¿Qué hace el pobre pepe? A esto, de toda la vida, se le conoce como problema de clasificación binaria, ya que debe elegir entre 2 posibles opciones.

Por alguna razón, tenemos una caja con 1000 imágenes de calabacines y 1000 imágenes de pepinos. Pepe va observando imagen a imagen intentando descubrir patrones en las imágenes. Forma, color, tamaño, particularidades, etc. Después de observar todas, Pepe está preparado para reconocer pepinos y calabacines. Para ello trata de clasificar las imágenes que ha observado. Tras esta tarea, su cuñado, que es un experto, le dice que ha acertado un 60%. Mmm, parece que no es suficiente. Entonces, Pepe vuelve a observar otra vez detenidamente todas las imágenes, intentando encontrar una mejor relación y patrones entre ellas. Esta sería la segunda iteración. Así Pepe repite el proceso hasta que el acierto llega al 90%. A partir de ahí, por más iteraciones que haga Pepe, es incapaz de mejorar su resultado. Bueno, Pepe; un 90 % está bastante bien. En el campo del Machine Learning a este proceso se le conoce como entrenamiento. A partir de ese momento Pepe será lo bastante bueno como para poder distinguir calabacines y pepinos. Y así, es como funciona básicamente un sistema de Inteligencia Artificial basado en Machine Learning. Hemos dejado de lado matemáticas y operaciones complejas.

img

¿No es tan difícil de entender, no? Ahora que ya hemos entendido el concepto, vamos a dar una vuelta de tuerca. Existen multitud de algoritmos dentro del Machine Learning para ejecutar la tarea que hemos presentado. Árboles de decisión, Máquinas de Boltzmann, Máquinas de Soporte Vectorial, etc. En la actualidad, las que mayor potencia han demostrado son las famosas Redes Neuronales Artificiales. Intuimos entonces que Pepe en nuestro problema anterior estaba actuando como una Red Neuronal. Pero, ¿Qué es en realidad una Red Neuronal Artificial? ¿Qué similitudes existen con las redes neuronales cerebrales y que diferencias? Bien, vamos a intentar explicarlo con otra analogía. Imaginemos una red de neuronas con la pinta de la imagen inferior. Es bastante parecido a lo que suponemos hay en nuestro cerebro. Una neurona se conecta con la siguiente a través de un enlace llamado sinapsis y así miles de capas enlazando unas con otras. Pues te diré que de forma similar funciona una Red Neuronal Artificial.

img

Vamos a subir un poquito el nivel de complejidad, pero no mucho. ¿Preparados? Planteemos un nuevo problema: Tenemos que cocinar un pollo y no sabemos qué valores de tiempo y temperatura debemos programar en el horno para no armarla. Lo único que tenemos, es la información de temperatura y tiempo de las 1000 veces anteriores en las que se ha cocinado el pollo. También conocemos si el pollo se ha acabado quemando o no. Para que todo sea comprensible habrá que darle aspecto matemático. Por tanto, si el pollo no se ha quemado representa un 0 y si lo ha hecho representa un 1. La tabla de datos tendrá un formato similar a este:

img

En la red, existe una capa de entrada por la cual recibe los datos numéricos de temperatura y tiempo. ¿Qué hace la primera capa de neuronas con esos números que recibe? Bien, imaginemos que cada neurona tiene internamente un regulador parecido al control típico de volumen de las radios. Este regulador no es más que un número que inicialmente tiene un valor aleatorio. Es lo que se conoce como pesos de la red. Lo que hace la neurona es una operación matemática entre el valor de ese “control” y el valor de los datos de entrada obteniendo otro número a la salida. A esta operación se la conoce como función de activación. El resultado obtenido se le pasa a las neuronas de la siguiente capa y estas realizan la misma operación. Como puedes observar en la imagen, las neuronas están totalmente conectadas entre capas. Así lo harán todas las capas hasta llegar a la neurona final. La neurona final es la neurona jefe. Es especial, ya que se encarga de evaluar el resultado final obtenido gracias a los cálculos de todas sus compañeras. Es decir, si el pollo se quema o no. A esta operación se la llama predicción.

Tras ejecutar la predicción, se compara el resultado obtenido, con el valor real que tendría para esos valores de temperatura y tiempo. A este cálculo se le llama función de error .La red, al ejecutar esta comparación, seguramente se dará cuenta de que se ha equivocado una cierta cantidad. Este proceso se ejecuta para todas las columnas de datos que tenemos. Lo que buscamos finalmente en un sistema de este tipo, es que el error sea el mínimo posible. ¿Recuerdas los controles internos que tenía cada neurona y que eran regulables? Lo que hace cada uno de ellos es, en función del error cometido, modificar ligeramente su valor para intentar que la próxima vez el error sea más pequeño. De nuevo se repite el proceso. Los datos de temperatura y tiempo se le pasan a la primera capa de neurona, con la salvedad de que si todo ha ido bien ahora cada neurona tendrá ese mando un poquito mejor regulado, de forma que cuando los valores lleguen a la neurona final el error que se cometa sea cada vez más pequeño. A esta fase se la conoce como Backpropagation (retropropagación in spanish). Y así se repite todas las veces que haga falta hasta que la red observe que por mucho que repitamos el proceso, el error no baja. En este momento, habremos conseguido minimizar el error y nuestro entrenamiento habrá finalizado.

Ya tenemos nuestra red de neuronas artificiales con sus controles internos (pesos) bien regulados, de forma que cada vez que se le pase pasen unos datos de temperatura y tiempo sabrá con mucha precisión si el pollo se quemará o no. Por supuesto, no es magia. Para no pillarnos los dedos y de manera muy somera, podemos decir que lo que está pasando internamente es que los mandos de las neuronas se han regulado, permitiendo que la red sea capaz de encontrar patrones entre los datos. Puedes intuir que, normalmente, los problemas son más complejos que saber si se te va a quemar el pollo, pero el principio es el mismo.

Ahora ya sabes como funcionan los algoritmos de las Redes Neuronales. En un próximo post subiremos aún más el nivel y explicaremos cómo estas redes son capaces de generar imágenes o texto. Llegados a este punto, debo hacer un disclaimer y aclarar que me he tomado algunas licencias en la explicación para que todo sea más comprensible. Que ahora no vengan los puristas y gurús de la Inteligencia Artificial con la guadaña. Enhorabuena, ahora ya tienes un temita con el que dar la turra en las reuniones familiares. Nos vemos en la segunda parte.

Escribiendo desde un sótano en la Deep Web, atentamente math.