Câu trả lời:
Sử dụng crossentropy phân loại thưa thớt khi các lớp của bạn loại trừ lẫn nhau (ví dụ: khi mỗi mẫu thuộc chính xác một lớp) và crossentropy phân loại khi một mẫu có thể có nhiều lớp hoặc nhãn là xác suất mềm (như [0,5, 0,3, 0,2]).
Công thức cho crossentropy phân loại (S - mẫu, C - classess, - mẫu thuộc về lớp c) là:
Đối với trường hợp khi các lớp là độc quyền, bạn không cần phải tổng hợp chúng - đối với mỗi mẫu chỉ có giá trị khác không chỉ là cho lớp thực sự c.
Điều này cho phép tiết kiệm thời gian và bộ nhớ. Hãy xem xét trường hợp của 10000 lớp khi chúng loại trừ lẫn nhau - chỉ cần 1 bản ghi thay vì tổng cộng 10000 cho mỗi mẫu, chỉ một số nguyên thay vì 10000 số.
Công thức là giống nhau trong cả hai trường hợp, vì vậy không có tác động đến độ chính xác.
o1,o2,o3
và mỗi đầu ra có 167,11,7
các lớp tương ứng. Tôi đã đọc câu trả lời của bạn rằng nó sẽ không có gì khác biệt nhưng liệu tôi có sử dụng sparse__
hay không. Tôi có thể đi cho categorical
2 người cuối cùng và sparse
cho người đầu tiên vì có 167 lớp trong lớp đầu tiên không?
Câu trả lời, một cách ngắn gọn
Nếu mục tiêu của bạn được mã hóa một lần nóng, hãy sử dụng c sortical_crossentropy. Ví dụ về mã hóa một nóng:
[1,0,0]
[0,1,0]
[0,0,1]
Nhưng nếu mục tiêu của bạn là số nguyên, hãy sử dụng spzzy_c sortical_crossentropy. Ví dụ về mã hóa số nguyên (vì mục đích hoàn thành):
1
2
3
sparse_categorical_crossentropy
? Và from_logits
tranh luận có ý nghĩa gì?