Red neuronal artificial

De Enciclopedia Salmantina
(Redirigido desde «Redes neuronales artificiales»)
Una red neuronal artificial es un grupo interconectado de nodos similar a la vasta red de neuronas en un cerebro biológico. Cada nodo circular representa una neurona artificial y cada flecha representa una conexión desde la salida de una neurona a la entrada de otra.

En el aprendizaje automático, una red neuronal artificial (abreviada RNA o RN, o en inglés, ANN o NN) es un modelo dentro de los llamados sistemas conexionistas, inspirado en la estructura y función de las redes neuronales biológicas en los cerebros animales. Una ANN consta de unidades o nodos conectados llamados neuronas artificiales, que modelan vagamente las neuronas del cerebro. Estas están conectadas por aristas, que modelan las sinapsis del cerebro. Cada neurona artificial recibe «señales» de las neuronas conectadas, luego las procesa y envía una señal a otras neuronas conectadas. La «señal» es un número real, y la salida de cada neurona se calcula mediante una función no lineal de la suma de sus entradas, llamada función de activación. La fuerza de la señal en cada conexión está determinada por un peso, que se ajusta durante el proceso de aprendizaje.

Por lo general, las neuronas se agrupan en capas. Las diferentes capas pueden realizar diferentes transformaciones en sus entradas. Las señales viajan desde la primera capa (la capa de entrada) hasta la última capa (la capa de salida), posiblemente pasando por múltiples capas intermedias (capas ocultas). Una red se denomina típicamente red neuronal profunda si tiene al menos dos capas ocultas.

Las redes neuronales artificiales actúan, teóricamente, como un aproximador universal capaz de modelar cualquier función matemática continua.

Fundamentos[editar | editar código]

En su núcleo matemático, una red neuronal artificial funciona como una función compuesta y altamente parametrizada que transforma un vector de datos de entrada en una salida predictiva.

Cada "neurona" individual realiza una operación en dos etapas fundamentales, que llamaremos combinación y evaluación.

Combinación[editar | editar código]

Primero, la neurona calcula una combinación lineal ponderada de las señales que recibe; es decir, multiplica cada valor de entrada por un coeficiente asociado llamado «peso» (weight) y suma todos estos productos junto con un término independiente conocido como «sesgo» (bias). Los pesos determinan la importancia relativa de cada variable de entrada, mientras que el sesgo permite desplazar el umbral de activación de la neurona, otorgando mayor flexibilidad al modelo al momento de ajustarse a los datos.

Evaluación[editar | editar código]

La segunda etapa es crucial para la capacidad analítica del sistema: el resultado de la combinación lineal se evalúa a través de una función de activación no lineal, como la función sigmoide, la tangente hiperbólica o la unidad lineal rectificada (ReLU). Si las redes neuronales operaran exclusivamente mediante transformaciones lineales, el sistema completo, independientemente del número de capas ocultas, colapsaría matemáticamente en un modelo lineal simple, limitando severamente su poder de resolución. Es precisamente la introducción sistemática de estas no linealidades lo que permite a la red capturar interacciones intrincadas entre las variables.

Entrenamiento[editar | editar código]

El entrenamiento de una red neuronal es, fundamentalmente, un problema de optimización iterativa. El objetivo central es encontrar la configuración ideal de pesos y sesgos que minimice el error en las predicciones del modelo.

Para medir este error de forma objetiva, se define una función de pérdida (o función de coste), que cuantifica la diferencia entre lo que la red predice y la respuesta correcta que observamos en los datos empíricos. El proceso de aprendizaje consiste en ajustar los parámetros del modelo paso a paso para descender por la "superficie" topológica de esta función hasta encontrar su punto mínimo, lo que equivale a reducir las equivocaciones al máximo posible.

