Softmax Function/es: Difference between revisions
(Force re-parse after Math source-mode rollout (v1.2.0)) Tags: ci-deploy Reverted |
([deploy-bot] Deploy from CI (8c92aeb)) Tags: ci-deploy Manual revert |
||
| (One intermediate revision by the same user not shown) | |||
| Line 103: | Line 103: | ||
[[Category:Machine Learning]] | [[Category:Machine Learning]] | ||
[[Category:Introductory]] | [[Category:Introductory]] | ||
Latest revision as of 07:09, 24 April 2026
| Article | |
|---|---|
| Topic area | Machine Learning |
| Difficulty | Introductory |
La funcion softmax (tambien llamada funcion exponencial normalizada) es una funcion matematica que convierte un vector de numeros reales (logits) en una distribucion de probabilidad. Es la activacion de salida estandar para la clasificacion multiclase en redes neuronales y desempena un papel central en modelos que van desde la regresion logistica hasta los grandes modelos de lenguaje.
Definicion
Dado un vector de logits $ \mathbf{z} = (z_1, z_2, \dots, z_K) $ para $ K $ clases, la funcion softmax produce:
- $ \sigma(\mathbf{z})_k = \frac{e^{z_k}}{\sum_{j=1}^{K} e^{z_j}}, \qquad k = 1, \dots, K $
La salida satisface dos propiedades que la convierten en una distribucion de probabilidad valida:
- $ \sigma(\mathbf{z})_k > 0 $ para todo $ k $ (dado que la funcion exponencial es siempre positiva).
- $ \sum_{k=1}^{K} \sigma(\mathbf{z})_k = 1 $ (por construccion).
Intuicion
La funcion softmax amplifica las diferencias entre los logits. Un logit mayor que los demas recibe una proporcion desproporcionadamente grande de la masa de probabilidad porque la funcion exponencial crece de forma superlineal. Por ejemplo:
| Logits | Salida softmax |
|---|---|
| $ (2.0,\; 1.0,\; 0.1) $ | $ (0.659,\; 0.242,\; 0.099) $ |
| $ (5.0,\; 1.0,\; 0.1) $ | $ (0.993,\; 0.005,\; 0.002) $ |
A medida que la brecha entre el logit mas grande y los demas aumenta, la salida se aproxima a un vector one-hot. Este comportamiento de "el ganador se lleva la mayor parte" hace que softmax sea adecuada para la clasificacion donde una unica clase debe dominar.
Parametro de temperatura
Un parametro de temperatura $ T > 0 $ controla la nitidez de la distribucion:
- $ \sigma(\mathbf{z}; T)_k = \frac{e^{z_k / T}}{\sum_{j=1}^{K} e^{z_j / T}} $
- $ T \to 0 $: La distribucion colapsa en un vector one-hot seleccionando el argmax — equivalente a una decision rigida.
- $ T = 1 $: Softmax estandar.
- $ T \to \infty $: La distribucion se aproxima a la uniforme — todas las clases se vuelven igualmente probables.
El escalado por temperatura se utiliza ampliamente en la destilacion de conocimiento (Hinton et al., 2015), donde una distribucion "suave" de un modelo maestro proporciona una senal de entrenamiento mas rica que las etiquetas rigidas. Tambien se utiliza para controlar la aleatoriedad en la generacion de texto a partir de modelos de lenguaje.
Estabilidad numerica
Una implementacion ingenua de softmax puede desbordarse cuando los logits son grandes (por ejemplo, $ e^{1000} $ es infinito en punto flotante). La solucion estandar es restar el logit maximo:
- $ \sigma(\mathbf{z})_k = \frac{e^{z_k - m}}{\sum_{j=1}^{K} e^{z_j - m}}, \qquad m = \max_j z_j $
Esto es matematicamente equivalente (la constante se cancela) pero asegura que el exponente mas grande sea $ e^0 = 1 $, previniendo el desbordamiento. Todos los principales frameworks de aprendizaje profundo implementan esta version estabilizada automaticamente.
Relacion con la sigmoide
Para el caso especial de $ K = 2 $ clases, la funcion softmax se reduce a la funcion sigmoide (logistica). Si se define $ z = z_1 - z_2 $, entonces:
- $ \sigma(\mathbf{z})_1 = \frac{e^{z_1}}{e^{z_1} + e^{z_2}} = \frac{1}{1 + e^{-z}} = \sigma_{\mathrm{sigmoid}}(z) $
Por esto, los clasificadores binarios tipicamente utilizan una unica neurona de salida con activacion sigmoide en lugar de dos neuronas con softmax — son matematicamente equivalentes.
Gradiente
El jacobiano de la funcion softmax con respecto a su entrada es:
- $ \frac{\partial \sigma_k}{\partial z_j} = \sigma_k (\delta_{kj} - \sigma_j) $
donde $ \delta_{kj} $ es la delta de Kronecker. Cuando se combina con la perdida de entropia cruzada, el gradiente se simplifica a $ \hat{y}_k - y_k $, lo que es computacionalmente eficiente y numericamente estable.
Uso en clasificacion
En un flujo de clasificacion tipico:
- Una red neuronal produce logits crudos $ \mathbf{z} $ a partir de su capa lineal final.
- Softmax convierte los logits en probabilidades: $ \hat{\mathbf{y}} = \sigma(\mathbf{z}) $.
- La clase predicha es $ \hat{c} = \arg\max_k \hat{y}_k $.
- El entrenamiento utiliza la perdida de entropia cruzada aplicada a la distribucion predicha y las etiquetas verdaderas.
En la practica, softmax y la entropia cruzada se calculan conjuntamente por estabilidad numerica (la formulacion log-softmax), y el argmax en el momento de la inferencia puede aplicarse directamente a los logits sin calcular softmax en absoluto.
Mas alla de la clasificacion
Softmax aparece en muchos contextos mas alla de la capa de salida:
- Mecanismos de atencion: Softmax normaliza las puntuaciones de alineamiento en pesos de atencion en la arquitectura Transformer.
- Aprendizaje por refuerzo: Softmax sobre las estimaciones de valor de accion produce una politica estocastica (exploracion de Boltzmann).
- Modelos de mezcla: Softmax parametriza los coeficientes de mezcla en arquitecturas de mezcla de expertos.
Vease tambien
Referencias
- Bishop, C. M. (2006). Pattern Recognition and Machine Learning. Springer, Section 4.3.4.
- Goodfellow, I., Bengio, Y. and Courville, A. (2016). Deep Learning. MIT Press, Section 6.2.2.3.
- Hinton, G., Vinyals, O. and Dean, J. (2015). "Distilling the Knowledge in a Neural Network". arXiv:1503.02531.
- Bridle, J. S. (1990). "Probabilistic Interpretation of Feedforward Classification Network Outputs". Neurocomputing.