¿No es un problema que (en ) podría ser 0?yilog(yi)
Sí, porque no está definido, pero este problema se evita utilizando en la práctica.log(0)log(yi+ϵ)
¿Que es correcto?
(a) o
(b) ?Hy′(y):=−∑iy′ilog(yi)
Hy′(y):=−∑i(y′ilog(yi)+(1−y′i)log(1−yi))
(a) es correcto para la predicción de múltiples clases (en realidad es una suma doble), (b) es lo mismo que (a) para la predicción de dos clases. Ambas son entropía cruzada.
Ejemplo:
Suponga que cada dato de entrenamiento tiene la etiqueta , y el modelo predice .xic′i∈{0,1}ci∈[0,1]
Para 5 puntos de datos, la etiqueta verdadera y la predicción del modelo son: c′ici
(c′i,ci)={(0,0.1),(0,0.4),(0,0.8),(1,0.8),(1,0.2)} (1),
Defina los vectores y como y′iyi
y′ik:=1 si , y contrario, c′i=k:=0
yik:=p(k|xi) es la probabilidad de que pertenezca a la clase , que se estima por modelo.xik
El ejemplo (1) en convierte en: (y′i,yi)
(y′i,yi)={([1,0],[0.9,0.1]), ([1,0],[0.6,0.4]), ([1,0],[0.2,0.8]), ([0,1],[0.2,0.8]), ([0,1],[0.8,0.2])} ,
Tanto (a) como (b) se calculan como:
Hy′(y)=−1/5([log(0.9)+log(0.6)+log(0.2)]ci=0+[log(0.8)+log(0.2)]ci=1)=0.352
Derivación:
Supongamos que hay múltiples clases de a .
Para el punto de entrenamiento , es equivalente a que es 1 en la posición y 0 en otra parte. Cuando , queremos que la salida del modelo esté cerca de 1. Por lo tanto, la pérdida de se puede definir como , que proporciona . La pérdida sobre todas las clases se puede combinar como:1K
(xi,c′i)c′i=ky′i=[0,..,1,0,..]kthy′ik=1yik=p(k|xi)(xi,k)−log(yik)yik→1⇒−log(yik)→0
L(y′i,yi)=−∑Kk=1y′iklog(yik) .
Cuando , la pérdida de todas las otras clases se deshabilita como , entonces, por ejemplo, cuando la etiqueta verdadera es , la pérdida sería ser:y′ik=1k′≠k0log(yik′)=0y′im=1
L(y′i,yi)=−log(yim) .
La fórmula final sobre todos los puntos de entrenamiento es:
Hy′(y)=−∑(xi,y′i)∑Kk=1y′iklog(yik) .
Para la clasificación binaria, tenemos (etiquetas verdaderas) y (predicciones del modelo), por lo tanto (a) puede reescribirse como:y′i0=1−y′i1yi0=1−yi1
Hy′(y)=−∑(xi,y′i)y′i1log(yi1)+y′i0log(yi0)=−∑(xi,y′i)y′i1log(yi1)+(1−y′i1)log(1−yi1)
que es lo mismo que (b).
Entropía cruzada (a) sobre clases (una suma)
La entropía cruzada (a) sobre clases es:
Hy′(y)=−∑Kk=1y′klog(yk) ,
Esta versión no se puede usar para la tarea de clasificación. Reutilicemos los datos del ejemplo anterior:
(c′i,ci)={(0,0.1),(0,0.4),(0,0.8),(1,0.8),(1,0.2)}
Las probabilidades de clase empírica son: , y ,y′0=3/5=0.6y′1=0.4
Las probabilidades de clase estimadas por modelo son: , yy0=3/5=0.6y1=0.4
(a) se calcula como: .−y′0logy0−y′1logy1=−0.6log(0.6)−0.4log(0.4)=0.292
Dos puntos de datos y están clasificados pero y se estiman correctamente.(0,0.8)(1,0.2)y′0y′1
Si los 5 puntos se clasificaron correctamente como: ,
(c′i,ci)={(0,0.1),(0,0.4),(0,0.2),(1,0.8),(1,0.8)}
(a) sigue siendo el mismo, ya que nuevamente se estima como .y′0y0=3/5