Para saber exactamente cómo ajustar cada uno de los parámetros, el modelo utiliza el algoritmo de retropropagación (backpropagation) combinado con el método algorítmico de descenso del gradiente. Después de hacer una predicción y evaluar su error, el sistema viaja "hacia atrás" a través de sus capas. Utilizando derivadas parciales (la regla de la cadena), determina matemáticamente cómo contribuyó cada peso individual al error final. Esta información, conocida como el gradiente, actúa como una brújula que indica en qué dirección y proporción debe modificarse cada conexión para mejorar. Al repetir este ciclo con miles o millones de ejemplos, la red ajusta sus pesos gradualmente y "aprende" a extraer los patrones subyacentes en la información.

Redes neuronales profundas[editar | editar código]

En teoría, una red neuronal artificial con una sola capa oculta puede aproximar cualquier función. Sin embargo, en la práctica suele requerir un número inviable de neuronas para resolver problemas complejos.

Una red neuronal se considera «profunda» cuando, entre la entrada y la salida, incorpora múltiples capas ocultas consecutivas. La verdadera ventaja de la profundidad es la eficiencia arquitectónica: permite que el modelo aprenda representaciones jerárquicas de los datos. En lugar de intentar comprender toda la información de golpe, la red descompone el problema en niveles de abstracción crecientes y manejables.

De forma intuitiva, las primeras capas de la red actúan como filtros básicos que detectan características muy simples y locales; por ejemplo, cambios bruscos de valor, bordes o tendencias elementales en un conjunto de datos. A medida que la señal avanza, las capas intermedias combinan estos elementos básicos para formar patrones más elaborados, hasta llegar a las capas finales, que toman decisiones basadas en conceptos de alto nivel. Este proceso de síntesis paulatina es lo que permite a las redes profundas dominar tareas donde la información es densa y está llena de ruido, como el reconocimiento visual, la traducción de textos o la modelización de dinámicas complejas a lo largo del tiempo.

La importancia de las redes neurales cayó durante un tiempo con el desarrollo de los vectores de soporte y clasificadores lineales, pero volvió a surgir a finales de la década de 2000 con la llegada del aprendizaje profundo. Desde la década de 2010, los avances tanto en algoritmos de aprendizaje automático como en hardware informático han dado lugar a métodos más eficientes para entrenar redes neuronales profundas que contienen muchas capas de unidades ocultas no lineales.[1] En 2019, las unidades de procesamiento gráfico (GPU), a menudo con mejoras específicas de IA, habían desplazado a las CPU como método dominante para entrenar IA comercial en la nube a gran escala.[2] OpenAI calculó la computación de hardware utilizada en los mayores proyectos de aprendizaje profundo desde AlexNet (2012) hasta AlphaZero (2017), y descubrió un aumento de 300 000 veces en la cantidad de computación necesaria, con una línea de tendencia de tiempo de duplicación de 3,4 meses.[3][4]

Herramientas de software para redes neuronales artificiales[editar | editar código]

El diseño y entrenamiento práctico de estos modelos no suele realizarse programando las ecuaciones matemáticas y derivadas desde cero. En su lugar, la comunidad científica e industrial confía en entornos de trabajo (frameworks) de código abierto altamente especializados, siendo TensorFlow y PyTorch los más prominentes en la actualidad. La característica revolucionaria de estos paquetes de software es su capacidad de «diferenciación automática»: el investigador se limita a definir la estructura de la red y el flujo de los datos, y el programa computa por sí mismo, de forma exacta y eficiente, todos los gradientes necesarios para que el algoritmo de retropropagación funcione.

Además de abstraer la complejidad matemática, estas herramientas están integradas con los controladores de hardware moderno. El entrenamiento de una red profunda exige ejecutar millones de multiplicaciones de matrices de forma continua. Dado que estas operaciones son independientes entre sí, los frameworks derivan el esfuerzo computacional a Unidades de Procesamiento Gráfico (GPU) o Unidades de Procesamiento Tensorial (TPU), diseñadas específicamente para el cálculo masivo en paralelo. Esta aceleración por hardware es lo que ha permitido que modelos que tardarían años en entrenarse en un procesador tradicional (CPU) puedan estar listos en cuestión de horas o días.

Métodos de entrenamiento para redes neuronales profundas[editar | editar código]

Evaluación del rendimiento[editar | editar código]

