Відповіді:
Використовуйте розрізнену категоричну кросцентропію, коли ваші класи взаємовиключні (наприклад, коли кожен зразок належить саме одному класу) та категоричну кросцентропію, коли один зразок може мати кілька класів або мітки мають малу ймовірність (наприклад [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аргумент?