Yolo Vision Shenzhen
Shenzhen
Únete ahora
Glosario

Softmax

Explora la función Softmax en IA. Descubre cómo convierte los logits en probabilidades para la clasificación multiclase utilizando Ultralytics y redes neuronales.

Softmax es una función matemática fundamental en el campo de la inteligencia artificial, que sirve específicamente como paso final en muchos algoritmos de clasificación. Transforma un vector de números sin procesar, a menudo llamados logits, en un vector de probabilidades. Esta transformación garantiza que los valores de salida sean todos positivos y sumen exactamente uno, creando de manera efectiva una distribución de probabilidades válida. Debido a esta propiedad, Softmax es la función de activación estándar utilizada en la capa de salida de las redes neuronales diseñadas para la clasificación multiclase , donde el sistema debe elegir una sola categoría entre más de dos opciones mutuamente excluyentes.

La mecánica de Softmax

En un flujo de trabajo típico de aprendizaje profundo (DL), las capas de una red realizan complejas multiplicaciones y sumas de matrices. La salida de la capa final, antes de la activación, consiste en puntuaciones brutas conocidas como logits. Estos valores pueden oscilar entre el infinito negativo y el infinito positivo, lo que dificulta su interpretación directa como niveles de confianza.

Softmax aborda esto realizando dos operaciones principales:

  1. Exponenciación: calcula la exponencial de cada número introducido. Este paso garantiza que todos los valores sean no negativos (ya que $e^x$ siempre es positivo) y penaliza los valores que son significativamente inferiores al máximo, al tiempo que destaca las puntuaciones más altas.
  2. Normalización: suma estos valores exponenciales y divide cada exponencial individual por esta suma total. Este proceso de normalización escala los números para que representen partes de un todo, lo que permite a los desarrolladores interpretarlos como puntuaciones de confianza porcentuales.

Aplicaciones en el mundo real

La capacidad de generar probabilidades claras hace que Softmax sea indispensable en diversas industrias y tareas de aprendizaje automático (ML).

  • Clasificación de imágenes: En la visión por computadora, los modelos utilizan Softmax para categorizar imágenes. Por ejemplo, cuando el modelo de clasificación Ultralytics analiza una foto, puede generar puntuaciones para clases como «Golden Retriever», «Pastor alemán» y «Caniche». Softmax convierte estas puntuaciones en probabilidades (por ejemplo, 0,85, 0,10, 0,05), lo que indica una alta confianza en que la imagen contiene un Golden Retriever. Esto es crucial para aplicaciones que van desde la organización automatizada de fotos hasta el diagnóstico médico en IA en el sector sanitario.
  • Procesamiento del lenguaje natural (NLP): Softmax es el motor que hay detrás de la generación de texto en los grandes modelos de lenguaje (LLM). Cuando un modelo como Transformer genera una frase, predice la siguiente palabra (token) calculando una puntuación para cada palabra de su vocabulario. Softmax convierte estas puntuaciones en probabilidades, lo que permite al modelo seleccionar la siguiente palabra más probable, lo que permite una traducción automática fluida y una IA conversacional.
  • Aprendizaje por refuerzo: Los agentes en el aprendizaje por refuerzo suelen utilizar Softmax para seleccionar acciones. En lugar de elegir siempre la acción con el valor más alto, un agente puede utilizar las probabilidades para explorar diferentes estrategias, equilibrando la exploración y la explotación en entornos como el control robótico o los juegos.

Ejemplo de código Python

El siguiente ejemplo muestra cómo cargar un modelo de clasificación YOLO26 preentrenado y acceder a las puntuaciones de probabilidad generadas mediante Softmax.

from ultralytics import YOLO

# Load a pre-trained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")

# Run inference on a sample image
results = model("https://ultralytics.com/images/bus.jpg")

# The model applies Softmax internally. Access the top prediction:
# The 'probs' attribute contains the probability distribution.
top_prob = results[0].probs.top1conf.item()
top_class = results[0].names[results[0].probs.top1]

print(f"Predicted Class: {top_class}")
print(f"Confidence (Softmax Output): {top_prob:.4f}")

Distinguir Softmax de conceptos relacionados

Aunque Softmax es dominante en escenarios multiclase, es importante distinguirlo de otras funciones matemáticas utilizadas en el entrenamiento de modelos y el diseño de arquitecturas:

  • Sigmoide: La función sigmoide también escala valores entre 0 y 1, pero trata cada salida de forma independiente. Esto hace que la sigmoide sea ideal para la clasificación binaria (sí/no) o la clasificación multietiqueta en la que las clases no son mutuamente excluyentes (por ejemplo, una imagen puede contener tanto una «persona» como una «mochila»). Softmax obliga a que las probabilidades sumen uno, haciendo que las clases compitan entre sí.
  • ReLU (unidad lineal rectificada): ReLU se utiliza principalmente en las capas ocultas de una red para introducir no linealidad. A diferencia de Softmax, ReLU no limita las salidas a un rango específico (simplemente genera un cero para las entradas negativas y la propia entrada para las positivas ) y no genera una distribución de probabilidad.
  • Argmax: Mientras que Softmax proporciona las probabilidades para todas las clases, la función Argmax se utiliza a menudo en combinación para seleccionar el índice único con la mayor probabilidad. Softmax proporciona la confianza «blanda» , mientras que Argmax proporciona la decisión final «dura».

Integración avanzada

En los procesos modernos de aprendizaje automático, Softmax se calcula a menudo de forma implícita dentro de las funciones de pérdida. Por ejemplo, la pérdida de entropía cruzada combina Softmax y la log-verosimilitud negativa en un único paso matemático para mejorar la estabilidad numérica durante el entrenamiento. Plataformas como Ultralytics gestionan estas complejidades de forma automática, lo que permite a los usuarios entrenar modelos robustos sin tener que implementar manualmente estas operaciones matemáticas .

Únase a la comunidad Ultralytics

Únete al futuro de la IA. Conecta, colabora y crece con innovadores de todo el mundo

Únete ahora