febrero 16, 2023 - Futurizable | Sngular
Enlaces rápidos
  • Blockchain
  • Big Data
  • Educación
  • Robótica
  • Espacio

Daily Archives febrero 16, 2023

Oda a las redes neuronales

Publicado el 16 febrero, 2023

Pensando en Sistemas

En el Universo todo son sistemas y lo normal es que estos funcionen porque llegan a una especie de equilibrio, al menos si la vida existe y sobre esa vida se ha llegado a desarrollar inteligencia es porque existe un equilibrio.

  • El equilibrio en el Sistema Solar permite que los planetas giren alrededor del Sol sin chocarse unos con otros y sin precipitarse sobre la estrella que proporciona la energía necesaria para que al menos en la Tierra pueda haber vida.
  • El equilibro del planeta Tierra con la Luna determina el funcionamiento de las mareas y esto a su vez genera un equilibrio con los vientos en la atmósfera, lo cual determina muchos aspectos en el clima que también influyen en la vida.
  • El ahora nuevamente famoso núcleo terrestre incluso tiene una influencia importante en el desarrollo de la vida terrestre gracias al efecto de apantallamiento magnético que nos protege de las radiaciones procedentes del espacio.
  • El equilibro en los ecosistemas terrestres es aún más palpable en nuestra vida y está muy bien representado por la cadena trófica, donde los cambios que se producen en alguna de las especies que habitan la tierra puede afectar a las demás.
  • También el equilibrio existente en el interior y exterior de los seres vivos con las bacterias que lo pueblan es tremendamente relevante para nosotros, hasta el punto que sin ellas no podríamos vivir, ni quizás tampoco ser inteligentes.
  • Finalmente llegamos al equilibro entre la inteligencia humana y la Inteligencia Artificial, que tras millones de años de evolución de la vida es justo el momento en el que nos encontramos ahora y nos hace visualizar un escenario en el que ya existe una Super Inteligencia Artificial o Inteligencia Artificial General si consideramos la combinación del humano y la máquina como un sistema que se retroalimenta. No necesitamos llegar a tener una inteligencia artificial que sea 100% autónoma, lo mejor que puede ocurrir en estos momentos es que lo artificial sea parte de un sistema que trabaja en colaboración con las personas.

Y así es como hemos llegado de nuevo al tema de la Inteligencia Artificial que es a lo que vamos a dedicar este artículo, porque todo lo que está pasando en los últimos meses con las GenAI lo merece y desde Futurizable queremos contribuir a que sea cada vez más conocido y utilizado entre los que cada domingo leéis esta newsletter.

Un recorrido por la historia reciente de las Redes Neuronales

Entender lo que está ocurriendo con la Inteligencia Artificial merece dedicarle algo de tiempo a aprender cómo hemos llegado hasta aquí y cuáles son las principales tecnologías que hacen posible que ahora estemos hablando con ChatGPT como si fuera un humano que nos acompaña en nuestro día a día, para ayudarnos con nuestras actividades habituales, ya sea cuando estamos trabajando, cuando estamos aprendiendo, y sobre todo cuando estamos haciendo ambas cosas a la vez.

Sin tener que remontarnos a la época de Alan Turing y las primeras computadoras, cuando ya se comenzó a hablar de Inteligencia Artificial, es interesante pensar que desde ese momento ya estaba previsto que la tecnología fuera poco a poco replicando las capacidades humanas que solemos asociar con la inteligencia, como son la capacidad de hablar, leer, escribir, reconocer imágenes, resolver problemas matemáticos, jugar a juegos como el ajedrez y sobre todo aprender.

De esta forma los desarrollos en Inteligencia Artificial han seguido durante mucho tiempo dos caminos diferentes, por un lado los sistemas expertos donde se desarrollaban diferentes herramientas de software que estaban programadas para replicar las habilidades humanas pero a base de fuerza bruta, ya que la máquina no se cansa y tiene todo el tiempo del mundo para hacer los cálculos necesarios para replicar de manera matemática lo que un humano hace, por ejemplo cuando juega a las damas, que es uno de los primeros juegos donde se puso a prueba esta tecnología en la década de los 50.