Para evaluar el verdadero poder predictivo de una red neuronal, es crucial medir su desempeño utilizando datos que el modelo no ha visto durante su entrenamiento. Por esta razón, la muestra disponible se divide típicamente en subconjuntos disjuntos: un conjunto de entrenamiento (para ajustar los parámetros) y un conjunto de prueba (reservado exclusivamente para medir la precisión fuera de la muestra). Si un modelo se ajusta casi a la perfección a los datos de entrenamiento pero fracasa en el conjunto de prueba, se dice que sufre de '''sobreajuste''' (''overfitting''); es decir, ha memorizado el ruido o las particularidades idiosincrásicas de esa muestra específica en lugar de capturar la relación estructural subyacente.

La métrica específica utilizada para cuantificar este rendimiento depende de la naturaleza del problema. Para estimaciones continuas, se emplean indicadores que miden la magnitud del error residual, como el Error Cuadrático Medio (MSE) o el Error Absoluto Medio (MAE). En problemas de clasificación discreta, se prefieren métricas como la exactitud (''accuracy''), la precisión o el área bajo la curva ROC. Adicionalmente, los analistas suelen separar un tercer conjunto de «validación» para afinar los parámetros estructurales de la red (como el número de capas o neuronas) sin contaminar ni sesgar el conjunto de prueba final.

Normalización e inicialización[editar | editar código]

La escala numérica de los datos de entrada tiene un impacto crítico en la estabilidad y velocidad de convergencia del modelo. Si las variables independientes presentan magnitudes drásticamente diferentes (por ejemplo, una oscila entre 0 y 1, y otra entre 10 000 y 50 000), la superficie de optimización se distorsiona geométricamente, dificultando que el algoritmo encuentre el mínimo de forma eficiente. Para evitar esto, se aplica un proceso de '''normalización''' o estandarización previa, típicamente transformando todas las entradas para que tengan media cero y varianza unitaria. Esto garantiza que todas las variables contribuyan equitativamente a la actualización de los pesos durante las primeras etapas del entrenamiento.

De manera análoga, la configuración de los pesos internos antes de comenzar el entrenamiento —la '''inicialización'''— es fundamental. Si los pesos iniciales son nulos o excesivamente grandes, la señal matemática que atraviesa las capas puede colapsar hacia cero o crecer exponencialmente, paralizando el proceso de aprendizaje (un fenómeno conocido como desvanecimiento o explosión del gradiente). Las técnicas modernas, como la inicialización de Xavier o de He, resuelven este problema extrayendo los pesos iniciales de distribuciones de probabilidad específicas, cuya varianza se calibra en función del número de conexiones de cada capa para mantener una señal estable en toda la arquitectura profunda.

Regularización[editar | editar código]

La regularización agrupa una serie de técnicas matemáticas diseñadas específicamente para combatir el sobreajuste y forzar al modelo a ser más generalizable. Una de las estrategias más sólidas, estrechamente relacionada con los modelos lineales penalizados, consiste en añadir un término de castigo a la función de pérdida. Las '''penalizaciones L1 y L2''' (equivalentes a las regularizaciones tipo Lasso y Ridge) imponen un costo matemático por tener pesos excesivamente grandes. Esto incentiva a la red a distribuir la importancia entre múltiples conexiones y a "apagar" o minimizar aquellas que aportan poca información predictiva, favoreciendo la parsimonia del modelo final.

En las arquitecturas profundas también se emplean técnicas estructurales únicas como el ''Dropout'' (abandono aleatorio). Durante cada iteración del entrenamiento, esta técnica desactiva temporalmente una fracción aleatoria de las neuronas, obligando al resto de la red a reconfigurarse y extraer la información sin depender excesivamente de una única ruta de variables. Otra técnica indispensable es la '''parada temprana''' (''early stopping''), que consiste en monitorizar el error en el conjunto de validación y detener el cómputo algorítmico en el momento exacto en que dicho error deja de descender y comienza a aumentar, evitando así que el modelo comience a memorizar ruido.

Algoritmos de optimización[editar | editar código]

