पहले, आपका सामना हुआ था बाइनरी क्लासिफ़िकेशन मॉडल, जो दो संभावित विकल्पों में से किसी एक को चुन सकते हैं. जैसे:
- दिया गया ईमेल, स्पैम होता है या स्पैम नहीं होता.
- रसौली घातक या मामूली होती है.
इस सेक्शन में, हम बिना किसी शुल्क के मल्टी-क्लास क्लासिफ़िकेशन मॉडल, जो कई संभावनाओं में से चुन सकते हैं. उदाहरण के लिए:
- क्या यह कुत्ता बीगल, बासेट हाउंड या ब्लडहाउंड है?
- क्या यह फूल साइबेरियन आइरिस, डच आइरिस, ब्लू फ़्लैग आइरिस है, या ड्वॉर्फ़ बियर्डेड आइरिस?
- क्या यह हवाई जहाज़ बोइंग 747, एयरबस 320, बोइंग 777 या एंब्रायर 190 है?
- क्या यह सेब, भालू, कैंडी, कुत्ते या अंडे की इमेज है?
वास्तविक दुनिया की कुछ मल्टी-क्लास सवालों में से किसी एक को लाखों में से चुनना होता है कर सकते हैं. उदाहरण के लिए, एक से ज़्यादा क्लास के क्लासिफ़िकेशन पर विचार करें जो किसी भी चीज़ की इमेज की पहचान कर सकता है.
इस सेक्शन में, एक से ज़्यादा क्लास की कैटगरी के दो मुख्य वैरिएंट की जानकारी दी गई है:
- एक बनाम सभी
- one-vs.-one, इसे आम तौर पर यह कहा जाता है सॉफ़्टमैक्स
एक बनाम सभी
वन-बनाम-सभी विकल्प में बाइनरी क्लासिफ़िकेशन का इस्तेमाल किया जाता है का विकल्प होता है.
N संभावित समाधानों के साथ एक वर्गीकरण समस्या होने की वजह से, एक-बनाम-सभी समाधान में N अलग बाइनरी क्लासिफ़ायर—एक बाइनरी क्लासिफ़ायर होते हैं क्लासिफ़ायर का इस्तेमाल करें. ट्रेनिंग के दौरान, मॉडल दौड़ने के लिए बाइनरी क्लासिफ़ायर के क्रम से, हर किसी को क्लासिफ़िकेशन सवाल में दिया गया हो.
उदाहरण के लिए, फल का एक टुकड़ा दिया गया है, चार अलग-अलग पहचानकर्ता को ट्रेनिंग दी जा सकती है, जिनमें से हर एक के लिए अलग-अलग हां/नहीं का जवाब देना होगा सवाल:
- क्या यह सेब की इमेज है?
- क्या यह इमेज नारंगी है?
- क्या यह केले की इमेज है?
- क्या यह इमेज अंगूर की है?
नीचे दी गई इमेज में दिखाया गया है कि यह कैसे काम करता है.
![सातवीं इमेज. नाशपाती की इमेज को इनपुट के तौर पर चार अलग-अलग हिस्सों में दिया जा रहा है
बाइनरी क्लासिफ़ायर मॉडल का इस्तेमाल करें. पहले मॉडल में 'सेब' का अनुमान लगाया गया या 'नहीं
सेब' है, और इसका अनुमान 'सेब नहीं' है. दूसरे मॉडल में
'नारंगी' या 'नारंगी नहीं' हो सकता है, और इसका अनुमान 'नारंगी नहीं' है. कॉन्टेंट बनाने
तीसरा मॉडल 'नाशपाती' का अनुमान लगाता है या 'नाशपाती' नहीं, और इसका पूर्वानुमान है
'नाशपाती'. चौथा मॉडल 'अंगूर' का अनुमान लगाता है या 'अंगूर नहीं', और इसके
सुझाव है 'अंगूर नहीं'.](https://developers.google.cn/static/machine-learning/crash-course/neural-networks/images/one_vs_all_binary_classifiers.png?authuser=19&hl=hi)
यह तरीका तब लागू होता है, जब क्लास की कुल संख्या छोटी है, लेकिन क्लास की संख्या बढ़ने की वजह से, इसमें कम समय लगता है बढ़ोतरी.
हम एक बेहतर मॉडल के बजाय, सभी कामों के लिए बेहतर मॉडल बना सकते हैं जिसमें डीप न्यूरल नेटवर्क हो, जिसमें हर आउटपुट नोड एक अलग क्लास. नीचे दी गई इमेज में यह तरीका दिखाया गया है.
![आठवीं इमेज. इस आर्किटेक्चर वाला न्यूरल नेटवर्क: इनपुट लेयर के साथ
1 नोड, 3 नोड वाली छिपी हुई लेयर, 4 नोड वाली छिपी हुई लेयर,
4 नोड वाली आउटपुट लेयर. इनपुट नोड में नाशपाती की इमेज डाली जाती है.
आउटपुट लेयर पर सिगमॉइड ऐक्टिवेशन फ़ंक्शन लागू किया जाता है. हर
आउटपुट नोड इस बात की संभावना दिखाता है कि इमेज के बारे में साफ़ तौर पर बताया गया है
फल. आउटपुट नोड 1 'क्या सेब है?' दिखाता है और इसकी वैल्यू 0.34 है.
आउटपुट नोड 2 'क्या नारंगी है?' दिखाता है और इसकी वैल्यू 0.18 है.
आउटपुट नोड 3 'क्या नाशपाती है?' दिखाता है और इसकी वैल्यू 0.84 है.
आउटपुट नोड 4 'क्या ग्रेप है?' दिखाता है और इसकी वैल्यू 0.07 है.](https://developers.google.cn/static/machine-learning/crash-course/neural-networks/images/one_vs_all_neural_net.png?authuser=19&hl=hi)
एक बनाम एक (सॉफ़्टमैक्स)
आपने देखा होगा कि इमेज 8 की आउटपुट लेयर में प्रॉबबिलिटी की वैल्यू योग 1.0 (या 100%) नहीं होता. (असल में, उनका कुल योग 1.43 है.) एक-बनाम-सभी नतीजों के हर बाइनरी सेट की प्रॉबबिलिटी तय की जाती है अन्य सभी सेट से अलग है. इसका मतलब है कि हम यह संभावना तय कर रहे हैं कि "सेब" का बनाम "सेब नहीं" हम यह उम्मीद करते हैं कि वे लोग फलों के विकल्प: "नारंगी", "नाशपाती" या "अंगूर."
लेकिन, अगर हम हर एक फल की संभावनाओं का अंदाज़ा लगाना चाहें, तो एक-दूसरे से मिलती-जुलती हैं? इस मामले में, "सेब" का अनुमान लगाने के बजाय बनाम "नहीं सेब", हम "सेब" का अनुमान लगाना चाहते हैं बनाम "नारंगी" बनाम "नाशपाती" बनाम "अंगूर". इस तरह के कई क्लास को एक बनाम एक क्लासिफ़िकेशन कहा जाता है.
हम एक ही तरह के न्यूरल का इस्तेमाल करके, 'एक बनाम एक' कैटगरी लागू कर सकते हैं ऐसा नेटवर्क आर्किटेक्चर जिसका इस्तेमाल एक मुख्य बदलाव के साथ एक बनाम सभी क्लासिफ़िकेशन के लिए किया जाता है. हमें आउटपुट लेयर में एक अलग बदलाव लागू करना होगा.
एक-बनाम-सभी के लिए, हमने हर आउटपुट पर सिगमॉइड ऐक्टिवेशन फ़ंक्शन लागू किया नोड से अलग किया गया, जिससे हर एक के लिए 0 और 1 के बीच का आउटपुट मान मिला नोड, लेकिन इस बात की गारंटी नहीं दी गई कि ये मान ठीक 1 के कुल योग होंगे.
एक बनाम एक के लिए, हम इसके बजाय softmax नाम का एक फ़ंक्शन लागू कर सकते हैं, जो मल्टी-क्लास सवाल में हर क्लास के लिए दशमलव प्रायिकताएं असाइन करता है, जैसे कि सभी प्रायिकता का योग 1.0 होता है. यह अतिरिक्त कंस्ट्रेंट इससे ट्रेनिंग को ज़्यादा तेज़ी से इकट्ठा होने में मदद मिलती है.
नीचे दी गई इमेज में, एक क्लास के मुकाबले एक साथ सभी क्लास की कैटगरी को लागू करने की प्रोसेस को फिर से लागू किया गया है एक टास्क बनाने के बजाय एक टास्क असाइन करें. ध्यान दें कि सॉफ़्टमैक्स का प्रदर्शन करने के लिए, आउटपुट लेयर के ठीक पहले वाली लेयर (जिसे सॉफ़्टमैक्स लेयर कहा जाता है) में नोड की उतनी संख्या जितनी आउटपुट लेयर में होती है.
![नौवीं इमेज. इन आर्किटेक्चर वाला न्यूरल नेटवर्क: इनपुट
1 नोड वाली लेयर, 3 नोड वाली छिपी हुई लेयर, 4 नोड वाली छिपी हुई लेयर,
4 नोड वाली आउटपुट लेयर. इनपुट नोड में नाशपाती की इमेज डाली जाती है.
आउटपुट लेयर पर, सॉफ़्टमैक्स ऐक्टिवेशन फ़ंक्शन लागू किया जाता है. हर
आउटपुट नोड इस बात की संभावना दिखाता है कि इमेज के बारे में साफ़ तौर पर बताया गया है
फल. आउटपुट नोड 1 'क्या सेब है?' दिखाता है और इसकी वैल्यू 0.19 है.
आउटपुट नोड 2 'क्या नारंगी है?' दिखाता है और इसकी वैल्यू 0.12 है.
आउटपुट नोड 3 'क्या नाशपाती है?' दिखाता है और इसकी वैल्यू 0.63 है.
आउटपुट नोड 4 'क्या ग्रेप है?' दिखाता है और इसकी वैल्यू 0.06 है.](https://developers.google.cn/static/machine-learning/crash-course/neural-networks/images/one_vs_one_neural_net.png?authuser=19&hl=hi)
सॉफ़्टमैक्स के विकल्प
सॉफ़्टमैक्स के ये वैरिएंट इस्तेमाल करें:
फ़ुल सॉफ़्टमैक्स एक ऐसा सॉफ़्टमैक्स है जिसके बारे में हम अब भी बात कर रहे हैं; इसका मतलब है कि सॉफ़्टमैक्स हर संभावित क्लास के लिए प्रॉबबिलिटी की गणना करता है.
उम्मीदवार के नमूने का मतलब है कि सॉफ़्टमैक्स प्रॉबबिलिटी की गणना करता है सभी पॉज़िटिव लेबल के लिए, लेकिन सिर्फ़ टारगेटिंग से बाहर रखा गया है. उदाहरण के लिए, अगर हमें यह तय करना हो कि भले ही, कोई इनपुट इमेज बीगल हो या कोई ब्लडहाउंड हो, हमें यह ज़रूरी नहीं कि हर नॉन-डॉगी उदाहरण के लिए प्रायिकता प्रदान करें.
क्लास की संख्या कम होने पर, फ़ुल सॉफ़्टमैक्स काफ़ी सस्ता होता है लेकिन जब क्लास की संख्या बढ़ जाती है, तो यह काफ़ी महंगा हो जाता है. कैंडिडेट सैंपलिंग से, बड़ी संख्या में होने वाली समस्याओं को बेहतर तरीके से हल किया जा सकता है क्लास की संख्या.
एक लेबल बनाम कई लेबल
सॉफ़्टमैक्स के हिसाब से हर उदाहरण सिर्फ़ एक क्लास का सदस्य है. हालांकि, कुछ उदाहरण एक साथ कई क्लास के सदस्य हो सकते हैं. इन उदाहरणों के लिए:
- सॉफ़्टमैक्स का इस्तेमाल नहीं किया जा सकता.
- आपको एक से ज़्यादा लॉजिस्टिक रिग्रेशन पर भरोसा करना होगा.
उदाहरण के लिए, ऊपर की इमेज 9 में, एक-बनाम एक मॉडल के हिसाब से हर इनपुट में यह माना गया है कि इमेज में सिर्फ़ एक तरह का फल दिखाया जाएगा: सेब, नारंगी, नाशपाती या एक अंगूर. हालांकि, अगर किसी इनपुट इमेज में कई तरह के फल मौजूद हो सकते हैं—a सेब और संतरे, दोनों का एक कटोरा—आपको कई लॉजिस्टिक का उपयोग करना होगा एक से ज़्यादा कन्वर्ज़न प्रोसेस करनी चाहिए.