एंड्रयू अन की पुस्तक पैशन फॉर मशीन लर्निंग के व्यक्तिगत अध्यायों के अनुवाद के साथ यह दूसरा लेख है। आप पिछले अध्यायों
का अनुवाद
यहाँ पढ़ सकते हैं।
यह लेख एंड-टू-एंड डीप लर्निंग पर केंद्रित होगा, साथ ही पुस्तक के लेखक सीखने के एल्गोरिथ्म त्रुटियों का विश्लेषण करने के कुछ तरीके साझा करेंगे।
एंड-टू-एंड डीप लर्निंग
अध्याय 47. अंत-टू-एंड सीखने की वृद्धि
मान लीजिए कि आप इंटरनेट पर उत्पाद समीक्षाओं की जांच के लिए एक प्रणाली बनाना चाहते हैं, जो स्वचालित रूप से आपको बताएगा कि समीक्षा लेखक को यह उत्पाद पसंद आया या नहीं। उदाहरण के लिए, आप निम्न समीक्षा को बहुत सकारात्मक के रूप में पहचानने की आशा करते हैं:
और निम्नलिखित बेहद नकारात्मक है:
- "यह मोप खराब गुणवत्ता का है, खरीद के बारे में खेद है"
सकारात्मक और नकारात्मक विचारों को पहचानने की समस्या को "मूड का वर्गीकरण" कहा जाता है। इस प्रणाली को बनाने के लिए, आप दो घटकों का "पाइपलाइन" बना सकते हैं:
- पार्सर : एक प्रणाली जो सूचना के साथ पाठ को एनोटेट करती है, सबसे महत्वपूर्ण शब्दों की पहचान करती है। 1 उदाहरण के लिए, आप सभी विशेषणों और संज्ञाओं को निरूपित करने के लिए पार्सर का उपयोग कर सकते हैं। इसलिए, आपको निम्न एनोटेट पाठ प्राप्त होगा:
1 वास्तव में, पार्सर वर्णित पाठ की तुलना में बहुत समृद्ध है, लेकिन यह सरल वर्णन एंड-टू-एंड डीप लर्निंग को समझाने के लिए पर्याप्त होगा।
- सेंटीमेंट क्लासिफायर : एक लर्निंग एल्गोरिथम जो एनोटेट टेक्स्ट का इनपुट लेता है और उसके सामान्य मूड की भविष्यवाणी करता है। पार्सर एनोटेशन इस एल्गोरिथम की बहुत मदद कर सकते हैं: विशेषणों को अधिक भार देकर, आपके एल्गोरिथ्म को "उत्कृष्ट" जैसे महत्वपूर्ण शब्दों को संसाधित करने और "इस" जैसे कम महत्वपूर्ण शब्दों को अनदेखा करके जल्दी से ध्यान में लाया जा सकता है।
हम दो घटकों की इस पाइपलाइन की कल्पना कर सकते हैं:
हाल ही में, एकल शिक्षण एल्गोरिथ्म के साथ पाइपलाइनों को बदलने की प्रवृत्ति हुई है। इस कार्य के लिए एंड-टू-एंड लर्निंग एल्गोरिदम बस कच्चे, मूल पाठ को ले जाएगा "यह एक महान एमओपी है!" इनपुट के रूप में और सीधे इसके मूड को पहचानने का प्रयास करें:
तंत्रिका नेटवर्क का उपयोग आमतौर पर एंड-टू-एंड लर्निंग सिस्टम में किया जाता है। शब्द "पास-थ्रू" इस तथ्य को संदर्भित करता है कि हम सीखने के एल्गोरिथ्म को सीधे इनपुट से वांछित परिणाम पर जाने के लिए कहते हैं। यही है, सीखने का एल्गोरिथ्म सीधे सिस्टम के "इनपुट एंड" को "आउटपुट एंड" से जोड़ता है।
उन कार्यों में जहां बहुत अधिक डेटा है, एंड-टू-एंड सिस्टम बेहद सफल रहे हैं। लेकिन वे हमेशा एक अच्छा विकल्प नहीं होते हैं। अगले कुछ अध्याय क्रॉस-कटिंग सिस्टम के अधिक उदाहरण देंगे, साथ ही उन्हें कब और कैसे उपयोग नहीं करना है, इस पर भी सुझाव देंगे।
अध्याय 48. क्रॉस-कटिंग लर्निंग के आगे के उदाहरण
कल्पना कीजिए कि आप एक भाषण मान्यता प्रणाली बनाना चाहते हैं। आप तीन घटकों की एक प्रणाली बना सकते हैं:
घटक निम्नानुसार काम करते हैं:
- कम्प्यूटिंग फ़ंक्शंस: मैन्युअल रूप से डिज़ाइन की गई सुविधाओं को पुनः प्राप्त करें, जैसे कि एमएफसीसी ( मेल-फ़्रीक्वेंसी सेस्ट्रुम गुणांक ), जो डायनेमिक्स में पिच जैसे कम महत्वपूर्ण गुणों की अनदेखी करते हुए एक वाक्य की सामग्री को पकड़ने की कोशिश करते हैं।
- फोनमे रिकॉग्निशन: कुछ भाषाविदों का मानना है कि ध्वनि की बुनियादी इकाइयाँ हैं जिन्हें "फोनेम्स" कहा जाता है। उदाहरण के लिए, "कीप" में प्रारंभिक ध्वनि "के" ध्वनि के समान है "केक" में ध्वनि "सी"। यह प्रणाली ऑडियो रिकॉर्डिंग में व्यक्तिगत स्वर पहचानने का प्रयास करती है।
- अंतिम पहचानकर्ता: मान्यता प्राप्त स्वरों का एक क्रम लेता है और उन्हें एक आउटपुट रिकॉर्ड में एक साथ जोड़ने की कोशिश करता है।
इस "पाइपलाइन" के विपरीत, एंड-टू-एंड सिस्टम इनपुट पर एक ऑडियो रिकॉर्डिंग प्राप्त कर सकता है और इसे सीधे आउटपुट रिकॉर्डिंग में स्थानांतरित करने का प्रयास करेगा:
अब तक, हमने मशीन सीखने के केवल पूरी तरह से रैखिक "कन्वेयर" का वर्णन किया है: उत्पादन क्रमिक रूप से एक चरण से दूसरे चरण में प्रेषित होता है। लेकिन कन्वेयर अधिक जटिल हो सकते हैं। उदाहरण के लिए, यहां एक मानवरहित वाहन के लिए एक सरल वास्तुकला है:
इस कन्वेयर में तीन घटक शामिल हैं: एक कैमरा छवि का उपयोग करके अन्य कारों का पता लगाता है, दूसरा पैदल चलने वालों का पता लगाता है, और अंत में, अंतिम घटक अन्य कारों और पैदल यात्रियों के साथ टकराव से बचने के लिए हमारी कार के पथ की गणना करता है।
इस पाइपलाइन के प्रत्येक घटक को प्रशिक्षित नहीं किया जाएगा। उदाहरण के लिए, "रोबोट के आंदोलन की योजना" पर साहित्य एक कार के मार्ग की अंतिम गणना के लिए कई एल्गोरिदम का वर्णन करता है। इनमें से कई एल्गोरिदम को प्रशिक्षण की आवश्यकता नहीं है।
इसके विपरीत, एंड-टू-एंड दृष्टिकोण सेंसर रीडिंग प्राप्त करने की कोशिश कर सकता है और सीधे स्टीयरिंग व्हील को सही दिशा में एक मोड़ दे सकता है:
हालांकि एंड-टू-एंड ट्रेनिंग ने कई सफलताओं को जन्म दिया है, लेकिन यह हमेशा सबसे अच्छा तरीका नहीं है। उदाहरण के लिए, एंड-टू-एंड भाषण मान्यता अच्छी तरह से काम करती है। लेकिन मैं मानवरहित प्रणालियों के लिए स्वायत्त ड्राइविंग के क्रॉस-कटिंग प्रशिक्षण पर संदेह कर रहा हूं। अगले कुछ अध्याय बताते हैं कि क्यों।
अध्याय 49. क्रॉस-कटिंग प्रशिक्षण: पेशेवरों और विपक्ष
भाषण मान्यता पाइपलाइन के पिछले उदाहरण पर विचार करें:
इसके कई हिस्सों को "मैन्युअल रूप से" डिज़ाइन किया गया है:
- एमएफसीसी विशेष रूप से डिजाइन ऑडियो सुविधाओं का एक सेट है। और यद्यपि वे इनपुट पर प्राप्त सभी ऑडियो का एक उचित सारांश प्रदान करते हैं, वे कुछ जानकारी को छोड़ कर आने वाले संकेत को भी सरल करते हैं।
- फोनीम भाषाविदों का एक आविष्कार है। वे भाषण की ध्वनियों का अपूर्ण प्रतिनिधित्व करते हैं। चूंकि फ़ोनीमेस वास्तविकता के लिए एक खराब अनुमान हैं, एक एल्गोरिथ्म जो भाषण का प्रतिनिधित्व करने के लिए फ़ोनेम्स का उपयोग करता है, पूरे भाषण मान्यता प्रणाली की प्रभावशीलता को सीमित करेगा।
- एमएफसीसी के संकेत भाषण के कुछ गुणों के लिए मजबूत हैं जो सामग्री को प्रभावित नहीं करते हैं, जैसे स्पीकर की पिच। इस प्रकार, वे सीखने के एल्गोरिथ्म के लिए कार्य को सरल बनाने में मदद करते हैं।
- इस हद तक कि स्वर ध्वनि भाषण का एक उचित प्रतिनिधित्व है, वे सीखने के एल्गोरिथ्म को मूल ध्वनि घटकों को समझने में मदद कर सकते हैं और इसलिए, इसकी प्रभावशीलता को बढ़ाते हैं।
अधिक हाथ से डिज़ाइन किए गए घटक होने से अक्सर भाषण पहचान प्रणाली को कम डेटा से सीखने की अनुमति मिलती है। एमएफसीसी और फोनमेस के उपयोग से "मैन्युअल रूप से प्राप्त" ज्ञान "हमारे एल्गोरिथ्म को डेटा से प्राप्त ज्ञान" का पूरक है। जब हमारे पास बहुत कम डेटा होता है, तो यह ज्ञान उपयोगी होता है।
अब एंड-टू-एंड सिस्टम पर विचार करें:
इस प्रणाली में "मैन्युअल" प्राप्त करने के लिए पर्याप्त ज्ञान नहीं है। इसलिए, जब प्रशिक्षण सेट छोटा होता है, तो यह प्रणाली मैन्युअल रूप से डिज़ाइन किए गए कन्वेयर से भी बदतर काम कर सकती है।
हालांकि, जब प्रशिक्षण सेट बड़ा होता है, तो एमएफसीसी या फोनमेस के उपयोग के कारण कोई प्रतिबंध नहीं होता है। यदि लर्निंग एल्गोरिथ्म एक पर्याप्त रूप से बड़ा तंत्रिका नेटवर्क है, और यदि इसे पर्याप्त रूप से बड़े प्रशिक्षण सेट पर प्रशिक्षित किया जाता है, तो इसमें बड़ी क्षमता है, और शायद इष्टतम त्रुटि दर भी है।
एंड-टू-एंड सिस्टम तब सफल होता है जब दोनों सिरों के लिए बहुत सारे टैग किए गए डेटा होते हैं - "इनपुट एंड" और "आउटपुट"। इस उदाहरण में, हमें ऐसे जोड़े (ऑडियो और ट्रांसक्रिप्शन) के एक बड़े सेट की आवश्यकता है। जब इस तरह का डेटा आपके लिए उपलब्ध नहीं है, तो बहुत सावधानी से सीखने के माध्यम से संपर्क करें।
यदि आप एक मशीन सीखने के कार्य पर काम कर रहे हैं जिसमें प्रशिक्षण सेट बहुत छोटा है, तो आपके एल्गोरिथ्म के लिए उपलब्ध होने वाली अधिकांश जानकारी आपकी मानवीय समझ के लिए धन्यवाद प्राप्त की जाएगी, अर्थात्। मैन्युअल रूप से डिज़ाइन किए गए घटकों से।
यदि आप एंड-टू-एंड सिस्टम का उपयोग नहीं करना पसंद करते हैं, तो आपको यह तय करने की आवश्यकता है कि आपकी पाइपलाइन में क्या कदम होंगे और उन्हें एक साथ कैसे फिट होना चाहिए। अगले अध्याय में, हम इस तरह के सिस्टम को डिजाइन करने के लिए कुछ विचार प्रस्तुत करेंगे।
अध्याय 50. पाइपलाइन घटक चयन: डेटा उपलब्धता
जब आप एक कन्वेयर बनाते हैं जो एंड-टू-एंड सिस्टम नहीं है, तो इस कन्वेयर के कौन से घटक एक अच्छा विकल्प होंगे? आप कन्वेयर को कैसे डिज़ाइन करते हैं, समग्र प्रणाली के प्रदर्शन को बहुत प्रभावित करेगा। एक महत्वपूर्ण कारक प्रत्येक घटक के प्रशिक्षण के लिए आसानी से डेटा एकत्र करने की क्षमता है।
उदाहरण के लिए, इस स्वायत्त ड्राइविंग वास्तुकला पर विचार करें:
आप कारों और पैदल यात्रियों का पता लगाने के लिए मशीन लर्निंग एल्गोरिदम का उपयोग कर सकते हैं। इसके अलावा, डेटा एकत्र करना उनके लिए मुश्किल नहीं है: बड़ी संख्या में चिह्नित कारों और पैदल यात्रियों के साथ कंप्यूटर विज़न डेटा के कई तैयार सेट हैं। आप भी बड़े डेटासेट प्राप्त करने के लिए क्राउडसोर्सिंग (जैसे अमेज़न मैकेनिकल तुर्क) का उपयोग कर सकते हैं। इसलिए, कार डिटेक्टर और पैदल यात्री डिटेक्टर बनाने के लिए प्रशिक्षण डेटा एकत्र करना अपेक्षाकृत आसान होगा।
इसके विपरीत, एक स्वच्छ एंड-टू-एंड सिस्टम पर विचार करें:
इस प्रणाली को प्रशिक्षित करने के लिए, हमें पहले से मैप किए गए तत्वों (छवि = सही दिशा में स्टीयरिंग व्हील मोड़) के एक बड़े सेट की आवश्यकता है। यह बहुत समय लेने वाला और महंगा काम है। ऐसे डेटा को इकट्ठा करने के लिए, यह आवश्यक है कि लोग कारों को चलाएं और स्टीयरिंग व्हील के प्रत्येक मोड़ के बारे में डेटा रिकॉर्ड करें। आपको विशेष रूप से सुसज्जित कारों के एक पूरे बेड़े की आवश्यकता होगी और स्थितियों की व्यापक संभव सीमा को कवर करने के लिए ड्राइविंग की एक बड़ी संख्या में मानव-घंटे की आवश्यकता होगी। इससे एंड-टू-एंड सिस्टम को सीखना बहुत मुश्किल हो जाता है। कारों और पैदल यात्रियों की लेबल वाली छवियों का एक बड़ा सेट लेना बहुत आसान है।
अधिक सामान्य अर्थ में, यदि "मध्यवर्ती" कन्वेयर मॉड्यूल (जैसे कार डिटेक्टर या पैदल यात्री डिटेक्टर) के प्रशिक्षण के लिए बहुत अधिक डेटा उपलब्ध है, तो आपको कई घटकों से मिलकर एक कन्वेयर का उपयोग करने के बारे में सोचने की आवश्यकता है। यह विधि बेहतर काम कर सकती है, क्योंकि आप मध्यवर्ती मॉड्यूल के प्रशिक्षण के लिए सभी उपलब्ध डेटा का उपयोग कर सकते हैं।
एंड-टू-एंड मॉडल के लिए अधिक डेटा होने तक, मेरा मानना है कि पारंपरिक दृष्टिकोण स्वायत्त ड्राइविंग के लिए अधिक आशाजनक है: इसकी वास्तुकला वर्तमान डेटा उपलब्धता से बेहतर रूप से मेल खाती है।
अध्याय 51. कन्वेयर घटकों का चयन: कार्य सादगी
डेटा उपलब्धता के अलावा, आपको पाइपलाइन घटकों को चुनते समय दूसरे कारक पर भी विचार करना चाहिए: व्यक्तिगत घटकों को हल करने वाले कार्य कितने सरल हैं? आपको कन्वेयर घटकों का चयन करने का प्रयास करना चाहिए ताकि वे निर्माण करना आसान हो या सीखने में आसान हो। लेकिन एक घटक को सीखने में आसान होने का क्या मतलब है?
जटिलता के बढ़ते क्रम में सूचीबद्ध निम्नलिखित मशीन शिक्षण कार्यों पर विचार करें:
- परिभाषा प्रस्तुत छवि से अधिक है (जैसा कि ऊपर के उदाहरण में है)।
- यह निर्धारित करना कि क्या एक छवि घर के अंदर या बाहर की ओर ले जाती है।
- यह निर्धारित करना कि क्या छवि में एक बिल्ली है।
- यह निर्धारित करना कि काले और सफेद फर के साथ छवि में एक बिल्ली है या नहीं।
- यह निर्धारित करना कि क्या छवि में स्याम देश की बिल्ली है (बिल्लियों की कोई विशेष नस्ल)।
बाइनरी वर्गीकरण की इन समस्याओं में से प्रत्येक के लिए, आपको इनपुट और आउटपुट 0 या 1 पर एक छवि प्राप्त करने की आवश्यकता है। लेकिन सूची में पहले से सूचीबद्ध कार्यों को जानने के लिए "आसान" होने के लिए तंत्रिका नेटवर्क लगता है। आप कम प्रशिक्षण उदाहरणों के साथ सरल कार्यों के लिए एल्गोरिथ्म को प्रशिक्षित कर सकते हैं।
मशीन लर्निंग के वर्तमान चरण में, किसी भी कार्य को आसान या कठिन बनाने की कोई अच्छी औपचारिक परिभाषा नहीं है।
2 गहरी सीखने और बहुपरत तंत्रिका नेटवर्क की वृद्धि के साथ, हम कभी-कभी समस्या को आसान कहते हैं यदि इसे कम गणना चरणों के साथ हल किया जा सकता है (उदाहरण के लिए, छोटी संख्या में परतों के साथ तंत्रिका नेटवर्क का उपयोग करना), और यदि इसे अधिक चरणों की आवश्यकता होती है, तो हम कार्य को मुश्किल कहते हैं। कंप्यूटिंग (जो एक गहरे तंत्रिका नेटवर्क से मेल खाती है)। लेकिन यह एक अनौपचारिक परिभाषा है।
2 जानकारी के एल्गोरिथम सिद्धांत में, कोलमोगोरोव जटिलता की अवधारणा है, जो बताती है कि अध्ययन किए जा रहे फ़ंक्शन की जटिलता सबसे कम कंप्यूटर प्रोग्राम की लंबाई है जो इस फ़ंक्शन का उत्पादन कर सकती है। इस सैद्धांतिक अवधारणा को एआई में कई व्यावहारिक अनुप्रयोग मिले हैं।
यदि आपके पास एक जटिल कार्य को सरल उप-प्रकारों में विभाजित करने का अवसर है, तो प्रत्येक उपशीर्षक को सही ढंग से एन्कोडिंग करके, आप एल्गोरिथ्म को अधिक महत्वपूर्ण ज्ञान देंगे जो पूरी समस्या को हल करने में अधिक कुशलता से मदद कर सकता है।
कल्पना कीजिए कि आप एक स्याम देश की बिल्ली डिटेक्टर डिजाइन कर रहे हैं। यहाँ एक साफ अंत-टू-एंड वास्तुकला है:
इसके विपरीत, आप दो घटकों के एक कन्वेयर का उपयोग कर सकते हैं:
पहले चरण (कैट डिटेक्टर) में, छवि में सभी बिल्लियों को मान्यता दी जाएगी।
फिर, दूसरे चरण में, एक का पता लगाने वाली बिल्लियों में से प्रत्येक की क्रॉप्ड छवियां, एक बार नस्ल क्लासिफायर में स्थानांतरित की जाती हैं। और अंत में, यदि कोई भी ज्ञात बिल्ली स्याम देश की बिल्ली है, तो हमें आउटपुट पर "1" मिलता है।
विशुद्ध रूप से पास-थ्रू क्लासिफ़ायर पढ़ाने की तुलना में, जो केवल 0/1 टैग का उपयोग करता है, पाइपलाइन में दो घटकों (कैट डिटेक्टर और नस्ल क्लासिफ़ायर) में से प्रत्येक सीखने में आसान लगता है और इसमें काफी कम डेटा की आवश्यकता होती है।
33 यदि आप वस्तु का पता लगाने वाले एल्गोरिदम से परिचित हैं जो वास्तव में व्यवहार में उपयोग किया जाता है, तो आप समझेंगे कि वे न केवल छवि लेबल 0/1 के साथ प्रशिक्षित हैं। इसके बजाय, उन्हें प्रशिक्षण डेटा के हिस्से के रूप में प्रदान किए गए प्रतिबंधात्मक ढांचे का उपयोग करके प्रशिक्षित किया जाता है। उनकी चर्चा इस अध्याय के दायरे से बाहर है।
और अंतिम उदाहरण, चलो फिर से स्वायत्त ड्राइविंग कार्य के लिए पाइपलाइन को याद करें:
इस कन्वेयर का उपयोग करते हुए, आप एल्गोरिथ्म को बताते हैं कि कार चलाने में तीन प्रमुख चरण हैं:
- अन्य कारों को पहचानो।
- पैदल चलने वालों को पहचानो।
- आगे के आंदोलन की दिशा की योजना बनाएं।
इनमें से प्रत्येक चरण एक सरल कार्य है और विशुद्ध रूप से क्रॉस-कटिंग दृष्टिकोण के साथ कम डेटा पर प्रशिक्षित किया जा सकता है।
परिणामस्वरूप, जब पाइपलाइन के घटक क्या होने चाहिए, यह तय करते हुए, एक पाइपलाइन बनाने की कोशिश करें जहां प्रत्येक घटक एक अपेक्षाकृत "सरल" फ़ंक्शन है जो केवल डेटा की एक छोटी राशि पर प्रशिक्षित किया जा सकता है।
अध्याय 52. इमर्सिव जानकारी के साथ सीखना
छवि वर्गीकरण एल्गोरिथ्म एक इनपुट छवि एक्स लेता है और एक पूर्णांक बनाता है, जो ऑब्जेक्ट की श्रेणी के लिए एक लेबल है। क्या एल्गोरिथ्म के बजाय छवि का वर्णन करने वाला एक पूरा वाक्य आउटपुट कर सकता है?
उदाहरण के लिए:
Y = "पेड़ों और हरी घास के बीच एक पीले रंग की बस सड़क को गिरा रही है।"
एक शिक्षक के साथ शिक्षण के पारंपरिक अनुप्रयोग में एक प्रशिक्षित फ़ंक्शन एच: एक्स → वाई की उपस्थिति शामिल है, जहां आउटपुट (वाई) आमतौर पर एक पूर्णांक या प्राकृतिक संख्या द्वारा दर्शाया जाता है। उदाहरण के लिए:
क्रॉस-कटिंग गहरी सीखने के बारे में सबसे रोमांचक चीजों में से एक यह है कि यह हमें सीधे वाई सीखने में सक्षम बनाता है, जो संख्याओं की तुलना में बहुत अधिक जटिल है। ऊपर वर्णित छवि विवरण कार्य के साथ उदाहरण में, आप तंत्रिका नेटवर्क के इनपुट पर कुछ छवि (x) लागू कर सकते हैं और आउटपुट पर तत्काल विवरण (y) प्राप्त कर सकते हैं।
यहाँ कुछ उदाहरण हैं:
यह गहरी सीखने में एक बढ़ती प्रवृत्ति है: जब आपके पास सही (इनपुट, आउटपुट) लेबल वाले जोड़े होते हैं, तो आप कभी-कभी एंड-टू-एंड ट्रेनिंग चुन सकते हैं, भले ही आउटपुट एक वाक्य, छवि, ऑडियो या कोई अन्य आउटपुट हो, जो बहुत अधिक जानकारी प्रदान करता है, केवल एक टैग संख्या से।
आंशिक त्रुटि विश्लेषण
अध्याय 53. भागों में त्रुटियों का विश्लेषण
मान लीजिए कि आपका सिस्टम एक परिष्कृत मशीन लर्निंग पाइपलाइन का उपयोग करके बनाया गया है, और आप सिस्टम की दक्षता में सुधार करना चाहते हैं। कन्वेयर के किस हिस्से में आपको सुधार करना चाहिए? पाइपलाइन के विशिष्ट भागों में त्रुटियों को जिम्मेदार ठहराते हुए, आप यह तय कर सकते हैं कि अपने काम को कैसे प्राथमिकता दी जाए।
चलो हमारे स्याम देश की बिल्लियों का वर्गीकरण उदाहरण का उपयोग करें:
पहला भाग, एक बिल्ली डिटेक्टर, बिल्लियों का पता लगाता है और उन्हें पूरी छवि से बाहर निकाल देता है। दूसरा भाग, बिल्ली की नस्ल का वर्गीकरण, यह तय करता है कि यह बिल्ली स्याम देश की बिल्ली है या नहीं। कन्वेयर के इन दो घटकों में से किसी एक को बेहतर बनाने के लिए आप वर्षों से काम कर रहे हैं। आप कैसे तय करते हैं कि किस घटक पर ध्यान केंद्रित करें?
भागों में त्रुटियों के विश्लेषण को अंजाम देते हुए, आप एल्गोरिथ्म की प्रत्येक त्रुटि को पाइपलाइन के दो भागों में से एक में (और कभी-कभी दोनों एक ही बार) करने की कोशिश कर सकते हैं। उदाहरण के लिए, एल्गोरिथ्म गलत तरीके से इस छवि को स्याम देश की बिल्ली (y = 0) के रूप में वर्गीकृत करता है, हालांकि सही लेबल y = 1 है।
आइए मैन्युअल रूप से जांचें कि एल्गोरिथ्म प्रत्येक दो चरणों में क्या करता है। मान लीजिए कि एक स्याम देश की बिल्ली डिटेक्टर ने एक बिल्ली का पता लगाया है:
इसका मतलब है कि बिल्ली की नस्ल का वर्गीकरण इस छवि को प्राप्त होगा:
ब्रीड क्लासिफायर इस छवि को सही ढंग से वर्गीकृत करता है, जिसमें स्याम देश की बिल्ली नहीं है। इस प्रकार, बिल्ली की नस्ल का वर्गीकरण निर्दोष है: उसने प्रवेश द्वार पर पत्थरों का एक गुच्छा प्राप्त किया और एक बहुत ही उचित चिह्न y = 0. दिया। वास्तव में, जो व्यक्ति ऊपर खड़ी छवि को वर्गीकृत करता है वह भी y = 0. का अनुमान लगाता है। इस प्रकार, आप स्पष्ट रूप से इस त्रुटि का श्रेय दे सकते हैं। बिल्ली डिटेक्टर।दूसरी ओर, यदि एक बिल्ली डिटेक्टर निम्नलिखित बाउंडिंग बॉक्स प्रदर्शित करता है:तब आप यह निष्कर्ष निकालेंगे कि बिल्ली डिटेक्टर ने अपना काम सही ढंग से किया, और नस्ल क्लासिफायर के कारण त्रुटि हुई।मान लीजिए कि आपने एक सत्यापन नमूने की 100 गलत तरीके से वर्गीकृत छवियों के माध्यम से जाना और पाया कि एक बिल्ली डिटेक्टर से संबंधित 90 त्रुटियां, और बिल्ली नस्ल वर्गीकरण से संबंधित केवल 10 त्रुटियां हैं। आप सुरक्षित रूप से निष्कर्ष निकाल सकते हैं कि आपको अपने बिल्ली डिटेक्टर को बेहतर बनाने पर अधिक ध्यान केंद्रित करना चाहिए।इसके अलावा, आपने सफलतापूर्वक 90 उदाहरण भी खोजे हैं जहां कैट डिटेक्टर गलत बाउंडिंग बॉक्स को बाहर निकालता है। आप इन 90 उदाहरणों का उपयोगकैट डिटेक्टर त्रुटियों के गहन विश्लेषण के लिए कर सकते हैं कि इसे कैसे सुधारें।पाइप लाइन के एक हिस्से में त्रुटि को कैसे पहचाना जाए, इसके बारे में हमारा विवरण अब तक अनौपचारिक रहा है: आप प्रत्येक भाग के आउटपुट को देखते हैं और देखते हैं कि क्या आप यह तय कर सकते हैं कि किसमें त्रुटि हुई। यह अनौपचारिक विधि पर्याप्त हो सकती है। लेकिन अगले अध्याय में, आपको त्रुटियों को जिम्मेदार ठहराने का एक और औपचारिक तरीका भी दिखाई देगा।
अध्याय 54. एक विशिष्ट भाग में त्रुटि का गुण
हमारे उदाहरण के साथ जारी रखें:मान लें कि बिल्ली डिटेक्टर ने इस बाउंडिंग बॉक्स का उत्पादन किया:इस प्रकार, ब्रीड क्लासिफायर ने इस फसली छवि को प्राप्त किया, जिसके बाद इसे गलत तरीके से y = 0 जारी किया, अर्थात। कि तस्वीर में कोई बिल्ली नहीं है।कैट डिटेक्टर ने एक खराब काम किया। जबकि एक प्रशिक्षित व्यक्ति निस्संदेह इस फसली छवि में स्याम देश की बिल्ली को पहचानने में सक्षम होगा। इसलिए, हम इस त्रुटि को एक बिल्ली डिटेक्टर, या एक नस्ल क्लासिफायर, या दोनों के लिए जिम्मेदार मानते हैं? अस्पष्ट।यदि ऐसे विवादास्पद मामलों की संख्या कम है, तो हम कोई भी निर्णय ले सकते हैं और एक समान परिणाम प्राप्त कर सकते हैं। लेकिन यहाँ एक अधिक औपचारिक परीक्षण है, जो हमें सटीक रूप से एक भाग में त्रुटि का अधिक सटीक विश्लेषण करने की अनुमति देता है:- मैन्युअल रूप से चिह्नित फ्रेम के साथ बिल्ली डिटेक्टर के आउटपुट को बदलें।

