Las redes neuronales son la base del aprendizaje automático y la inteligencia artificial modernos. Son el componente más esencial para comprender qué es la IA y cómo funciona. En este artículo, aprenderá los conceptos básicos de las redes neuronales y luego profundizaremos en algunas de las variantes más comunes, como las redes de avance y recurrentes, que impulsan todo, desde grandes modelos de lenguaje como ChatGPT y Bardo a la generación de imágenes con difusión estable.
el perceptrón
Todas las redes neuronales comparten una característica básica: son grupos de nodos interrelacionados. Más técnicamente, son gráficos. Los atributos de los nodos y las formas en que se conectan los bordes varían ampliamente. La estructura de nodos más simple es, por supuesto, un solo nodo.
El perceptrón es la primera visión de un modelo matemático inspirado en la célula cerebral humana, aunque es importante señalar que la asociación entre ambos es muy vaga. El cerebro humano es radicalmente más sofisticado, sutil y epistemológicamente incierto que una red neuronal. En el caso del cerebro humano, lo que se debe comprender también forma parte del aparato de comprensión. Ese no es el caso de las neuronas de software.
Generalmente, la idea de «neurona» significa un nodo que acepta una o más entradas, toma una decisión sobre qué salida producir y luego envía esa salida hacia el siguiente nodo (o hacia una salida final).
La Figura 1 muestra un perceptrón simple con dos entradas y una única salida.
Cada entrada se multiplica por un peso. Esto permite ajustar la influencia de las entradas, que luego se suman y se suman a un sesgo. El sesgo permite ajustar el impacto general del nodo. (Para un diagrama más matemático, vea el modelo de perceptrón de una sola capa aquí.)
El valor resultante se le da entonces al función de activación. Esta función puede ser muchas cosas, pero en un perceptrón es una función de umbral, a menudo la Función de paso pesado, que esencialmente genera 1 si el valor es lo suficientemente alto o 0 en caso contrario. En resumen, esta función es una puerta. La simple salida de encendido/apagado es una característica definitoria de los perceptrones.
A nivel interno de los nodos, este diseño básico es bastante universal para las redes neuronales. El número de entradas y salidas puede variar. La información que ingresa a una neurona a menudo se denomina características.
Para ayudar a evitar confusiones, tenga en cuenta que muy a menudo los perceptrones se utilizan de forma aislada; es decir, como redes de un solo nodo. A veces, el término perceptrón denota una red neuronal de un solo nodo. Se pueden combinar varios perceptrones en una sola capa. Si se utilizan más capas, se considera una red de avance, que analizaré más adelante.
Funciones de pérdida y aprendizaje automático.
En general, los perceptrones y las redes neuronales necesitan una forma de ajustar sus pesos y sesgos para mejorar el rendimiento. El rendimiento se mide mediante un función de pérdida. Esta función le dice a la red cómo le fue con un cálculo, y esa información luego se utiliza para sintonizar los nodos.
La modificación de pesos y sesgos en las neuronas es la esencia del aprendizaje automático de redes neuronales.
Tenga en cuenta que estoy evitando intencionalmente los detalles de las funciones de pérdida y cómo se ajustan las ponderaciones y los sesgos. En general, descenso de gradiente es el algoritmo común utilizado para este propósito. El descenso de gradiente considera la red como una función de cálculo y ajusta los valores para minimizar la función de pérdida.
A continuación, veremos una variedad de estilos de redes neuronales que aprenden del modelo de perceptrón y también van más allá.
Redes de retroalimentación
Las redes feedforward son quizás la red neuronal más arquetípica. Ofrecen un grado de flexibilidad mucho mayor que los perceptrones, pero aún así son bastante simples. La mayor diferencia en una red feedforward es que utiliza funciones de activación más sofisticadas, que normalmente incorporan más de una capa. La función de activación en un feedforward no es solo 0/1, o encendido/apagado: los nodos generan una variable dinámica.
La forma de descenso de gradiente utilizada en la alimentación directa es más complicada; lo más habitual es que sea propagación hacia atrásque considera la red como una gran ecuación de cálculo multivariante y utiliza diferenciación parcial para el ajuste.
En la Figura 3, tenemos una red feedforward prototípica. Hay una capa de entrada (a veces considerada como la capa o capa 1) y luego dos capas de neuronas. Puede haber una gran variedad en cómo se conectan los nodos y las capas. En este caso, tenemos capas «totalmente conectadas» o «densas» porque la salida de cada nodo se envía a cada nodo de la siguiente capa. Las capas interiores de una red neuronal también se denominan capas ocultas.
La clave en las redes feedforward es que siempre empujan la entrada/salida hacia adelante, nunca hacia atrás, como ocurre en una red neuronal recurrente, que se analiza a continuación.
Red neuronal recurrente (RNN)
Las redes neuronales recurrentes, o RNN, son un estilo de red neuronal que implica que los datos retrocedan entre capas. Este estilo de red neuronal también se conoce como gráfico cíclico. El movimiento hacia atrás abre una variedad de técnicas de aprendizaje más sofisticadas y también hace que las RNN sean más complejas que otras redes neuronales. Podemos decir que los RNN incorporan algún tipo de retroalimentación. La Figura 4 muestra el patrón cíclico de movimiento de datos en un RNN.
Otro truco empleado por RNN es estado oculto. Esto significa que los nodos pueden contener algunos datos internamente durante la ejecución, esencialmente una forma de memoria de la máquina. Dado que las capas pueden ejecutarse repetidamente en un RNN (la salida de una capa descendente se convierte en la entrada de la ascendente), el estado oculto permite a la red aprender sobre los efectos a largo plazo de los datos.
Las variantes de RNN se encuentran entre las más utilizadas en la actualidad. Existe una gran variedad en cómo se implementan. La más común es la red de memoria a largo plazo (LSTM). Los LSTM utilizan nodos bastante complejos con una serie de puertas y estados internos para determinar qué es valioso («puerta de olvido») y qué ingresar/salir («puertas de entrada y salida»).
Los RNN son más adecuados y se aplican a datos secuenciales, como series temporales, donde la capacidad de recordar la influencia pasada entre secuencias es clave.
Red neuronal convolucional (CNN)
Las redes neuronales convolucionales, o CNN, están diseñadas para procesar cuadrículas de datos. En particular, eso significa imágenes. Se utilizan como componente en la fase de aprendizaje y pérdida de modelos de IA generativa, como la difusión estable, y para muchas tareas de clasificación de imágenes.
Las CNN utilizan filtros matriciales que actúan como una ventana que se mueve a través de los datos de origen bidimensionales, extrayendo información en su vista y relacionándola. Esto es lo que los hace tan adecuados para el manejo de imágenes. A medida que la ventana se mueve por la vista, crea una imagen detallada e interconectada de los datos. De esa manera, una CNN funciona bien en un plano espacial bidimensional, al igual que una RNN funciona bien en datos secuenciados en el tiempo en una serie.
La mayoría de las CNN operan en un proceso de dos fases: al filtrado le sigue un aplanamiento, que se alimenta a una red de alimentación directa. La fase de filtrado a menudo se realiza utilizando una cuadrícula de datos, en lugar de un gráfico de nodos estilo red neuronal, por lo que, aunque utiliza un algoritmo de descenso de gradiente para aprender basándose en una función de pérdida, el proceso general es diferente a una red neuronal.
Otra operación importante en una CNN es agrupación, que toma los datos producidos por la fase de filtrado y los comprime para mayor eficiencia. La agrupación está diseñada para mantener los aspectos relevantes de la salida y al mismo tiempo reducir la dimensionalidad de los datos.
La Figura 5 tiene una vista generalizada de un flujo típico de CNN.
El término circunvolución se refiere al conocido procedimiento matemático. Para obtener una excelente visualización animada del proceso de convolución, consulte esta guía de redes neuronales convolucionales.
Transformadores y atención.
Los transformadores son un tema candente en estos días porque son la arquitectura de LLM como ChatGPT y Bard. Utilizan una estructura codificador-decodificador y permiten una mecanismo de atención. (Puedes encontrar el documento que aquí se introdujeron redes de transformadores.)
La atención es un gran avance en el procesamiento del lenguaje porque permite que el modelo se centre en partes de las oraciones y en lo que es significativo. Los transformadores utilizan una estructura de codificador/decodificador y codificación posicional de tokens de palabras. Este video es un buen desglose de la arquitectura en inglés sencillo.
Los transformadores son muy poderosos y también muy complejos. Utilizan una densa red feedforward como red subneural dentro de los componentes del codificador y decodificador. También exigen una potencia informática considerable.
Redes adversarias
Una de las nuevas ideas más interesantes es la red adversaria, que enfrenta dos modelos entre sí. Un modelo intenta generar predicciones y el otro intenta encontrar falsificaciones. En un nivel alto, esto actúa como un mecanismo de pérdida sofisticado, donde el adversario actúa como función de pérdida.
Conclusión
Las redes neuronales son una forma poderosa de pensar en los problemas y aplicar algoritmos de aprendizaje automático basados en la reducción de pérdidas. Hay algunas variantes complicadas y complejas, y en este espacio se está invirtiendo una enorme cantidad de dinero y pensamiento.
Comprender los conceptos básicos de las redes neuronales también nos ayuda a abordar preguntas más profundas sobre la naturaleza de la conciencia y lo que la inteligencia artificial (en su encarnación actual) significa para ella.
Afortunadamente, las ideas fundamentales de las redes neuronales no son difíciles de comprender. Comprender las variaciones de las redes neuronales y cómo funcionan es un conocimiento útil y cada vez más esencial para los desarrolladores de software. Esta es un área de innovación que seguirá impactando a la industria en general y al mundo en las próximas décadas.
Copyright © 2024 IDG Communications, Inc.