Spzzy_c sortical_crossentropy vs c sortical_crossentropy (máy ảnh, độ chính xác)


19

Cái nào tốt hơn cho độ chính xác hay chúng giống nhau? Tất nhiên, nếu bạn sử dụng c sortical_crossentropy, bạn sử dụng một mã hóa nóng và nếu bạn sử dụng spzzy_c sortical_crossentropy bạn mã hóa như các số nguyên bình thường. Ngoài ra, khi nào thì tốt hơn cái kia?

Câu trả lời:


26

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, Sc - mẫu thuộc về lớp c) là:

-1NΣSSΣcC1Sctôiogp(Sc)

Đố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à -tôiogp(Sc) 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.


1
Chúng có tác động đến độ chính xác khác nhau, ví dụ như trên tập dữ liệu chữ số mnist?
Thầy M

1
Về mặt toán học không có sự khác biệt. Nếu có sự khác biệt đáng kể về các giá trị được tính toán bằng cách triển khai (ví dụ như tenorflow hoặc pytorch), thì điều này nghe có vẻ như là một lỗi. So sánh đơn giản trên dữ liệu ngẫu nhiên (1000 lớp, 10 000 mẫu) cho thấy không có sự khác biệt.
fren Hotryger


Bạn đúng. Cảm ơn!
frenhotryger

@frenhotryger Tôi đang làm việc với vấn đề đa đầu ra. Tôi có 3 đầu ra riêng biệt o1,o2,o3và mỗi đầu ra có 167,11,7cá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 categorical2 người cuối cùng và sparsecho người đầu tiên vì có 167 lớp trong lớp đầu tiên không?
Deshwal

4

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

Tôi có cần một nút đầu ra duy nhất cho sparse_categorical_crossentropy? Và from_logitstranh luận có ý nghĩa gì?
Leevo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.