Función SoftMax: Activación para la clasificación
Índice de contenidos
- Puntos clave
- La fórmula y su interpretación
- Un ejemplo numérico: de logits a probabilidades
- Softmax y entropía cruzada: el par inseparable
- Aplicaciones en clasificación de imágenes, texto y voz
- Ventajas y limitaciones
- Preguntas frecuentes
- ¿Por qué Softmax usa la función exponencial y no otra transformación?
- ¿Cuál es la diferencia entre Softmax y la función sigmoide?
- Conclusión
- Fuentes
Actualizado: 2026-07-17
La función Softmax transforma los logits de salida de una red neuronal en una distribución de probabilidad que suma 1. Es la activación estándar en clasificación multiclase, desde clasificadores de imágenes hasta el vocabulario de los modelos de lenguaje como GPT.
La función Softmax es la función de activación estándar para la capa de salida en problemas de clasificación multiclase: transforma un vector de valores arbitrarios (llamados logits) en una distribución de probabilidad donde todos los valores son positivos y suman exactamente 1. Es la base matemática de todo modelo que emite distribuciones sobre categorías discretas, desde clasificadores de imágenes hasta modelos de lenguaje. La misma explicación está disponible en inglés.
Puntos clave
- Softmax convierte un vector de K logits en K probabilidades que suman 1.
- La función amplifica las diferencias: el logit más alto recibe desproporcionadamente más probabilidad.
- Se empareja siempre con la función de pérdida de entropía cruzada durante el entrenamiento.
- No es adecuada para clasificación binaria (usa sigmoide) ni para regresión (usa función lineal).
- En modelos de lenguaje, Softmax sobre el vocabulario es la operación final que produce la distribución de probabilidad sobre el siguiente token: GPT-3 aplica esta operación sobre más de 50.000 tokens posibles en cada paso de generación.
La fórmula y su interpretación
Para un vector de entrada z = (z₁, z₂, …, z_K) de K logits, la función Softmax produce el vector de probabilidades σ donde:
$$\sigma(z_j) = \frac{e^{z_j}}{\sum_{k=1}^{K} e^{z_k}}, \quad j = 1, \ldots, K$$
Propiedades inmediatas:
- Positividad: exponenciar siempre produce valores positivos, independientemente del signo del logit.
- Normalización: la división por la suma garantiza que el vector resultante sea una distribución de probabilidad válida.
- Monotonía relativa: si zᵢ > zⱼ, entonces σ(zᵢ) > σ(zⱼ), es decir, el orden de preferencia entre clases se preserva.
- Amplificación de diferencias: pequeñas diferencias en los logits se amplifican en la distribución de probabilidad, especialmente cuando los logits tienen magnitudes grandes.
La función no es lineal: la probabilidad de cada clase depende de todos los logits simultáneamente a través de la suma del denominador.
Un ejemplo numérico: de logits a probabilidades
Tomemos un clasificador de 3 clases (por ejemplo, «gato», «perro», «pájaro») que produce el vector de logits z = (2.0, 1.0, 0.1). Aplicando la fórmula anterior a cada componente se obtiene:
| Clase | Logit (z) | e^z | Probabilidad σ(z) |
|---|---|---|---|
| Gato | 2.0 | 7.39 | 0.66 (66%) |
| Perro | 1.0 | 2.72 | 0.24 (24%) |
| Pájaro | 0.1 | 1.11 | 0.10 (10%) |
Las tres probabilidades suman 1.00. Nótese la amplificación: una diferencia de solo 1.0 entre los logits de «gato» y «perro» se traduce en que «gato» recibe casi el triple de probabilidad. Si multiplicamos los tres logits por 3, es decir z = (6.0, 3.0, 0.3), la probabilidad de «gato» sube a 0.95 con los mismos datos relativos, lo que ilustra por qué la magnitud de los logits (no solo su orden) determina la confianza del modelo.

