Entropía cruzada
La entropía cruzada conecta las probabilidades con las funciones de error. Está vinculada con la estimación por máxima verosimilitud.
Buscaremos modelo cuya entropía sea mínima, porque nos darán la mejor clasificación, ya que son los que tienen una mayor probabilidad (y minimizan la función de error: entropía cruzada).
La entropía se define como $-ln(P(x))$.
La entropía cruzada de dos puntos $A =(a_1, \dots, a_n), B = (b_1, \dots, b_n)$ de $n$ dimensiones se define como
$$
-\sum_{i=1}^n a_i ln(b_i) + (1-a_i) ln(1-b_i)
$$
En problemas de clasificación, la entropía cruzada se calcula como
$$
-\sum_{i=1}^m y_i ln(p_i) + (1-y_i) ln(1-p_i)
$$
donde los $y_i$ se obtienen mediante una codificación one-hot y $p_i$ son las probabilidades asociadas.
Podemos definir la entropía cruzada en python de la siguiente forma:
import numpy as np
# Write a function that takes as input two lists Y, P,
# and returns the float corresponding to their cross-entropy.
def cross_entropy(Y, P):
Y = np.float_(Y)
P = np.float_(P)
return - np.sum(Y*np.log(P) + (1-Y)*np.log(1-P))