तंत्रिका नेटवर्क - हानि और सटीकता सहसंबंध


11

तंत्रिका नेटवर्क में हानि और सटीकता मेट्रिक्स के सह-अस्तित्व से मैं थोड़ा भ्रमित हूं। दोनों की तुलना की "शुद्धता" रेंडर करने के लिए अपेक्षा की जाती है y और y , है ना? तो प्रशिक्षण काल ​​में दो अतिरेक का आवेदन नहीं है? इसके अलावा, वे सहसंबद्ध क्यों नहीं हैं?y^

जवाबों:


9

लॉग नुकसान की अच्छी संपत्ति है कि यह एक अलग कार्य है। सटीकता अधिक महत्वपूर्ण हो सकती है और निश्चित रूप से अधिक व्याख्या योग्य है, लेकिन बैकप्रॉपैगेशन एल्गोरिथ्म के कारण नेटवर्क के प्रशिक्षण में सीधे उपयोग करने योग्य नहीं है, जिसके लिए नुकसान फ़ंक्शन को अलग-अलग करने की आवश्यकता होती है। जब आपका पसंदीदा नुकसान सीधे अनुकूलन योग्य नहीं होता है (सटीकता की तरह) आप एक नुकसान फ़ंक्शन का उपयोग करते हैं जो सच्चे मीट्रिक को प्रॉक्सी करने के लिए समान व्यवहार करता है। बाइनरी वर्गीकरण के मामले में आप अंत में एक सिग्मोइड का उपयोग करेंगे और अनुमानित सटीकता के लिए एक लॉग नुकसान होगा। वे अत्यधिक सहसंबद्ध हैं।


6

हानि सटीकता की तुलना में अधिक सामान्य है। वर्गीकरण में, आप 100% सटीकता पर जा सकते हैं, जहां सभी लेबलों का सही अनुमान लगाया जाता है। लेकिन प्रतिगमन या पूर्वानुमान के बारे में क्या? 0% और 100% की कोई परिभाषा नहीं है

|yhaty|


0

हां, वे दोनों y और y_hat की सटीकता को मापते हैं और हां वे आमतौर पर सहसंबद्ध होते हैं। कभी-कभी हानि फ़ंक्शन सटीकता नहीं हो सकता है, लेकिन आप अभी भी सटीकता को मापने में रुचि रखते हैं, भले ही आप इसे सीधे अनुकूलित नहीं कर रहे हों। Google का TensorFlow MNIST उदाहरण क्रॉस एन्ट्रॉपी लॉस को न्यूनतम / अनुकूलित करता है लेकिन परिणाम की रिपोर्ट करते समय उपयोगकर्ता को सटीकता प्रदर्शित करता है, और यह पूरी तरह से ठीक है।

कभी-कभी आप सटीकता को सीधे अनुकूलित नहीं करना चाहते हैं। उदाहरण के लिए, यदि आपके पास गंभीर वर्ग असंतुलन है, तो आपका मॉडल हमेशा सबसे सामान्य वर्ग को उठाकर सटीकता को अधिकतम करेगा, लेकिन यह एक उपयोगी मॉडल नहीं होगा। इस मामले में एन्ट्रापी / लॉग-लॉस ऑप्टिमाइज़ करने के लिए एक बेहतर नुकसान फ़ंक्शन होगा।


7
इससे भी महत्वपूर्ण बात, सटीकता एक अलग प्रकार का कार्य नहीं है इसलिए आप इसके माध्यम से बैकप्रोपैगेट नहीं कर सकते हैं।
Jan van der Vegt

@JanvanderVegt हाँ, यह एक शानदार बिंदु है
रयान ज़ोटी

मैंने सीखा कि केरस में मैं एक "कस्टम" मूल्यांकन मेट्रिक्स डाल सकता हूं (इस मामले में कस्टम द्वारा मेरा मतलब है कि संकलन कार्य में कोई भी अंतर्निहित कर्स में एयूसी या एफ 1-स्कोर की तरह कार्यान्वयन नहीं है)। मुझे लगता है कि इस मामले में यह "कस्टम" मैट्रिक्स का उपयोग हर जगह सटीकता के बजाय किया जाएगा / प्रदर्शित किया जाएगा जहां show_accuracyपैरामीटर सही पर सेट है (जैसे फिटिंग या मूल्यांकन में)। क्या वो सही है?
हेंड्रिक

1
@ हेंड्रिक हां, आप केवल एक def your_own_metric(y_true, y_pred)फंक्शन बना सकते हैं और इसे पास कर सकते हैंmodel.compile(..., metrics=[your_own_metric])
rilut
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.