मशीन लर्निंग मॉडल के लिए "नुकसान" और "सटीकता" की व्याख्या कैसे करें


202

जब मैंने थीनो या टेन्सरफ़्लो के साथ अपने तंत्रिका नेटवर्क को प्रशिक्षित किया, तो वे प्रति एपिसोड "हानि" नामक एक चर की रिपोर्ट करेंगे।

मुझे इस चर की व्याख्या कैसे करनी चाहिए? अधिक नुकसान बेहतर या बुरा है, या मेरे तंत्रिका नेटवर्क के अंतिम प्रदर्शन (सटीकता) के लिए इसका क्या मतलब है?

जवाबों:


285

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

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

हानि मूल्य का अर्थ है कि अनुकूलन के प्रत्येक पुनरावृत्ति के बाद एक निश्चित मॉडल कितना अच्छा या खराब व्यवहार करता है। आदर्श रूप से, एक को प्रत्येक, या कई, पुनरावृत्ति (ओं) के बाद नुकसान की कमी की उम्मीद होगी।

एक मॉडल की सटीकता आमतौर पर मॉडल के मापदंडों को जानने और तय करने के बाद निर्धारित की जाती है और कोई भी सीख नहीं ले रही है। फिर परीक्षण के नमूने मॉडल को खिलाए जाते हैं और सही लक्ष्यों की तुलना के बाद मॉडल की गलतियों (शून्य-एक नुकसान) को रिकॉर्ड किया जाता है। फिर गर्भपात के प्रतिशत की गणना की जाती है।

उदाहरण के लिए, यदि परीक्षण नमूनों की संख्या 1000 है और मॉडल 952 को सही ढंग से वर्गीकृत करता है, तो मॉडल की सटीकता 95.2% है।

यहां छवि विवरण दर्ज करें

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


2
हाय @Amir, आपके बहुत विवरण विवरण के लिए धन्यवाद। हालांकि, मुझे एक समस्या है: मेरे न्यूरल नेटवर्क में, जब मैंने प्रशिक्षण (जब युग बढ़ जाता है) तो नुकसान हमेशा कम होता है , हालांकि सटीकता बेहतर नहीं है।
ममातव

9
@ ममतव जब तक लागत कम हो रही है आपको जाना अच्छा होना चाहिए। हालांकि लागत और सटीकता का सामान्य रूप से एक व्युत्क्रम आनुपातिक संबंध होता है, लेकिन आप ध्यान दे सकते हैं कि सटीकता शून्य-एक त्रुटियों का योग है जबकि लागत अस्थायी बिंदु संख्याओं का योग है। इसलिए, लागत में 0.001% की कमी का मतलब सटीकता में 0.001% की वृद्धि नहीं है। सटीकता में वृद्धि बहुत कठिन है जब लागत में कमी अमूर्त है (लागत एक स्थानीय मिनीमा के बहुत करीब है)
अमीर

2
@ ममतव मुझे कहना चाहिए था कि जब तक प्रशिक्षण और सत्यापन दोनों के लिए लागत कम हो जाती है तब तक आपको अच्छा होना चाहिए। आप प्रत्येक युग पर सत्यापन सटीकता भी देख सकते हैं। यदि यह ऊपर जाने लगता है, तो हो सकता है कि आपका मॉडल ओवर-फिट होने लगे और आपको इसका प्रशिक्षण बंद कर देना चाहिए।
आमिर

1
नुकसान को कम करने के बजाय सटीकता को बढ़ाने के लिए मॉडल को प्रशिक्षित क्यों नहीं करें?
bikashg

2
@ बिकैशग सटीकता भिन्न नहीं है और इसलिए आप इस पर बैकप्रॉप नहीं कर सकते।
धर्मरेल

24

वे आपके मॉडल के प्रदर्शन का मूल्यांकन करने के लिए दो अलग-अलग मीट्रिक हैं जो आमतौर पर विभिन्न चरणों में उपयोग किए जाते हैं।

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