Desde entonces hemos vivido diferentes periodos de auge y caída de las expectativas al respecto de las posibilidades que podría ofrecernos la Inteligencia Artificial, lo cual no ha hecho que en todo este tiempo los científicos declinaran en su afán por avanzar en el desarrollo de esta tecnología, como queda de manifiesto en la siguiente cronografía que debería servirnos para hacernos una idea de dónde estamos y cómo hemos llegado hasta aquí.

  • Las primeras redes neuronales artificiales fueron desarrolladas en 1943 por el neurofisiólogo Warren McCulloch y el matemático Walter Pitts. Sin esta invención sería imposible haber experimentado el gran avance de la Inteligencia Artificial en los últimos años, gracias a la genialidad de replicar la inteligencia a través de sus elementos fundacionales, las neuronas.
  • La neuronal artificial perceptrón desarrollado en 1957 por Frank Rosenblatt fue otro de los pilares fundamentales de esta tecnología y ofrecía la utilidad de resolver problemas de clasificación binaria, determinando si un objeto dado pertenecía a una de dos categorías.
  • El siguiente paso era conectar las neuronas artificiales entre sí, porque esto es lo que se considera como base para la inteligencia, no solo que tengamos neuronas sino como estás se conectan e interactúan formando un sistema, lo cual es la razón por la que hablamos de redes neuronales y no solo de neuronas. Y esto sucedió en la década de los 60 gracias a Georgiy Ivakhnenko y Vladimir Lapa con el desarrollo de redes neuronales que realizaban tareas como la identificación de sistemas y la predicción de series temporales. Estas redes neuronales se caracterizaban por su capacidad para realizar ajustes finos y por su estructura en cascada, lo que permitía que la información fluyera de una capa a otra; también por su capacidad para aprender a partir de datos y para generalizar a nuevos datos.
  • Y así es como llegamos al aprendizaje automático, o machine learning, que como os podéis imaginar es en lo que se basa todo lo que ha venido después y que ahora denominamos como deep learning, como una representación de que si las máquinas aprenden es gracias a la estructura de capas de redes neuronales apiladas unas sobre otras.
  • Después tuvieron que pasar un par de décadas (el invierno de la Inteligencia Artificial), en concreto llegar a los años 80 y 90 para que se produjera un nuevo gran avance en esta tecnología, con la invención de las redes neuronales convolucionales, propuestas por Kunihiko Fukushima en 1980 a través del concepto de Neocognitron, que ​más tarde fue mejorado por Yann LeCun en 1998​ al introducir un método de aprendizaje basado en la propagación hacia atrás para poder entrenar el sistema correctamente.
  • Este diseño de redes neuronales convolucionales fue refinado en 2012 por Dan Ciresan y en este momento es cuando se produce el gran punto de inflexión en esta tecnología, gracias a su utilidad para el procesamiento de imágenes. Precisamente en 2012 esta arquitectura de redes neuronales logró una gran notoriedad por usarse para vencer en la competición ImageNet organizada por las universidades Stanford y Princeton, para fomentar el desarrollo de los sistemas de clasificación de imágenes basados en Inteligencia Artificial.
  • También en 2012 Geoffrey Hinton y George Dahl, usaron redes neuronales profundas para ganar una competencia organizada por Merck en la plataforma Kaggle, que era utilizada por una gran cantidad de científicos de datos y expertos en Inteligencia Artificial para poner a prueba sus modelos de aprendizaje automático.
  • En paralelo al desarrollo de las redes neuronales convolucionales encontramos las redes neuronales recurrentes que se basan en el trabajo de David Rumelhart en 1986. Estas se utilizan para procesar secuencias de datos, como texto, audio o vídeo, es decir, para el procesamiento del lenguaje natural. En lugar de procesar cada entrada independientemente, mantienen un estado oculto que se actualiza a medida que se procesan las entradas sucesivas en la secuencia, lo cual les permite tener en cuenta la información anterior y procesar la secuencia completa para producir una salida.
  • Fue en 2014 donde vimos como todo comenzaba a acelerarse y donde nos encontramos con las redes neuronales generativas antagónicas, las famosas GANs, desarrolladas por Ian Goodfellow. Estas redes están formadas por dos partes, un generador y un discriminador, donde a través de un proceso iterativo, el generador aprende a crear datos cada vez más convincentes y el discriminador aprende a ser más efectivo en la detección de datos falsos, lo cual ha tenido un recorrido enorme en los últimos años para la generación de imágenes.
  • En 2015 Google libera Tensor Flow, la librería de software gratuita y de código abierto para el aprendizaje automático y la inteligencia artificial, que puede ser usada en una variedad de tareas, pero que tiene un enfoque particular en el entrenamiento y la inferencia de redes neuronales profundas. A raíz de esta iniciativa multitud de personas se lanzan a la aventura de aprender sobre Inteligencia Artificial lo cual acelera considerablemente el desarrollo de esta tecnología.
  • Y entonces llegó el año 2016 donde la Inteligencia Artificial ocupó todas las portadas gracias al desarrollo de AlphaGo por parte de DeepMind, al ganar al campeón del mundo del juego de mesa de Go, gracias a un desarrollo en el que confluían tecnologías de aprendizaje automático combinadas con un de árbol del decisión del tipo búsqueda Monte Carlo. Llegados a este punto vale la pena mencionar que en aprendizaje automático a demás de las redes neuronales artificiales tenemos otros algoritmos como son los árboles de decisiones, las reglas de asociación, los algoritmos genéticos, las máquinas de vectores de soporte, los algoritmos de agrupamiento y las redes bayesianas.
  • Finalmente vamos a detenernos en este viaje en el año 2017 con la publicación del paper Attention Is All You Need donde se presentan los transformers como un nuevo tipo de red neuronal que viene a mejorar a las convolucionales y a las recurrentes, proponiendo una estructura secuencial que procesa la información en forma de secuencia, como ocurre en una frase o un documento, en lugar de procesar la información en una estructura de grid, como en una red neuronal convencional. Para ello se utiliza el concepto de atención, que permite a la red considerar la importancia de diferentes partes de la secuencia al realizar tareas como la traducción automática o la clasificación de texto. La atención permite a la red aprender a enfocarse en las partes relevantes de la secuencia y desechar aquellas que no son importantes.

