निगरानी में रखा गया समानता का आकलन

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

याद रखें कि हम समानता का आकलन करने के लिए, सिर्फ़ निगरानी में रखे गए लर्निंग के बारे में चर्चा कर रहे हैं. इसके बाद, चाहे वह मैन्युअल रूप से हो या निगरानी में हो, दोनों का इस्तेमाल एक एल्गोरिदम की मदद से किया जाता है. ऐसा बिना निगरानी वाली क्लस्टरिंग के लिए किया जाता है.

मैन्युअल और निगरानी में रखे गए तरीकों की तुलना

इस टेबल में बताया गया है कि आपकी ज़रूरत के हिसाब से, मैन्युअल या निगरानी में रखे गए, मिलते-जुलते तरीके का इस्तेमाल कब करना चाहिए.

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

निगरानी में रखा गया समानता का आकलन करने की प्रक्रिया

नीचे दिए गए डायग्राम में, निगरानी में रखा गया, मिलता-जुलता तरीका बनाने का तरीका बताया गया है:

इनपुट सुविधा का डेटा. डीएनएन चुनें: ऑटोएनकोडर या प्रेडिक्टर.
      एम्बेड किए गए आइटम निकालें. मेज़रमेंट चुनें: डॉट प्रॉडक्ट, कोसाइन या
 यूकलिडियन दूरी.
पहली इमेज: निगरानी में रखा गया मिलता-जुलता वीडियो बनाने का तरीका.

आपने पहला चरण पहले ही सीख लिया है. इस पेज में अगले चरण के बारे में बताया गया है. बाकी पेजों में बाकी के चरणों के बारे में बताया गया है.

ट्रेनिंग लेबल के हिसाब से डीएनएन चुनें

अपनी सुविधा के डेटा को एम्बेड करने की संख्या कम करने के लिए, ऐसा डीएनएन इस्तेमाल करें जो इनपुट के तौर पर एक ही सुविधा वाले डेटा का इस्तेमाल करता हो. उदाहरण के लिए, हाउस डेटा के मामले में, डीएनएन खुद से उन सुविधाओं का इस्तेमाल करेगा, जैसे कि कीमत, साइज़, और पिन कोड. एक ही सुविधा के डेटा का अनुमान लगाने के लिए, सुविधा के डेटा का इस्तेमाल करने के लिए, डीएनएन को इनपुट सुविधा का डेटा, एम्बेड करने के लिए कम करना पड़ता है. आप समानता का हिसाब लगाने के लिए इन एम्बेडिंग का इस्तेमाल करते हैं.

डीएनएन जो इनपुट डेटा का अनुमान लगाकर, इनपुट डेटा को एम्बेड करने का तरीका सीखता है, उसे ऑटोएनकोडर कहा जाता है. एक ऑटोएनकोडर की छिपी हुई लेयर, इनपुट और आउटपुट लेयर की तुलना में छोटी होती हैं, इसलिए ऑटोइनकोडर को इनपुट सुविधा के डेटा का एक कंप्रेस किया हुआ प्रज़ेंटेशन सीखने के लिए मजबूर होना पड़ता है. डीएनएन को ट्रेनिंग मिलने के बाद, आप छिपी हुई आखिरी लेयर से एम्बेडिंग करते हैं और समानता का हिसाब लगाते हैं.

ऑटोएनकोडर और अनुमान लगाने वाले व्यक्ति के DNN के बीच तुलना.
       शुरुआती इनपुट और छिपे हुए लेयर एक जैसे होते हैं, लेकिन अनुमानित मॉडल
       की खास सुविधा की मदद से, आउटपुट को फ़िल्टर किया जाता है.
दूसरी इमेज: ऑटोएन्कोडर और प्रेडिक्टर के बीच तुलना.

