En las redes neuronales artificiales, la función de activación de un nodo es una función que calcula la salida del nodo basándose en sus entradas individuales y sus pesos. Los problemas no triviales pueden resolverse utilizando solo unos pocos nodos si la función de activación es no lineal. Las funciones de activación son un componente central de las redes neuronales, determinando cómo se propagan las señales a través de las capas y permitiendo que la red aprenda patrones complejos en los datos. Se utilizan en prácticamente todos los modelos modernos de aprendizaje automático, incluidos los sistemas de aprendizaje profundo como los modelos de lenguaje grandes y los transformadores.
Las funciones de activación pueden clasificarse por sus propiedades matemáticas, como la no linealidad, el rango y la diferenciabilidad, que influyen en la estabilidad y eficiencia del entrenamiento. Con los años, los investigadores han desarrollado numerosas funciones de activación, cada una con ventajas y compensaciones específicas. La elección de la función de activación puede afectar significativamente el rendimiento del modelo, la velocidad de convergencia y la capacidad de evitar problemas como los gradientes que se desvanecen.
Desarrollo histórico
El concepto de funciones de activación se remonta a los primeros modelos de neuronas artificiales, como el perceptrón introducido por Frank Rosenblatt en 1958, que utilizaba una activación de paso binario. Sin embargo, la función de paso no es diferenciable, lo que limita su uso en la optimización basada en gradientes. En la década de 1980, la función sigmoide logística se volvió popular porque es suave y diferenciable, lo que permite la retropropagación. En 1986, David Rumelhart, Geoffrey Hinton y Ronald Williams popularizaron la retropropagación, que depende de funciones de activación diferenciables.
La década de 2010 vio un cambio hacia las unidades lineales rectificadas (ReLU), que ayudaron a mitigar el problema de los gradientes que se desvanecen. ReLU se utilizó en el modelo de visión por computadora AlexNet de 2012, que ganó la competencia ImageNet, y en el modelo ResNet de 2015, que permitió el entrenamiento de redes muy profundas. En 2018, se introdujo la Unidad Lineal de Error Gaussiano (GELU) y se utilizó en el modelo BERT, una arquitectura fundamental de transformador para el procesamiento del lenguaje natural. Más recientemente, Swish (también conocida como SiLU) fue propuesta en 2017 por investigadores de Google, ofreciendo una alternativa suave y no monótona.
No linealidad y aproximación universal
Una propiedad clave de las funciones de activación es la no linealidad. Cuando la función de activación es no lineal, se puede demostrar que una red neuronal de dos capas es un aproximador universal de funciones, lo que significa que puede aproximar cualquier función continua en un dominio compacto con precisión arbitraria. Esto se conoce como el Teorema de Aproximación Universal. La función de activación identidad no satisface esta propiedad; cuando múltiples capas usan la función de activación identidad, toda la red es equivalente a un modelo de una sola capa, perdiendo la capacidad de representar funciones complejas. Las funciones de activación no lineales permiten que las redes neuronales aprendan relaciones no lineales en los datos, lo cual es esencial para tareas como el reconocimiento de imágenes, el procesamiento del habla y la comprensión del lenguaje.
Rango y estabilidad del entrenamiento
Las funciones de activación tienen diferentes rangos, lo que afecta el entrenamiento basado en gradientes. Cuando el rango de la función de activación es finito, los métodos de entrenamiento basados en gradientes tienden a ser más estables, porque las presentaciones de patrones afectan significativamente solo a pesos limitados. Por ejemplo, la función sigmoide produce valores entre 0 y 1, y la función tanh produce valores entre -1 y 1. Cuando el rango es infinito, el entrenamiento es generalmente más eficiente porque las presentaciones de patrones afectan significativamente a la mayoría de los pesos, pero se suelen necesitar tasas de aprendizaje más pequeñas para evitar inestabilidad. ReLU tiene un rango positivo no acotado, lo que puede llevar a un aprendizaje más rápido pero también a problemas potenciales como neuronas muertas.
Diferenciabilidad y optimización basada en gradientes
Las funciones de activación continuamente diferenciables son deseables para permitir métodos de optimización basados en gradientes, ya que permiten el cálculo de gradientes para la retropropagación. ReLU no es continuamente diferenciable en cero, pero aún es posible usar subgradientes o definir la derivada en cero como 0 o 1. La función de activación de paso binario no es diferenciable en 0 y se diferencia a 0 para todos los demás valores, por lo que los métodos basados en gradientes no pueden progresar con ella. Las funciones de activación no saturadas, como ReLU, pueden ser mejores que las saturadas porque son menos propensas a sufrir el problema de gradientes que se desvanecen, donde los gradientes se vuelven extremadamente pequeños en redes profundas.
Funciones de activación comunes
Sigmoide (logística)
La función sigmoide, también conocida como función logística, se define como \( \sigma(x) = \frac{1}{1 + e^{-x}} \). Produce valores entre 0 y 1, lo que la hace útil para la clasificación binaria y como capa de salida para probabilidades. Sin embargo, sufre de saturación en valores extremos, lo que lleva a gradientes que se desvanecen. La sigmoide se utilizó en el modelo de reconocimiento de voz de 2012 desarrollado por Hinton y colaboradores.
Tanh (tangente hiperbólica)
La función tanh se define como \( \tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} \), y produce valores entre -1 y 1. Está centrada en cero, lo que a menudo facilita la optimización en comparación con la sigmoide. Tanh se usa comúnmente en redes neuronales recurrentes y como activación en capas ocultas.
ReLU (unidad lineal rectificada)
ReLU se define como \( \text{ReLU}(x) = \max(0, x) \). Es computacionalmente eficiente y ayuda a mitigar los gradientes que se desvanecen, ya que su derivada es 1 para entradas positivas. Sin embargo, puede sufrir de neuronas muertas, donde las unidades se vuelven permanentemente inactivas. ReLU se utilizó en AlexNet y ResNet.
Leaky ReLU y ReLU paramétrica
Leaky ReLU permite una pequeña pendiente positiva para entradas negativas, como \( \text{LeakyReLU}(x) = \max(0.01x, x) \), para evitar neuronas muertas. La ReLU paramétrica (PReLU) aprende el parámetro de pendiente durante el entrenamiento, ofreciendo más flexibilidad.
GELU (unidad lineal de error gaussiano)
GELU es una aproximación suave de ReLU, definida como \( \text{GELU}(x) = x \cdot \Phi(x) \), donde \( \Phi \) es la función de distribución acumulativa de la distribución normal estándar. Se utilizó en BERT y muchos transformadores modernos, proporcionando gradientes más suaves y a menudo un mejor rendimiento.
Swish / SiLU
Swish, también conocida como SiLU (unidad lineal sigmoide), se define como \( \text{Swish}(x) = x \cdot \sigma(x) \). Es suave y no monótona, lo que ha demostrado mejorar el rendimiento en algunas redes profundas. Swish fue propuesta por investigadores de Google en 2017.
Softplus
Softplus es una aproximación suave de ReLU, definida como \( \text{softplus}(x) = \ln(1 + e^x) \). Tiene un rango estrictamente positivo, lo que la hace adecuada para predecir varianzas en autoencoders variacionales.
Detalles matemáticos
Las funciones de activación más comunes se pueden dividir en tres categorías: funciones de cresta, funciones radiales y funciones de pliegue. Una función de activación \( f \) es saturada si \( \lim_{|v| \to \infty} |\nabla f(v)| = 0 \), y no saturada si el límite no es cero. Las funciones no saturadas, como ReLU, son menos propensas a gradientes que se desvanecen.
Funciones de activación de cresta
Las funciones de cresta son funciones multivariadas que actúan sobre una combinación lineal de las variables de entrada. Ejemplos incluyen:
- Activación lineal: \( \phi(\mathbf{v}) = a + \mathbf{v}'\mathbf{b} \)
- Activación ReLU: \( \phi(\mathbf{v}) = \max(0, a + \mathbf{v}'\mathbf{b}) \)
- Activación de Heaviside: \( \phi(\mathbf{v}) = 1_{a + \mathbf{v}'\mathbf{b} > 0} \)
- Activación logística: \( \phi(\mathbf{v}) = (1 + \exp(-a - \mathbf{v}'\mathbf{b}))^{-1} \)
En redes neuronales inspiradas biológicamente, la función de activación suele ser una abstracción que representa la tasa de disparo de potenciales de acción en la célula. En su forma más simple, esta función es binaria, lo que significa que la neurona está disparando o no. Las neuronas no pueden disparar más rápido que cierta tasa, lo que motiva funciones de activación sigmoide cuyo rango de salida está confinado a un intervalo finito.
Funciones de activación radiales
Una clase especial de funciones de activación conocidas como funciones de base radial (RBF) se utilizan en redes RBF. Estas funciones de activación pueden tomar muchas formas, pero generalmente se encuentran como funciones gaussianas: \( \phi(\mathbf{v}) = \exp(-\|\mathbf{v} - \mathbf{c}\|^2 / (2\sigma^2)) \), donde \( \mathbf{c} \) es el centro y \( \sigma \) controla el ancho. Las redes RBF utilizan estos campos receptivos locales para la aproximación de funciones.
Consideraciones prácticas
Al elegir una función de activación, los profesionales consideran factores como el costo computacional, el comportamiento del gradiente y la tarea específica. Para redes profundas, ReLU y sus variantes suelen preferirse debido a su eficiencia y capacidad para evitar gradientes que se desvanecen. Para capas de salida, la sigmoide se usa para clasificación binaria, softmax para clasificación multiclase y activación lineal para regresión. En los transformadores, GELU se usa comúnmente en capas de avance, como se ve en modelos como BERT y GPT. La elección de la función de activación también puede interactuar con otras técnicas como normalización por lotes y abandono.
Conclusión
Las funciones de activación son fundamentales para el funcionamiento de las redes neuronales, proporcionando la no linealidad que permite aprender patrones complejos. Desde las primeras funciones de paso hasta variantes suaves modernas como GELU y Swish, han evolucionado para abordar desafíos en el entrenamiento de modelos profundos. Comprender sus propiedades matemáticas ayuda a investigadores e ingenieros a seleccionar funciones apropiadas para aplicaciones específicas, contribuyendo al éxito de los sistemas de inteligencia artificial en diversos dominios.