Nomenclatura para entender el funcionamiento de las redes neuronales

Para sacar provecho de la Inteligencia Artificial Generativa no es necesario conocer en profundidad el funcionamiento del Deep Learning ni de las redes neuronales que lo soportan, pero como muchas veces al hablar de esta tecnología se menciona el tipo de red neuronal en el que está basado y alguna característica específica de su arquitectura, puede ser interesante conocer algunos de los términos más habituales.

  • Neuronas artificiales: son las unidades básicas de una red neuronal y se encargan de procesar y transmitir la información.
  • Entrada: son las características o variables que se utilizan como entrada de información en la red neuronal.
  • Capas: una red neuronal puede estar compuesta por una o más capas de neuronas. Las capas de entrada contienen las neuronas que reciben las señales de entrada, mientras que las capas intermedias, también llamadas ocultas, y la capa de salida contienen las neuronas que procesan y generan la señal de salida.
  • Pesos: cada entrada de una neurona está asociada a un peso que controla la influencia de esa entrada en la salida de la neurona. Los pesos se ajustan durante el proceso de aprendizaje de la red neuronal.
  • Sesgos: son parámetros adicionales que se incluyen como una corrección que se aplica a la entrada de una neurona antes de que se calcule su salida, lo cual se utiliza para desplazar la función de activación de una neurona hacia arriba o hacia abajo, lo que permite ajustar la salida de la neurona de forma independiente de sus entradas
  • Función de activación: es una función matemática que se aplica a la suma ponderada de las entradas para producir la salida de la neurona. La función de activación introduce no linealidad en la red neuronal, lo que permite a la red modelar una gran variedad de relaciones complejas entre las entradas y las salidas.
  • Propagación hacia adelante: es el proceso de calcular la salida de la red neuronal a partir de las entradas y los pesos. La señal de entrada se propaga a través de las capas de la red neuronal hasta la capa de salida.
  • Función de costo o pérdida: es una medida de la diferencia entre la salida deseada y la salida real de la red neuronal. Se utiliza para evaluar el rendimiento de la red y para guiar el proceso de aprendizaje.
  • Optimizador: es un algoritmo que se utiliza en el entrenamiento de redes neuronales para mejorar sus capacidades predictivas con el objetivo de encontrar los mejores pesos y sesgos de las redes neuronales de manera que puedan producir las predicciones más precisas posibles.
  • Propagación hacia atrás: es el proceso de ajustar los pesos de la red neuronal en función de la función de costo y de la propagación hacia adelante. Se trata de un algoritmo de optimización que permite a la red neuronal aprender a partir de los datos de entrenamiento.
  • Entrenamiento: el entrenamiento es el proceso de ajuste de los pesos y los sesgos de las conexiones entre las neuronas artificiales en una red neuronal con el fin de optimizar su capacidad para realizar tareas específicas. La idea detrás del entrenamiento es que la red neuronal debe ser capaz de aprender de los datos de entrada y producir una salida correcta para una determinada tarea. Esto se lleva a cabo a través del uso de un conjunto de datos de entrenamiento, que consiste en pares de entrada y salida deseada. La red neuronal ajusta sus pesos y sesgos en base a la comparación entre su salida actual y la salida deseada para cada ejemplo en el conjunto de datos de entrenamiento. Este proceso se repite varias veces hasta que la red neuronal alcance un nivel aceptable de precisión en la realización de la tarea deseada. Así el éxito del entrenamiento depende de factores como la calidad y cantidad de los datos de entrenamiento, la estructura de la red neuronal, la elección de la función de pérdida y la optimización del proceso de entrenamiento.
  • Aprendizaje supervisado: es un tipo de aprendizaje automático en el que se utiliza un conjunto de datos etiquetados para entrenar un modelo de aprendizaje, donde se proporciona una entrada y una etiqueta deseada para cada ejemplo en el conjunto de datos, y el objetivo es que el modelo aprenda a producir la etiqueta correcta para nuevas entradas en base a los patrones de asociación encontrados en los datos de entrenamiento.
  • Aprendizaje no supervisado: es otro tipo de aprendizaje automático en el que en esta ocasión se utiliza un conjunto de datos sin etiquetar para entrenar el modelo, por lo tanto, ya que no se proporciona una etiqueta deseada para cada ejemplo en el conjunto de datos, el objetivo es que el modelo descubra patrones y estructuras ocultos en los datos, como son las agrupaciones y las asociaciones.
  • Aprendizaje por refuerzo: es un tipo de aprendizaje automático en el que un algoritmo aprende a tomar acciones en un entorno con el objetivo de maximizar una recompensa o refuerzo, de esta forma experimenta con diferentes acciones y recibe recompensas o penalizaciones en función de sus acciones. A partir de estas experiencias, el algoritmo ajusta su comportamiento para maximizar la recompensa en el futuro.
  • Finetuning:  consisten en utilizar una red neuronal que ya ha aprendido algunas características útiles para realizar una tarea en particular, pero ahora queremos aplicar esa red neuronal a un nuevo problema. Para ello se aprovechan los pesos y sesgos aprendidos previamente y se adaptan a un nuevo problema específico. Este proceso implica congelar los pesos y sesgos de una parte de la red neuronal preentrenada y continuar el entrenamiento solo en la parte restante de la red. Esto se hace porque se asume que la parte preentrenada de la red ya ha aprendido características generales útiles en un problema similar, y que estas características se pueden transferir y ajustar al nuevo problema. Esta técnica se utiliza cuando no hay suficientes datos disponibles para entrenar una red neuronal desde cero, o cuando se desea aprovechar las capacidades de aprendizaje de una red neuronal preentrenada.
  • Gran modelo de lenguaje: es un modelo de aprendizaje profundo que ha sido entrenado en un gran corpus de texto con el objetivo de comprender y generar lenguaje humano. Estos modelos utilizan técnicas de aprendizaje automático y procesamiento del lenguaje natural para desarrollar una comprensión profunda del significado del lenguaje y cómo se relaciona con otros conceptos. Los grandes modelos de lenguaje se utilizan en una variedad de tareas, incluyendo la traducción automática, la generación de texto, la respuesta a preguntas, la clasificación de texto, la búsqueda en internet, la asistencia virtual y la automatización de chats.

