सीएनएन में फेस / नॉन-फेस डिटेक्शन में बाइनरी डिटेक्शन के लिए मुझे किस नुकसान का उपयोग करना चाहिए?


11

मैं फेस / नॉन-फेस बाइनरी डिटेक्शन को प्रशिक्षित करने के लिए डीप लर्निंग का उपयोग करना चाहता हूं, मुझे किस नुकसान का उपयोग करना चाहिए, मुझे लगता है कि यह सिग्मोइडक्रॉसइंटरप्रॉपली या हिंग-लॉस है

क्या यह सही है, लेकिन मुझे भी आश्चर्य है कि मुझे सॉफ्टमैक्स का उपयोग करना चाहिए लेकिन केवल दो वर्गों के साथ?

जवाबों:


9

काज हानि और क्रॉस एन्ट्रॉपी आमतौर पर समान परिणाम पाए जाते हैं। विभिन्न नुकसान कार्यों की तुलना करने वाली एक और पोस्ट यहां दी गई है कि 0-1 नुकसान के अनुमानित वर्गीकरण में विभिन्न नुकसान कार्यों को चुनने के क्या प्रभाव हैं

क्या यह सही है, लेकिन मुझे भी आश्चर्य है कि मुझे सॉफ्टमैक्स का उपयोग करना चाहिए लेकिन केवल दो वर्गों के साथ?

सॉफ्टमैक्स एक नुकसान नहीं है, लेकिन एक सामान्यीकरण फ़ंक्शन है, इसे अक्सर क्रॉस एन्ट्रॉपी नुकसान के साथ एक साथ उपयोग किया जाता है, जो अनिवार्य रूप से इसके बराबर है SigmoidCrossEntropyLossआउटपुट परत में क्रॉस-एन्ट्रॉपी या लॉग लाइकैलिटी भी देखें


7

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

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

यहां आपके लिए कुछ लिंक दिए गए हैं। आशा है कि वे मदद करेंगे।
https://en.wikipedia.org/wiki/Cross_entropy#Cross-entropy_error_function_and_logistic_regression
http://neuralnetworksanddeeplearning.com/chap3.html
https://www.rora.com/How-do-you-decide-which-loss समारोह के लिए उपयोग के लिए मशीन से सीखने वाले


क्या आप DNN की अंतिम परत पर लॉजिस्टिक रिग्रेशन पर कुछ प्रकाश डाल सकते हैं? मैंने पदों को पढ़ा है, लेकिन वास्तव में sigmoid(अंतिम परत सक्रियण के रूप में) पर उपयोगिता नहीं देख सकता । धन्यवाद
bit_scientist

2

आप केवल 2 वर्गों "फेस" और "नॉट फेस" के साथ सॉफ्टमैक्स का उपयोग कर सकते हैं और सॉफ्टमैक्स आउटपुट को आत्मविश्वास स्कोर के रूप में व्याख्या कर सकते हैं, जो आपके गहरे नेट के बारे में कुछ अंतर्ज्ञान प्राप्त करने के लिए एक अच्छी सुविधा है।

2-क्लास सॉफ्टमैक्स और बाइनरी हिंग नुकसान दोनों का प्रयास करें। वहाँ एक हाल ही में दीप लर्निंग सपोर्ट वेक्टर मशीनों का उपयोग करते हुए डीप लर्निंग का उपयोग कर रहा है, जो एक डीवीएम के बजाय एक एसवीएम का उपयोग करता है, जो गहरे कन्टेन नेट के शीर्ष पर होता है और वहां कुछ आशाजनक परिणाम होते हैं।


2

आमतौर पर लॉगरिदमिक नुकसान पसंदीदा विकल्प होगा, जिसका उपयोग केवल एक आउटपुट यूनिट के साथ किया जाता है। लॉगरिदमिक लॉस को बाइनरी क्रॉस एन्ट्रॉपी भी कहा जाता है क्योंकि यह केवल दो वर्गों पर काम करने वाले क्रॉस एन्ट्रॉपी का एक विशेष मामला है।


आपको अपना पहला लिंक अपडेट करना चाहिए।
नबर

0

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

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