सटीकता एक लागू दृष्टिकोण से अधिक है। एक बार जब आप ऊपर दिए गए अनुकूलित पैरामीटर पाते हैं, तो आप इस मैट्रिक्स का उपयोग करके मूल्यांकन करते हैं कि आपके मॉडल की भविष्यवाणी सही डेटा की तुलना में कितनी सही है।

आइए हम एक खिलौना वर्गीकरण उदाहरण का उपयोग करें। आप किसी के वजन और ऊंचाई से लिंग की भविष्यवाणी करना चाहते हैं। आपके पास 3 डेटा हैं, वे इस प्रकार हैं: (पुरुष के लिए 0, महिला के लिए 1 स्टैंड)

y1 = 0, X1_w = 50kg, x2_h = 160cm;

y2 = 0, x2_w = 60kg, x2_h = 170cm;

y3 = 1, x3_w = 55kg, x3_h = 175cm;

आप एक साधारण लॉजिस्टिक रिग्रेशन मॉडल का उपयोग करते हैं जो y = 1 / (1 + exp- (b1 * x_w + b2 * x_h) है)

आप बी 1 और बी 2 कैसे खोजते हैं? आप पहले नुकसान को परिभाषित करते हैं और बी 1 और बी 2 को अपडेट करके पुनरावृत्त तरीके से नुकसान को कम करने के लिए अनुकूलन विधि का उपयोग करते हैं।

हमारे उदाहरण में, इस द्विआधारी वर्गीकरण समस्या के लिए एक विशिष्ट नुकसान हो सकता है: (संक्षेप में संकेत के सामने एक ऋण चिह्न जोड़ा जाना चाहिए)

हमें नहीं पता कि बी 1 और बी 2 क्या होना चाहिए। आइए हम एक यादृच्छिक अनुमान कहते हैं कि बी 1 = 0.1 और बी 2 = -0.03। फिर अब हमारा नुकसान क्या है?

तो नुकसान है

फिर आप एल्गोरिथ्म सीख रहे हैं (जैसे ढाल वंश) नुकसान को कम करने के लिए बी 1 और बी 2 को अपडेट करने का एक तरीका मिलेगा।

क्या होगा अगर बी 1 = 0.1 और बी 2 = -0.03 अंतिम बी 1 और बी 2 (ग्रेडिएंट वंश से आउटपुट) है, तो अब सटीकता क्या है?

मान लें कि यदि y_hat> = 0.5 है, तो हम तय करते हैं कि हमारी भविष्यवाणी महिला (1) है। अन्यथा यह 0. होगा। इसलिए, हमारे एल्गोरिथ्म की भविष्यवाणी y1 = 1, y2 = 1 और y3 = 1. हमारी सटीकता क्या है? हम y1 और y2 पर गलत भविष्यवाणी करते हैं और y3 पर सही बनाते हैं। तो अब हमारी सटीकता 1/3 = 33.33% है

पुनश्च: आमिर के उत्तर में , एन-एन में अनुकूलन को एक अनुकूलन विधि कहा जाता है। मुझे लगता है कि इसे एनएन में वजन के लिए ढाल खोजने के तरीके के रूप में माना जाएगा। NN में सामान्य अनुकूलन विधि GradientDescent और Adam हैं।


गणित के लिए धन्यवाद। इसने अवधारणा को स्पष्ट करने में मदद की।
फिन फ्रॉत्शर

7

@Aadnan सिर्फ प्रशिक्षण / मान्यता / परीक्षण डेटा सेट को स्पष्ट करने के लिए: प्रशिक्षण सेट का उपयोग मॉडल के प्रारंभिक प्रशिक्षण को करने के लिए किया जाता है, जो तंत्रिका नेटवर्क के भार को आरंभ करता है।

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

फिर परीक्षण सेट का उपयोग प्रशिक्षण और सत्यापन डेटा सेट के साथ प्रशिक्षण और पैरामीटर / आर्किटेक्चर चयन के बाद पहले अनदेखे डेटा पर प्रशिक्षित तंत्रिका नेटवर्क की भविष्यवाण्य सटीकता का परीक्षण करने के लिए किया जाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.