Categorical Cross-Entropy/es

    From Marovi AI
    This page is a translated version of the page Categorical Cross-Entropy and the translation is 88% complete.
    Other languages:
    Article
    Topic area Loss Functions
    Prerequisites Softmax Function, Cross-Entropy Loss, KL Divergence


    Visión general

    La entropía cruzada categórica es la función de pérdida utilizada para entrenar clasificadores que deben asignar cada entrada a exactamente una de varias categorías mutuamente excluyentes. Mide la discrepancia entre una distribución de probabilidad predicha sobre las clases y la distribución verdadera, la cual, en el aprendizaje supervisado ordinario, se concentra en una única etiqueta correcta. Combinada con una capa de salida softmax, es el objetivo estándar para la clasificación multiclase en las redes neuronales modernas, incluidos clasificadores de imágenes, modelos de lenguaje y la mayoría de los transformadores preentrenados.

    La pérdida tiene dos interpretaciones complementarias. Desde el lado de la teoría de la información, equivale al número promedio de bits (o nats) necesarios para codificar las etiquetas verdaderas usando un código óptimo para la distribución predicha; minimizarla acerca la distribución predicha a la verdadera. Desde el lado estadístico, es la log-verosimilitud negativa de las etiquetas observadas bajo un modelo categórico, por lo que minimizar la entropía cruzada categórica equivale exactamente a la estimación de máxima verosimilitud. Estas dos perspectivas explican por qué la misma fórmula aparece en teoría de la información, estadística y aprendizaje profundo, y por qué tiene gradientes bien comportados que hacen práctica la optimización con descenso de gradiente estocástico.

    Intuición

    Imagine un modelo que, dada una fotografía, debe decidir si la imagen muestra un gato, un perro o un pájaro. El modelo emite una probabilidad para cada clase, como 0.7 para gato, 0.2 para perro y 0.1 para pájaro. Si la respuesta verdadera es "gato", una buena función de pérdida debería recompensar la alta probabilidad asignada a esa clase e ignorar las demás. La entropía cruzada categórica hace exactamente esto: toma el logaritmo negativo de la probabilidad asignada a la clase correcta. Probabilidades cercanas a uno producen pérdidas pequeñas, mientras que probabilidades cercanas a cero producen pérdidas arbitrariamente grandes, de modo que el modelo es fuertemente penalizado por equivocarse con confianza.

    La asimetría entre las predicciones confiadas-correctas y confiadas-incorrectas es la característica definitoria de la pérdida. Una predicción de 0.99 para la clase verdadera produce una pérdida de aproximadamente 0.01, mientras que una predicción de 0.01 para la clase verdadera produce una pérdida de aproximadamente 4.6. Este escalado logarítmico significa que el gradiente crece grande precisamente cuando el modelo está muy equivocado, proporcionando una señal correctiva fuerte al inicio del entrenamiento y suave cerca de la convergencia. El comportamiento contrasta marcadamente con el error cuadrático, cuyo gradiente se desvanece para predicciones confiadas y que puede saturarse cuando se combina con una salida softmax, ralentizando el aprendizaje.

    Formulación

    Sean $ K $ clases. Para un único ejemplo con etiqueta verdadera one-hot $ y \in \{0,1\}^K $ (es decir, exactamente una entrada es 1) y vector de probabilidad predicho $ \hat{y} \in [0,1]^K $ con $ \sum_k \hat{y}_k = 1 $, la entropía cruzada categórica es

    $ {\displaystyle L(y, \hat{y}) = -\sum_{k=1}^{K} y_k \log \hat{y}_k.} $

    Como $ y $ es one-hot, la suma se reduce a un único término $ -\log \hat{y}_{c} $, donde $ c $ es el índice de la clase verdadera. Para un conjunto de datos de $ N $ ejemplos independientes, el riesgo empírico es la media de las pérdidas por ejemplo,

    $ {\displaystyle \mathcal{L} = -\frac{1}{N}\sum_{i=1}^{N} \log \hat{y}^{(i)}_{c^{(i)}}.} $

    En la práctica, las probabilidades predichas provienen de una softmax aplicada a logits $ z \in \mathbb{R}^K $:

    $ {\displaystyle \hat{y}_k = \frac{\exp(z_k)}{\sum_{j=1}^{K} \exp(z_j)}.} $

    Sustituyendo y simplificando se obtiene la pérdida en términos de logits,

    $ {\displaystyle L(y, z) = -z_c + \log \sum_{j=1}^{K} \exp(z_j).} $

    El término del lado derecho es el log-sum-exp de los logits, también conocido como la función generadora de cumulantes de la familia exponencial categórica. Esta forma es la que las bibliotecas numéricas calculan en la práctica, porque aplicar softmax y luego logaritmo por separado es inestable para logits grandes.

    Conexión con la teoría de la información y la máxima verosimilitud

    La entropía cruzada categórica es la entropía cruzada $ H(p, q) = -\sum_k p_k \log q_k $ evaluada cuando $ p $ es la distribución empírica (one-hot) de etiquetas y $ q $ es la predicción del modelo. Se descompone como $ H(p, q) = H(p) + D_{\text{KL}}(p \,\|\, q) $, donde $ H(p) $ es la entropía de la distribución verdadera y $ D_{\text{KL}} $ es la divergencia de Kullback-Leibler. Para etiquetas one-hot $ H(p) = 0 $, por lo que la entropía cruzada y la divergencia KL coinciden, y minimizar una equivale a minimizar la otra.

    La interpretación estadística surge al observar que un clasificador softmax define una verosimilitud categórica $ P(Y = c \mid x; \theta) = \hat{y}_c $. La log-verosimilitud negativa de los datos es

    $ {\displaystyle -\sum_{i=1}^{N} \log P(Y = c^{(i)} \mid x^{(i)}; \theta),} $

    lo cual, salvo una constante, equivale a la entropía cruzada categórica. Entrenar un clasificador softmax con esta pérdida es por tanto numéricamente idéntico a la estimación de máxima verosimilitud bajo un modelo multinomial, hecho que justifica el uso de herramientas frecuentistas estándar, como la matriz de información de Fisher, al razonar sobre la calibración y la confianza del clasificador.

    Entrenamiento y retropropagación

    La combinación de softmax y entropía cruzada tiene un gradiente excepcionalmente limpio. Con logits $ z $ y etiqueta one-hot $ y $,

    $ {\displaystyle \frac{\partial L}{\partial z_k} = \hat{y}_k - y_k.} $

    El gradiente es simplemente la diferencia entre la probabilidad predicha y el indicador de la clase verdadera. No quedan factores exponenciales ni logarítmicos, razón por la cual los frameworks de aprendizaje profundo fusionan softmax y entropía cruzada en una sola primitiva (por ejemplo, nn.CrossEntropyLoss en PyTorch, SparseCategoricalCrossentropy en TensorFlow). La retropropagación luego procede normalmente a través del resto de la red usando esta señal de error con forma de residuo.

    Para mantener la estabilidad numérica, las bibliotecas calculan la pérdida directamente a partir de los logits usando el truco log-sum-exp, restando $ \max_k z_k $ antes de exponenciar:

    $ {\displaystyle \log \sum_j \exp(z_j) = m + \log \sum_j \exp(z_j - m), \quad m = \max_k z_k.} $

    Esto evita el desbordamiento cuando los logits son grandes y el subdesbordamiento cuando son muy negativos. Las canalizaciones ingenuas que aplican softmax y luego toman el logaritmo por separado pueden producir valores NaN durante el entrenamiento, especialmente en configuraciones de precisión mixta.

    Variantes

    Varias variantes abordan problemas prácticos específicos:

    • Entropía cruzada categórica esparsa toma índices enteros de clase en lugar de vectores one-hot. La matemática es idéntica, pero la implementación evita materializar una matriz one-hot grande, lo que importa para vocabularios con cientos de miles de tokens en modelos de lenguaje.
    • Suavizado de etiquetas reemplaza el objetivo one-hot por una distribución suavizada que asigna $ 1-\epsilon $ a la clase verdadera y $ \epsilon/(K-1) $ a las demás. Evita que el modelo produzca predicciones arbitrariamente afiladas, mejorando la calibración y a menudo la generalización. Fue popularizado por Inception-v3 y es estándar en el entrenamiento de transformadores.[1]
    • Focal loss multiplica la pérdida por ejemplo por $ (1 - \hat{y}_c)^\gamma $, reduciendo el peso de los ejemplos fáciles para concentrar la optimización en los difíciles. Fue introducida para la detección densa de objetos, donde la mayoría de las cajas candidatas son fondo.[2]
    • Entropía cruzada ponderada por clase multiplica la pérdida de cada ejemplo por un peso específico de la clase para compensar el desequilibrio de clases, una alternativa simple al remuestreo.
    • Entropía cruzada con escalado de temperatura divide los logits por una temperatura $ T $ antes de la softmax. No cambia el argmax, pero se utiliza ampliamente para destilación de conocimiento y para la calibración a posteriori.

    Comparaciones con otras pérdidas

    La entropía cruzada categórica es una de varias pérdidas disponibles para la clasificación, y la elección correcta depende de la estructura de las etiquetas y de la función de activación de salida:

    • Entropía cruzada binaria es el caso especial de dos clases, utilizada con una salida sigmoide para problemas binarios de etiqueta única y aplicada de forma independiente por clase para problemas multietiqueta donde las etiquetas no son mutuamente excluyentes.
    • Error cuadrático medio contra objetivos one-hot define técnicamente una pérdida válida, pero su gradiente interactúa mal con la saturación de la softmax, lo que conduce a un entrenamiento lento y a probabilidades pobremente calibradas. Rara vez se usa para clasificación.
    • Pérdida de bisagra y sus extensiones multiclase, utilizadas en máquinas de vectores de soporte, optimizan un margen en lugar de una verosimilitud. Producen fronteras de decisión esparsas pero no estimaciones de probabilidad y son poco comunes en el aprendizaje profundo moderno.
    • Pérdidas triplete, contrastiva e InfoNCE optimizan la similitud relativa en lugar de probabilidades absolutas de clase, y se prefieren para el aprendizaje de representaciones y la recuperación.

    Para la clasificación estándar con un conjunto fijo de etiquetas y salidas softmax, la entropía cruzada categórica es la opción por defecto, y las alternativas han quedado en gran medida desplazadas.

    Practical Considerations and Limitations

    Despite its dominance, categorical cross-entropy has known limitations. Models trained with it are often overconfident: probabilities estimated by deep networks tend to be poorly calibrated, with confidence systematically higher than empirical accuracy.[3] Temperature scaling, label smoothing, and focal loss all partially address this. The loss is also sensitive to label noise: a single mislabeled example can produce an unbounded gradient because $ -\log \hat{y}_c \to \infty $ as $ \hat{y}_c \to 0 $. Robust alternatives such as the generalized cross-entropy and symmetric cross-entropy trade off some accuracy on clean data for resilience to noisy labels.

    A more subtle issue is that categorical cross-entropy treats all classes as exchangeable: misclassifying a husky as a wolf incurs the same loss as misclassifying it as a banana. When the label space has structure (hierarchical categories, semantic embeddings, ordinal levels), specialized losses or auxiliary objectives can encode that structure and outperform the plain cross-entropy. Finally, in extreme classification with millions of classes, the normalizing log-sum-exp becomes a computational bottleneck, motivating sampled approximations such as sampled softmax, noise-contrastive estimation, and hierarchical softmax.

    References