Softmax y entropía cruzada: el par inseparable
En la práctica, Softmax nunca se usa sola durante el entrenamiento: siempre va acompañada de la función de pérdida de entropía cruzada:
$$L = -\sum_{k=1}^{K} y_k \log(\sigma(z_k))$$
Donde y es el vector one-hot de la etiqueta real (un 1 en la clase correcta, 0 en el resto). Esta pérdida penaliza el modelo cuando asigna baja probabilidad a la clase correcta. La combinación Softmax + entropía cruzada tiene una propiedad matemática elegante: su gradiente respecto a los logits es simplemente σ(z) − y, lo que hace la retropropagación numéricamente estable y eficiente.
En la mayoría de frameworks de deep learning (PyTorch, TensorFlow/Keras), existe una función CrossEntropyLoss que combina internamente LogSoftmax con NLLLoss para mayor estabilidad numérica: evita el underflow que puede ocurrir al exponenciar logits muy negativos. La documentación oficial de PyTorch detalla esta implementación en su referencia de torch.nn.Softmax.
Aplicaciones en clasificación de imágenes, texto y voz
Clasificación de imágenes. La última capa de una CNN de clasificación (ResNet, EfficientNet, ViT) aplica Softmax sobre los K logits de salida, donde K es el número de clases. Un clasificador de ImageNet produce 1000 probabilidades con Softmax.
Modelos de lenguaje. GPT, BERT, y cualquier modelo autoregresivo aplica Softmax sobre un vocabulario de 30.000 a 100.000 tokens para producir la distribución sobre el siguiente token. La escala del denominador en estos modelos hace que la implementación eficiente (con técnicas como FlashAttention) sea crítica. Ver avances en NLP.
Clasificación de texto y voz. Análisis de sentimiento (positivo/negativo/neutro), clasificación de intención en sistemas de diálogo, identificación de idioma: todos usan Softmax en la capa de salida.
Ventajas y limitaciones
Ventajas:
- Produce probabilidades directamente interpretables, no solo scores arbitrarios.
- Su derivada combinada con entropía cruzada es numéricamente estable y computacionalmente simple.
- Compatible con calibración probabilística: un modelo bien entrenado puede producir probabilidades que se corresponden con frecuencias reales.
Limitaciones:
- No apta para clasificación binaria: para dos clases, la sigmoide es más eficiente (Softmax sobre dos logits es matemáticamente equivalente pero redundante).
- Exageración de diferencias: si los logits tienen magnitudes muy grandes, Softmax puede asignar casi toda la probabilidad a una clase, lo que genera predicciones de alta confianza que no siempre se corresponden con la realidad. Se mitiga con temperature scaling.
- No diseñada para clases múltiples simultáneas (multilabel): si una instancia puede pertenecer a varias clases a la vez, la función sigmoide por clase es la elección correcta, no Softmax.
Temperature scaling. Dividir los logits por una temperatura T antes de aplicar Softmax controla la «confianza» de las predicciones: T > 1 suaviza la distribución (más incertidumbre); T < 1 la agudiza. Esta técnica es fundamental en los modelos de lenguaje generativo para controlar la creatividad frente a la coherencia del texto generado.
Para ver el rol de Softmax en el contexto más amplio de funciones de activación, ver formulación matemática de redes neuronales artificiales y función lineal como función de activación. Para aplicaciones prácticas en clasificación de imágenes y visión, ver análisis de imágenes y visión computarizada.
Preguntas frecuentes
¿Por qué Softmax usa la función exponencial y no otra transformación?
Porque la exponencial garantiza tres propiedades a la vez: siempre es positiva (necesario para que el resultado sea una probabilidad), es monótona creciente (preserva el orden de los logits) y amplifica las diferencias grandes de forma suave y derivable. Otras funciones positivas existen, pero ninguna combina esas tres propiedades con un gradiente tan simple cuando se empareja con entropía cruzada.
¿Cuál es la diferencia entre Softmax y la función sigmoide?
La sigmoide calcula una probabilidad independiente para cada salida (útil en clasificación binaria o multilabel, donde las clases no compiten entre sí). Softmax calcula una distribución conjunta sobre K clases mutuamente excluyentes que siempre suma 1: las clases compiten por la misma masa de probabilidad.
Conclusión
La función Softmax es el puente entre la lógica interna de una red neuronal y la toma de decisiones interpretable: convierte números arbitrarios en probabilidades que suman exactamente 1. Su omnipresencia en clasificación multiclase y modelos de lenguaje la convierte en una función que cualquier practicante de deep learning debe entender a fondo. Conocer sus limitaciones, especialmente la sobreconfianza con logits grandes y la incompatibilidad con etiquetado múltiple, es tan importante como saber aplicarla correctamente.
Fuentes: [1] Softmax function (Wikipedia)[1], [2] CS231n: Linear classification, Softmax classifier (Stanford)[2], [3] torch.nn.Softmax (documentación oficial de PyTorch)[3], [4] Deep Learning, cap. 6: Deep Feedforward Networks (Goodfellow, Bengio y Courville)[4].