Sparse_categorical_crossentropy बनाम श्रेणीबद्ध_क्रोसेंट्रोपी (कार्स, सटीकता)


21

सटीकता के लिए कौन सा बेहतर है या वे समान हैं? बेशक, यदि आप एक गर्म एन्कोडिंग का उपयोग करते हुए श्रेणीबद्ध_क्रोसेंट्रॉपी का उपयोग करते हैं, और यदि आप स्पैर्स_ कैटेगोरिकल_क्रोसेंट्रोपी का उपयोग करते हैं तो आप सामान्य पूर्णांक के रूप में एन्कोड करते हैं। इसके अतिरिक्त, एक दूसरे से बेहतर कब है?

जवाबों:


27

जब आपके वर्ग परस्पर अनन्य हों (जैसे कि प्रत्येक नमूना एक कक्षा से संबंधित हो) और श्रेणीगत क्रॉसेंट्रॉपी जब एक नमूना में कई वर्ग या लेबल हो सकते हैं तो नरम संभावनाएं (जैसे [0.5, 0.3, 0.2])।

स्पष्ट crossentropy के लिए सूत्र (- नमूने, सी - एस क्लासेस, रोंसी - नमूना वर्ग ग के अंतर्गत आता है) है:

-1एनΣरोंएसΣसीसी1रोंसीएलजीपी(रोंसी)

-एलजीपी(रोंसी)

यह समय और स्मृति को संरक्षित करने की अनुमति देता है। 10000 वर्गों के मामले पर विचार करें जब वे पारस्परिक रूप से अनन्य होते हैं - प्रत्येक नमूने के लिए 10000 के बजाय केवल 1 लॉग, 10000 फ्लैटों के बजाय सिर्फ एक पूर्णांक।

दोनों मामलों में फॉर्मूला समान है, इसलिए सटीकता पर कोई प्रभाव नहीं होना चाहिए।


1
क्या वे सटीकता को अलग तरह से प्रभावित करते हैं, उदाहरण के लिए mnist अंक डेटासेट पर?
मास्टर एम

1
गणितीय रूप से कोई अंतर नहीं है। यदि कार्यान्वयन द्वारा गणना किए गए मूल्यों में महत्वपूर्ण अंतर है (जैसे कि टेंसोफ़्लो या पाइटोरच), तो यह एक बग जैसा लगता है। यादृच्छिक डेटा (1000 कक्षाएं, 10 000 नमूने) पर सरल तुलना कोई अंतर नहीं दिखाती है।
उन्माद


आप सही हे। धन्यवाद!
उन्मादी

@ फ़र्माक्राइज़र मैं मल्टी-आउटपुट समस्या पर काम कर रहा हूँ। मेरे पास 3 अलग-अलग आउटपुट हैं o1,o2,o3और प्रत्येक में 167,11,7क्रमशः कक्षाएं हैं। मैंने आपके उत्तर को पढ़ा है कि इससे कोई फर्क नहीं पड़ेगा, लेकिन अगर मैं उपयोग करता हूं sparse__या नहीं तो कोई अंतर नहीं है। क्या मैं categoricalअंतिम 2 और sparseपहली कक्षा के लिए जा सकता हूं क्योंकि पहली कक्षा में 167 कक्षाएं हैं?
देशवाल

6

उत्तर, संक्षेप में

यदि आपके लक्ष्य एक-हॉट एन्कोडेड हैं, तो gradorical_crossentropy का उपयोग करें। एक-गर्म एन्कोडिंग के उदाहरण:

[1,0,0]
[0,1,0] 
[0,0,1]

लेकिन अगर आपके लक्ष्य पूर्णांक हैं, तो sparse_categorical_crossentropy का उपयोग करें। पूर्णांक एन्कोडिंग के उदाहरण (पूर्ण होने के लिए):

1
2
3

1
क्या मुझे एक एकल आउटपुट नोड की आवश्यकता है sparse_categorical_crossentropy? और from_logitsतर्क का क्या अर्थ है?
लीवो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.