एमएल प्रैक्टिकल: इमेज क्लासिफ़िकेशन

कॉन्वलूशनल न्यूरल नेटवर्क के बारे में जानकारी

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

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

1. कॉन्वोल्यूशन

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

  • एक्सट्रैक्ट की गई टाइल का साइज़ (आम तौर पर 3x3 या 5x5 पिक्सल).
  • आउटपुट फ़ीचर मैप की गहराई, जो लागू किए गए फ़िल्टर की संख्या से मेल खाती है.

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

4x4 फ़ीचर मैप पर 3x3 कॉन्वोल्यूशन तीसरा डायग्राम. 5x5 इनपुट फ़ीचर मैप पर किया गया, डेप्थ 1 का 3x3 कॉन्वोल्यूशन, जो भी डेप्थ 1 का है. 5x5 फ़ीचर मैप से टाइल निकालने के लिए, 3x3 वाली नौ जगहें हो सकती हैं. इसलिए, यह कन्वोल्यूशन 3x3 वाला आउटपुट फ़ीचर मैप बनाता है.

हर फ़िल्टर-टाइल पेयर के लिए, सीएनएन, फ़िल्टर मैट्रिक्स और टाइल मैट्रिक्स के एलिमेंट के हिसाब से गुणा करता है. इसके बाद, एक वैल्यू पाने के लिए, नतीजे वाले मैट्रिक्स के सभी एलिमेंट का योग करता है. इसके बाद, हर फ़िल्टर-टाइल जोड़े के लिए, इनमें से हर वैल्यू को कंवॉल्व की गई सुविधा मैट्रिक में दिखाया जाता है (देखें किताब के पेज 4a और 4b).

5x5 फ़ीचर मैप और 3x3 कन्वोल्यूशन चौथी इमेज. बाईं ओर: 5x5 इनपुट फ़ीचर मैप (डेप्थ 1). दायां: 3x3 वाला एक कॉन्वोल्यूशन (गहराई 1).

चौथी इमेज. बाईं ओर: 5x5 इनपुट फ़ीचर मैप पर 3x3 वाला कॉन्वोल्यूशन किया जाता है. राइट: फ़िल्टर करने के बाद की इमेज. आउटपुट फ़ीचर मैप में किसी वैल्यू पर क्लिक करके, देखें कि उसकी गिनती कैसे की गई.

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

2. ReLU

हर कॉन्वोल्यूशन ऑपरेशन के बाद, CNN, कॉन्वोल्यूशन की गई फ़ीचर पर Rectified Linear Unit (ReLU) ट्रांसफ़ॉर्मेशन लागू करता है, ताकि मॉडल में नॉन-लीनियरिटी को शामिल किया जा सके. ReLU फ़ंक्शन, \(F(x)=max(0,x)\), x > 0 की सभी वैल्यू के लिए x और x ≤ 0 की सभी वैल्यू के लिए 0 दिखाता है.

3. पूल

ReLU के बाद पूलिंग का चरण आता है. इसमें CNN, प्रोसेसिंग में लगने वाले समय को बचाने के लिए, कॉन्वोल की गई फ़ीचर को डाउनसैंपल करता है. साथ ही, फ़ीचर मैप के डाइमेंशन की संख्या को कम करता है. हालांकि, फ़ीचर की सबसे अहम जानकारी को बनाए रखता है. इस प्रोसेस के लिए इस्तेमाल किए जाने वाले आम एल्गोरिदम को मैक्स पूलिंग कहा जाता है.

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

  • मैक्स-पूलिंग फ़िल्टर का साइज़ (आम तौर पर 2x2 पिक्सल)
  • Stride: निकाली गई हर टाइल के बीच की दूरी, पिक्सल में. कॉन्वोल्यूशन के मुकाबले, मैक्स पूलिंग में स्ट्राइड से उन जगहों का पता चलता है जहां से हर टाइल को निकाला जाता है. कॉन्वोल्यूशन में, फ़िल्टर फ़ीचर मैप पर पिक्सल के हिसाब से स्लाइड करते हैं. 2x2 फ़िल्टर के लिए, 2 की स्ट्राइड से पता चलता है कि मैक्स पूलिंग ऑपरेशन, फ़ीचर मैप से ऐसी सभी 2x2 टाइल निकालेगा जो ओवरलैप नहीं होतीं (चित्र 5 देखें).

2x2 फ़िल्टर और 2 की चरण लंबाई वाले 4x4 फ़ीचर मैप पर मैक्स पूलिंग का ऐनिमेशन

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

पूरी तरह से कनेक्ट की गई लेयर

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

छठे चित्र में, कॉन्वोल्यूशनल न्यूरल नेटवर्क के एंड-टू-एंड स्ट्रक्चर को दिखाया गया है.

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

छठी इमेज. यहां दिखाए गए सीएनएन में, फ़ीचर निकालने के लिए दो कन्वोल्यूशन मॉड्यूल (कन्वोल्यूशन + ReLU + पूलिंग) और कैटगरी तय करने के लिए दो फ़ुल्ली कनेक्टेड लेयर शामिल हैं. अन्य सीएनएन में, कॉन्वोल्यूशनल मॉड्यूल की संख्या ज़्यादा या कम हो सकती है. साथ ही, पूरी तरह से कनेक्ट की गई लेयर की संख्या ज़्यादा या कम हो सकती है. इंजीनियर अक्सर यह पता लगाने के लिए एक्सपेरिमेंट करते हैं कि कौनसा कॉन्फ़िगरेशन उनके मॉडल के लिए सबसे अच्छे नतीजे देता है.