Y aquí es donde acaba la historia que os queríamos contar hoy, porque un gran modelo de lenguaje es precisamente lo que ha creado la empresa OpenAI a través de GPT-3 y su versión para conversar con humanos ChatGPT.

La respuesta de Google al huracán ChatGPT

Bueno, quizás mejor no terminamos aún, porque están pasando tantas cosas en este sector de la Inteligencia Artificial que vale la pena hacer un bonus para fijarnos en la respuesta que está dando o quiere dar Google a las diferentes iniciativas emprendidas por OpenAI y su socio Microsoft. Ya que tras la integración de GPT en Bing y otras herramientas como Teams, parece que no queda mucho para que Google haga lo propio con su buscador, con la presentación de Bard, que está basado en el modelo de lenguaje para aplicaciones de diálogo LaMDA

Además recientemente Google ha invertido 300 millones de dólares en la startup Anthropic, lo cual nos lleva a recordar que en este juego no solo participan las grandes empresas tecnológicas, sino que se está desarrollando un ecosistema increíble de nuevas empresas, algunas de las cuales muestran un futuro enormemente prometedor, como es el caso de Perplexity, que es una de las más avanzadas en este campo de los chats basados en Inteligencia Artificial Generativa.

Y ahora sí, para terminar, os dejamos algunos recursos para seguir aprendiendo sobre este apasionante tema, hasta la semana que viene que volveremos en Futurizable con más contenidos sobre GenAI.

  • Third Oasis: es un directorio de aplicaciones basadas en Inteligencia Artificial Generativa.
  • Dot CSV: probablemente el mejor canal de Youtube de divulgación sobre Inteligencia Artificial.
  • Monos Estocásticos: un nuevo podcast dedicado relatar toda la actualidad de este sector.

Etiquetas: , , , , , ,