ऑटोएनकोडर, एम्बेड करने का सबसे आसान विकल्प है. हालांकि, एक जैसी विशेषताओं का पता लगाने के लिए, कुछ सुविधाओं की तुलना में ऑटोएनकोडर सबसे अच्छा विकल्प नहीं है. उदाहरण के लिए, हाउस डेटा में, मान लें कि "पिन कोड" की तुलना में "कीमत" ज़्यादा अहम है. ऐसे मामलों में, सिर्फ़ अहम सुविधा का इस्तेमाल, डीएनएन के ट्रेनिंग लेबल के तौर पर करें. इस डीएनएन से सभी इनपुट सुविधाओं का अनुमान लगाने के बजाय, किसी खास इनपुट सुविधा का ही अनुमान लगाया जाता है. इसलिए, इसे पूर्वानुमाक डीएनएन कहा जाता है. लेबल के तौर पर कोई सुविधा चुनने के लिए, इन दिशा-निर्देशों का इस्तेमाल करें:

  • संख्या वाली सुविधाओं को लेबल के रूप में तय करने के लिए अंकों वाली विशेषताओं को प्राथमिकता दें, क्योंकि संख्या वाली सुविधाओं का हिसाब लगाना और उनके बारे में समझना आसान है.

  • घटकों की संख्या के साथ, कैटगरी वाली सुविधाओं का इस्तेमाल न करें \(\lesssim\) 100 लेबल के तौर पर. अगर आप ऐसा करते हैं, तो डीएनएन को आपके इनपुट डेटा को एम्बेड करने के लिए कम नहीं करना पड़ेगा क्योंकि डीएनएन, घटकों की कम संख्या वाले कैटगरी लेबल का आसानी से अनुमान लगा सकता है.

  • आप जिस सुविधा का इस्तेमाल लेबल से DNN में करते हैं उसे हटाएं. इसके बाद, डीएनएन आउटपुट का सही अनुमान लगाएगा.

आपके चुने गए लेबल के आधार पर, नतीजे के तौर पर मिले डीएनएन या तो ऑटोएनकोडर डीएनएन या अनुमानित डीएनएन होता है.

डीएनएन के लिए लॉस फ़ंक्शन

DNN को ट्रेनिंग देने के लिए, आपको यह तरीका अपनाकर लॉस फ़ंक्शन बनाना होगा:

  1. पता लगाएं कि डीएनएन के हर आउटपुट से कितना नुकसान हुआ है. जो आउटपुट हैं उनके लिए:
    • अंकों में मीन स्क्वेयर गड़बड़ी (एमएसई) का इस्तेमाल करें.
    • एक जैसी कैटगरी वाले, लॉग लीक होने का इस्तेमाल करें. ध्यान दें कि आपको लॉग अनइंस्टॉल करने की ज़रूरत नहीं है, क्योंकि आप इसका हिसाब लगाने के लिए लाइब्रेरी फ़ंक्शन का इस्तेमाल कर सकते हैं.
    • मल्टीवैलेंट कैटगरी, सॉफ़्टमैक्स क्रॉस एंट्रॉपी लॉस का इस्तेमाल करें. ध्यान दें कि आपको सॉफ़्टमैक्स क्रॉस एंट्रॉपी हानि लागू करने की ज़रूरत नहीं पड़ेगी. क्योंकि, आप इसका हिसाब लगाने के लिए लाइब्रेरी फ़ंक्शन का इस्तेमाल कर सकते हैं.
  2. हर आउटपुट की हानि का योग जोड़कर कुल नुकसान की गणना करें.

हार का हिसाब लगाते समय, यह पक्का करें कि हर सुविधा से उसके नुकसान में बराबर योगदान दिया गया हो. उदाहरण के लिए, अगर आप कलर डेटा को आरजीबी वैल्यू में बदलते हैं, तो आपके पास तीन आउटपुट होते हैं. लेकिन तीन आउटपुट के नुकसान को जोड़ने का मतलब है कि रंग के लिए हुए नुकसान का आकलन दूसरी सुविधाओं के मुकाबले तीन गुना किया जाता है. इसके बजाय, हर आउटपुट को 1/3 से गुणा करें.

ऑनलाइन सिस्टम में डीएनएन इस्तेमाल करना

ऑनलाइन मशीन लर्निंग सिस्टम में नए इनपुट डेटा की एक स्ट्रीम है. आपको नए डेटा पर अपना DNN प्रशिक्षित करना होगा. हालांकि, अगर आप अपने DNN को नए सिरे से फिर से ट्रेनिंग देते हैं, तो आपके एम्बेडिंग अलग होंगे, क्योंकि DNN को किसी भी क्रम में लगाया जा सकता है. इसके बजाय, डीएनएन को हमेशा मौजूदा अहमियत के साथ शुरू करें और फिर नए डेटा के साथ डीएनएन अपडेट करें.