Respostas:
Use a entropia cruzada categórica esparsa quando suas classes forem mutuamente exclusivas (por exemplo, quando cada amostra pertence exatamente a uma classe) e a entropia cruzada categórica quando uma amostra pode ter várias classes ou os rótulos são probabilidades brandas (como [0,5, 0,3, 0,2]).
A fórmula para a entropia cruzada categórica (S - amostras, C - sem classe, - a amostra pertence à classe c) é:
No caso em que as classes são exclusivas, você não precisa somar sobre elas - para cada amostra apenas o valor diferente de zero é apenas para a verdadeira classe c.
Isso permite economizar tempo e memória. Considere o caso de 10000 classes quando elas são mutuamente exclusivas - apenas 1 log em vez de resumir 10000 para cada amostra, apenas um número inteiro em vez de 10000 flutuadores.
A fórmula é a mesma nos dois casos, portanto, não há impacto na precisão.
o1,o2,o3
e cada um tem 167,11,7
classes, respectivamente. Eu li sua resposta de que não fará diferença, mas existe alguma diferença se eu usar sparse__
ou não. Posso ir para categorical
as duas últimas e sparse
para a primeira, pois existem 167 aulas na primeira aula?
A resposta, em poucas palavras
Se seus destinos forem codificados com um hot hot, use categorical_crossentropy. Exemplos de codificações one-hot:
[1,0,0]
[0,1,0]
[0,0,1]
Mas se seus destinos forem números inteiros, use sparse_categorical_crossentropy. Exemplos de codificações inteiras (para fins de conclusão):
1
2
3
sparse_categorical_crossentropy
? E o que o from_logits
argumento significa?