Respuestas:
Use la entropía categórica escasa cuando sus clases son mutuamente excluyentes (por ejemplo, cuando cada muestra pertenece exactamente a una clase) y la entropía categórica cuando una muestra puede tener múltiples clases o etiquetas son probabilidades blandas (como [0.5, 0.3, 0.2]).
La fórmula para la crossentropía categórica (S - muestras, C - clases, - la muestra pertenece a la clase c) es:
Para el caso en que las clases son exclusivas, no es necesario sumarlas: para cada muestra solo el valor distinto de cero es justo para la verdadera clase c.
Esto permite ahorrar tiempo y memoria. Considere el caso de 10000 clases cuando son mutuamente excluyentes: solo 1 registro en lugar de sumar 10000 para cada muestra, solo un número entero en lugar de 10000 flotantes.
La fórmula es la misma en ambos casos, por lo que no debe haber impacto en la precisión.
o1,o2,o3
y cada una tiene 167,11,7
clases respectivamente. He leído su respuesta de que no habrá diferencia, pero ¿hay alguna diferencia si la uso sparse__
o no? ¿Puedo ir para categorical
los últimos 2 y sparse
para el primero ya que hay 167 clases en la primera clase?
La respuesta, en pocas palabras
Si sus objetivos están codificados en caliente, use categorical_crossentropy. Ejemplos de codificaciones one-hot:
[1,0,0]
[0,1,0]
[0,0,1]
Pero si sus objetivos son enteros, use sparse_categorical_crossentropy. Ejemplos de codificaciones de enteros (en aras de la finalización):
1
2
3
sparse_categorical_crossentropy
? ¿Y qué significa el from_logits
argumento?