Saltar al contenido

Entropía cruzada en PyTorch

Posteriormente a consultar con especialistas en esta materia, programadores de diversas ramas y maestros hemos dado con la solución a la cuestión y la compartimos en este post.

Solución:

En su ejemplo, está tratando la salida [0, 0, 0, 1] como las probabilidades requeridas por la definición matemática de entropía cruzada. Pero PyTorch los trata como salidas, que no necesitan sumar 1y deben convertirse primero en probabilidades para las que utiliza la función softmax.

Entonces H(p, q) se convierte en:

H(p, softmax(output))

Traducir la salida [0, 0, 0, 1] en probabilidades:

softmax([0, 0, 0, 1]) = [0.1749, 0.1749, 0.1749, 0.4754]

De dónde:

-log(0.4754) = 0.7437

Su comprensión es correcta pero pytorch no calcula entropía cruzada de ese modo. Pytorch utiliza la siguiente fórmula.

loss(x, class) = -log(exp(x[class]) / (sum_j exp(x[j])))
               = -x[class] + log(sum_j exp(x[j]))

Dado que, en su escenario, x = [0, 0, 0, 1] y class = 3si evalúa la expresión anterior, obtendría:

loss(x, class) = -1 + log(exp(0) + exp(0) + exp(0) + exp(1))
               = 0.7437

Pytorch considera el logaritmo natural.

Me gustaría agregar una nota importante, ya que esto a menudo genera confusión.

Softmax no es una función de pérdida, ni es realmente una función de activación. Tiene una tarea muy específica: se utiliza para la clasificación de clases múltiples para normalizar los puntajes de las clases dadas. Al hacerlo, obtenemos probabilidades para cada clase que suman 1.

Softmax se combina con Cross-Entropy-Loss para calcular la pérdida de un modelo.

Desafortunadamente, debido a que esta combinación es tan común, a menudo se abrevia. Algunos están usando el término Softmax-pérdidamientras que PyTorch lo llama solo Pérdida de entropía cruzada.

Reseñas y puntuaciones

Recuerda compartir esta división si te fue útil.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada.