"डीप लर्निंग अपने आप में बहुत कठिन नहीं है"

यह इस अहसास की एक कहानी है कि डीप लर्निंग समुदाय ने इस साल की शुरुआत में - "गलत होने के लिए अपने मॉडलों को बहुत अधिक दंडित नहीं करना था"। यह अहसास तब हुआ जब शोधकर्ता दीवार के खिलाफ अपने सिर को पीट रहे थे ताकि मल्टी ऑब्जेक्ट डिटेक्शन के लिए सभी प्रकार के हैक की कोशिश की जा सके। लेकिन फिर फेसबुक एआई रिसर्च (एफएआईआर) से एक गेम चेंजर आया - घने ऑब्जेक्ट डिटेक्शन के लिए फोकल लॉस - जिसने यह एहसास दिलाया कि शायद हम बहुत कठोर हो रहे हैं, और एक बार फिर, एक अंतर्दृष्टि (गणितीय समीकरण में बदल गया) ने सभी को हटा दिया अव्यवस्था।

पहले कुछ पृष्ठभूमि से शुरू करें। हमें किसी भी तंत्रिका नेटवर्क को प्रशिक्षित करने में सक्षम होने के लिए, हमें 3 चीजों की आवश्यकता है:

  1. डेटा
  2. तंत्रिका नेटवर्क वास्तुकला
  3. लॉस फंकशन

नुकसान फ़ंक्शन का काम कम संख्या में उत्पादन करना है जब तंत्रिका नेटवर्क से आउटपुट वास्तविक मूल्य के करीब है और इसके विपरीत। यह है कि हम गलत होने के लिए तंत्रिका नेटवर्क को दंडित करते हैं।

यदि हम मल्टी-ऑब्जेक्ट डिटेक्शन के इतिहास को देखें, तो मॉडल के दो वर्ग अस्तित्व में आए (लगभग उसी समय 2015 के अंत में) एंड-टू-एंड (1-स्टेज) मल्टी-ऑब्जेक्ट डिटेक्शन के लिए: YOLO (आप केवल देखें) एक बार) और SSD (सिंगल शॉट मल्टीबॉक्‍स डिटेक्टर), जो दो संभावित आर्किटेक्चर के प्रतिनिधि थे, जो एक कस्टम हेड को प्री-प्रशिक्षित कंफ्यूजनल नेटवर्क - जैसे रेसनेट से चिपका कर कर सकते थे।

YOLO ने उन मॉडलों के वर्ग का प्रतिनिधित्व किया जहां हम एक पूरी तरह से जुड़े रैखिक परत से एक लंबे वेक्टर को थूकते हैं, जबकि कस्टम हेड में प्रेरक सक्रियण का दृष्टिकोण मॉडल के SSD वर्ग द्वारा शुरू किया गया था।

चूंकि YOLO और SSD को जारी किया गया था, चीजें बहुत हद तक SSD की ओर बढ़ गई हैं - इस बात के लिए कि YOLOv3 (YOLO का संस्करण 3) अब इसे SSD तरीके से कर रहा है, क्योंकि SSD दृढ़ संकल्पनात्मक सक्रियण के ग्रहणशील क्षेत्र का उपयोग करता है।

एक सक्रियण का ग्रहणशील क्षेत्र कुछ भी नहीं है, लेकिन इनपुट का वह हिस्सा जो उस सक्रियण की गणना में शामिल था। ध्यान दें कि ग्रहणशील क्षेत्र न केवल यह कहता है कि "इस आयत के अंदर के इनपुट इस सक्रियण के लिए ज़िम्मेदार हैं" बल्कि यह भी कहें कि "इस आयत के अंदर के सभी इनपुट में से, आसपास के केंद्र अन्य की तुलना में इस सक्रियण के लिए अधिक ज़िम्मेदार हैं" ।

स्रोत: http://cs231n.github.io/convolutional-networks/

ग्रहणशील क्षेत्र हमें ऐसा कुछ कहने की अनुमति देता है:

कन्वेक्शन लेयर के आउटपुट की टॉप-लेफ्टएस्ट एक्टिविटी इमेज के ऊपरी-बाएँ हिस्से में ऑब्जेक्ट्स के लिए ज़िम्मेदार होगी, कॉन्फ्लिग्नशियल लेयर के आउटपुट का बॉटम-राइटएस्ट इमेज के निचले-दाएं हिस्से में ऑब्जेक्ट्स के लिए ज़िम्मेदार होगा और इसी तरह ।

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

नोट: यदि अंतिम पैराग्राफ में बहुत अधिक समझदारी नहीं है, तो या तो SSD के बारे में पढ़ें या मेरी अगली ब्लॉग पोस्ट के लिए प्रतीक्षा करें कि हम कैसे सक्रियणों की व्याख्या करें और उन्हें हेरफेर करें!

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

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

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

स्रोत: फोकल लॉस पेपर

ऊपर के ग्राफ में नीली रेखा क्रॉस एन्ट्रापी लॉस है। वाई-एक्सिस क्रॉस एन्ट्रापी नुकसान को दर्शाता है जो मॉडल को भुगतना पड़ता है यदि यह x (x- अक्ष पर) की संभावना के साथ जमीनी सच्चाई वर्ग की भविष्यवाणी करता है। तो मुद्दा यह है कि, भले ही मॉडल 0.6 की संभावना के साथ सही चीज़ की भविष्यवाणी करता है, फिर भी हम इसे बहुत अधिक दंडित करते हैं। इसलिए, भले ही मॉडल सही वर्ग की भविष्यवाणी करना चाहता है, लेकिन ऐसा करने के लिए उसके लिए कोई भुगतान नहीं है, और क्योंकि यह अधिकांश समय पृष्ठभूमि है, इसलिए मॉडल यह कहकर पृष्ठभूमि समाप्त कर देता है जब तक कि यह किसी अन्य वर्ग के बारे में निश्चित न हो। तो चाल को नुकसान फ़ंक्शन को बदलना है ताकि यह ग्राफ़ में हरे या बैंगनी रेखा की तरह अधिक दिख सके। फोकल लॉस पेपर ने मॉडल के लिए इसे कम कठोर बनाने के लिए एक कारक द्वारा क्रॉस एंट्रॉपी लॉस को गुणा किया और इससे शानदार परिणाम प्राप्त हुए, जैसा कि आप यहां देख सकते हैं।