method kullback friendly entropia cruzada cross categorical machine-learning cross-entropy

machine-learning - friendly - kullback cross entropy



¿Qué es la entropía cruzada? (1)

Sé que hay muchas explicaciones de lo que es la entropía cruzada, pero todavía estoy confundido.

¿Es solo un método para describir la función de pérdida? ¿Podemos usar el algoritmo de descenso de gradiente para encontrar el mínimo usando la función de pérdida?


La entropía cruzada se usa comúnmente para cuantificar la diferencia entre dos distribuciones de probabilidad. Por lo general, la distribución "verdadera" (la que su algoritmo de aprendizaje automático está tratando de igualar) se expresa en términos de una distribución única.

Por ejemplo, supongamos que para una instancia de entrenamiento específica, la etiqueta es B (de las posibles etiquetas A, B y C). La distribución única para esta instancia de capacitación es, por lo tanto:

Pr(Class A) Pr(Class B) Pr(Class C) 0.0 1.0 0.0

Puede interpretar que la distribución "verdadera" anterior significa que la instancia de entrenamiento tiene 0% de probabilidad de ser de clase A, 100% de probabilidad de ser de clase B y 0% de probabilidad de ser de clase C.

Ahora, suponga que su algoritmo de aprendizaje automático predice la siguiente distribución de probabilidad:

Pr(Class A) Pr(Class B) Pr(Class C) 0.228 0.619 0.153

¿Qué tan cerca está la distribución prevista de la distribución verdadera? Eso es lo que determina la pérdida de entropía cruzada. Usa esta fórmula:

Donde p(x) es la probabilidad deseada, y q(x) la probabilidad real. La suma está sobre las tres clases A, B y C. En este caso, la pérdida es 0.479 :

H = - (0.0*ln(0.228) + 1.0*ln(0.619) + 0.0*ln(0.153)) = 0.479

Así que así de "equivocada" o "lejana" está su predicción de la distribución verdadera.

La entropía cruzada es una de las muchas posibles funciones de pérdida (otra popular es la pérdida de bisagra SVM). Estas funciones de pérdida generalmente se escriben como J (theta) y se pueden usar dentro del descenso de gradiente, que es un algoritmo iterativo para mover los parámetros (o coeficientes) hacia los valores óptimos. En la siguiente ecuación, reemplazarías J(theta) con H(p, q) . Pero tenga en cuenta que primero necesita calcular la derivada de H(p, q) con respecto a los parámetros.

Entonces, para responder a sus preguntas originales directamente:

¿Es solo un método para describir la función de pérdida?

Correcto, la entropía cruzada describe la pérdida entre dos distribuciones de probabilidad. Es una de las muchas posibles funciones de pérdida.

Entonces podemos usar, por ejemplo, el algoritmo de descenso de gradiente para encontrar el mínimo.

Sí, la función de pérdida de entropía cruzada se puede usar como parte del descenso de gradiente.

Lectura adicional: una de mis otras respuestas relacionadas con TensorFlow.