Softmax Function/es: Difference between revisions

    From Marovi AI
    ([deploy-bot] Deploy from CI (775ba6e))
    Tag: ci-deploy
     
    ([deploy-bot] Deploy from CI (8c92aeb))
    Tags: ci-deploy Manual revert
     
    (2 intermediate revisions by the same user not shown)

    Latest revision as of 07:09, 24 April 2026

    Languages: English | Español | 中文
    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:

    1. $ \sigma(\mathbf{z})_k > 0 $ para todo $ k $ (dado que la funcion exponencial es siempre positiva).
    2. $ \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:

    1. Una red neuronal produce logits crudos $ \mathbf{z} $ a partir de su capa lineal final.
    2. Softmax convierte los logits en probabilidades: $ \hat{\mathbf{y}} = \sigma(\mathbf{z}) $.
    3. La clase predicha es $ \hat{c} = \arg\max_k \hat{y}_k $.
    4. 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.