Відповіді:
Використовуйте розрізнену категоричну кросцентропію, коли ваші класи взаємовиключні (наприклад, коли кожен зразок належить саме одному класу) та категоричну кросцентропію, коли один зразок може мати кілька класів або мітки мають малу ймовірність (наприклад [0,5, 0,3, 0,2]).
Формула для категоричної кросцентропії (S - зразки, C - класифікація, - зразок належить до класу c):
У випадку, коли класи є ексклюзивними, вам не потрібно підсумовувати їх - для кожного зразка лише ненульове значення - просто для істинного класу c.
Це дозволяє зберегти час та пам'ять. Розглянемо випадок 10000 класів, коли вони взаємовиключні - всього 1 журнал, а не підсумовуючи 10000 для кожного зразка, лише одне ціле число замість 10000 плаває.
Формула однакова в обох випадках, тому ніякого впливу на точність не повинно бути.
o1,o2,o3
і кожен має 167,11,7
класи відповідно. Я прочитав вашу відповідь, що це не має значення, але чи є різниця, використовую я sparse__
чи ні. Чи можу я піти categorical
на останні 2 та sparse
на перший, оскільки у першому класі 167 класів?
Відповідь у двох словах
Якщо ваші цілі закодовані гарячими, скористайтеся категоричною_кросцентропією. Приклади кодування гарячого типу:
[1,0,0]
[0,1,0]
[0,0,1]
Але якщо ваші цілі є цілими числами, використовуйте sparse_categorical_crossentropy. Приклади цілих кодувань (для заповнення):
1
2
3
sparse_categorical_crossentropy
? А що означає from_logits
аргумент?