Aunque el método clásico de descenso del gradiente provee la base teórica para minimizar errores, resulta ineficiente e inestable cuando se procesan bases de datos masivas. Por ello, la práctica estándar exige el uso del '''Descenso de Gradiente Estocástico''' (SGD) o sus variantes por "mini-lotes" (''mini-batch''). En lugar de calcular el error promediando la totalidad de los datos para dar un único paso de ajuste, el algoritmo estima el gradiente utilizando pequeñas submuestras aleatorias en cada iteración. Esto introduce un ruido estadístico beneficioso en la trayectoria de optimización que ayuda al modelo a escapar de mínimos locales subóptimos, acelerando además exponencialmente el tiempo de procesamiento.

Para refinar esta convergencia, se han desarrollado algoritmos de optimización adaptativos. El estándar de facto actual en la industria es '''Adam''' (''Adaptive Moment Estimation''). Estos métodos no solo actualizan los parámetros con el gradiente inmediato, sino que incorporan un concepto de "inercia" o momento, promediando los gradientes pasados para suavizar la trayectoria. Más importante aún, ajustan dinámicamente la «tasa de aprendizaje» (el tamaño de la zancada o paso algorítmico) de forma individual para cada peso de la red, logrando convergencias mucho más rápidas y robustas frente a topologías de error complejas.

Aprendizaje por refuerzo profundo[editar | editar código]

Fundamentos del aprendizaje por refuerzo[editar | editar código]

El aprendizaje por refuerzo es un paradigma computacional centrado en la toma de decisiones secuenciales bajo incertidumbre. A diferencia del aprendizaje supervisado, donde el modelo aprende de un conjunto estático de datos con respuestas correctas, aquí un «agente» autónomo aprende interactuando dinámicamente con un entorno. En cada paso temporal, el agente observa el estado actual del sistema, ejecuta una acción y, como consecuencia, el entorno transita a un nuevo estado y emite una señal de recompensa (positiva o negativa). El objetivo matemático del algoritmo es descubrir una estrategia o «política» de actuación que maximice la suma total de recompensas futuras descontadas a lo largo del tiempo.

Cuando el entorno es abrumadoramente complejo y el número de estados posibles es inabarcable —como ocurre en la navegación de vehículos autónomos o en juegos de tablero complejos—, los métodos tabulares tradicionales colapsan. Es aquí donde surge el aprendizaje por refuerzo profundo (''Deep Reinforcement Learning''). Al integrar redes neuronales profundas, el agente adquiere la capacidad de generalizar y estimar el valor de estados que nunca ha visitado exactamente, permitiéndole operar en entornos con espacios de estado continuos o de muy alta dimensionalidad.

Algoritmos basados en Q-Learning[editar | editar código]

Una de las familias de algoritmos más influyentes en este campo se basa en la estimación de la función de valor, siendo el ''Deep Q-Network'' (DQN) su máximo exponente. En lugar de intentar deducir directamente qué acción tomar, el modelo se enfoca en calcular el "valor esperado" a largo plazo de cada acción posible dado un estado particular. La red neuronal actúa como un aproximador de esta métrica: recibe como entrada la representación del estado actual y devuelve como salida una estimación de la utilidad futura para cada acción disponible.

Durante la fase de exploración, el agente elige sus acciones basándose en estas estimaciones y actualiza las predicciones de la red neuronal midiendo la diferencia temporal entre el valor que esperaba obtener y la recompensa real que observó tras actuar. A medida que el entrenamiento avanza y el error de predicción se minimiza, la política de decisión óptima surge de manera natural: el agente simplemente debe seleccionar sistemáticamente la acción que la red neuronal evalúe con el mayor rendimiento esperado en cada momento.

Algoritmos basados en gradiente de política[editar | editar código]

