N'est-ce pas un problème que (dans ) puisse être 0?yilog(yi)
Oui, puisque n'est pas défini, mais ce problème est évité en utilisant en pratique.log(0)log(yi+ϵ)
Qu'est-ce qui est correct?
(a) ou
(b) ?Hy′(y):=−∑iy′ilog(yi)
Hy′(y):=−∑i(y′ilog(yi)+(1−y′i)log(1−yi))
(a) est correct pour une prédiction à plusieurs classes (il s’agit en fait d’une double somme), (b) est identique à (a) pour une prédiction à deux classes. Les deux sont entropie croisée.
Exemple:
Supposons que chaque donnée d'apprentissage porte l'étiquette et que le modèle prédit .xic′i∈{0,1}ci∈[0,1]
Pour 5 points de données, l'étiquette vraie et la prédiction du modèle sont: c′ici
(c′i,ci)={(0,0.1),(0,0.4),(0,0.8),(1,0.8),(1,0.2)} (1),
Définir les vecteurs et comme y′iyi
y′ik:=1 si , et sinon, c′i=k:=0
yik:=p(k|xi) est la probabilité que appartienne à la classe , qui est estimée par le modèle.xik
Exemple (1) en notation se transforme 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])} ,
(A) et (b) sont calculés comme suit:
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
Dérivation:
Supposons qu'il y ait plusieurs classes à .
Pour le point d’entraînement , est équivalent à ce qui correspond à 1 dans la position et à 0 ailleurs. Lorsque , nous voulons que la sortie du modèle soit proche de 1. Par conséquent, la perte de peut être définie comme , ce qui donne . Les pertes sur toutes les classes peuvent être combinées comme suit: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) .
Lorsque , la perte de toutes les autres classes est désactivée, car , ainsi, par exemple, si true est , la perte serait être:y′ik=1k′≠k0log(yik′)=0y′im=1
L(y′i,yi)=−log(yim) .
La formule finale sur tous les points d'entraînement est la suivante:
Hy′(y)=−∑(xi,y′i)∑Kk=1y′iklog(yik) .
Pour la classification binaire, nous avons (étiquettes vraies) et (prédictions du modèle), donc (a) peut être réécrit comme suit: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)
qui est le même que (b).
Entropie croisée (a) sur les classes (une somme)
L'entropie croisée (a) sur les classes est:
Hy′(y)=−∑Kk=1y′klog(yk) ,
Cette version ne peut pas être utilisée pour la tâche de classification. Permet de réutiliser les données de l'exemple précédent:
(c′i,ci)={(0,0.1),(0,0.4),(0,0.8),(1,0.8),(1,0.2)}
Les probabilités de classe empiriques sont: , et ,y′0=3/5=0.6y′1=0.4
Les probabilités de classe estimées par le modèle sont les suivantes: ety0=3/5=0.6y1=0.4
(a) est calculé comme : .−y′0logy0−y′1logy1=−0.6log(0.6)−0.4log(0.4)=0.292
Deux points de données et ont été classés, mais et ont été estimés correctement!(0,0.8)(1,0.2)y′0y′1
Si tous les 5 points ont été classés correctement comme : ,
(c′i,ci)={(0,0.1),(0,0.4),(0,0.2),(1,0.8),(1,0.8)}
(a) reste le même, puisque est à nouveau estimé à .y′0y0=3/5