- नस्ल क्लासिफायर के माध्यम से संबंधित फसली छवि को पास करें। यदि नस्ल क्लासिफायर अभी भी छवि को सही ढंग से वर्गीकृत नहीं करता है, तो त्रुटि को नस्ल क्लासिफायरियर में बदलें। अन्यथा, त्रुटि का श्रेय कैट डिटेक्टर को दिया जाता है।
दूसरे शब्दों में, एक प्रयोग करें जिसमें आप रॉक क्लासिफायरियर के इनपुट के लिए आदर्श डेटा प्रस्तुत करते हैं। इस स्थिति में, 2 विकल्प संभव हैं:- यहां तक कि एक आदर्श फ्रेम के साथ, नस्ल क्लासिफायरियर त्रुटिपूर्ण रूप से y = 0. इस मामले में, क्लासिफायर बेशक दोष देने के लिए है।
- एक आदर्श फ्रेम प्राप्त करने के बाद, ब्रीड क्लासिफायरियर सही रूप से y = 1. यह दर्शाता है कि यदि केवल बिल्ली डिटेक्टर ने अधिक सही बाउंडिंग बॉक्स का उत्पादन किया, तो सिस्टम का सामान्य निष्कर्ष सही होगा। इस प्रकार, हम बिल्ली डिटेक्टर को त्रुटि का श्रेय देते हैं।
सत्यापन नमूना से गलत तरीके से वर्गीकृत छवियों का ऐसा विश्लेषण करने के बाद, आप अब प्रत्येक घटक को त्रुटिहीन रूप से विशेषता दे सकते हैं। यह आपको पाइपलाइन के प्रत्येक घटक से जुड़ी त्रुटियों के अनुपात का अनुमान लगाने की अनुमति देता है, और, इसलिए, तय करें कि आपका ध्यान किस पर केंद्रित है।
अध्याय 55. त्रुटियां दर्ज करने का मुख्य मामला
त्रुटियों के लिए सामान्य चरण यहां दिए गए हैं। मान लीजिए कि पाइपलाइन में तीन चरण हैं ए, बी और सी, जहां ए को सीधे बी को खिलाया जाता है और बी को सी को सीधे खिलाया जाता है।प्रत्येक त्रुटि के लिए जो सिस्टम सत्यापन नमूने पर बनाता है:- मैन्युअल रूप से स्टेज ए के आउटपुट को "आदर्श" आउटपुट (यानी, बिल्ली के लिए "आदर्श" बाउंडिंग बॉक्स) से बदलने की कोशिश करें और इस तरह के आउटपुट के साथ बाकी बी, सी के साथ जारी रखें। यदि एल्गोरिथ्म अब सही परिणाम का उत्पादन करता है, तो यह इंगित करता है कि पूरे एल्गोरिथ्म को सही ढंग से काम करने के लिए केवल स्टेज ए को अपने स्वयं के आउटपुट में सुधार करना चाहिए। इस प्रकार, आप इस त्रुटि को घटक ए के लिए विशेषता दे सकते हैं अन्यथा, चरण 2 पर जाएं।
- मैन्युअल रूप से "सही" आउटपुट के साथ स्टेज बी के आउटपुट को बदलने का प्रयास करें। यदि संपूर्ण एल्गोरिथ्म सही ढंग से काम करना शुरू कर देता है, तो त्रुटि को घटक बी में सुधार करें अन्यथा, चरण 3 पर जाएं।
- घटक सी में त्रुटि को शामिल करें।
अधिक जटिल उदाहरण पर एक नज़र डालें:आपका ड्रोन इस कन्वेयर का उपयोग करता है। कैसे, टुकड़ा त्रुटि विश्लेषण का उपयोग करते हुए, किस घटक पर ध्यान केंद्रित करना है?आप निम्नानुसार घटकों को चिह्नित कर सकते हैं:- A. कारों को पहचानो।
- B. पैदल चलने वालों को पहचानें।
- C. योजना की तरह।
ऊपर वर्णित प्रक्रिया के बाद, मान लीजिए कि आप अपनी कार को एक बंद प्रशिक्षण के मैदान में परीक्षण करते हैं और एक मामला पाते हैं जहां कार एक अनुभवी चालक की तुलना में तेज दिशा में एक पैंतरेबाज़ी चुनती है। मानव रहित ड्राइविंग की दुनिया में, इस तरह की घटना को आमतौर पर स्क्रिप्ट कहा जाता है। इस मामले में:- A ( ) «» (.. ). B C , C ( ) «» A. , , A , . A. 2.
- B ( ) «» . , B. 3.
- C.
मशीन लर्निंग पाइपलाइन घटकों को एक निर्देशित चक्रीय ग्राफ (डीएजी) के अनुसार व्यवस्थित किया जाना चाहिए, जिसका अर्थ है कि आपको उन्हें बाएं से दाएं कुछ निश्चित क्रम में गणना करने में सक्षम होना चाहिए, और बाद में घटकों को केवल पहले के घटकों के आउटपुट पर निर्भर होना चाहिए। जब तकए → बी → सी क्रम में घटकों की व्यवस्था डीएजी के आदेश से मेल खाती है, तब तक त्रुटि विश्लेषण सही ढंग से आगे बढ़ेगा।यदि आप A और B को स्वैप करते हैं तो आप कुछ अलग परिणाम प्राप्त कर सकते हैं:- ए। पैदल यात्रियों को पहचानें (पूर्व में कार की पहचान)
- बी। मान्यता प्राप्त कारें (पूर्व में पैदल यात्री मान्यता)
- C. अपनी कार पथ योजना
लेकिन इस विश्लेषण का परिणाम अभी भी सही रहेगा और आपको अपना ध्यान किस पर केंद्रित करना चाहिए, इस पर अच्छा मार्गदर्शन देना चाहिए।
अध्याय 56. भागों में त्रुटियों का विश्लेषण और मानव स्तर पर दक्षता के साथ तुलना
एक लर्निंग एल्गोरिदम में एक त्रुटि विश्लेषण का संचालन करना एमएल सिस्टम त्रुटियों का विश्लेषण करने के लिए डेटा विज्ञान का उपयोग करने के समान है, ताकि यह पता चल सके कि आगे क्या करना है। ज्यादातर मामलों में, एक टुकड़ा त्रुटि विश्लेषण हमें बताएगा कि कौन सा घटक सबसे ऊपर सुधार करने की कोशिश कर रहा है।मान लीजिए कि आपके पास वेबसाइट पर चीज़ें खरीदने वाले ग्राहकों के बारे में कुछ डेटासेट हैं। एक डेटा वैज्ञानिक कई अलग-अलग तरीकों से डेटा का विश्लेषण कर सकता है। वह इस बारे में कई अलग-अलग निष्कर्ष निकाल सकता है कि क्या साइट को कीमतों में वृद्धि करनी चाहिए, विभिन्न विपणन अभियानों के माध्यम से प्राप्त ग्राहकों के मूल्य के बारे में और इसी तरह। डेटा सेट का विश्लेषण करने के लिए कोई "सही" तरीका नहीं है; कई संभावित उपयोगी विचार हैं जो उत्पन्न हो सकते हैं। इसी तरह, त्रुटियों का विश्लेषण करने का कोई एक "सही" तरीका नहीं है। इन अध्यायों में, आपने अपने एमएल प्रणाली के बारे में उपयोगी जानकारी प्राप्त करने के लिए कुछ सबसे सामान्य डिजाइन पैटर्न सीखे, लेकिन आप त्रुटि विश्लेषण के अन्य तरीकों के साथ स्वतंत्र रूप से प्रयोग भी कर सकते हैं।मानव रहित वाहन एप्लिकेशन पर वापस, जिसमें कार डिटेक्शन एल्गोरिदम पास की कारों के स्थान (और संभवतः गति) को प्रदर्शित करता है, पैदल यात्री का पता लगाने वाला एल्गोरिदम निकटतम पैदल यात्रियों के स्थान को प्रदर्शित करता है, और ये दोनों आउटपुट कार के लिए पथ की योजना बनाने के लिए आखिरकार उपयोग किए जाते हैं।इस पाइपलाइन को डीबग करने के लिए और उस प्रक्रिया का सख्ती से पालन न करना जो आपने पिछले अध्याय में देखी थी, आप निम्नलिखित प्रश्न पूछ सकते हैं:- एक समान समस्या को हल करने में मानव दक्षता से कार मान्यता एल्गोरिदम कितनी दूर है?
- इसी तरह की समस्या को हल करने में मानव प्रदर्शन से पैदल यात्री मान्यता एल्गोरिदम कितनी दूर है?
- ? , , ( ). , « » , ?
यदि आप पाते हैं कि सिस्टम का एक घटक मानव दक्षता से दूर है, तो आपके पास इस घटक की प्रभावशीलता में सुधार करने पर ध्यान केंद्रित करने का एक अच्छा अवसर होगा।कई त्रुटि विश्लेषण प्रक्रियाएं बेहतर काम करती हैं जब हम कुछ ऐसा करने की कोशिश करते हैं जो एक व्यक्ति कर सकता है, इसलिए हम परिणामों की तुलना किसी व्यक्ति के परिणामों से करते हैं। हमारे पिछले उदाहरणों में से अधिकांश में यह निहित धारणा थी। यदि आप एक ऐसी एमएल सिस्टम का निर्माण कर रहे हैं जिसमें अंतिम निकास या कुछ मध्यवर्ती घटक ऐसे काम करते हैं जो एक व्यक्ति भी अच्छा नहीं कर सकता है, तो इनमें से कुछ प्रक्रियाएं लागू नहीं होंगी।यह उन समस्याओं पर काम करने का एक और फायदा है जो लोग हल कर सकते हैं - त्रुटियों का विश्लेषण करने के लिए आपके पास अधिक शक्तिशाली उपकरण हैं, और इसलिए, आप अपनी टीम के काम को प्राथमिकता दे सकते हैं।
अध्याय 57. एमएल पाइपलाइन में त्रुटि का पता लगाना
क्या होगा यदि आपके एमएल कन्वेयर का प्रत्येक व्यक्तिगत घटक मानव स्तर पर दक्षता दिखाता है या थोड़ा कम है, लेकिन सामान्य कन्वेयर दूर मानव स्तर के अनुरूप नहीं है? आमतौर पर इसका मतलब यह है कि कन्वेयर में खामियां हैं और उन्हें फिर से डिजाइन करने की आवश्यकता है। यदि आपकी पाइपलाइन को फिर से डिज़ाइन करने की आवश्यकता है, तो त्रुटि विश्लेषण आपको यह पता लगाने में भी मदद कर सकता है।पिछले अध्याय में, हमने सवाल उठाया: क्या तीनों घटकों में से प्रत्येक मानव स्तर पर कार्यकुशलता दिखाता है? मान लीजिए तीनों सवालों का जवाब हां में है। तब:- , , () .
- , , () .
- , , , , , ( ).
फिर भी, आपका मानव रहित वाहन एक व्यक्ति की तुलना में काफी खराब ड्राइविंग करता है। यही है, जो लोग कैमरे से छवियों तक पहुंच रखते हैं, वे कार के मार्ग की बेहतर योजना बना सकते हैं। आप क्या निष्कर्ष निकाल सकते हैं?एकमात्र संभव निष्कर्ष यह है कि आपकी एमएल पाइपलाइन सही ढंग से डिज़ाइन नहीं की गई है। इस मामले में, कार के पथ की योजना बनाने वाला घटक काम करता है और साथ ही यह आने वाले डेटा की अनुमति देता है जिसमें पर्याप्त जानकारी नहीं होती है। आपको अपने आप से पूछना चाहिए कि कार के पथ की उत्कृष्ट योजना के लिए पिछली दो घटकों के उत्पादन में कौन सी अन्य जानकारी नहीं है। दूसरे शब्दों में, एक अनुभवी ड्राइवर द्वारा अन्य जानकारी का क्या उपयोग किया जाता है?मान लीजिए कि आप समझते हैं कि एक मानव चालक को भी सड़क के निशान देखने की जरूरत है। यह सुझाव देता है कि आपको पाइप लाइन के इंजीनियर को उल्टा करना चाहिए: 44 , , . «Task simplicity», 51, , . « » — , / .
अंततः, अगर आपको लगता है कि आपकी पाइपलाइन पूरी तरह से मानव दक्षता प्राप्त नहीं कर पाएगी, भले ही प्रत्येक व्यक्तिगत घटक में मानव-स्तरीय दक्षता हो (याद रखें कि आप किसी ऐसे व्यक्ति से तुलना कर रहे हैं जिसके पास घटक के समान इनपुट है) , तो इस तरह के एक कन्वेयर में कमियां हैं और इसे फिर से डिजाइन किया जाना चाहिए।निष्कर्ष
अध्याय 58. एक सुपर टीम का निर्माण करें, इस ज्ञान को साथियों के साथ साझा करें
इस पुस्तक को पूरा करने के लिए बधाई!
अध्याय 2 में, हमने इस बारे में बात की कि यह पुस्तक कैसे आपकी टीम में एक सुपर हीरो बनने में मदद कर सकती है।
सुपरहीरो होने से बेहतर यही हो सकता है कि वह सुपरहीरो की टीम का हिस्सा हो। मुझे उम्मीद है कि आप इस पुस्तक की प्रतियां अपने दोस्तों और साथियों के साथ साझा करेंगे और अन्य सुपरहीरो बनाने में मदद करेंगे!