Como alternativa a la estimación de valores, los algoritmos de gradiente de política (''Policy Gradient'') optimizan la estrategia de decisión de manera directa. En estas arquitecturas, la red neuronal no estima utilidades, sino que parametriza una distribución de probabilidad sobre el conjunto de acciones posibles. Dada una observación del entorno, el modelo sugiere qué probabilidad hay de que cada acción sea la óptima. Esta formulación probabilística es especialmente poderosa porque permite al agente aprender estrategias estocásticas, donde la aleatoriedad calculada es matemáticamente superior a una decisión puramente determinista, y facilita enormemente el control de sistemas con rangos de acción continuos (como la aceleración precisa de un motor).

El entrenamiento procede ajustando los parámetros de la red mediante ascensos por el gradiente de la recompensa esperada. Intuitivamente, si el agente toma una decisión y la trayectoria posterior resulta en una recompensa alta, el algoritmo actualiza los pesos de la red para aumentar la probabilidad de tomar esa misma acción en situaciones futuras similares. Variantes modernas y altamente estables de este enfoque, como la Optimización de Política Próxima (PPO), dominan actualmente el estado del arte debido a su robustez y a que limitan matemáticamente qué tan drásticamente puede cambiar la política en una sola iteración, evitando que el modelo desaprenda comportamientos útiles.

Modelos generativos profundos[editar | editar código]

Redes generativas antagónicas[editar | editar código]

Las Redes Generativas Antagónicas (GAN, por sus siglas en inglés) representan una aplicación de la teoría de juegos al aprendizaje profundo. Su estructura consta de dos redes neuronales distintas, el «Generador» y el «Discriminador», que se entrenan simultáneamente en un juego de suma cero. El Generador toma un vector de ruido aleatorio y aplica transformaciones matemáticas para sintetizar datos artificiales (como imágenes o series temporales) que parezcan genuinos. Por su parte, el Discriminador actúa como un auditor, recibiendo tanto muestras reales de la base de datos como las falsificaciones del Generador, con el objetivo de clasificarlas correctamente.

Ambas redes mejoran iterativamente a costa de su adversario. Cuando el Discriminador identifica exitosamente un dato sintético, el Generador utiliza esa información (a través de la retropropagación del gradiente) para ajustar sus parámetros y crear falsificaciones más sofisticadas en la siguiente ronda. El equilibrio teórico de este sistema se alcanza cuando el Generador replica tan perfectamente la distribución estadística de los datos originales que el Discriminador se vuelve incapaz de diferenciar la realidad de la simulación, viéndose forzado a adivinar con un 50% de probabilidad.

Otras arquitecturas[editar | editar código]

Más allá de los modelos antagónicos, existen otras arquitecturas generativas de relevancia. Los Autocodificadores Variacionales (VAE) abordan la generación de datos desde una perspectiva de inferencia probabilística. Comprimen la información en un espacio latente estructurado donde los datos se representan como distribuciones de probabilidad en lugar de puntos fijos. Esto permite a los investigadores muestrear y manipular este espacio para generar variaciones suaves y lógicas de los datos originales, siendo muy útiles para la imputación de valores faltantes o la detección de anomalías.

Recientemente, los Modelos de Difusión (''Diffusion Models'') han revolucionado la generación de contenido complejo. Su funcionamiento se basa en un proceso termodinámico simulado: primero, destruyen lentamente la estructura de los datos reales añadiendo ruido gaussiano paso a paso hasta que solo queda estática pura; luego, una red neuronal profunda aprende a revertir este proceso de degradación. Al dominar esta "des-difusión", el modelo es capaz de tomar un vector de ruido aleatorio y esculpirlo gradualmente hasta generar datos estructurados y de alta fidelidad, superando en muchas métricas a las arquitecturas generativas previas.

Véase también[editar | editar código]

Referencias[editar | editar código]

  1. «Deep Neural Networks for Acoustic Modeling in Speech Recognition». Consultado el 23 de octubre de 2015. 
  2. «GPUs Continue to Dominate the AI Accelerator Market for Now» (en English). Consultado el 11 de junio de 2020. 
  3. «Application with Machine Learning Integration». Consultado el 18 de noviembre de 2020. 
  4. Ray, Tiernan. «AI is changing the entire nature of compute» (en English). Consultado el 11 de junio de 2020. 

Enlaces externos[editar | editar código]