एआई कार्यशाला: छवियों को पहचानने के लिए मशीन को कैसे सिखाना है

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

फोटो: फ्रीडा एगुइलर एस्ट्राडा

हमारी कार को आगे बढ़ने के लिए एक कैमरे की जरूरत है। एक विकल्प एक लिडार (लाइट डिटेक्शन एंड रेंजिंग) रडार होगा जो अपने आस-पास के वातावरण को चित्रित करने के लिए लेजर बीम का उपयोग करता है। लेकिन अगर एलोन मस्क को लगता है कि टेस्ला के लिए एक ऑप्टिकल समाधान पर्याप्त है, तो यह हमारे लिए पर्याप्त है। इस पोस्ट में मैं AI छवि मान्यता के तकनीकी आधार का वर्णन करने का प्रयास करता हूं।

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

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

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

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

तंत्रिका नेटवर्क में सिनैप्स का उपयोग करके एक साथ जुड़े हुए न्यूरॉन्स होते हैं। कनेक्शन के अलग-अलग वजन हैं। न्यूरॉन्स को सक्रियण कार्य दिए जाते हैं जो यह परिभाषित करते हैं कि न्यूरॉन को कब निकाल दिया जाता है और जानकारी पर गुजरता है। (आप विभिन्न प्रकार के सक्रियण कार्यों के बारे में अधिक पढ़ सकते हैं और उन्हें यहाँ से कब उपयोग कर सकते हैं)

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

अब हमें यह पता लगाने की आवश्यकता है कि आंकड़े के बीच अंतर करने के लिए तंत्रिका आउटपुट पर भार कैसे लागू करें। इसे प्राप्त करने के लिए एक अंतहीन राशि समाधान हैं। स्पष्ट रूप से हमें उन पिक्सल पर ध्यान केंद्रित करना चाहिए जहां आउटपुट अलग-अलग है। मतलब कि हम उन सभी पिक्सलों के लिए वजन 0 का उपयोग कर सकते हैं जो दोनों आंकड़े (बैंगनी वाले) द्वारा सक्रिय किए गए थे। सभी सफेद पिक्सेल न्यूरॉन्स को सक्रिय नहीं करते हैं इसलिए हमें उनके वजन के बारे में सोचने की ज़रूरत नहीं है।

हम उदाहरण के लिए तय कर सकते हैं कि जब परिणाम नकारात्मक है, तो आंकड़ा ई है और सकारात्मक परिणाम आंकड़ा एस का प्रतिनिधित्व करते हैं। इसे प्राप्त करने के लिए आइए न्यूरॉन दें जो केवल आकृति ई के साथ सक्रिय करता है -1 का वजन और न्यूरॉन जो केवल आंकड़े के साथ आग लगाता है एस वजन 1. जब अन्य आउटपुट 0 से गुणा किए जाते हैं तो हमें परिणाम 1 या -1 मिलेंगे।

तो सभी आंकड़े एस आउटपुट का योग 0 x 1+ 0 x 1+ 0 X1 +0 x 1+ 0 x 1+ 0 + 0 + 0 + 0 + 0 x 1 + 0 x 1 + 0 x 1 + 0 x 1 होगा। + 0 + 0 + 0 + 1 x 1 + 0 x 1 + 0 x 1 + 0 x 1+ 0 x 1 = 1। और सभी आकृति ई आउटपुट का योग 0 x 1 + 0 x 1 + 0 x 1 + 0 x 1 + 0 x 1 + 0 + 0 + 0 + 0 + 0 x 1 + 0 x 1 + 0 x 1 + 0 होगा। x 1 + (-1 x 1) + 0 + 0 + 0 + 0 x 1 + 0 x 1 + 0 x 1 + 0 x 1 = -1।

इसे हल करना काफी आसान था। लेकिन अगर हम मिश्रण में F अक्षर जोड़ते हैं, तो चीजें थोड़ी और जटिल हो जाती हैं।

E और F अक्षरों में अंतर बिना किसी परेशानी के हासिल किया जा सकता है, उदाहरण के लिए इन वज़न के साथ:

इन वेट का परिणाम या तो 11 x 0,1 = 1,1 या 3 x (-1) = -3 होता है, जिसमें आकृति F के सकारात्मक परिणाम और आंकड़े E के लिए ऋणात्मक होता है। लेकिन जब हम आंकड़ा शामिल करते हैं, तो अंतर कम स्पष्ट होते हैं। और अधिक कठिन वजन के साथ अंतर करने के लिए। और केवल अक्षरों को जोड़ने से यह खराब हो जाता है।

हमें केवल नकारात्मक बनाम सकारात्मक परिणामों की तुलना में अधिक जटिल समाधान की आवश्यकता होगी। हम संभवतः फिगर S के लिए 0 से 2 के बीच, आकृति E के लिए 2 से 4 के बीच परिणाम आदि देंगे। जब हम न्यूरॉन परतों को एक तंत्रिका नेटवर्क में जोड़ते हैं तो यह वज़न के लिए अधिक विस्तृत परिवर्तन कर सकता है और पिक्सेल तभी महत्वपूर्ण हो सकता है जब कोई अन्य पिक्सेल हो सक्रिय किया गया था। और यह है कि तंत्रिका नेटवर्क उन जटिल कार्यों को करने में सक्षम हैं जिनके लिए हम उनका उपयोग करना चाहते हैं। अधिक छिपी हुई परतों को जोड़ने से एआई सीखने की क्षमता को गहरा करेगा।

लूट! क्या छिपी परतें? एक न्यूरल नेटवर्क में न्यूरॉन्स को आमतौर पर इस तरह से संरचित किया जाता है कि प्रत्येक न्यूरॉन उसके बगल की परतों में अन्य सभी न्यूरॉन्स से जुड़ा होता है। एक तंत्रिका नेटवर्क में आमतौर पर तीन भाग होते हैं: एक इनपुट परत, एक या अधिक छिपी परतें और आउटपुट परत।

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

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

आइसक्रीम बिक्री की भविष्यवाणी के लिए एक तंत्रिका नेटवर्क का उदाहरण:

बिक्री, दिनों और मौसम के बारे में हमारे डेटा ने न्यूरॉन्स के बीच वजन को समायोजित किया है। इस बात का मूल्यांकन करने के लिए कि हम पहले से उपयोग किए गए प्रशिक्षण डेटासेट के अलावा हमें परीक्षण डेटासेट की कितनी सही आवश्यकता है। परीक्षण डेटासेट में ऐसे मामले होते हैं जो तंत्रिका नेटवर्क अभी तक नहीं देखे गए हैं। उनके परिणाम हमें बताएंगे कि हमारी भविष्यवाणियां कितनी सही हैं।

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

हमारे सॉर्टिंग उदाहरण में हमारी गतिविधि फ़ंक्शन देख रही थी कि कोई पिक्सेल सफेद था या नहीं। आमतौर पर छवियों की जानकारी को उन कंप्यूटरों में परिवर्तित किया जाता है जिनकी कंप्यूटर को अलग तरह से आवश्यकता होती है। यदि छवि काला और सफेद है, तो प्रत्येक पिक्सेल को 0 (काला) से 255 (सफ़ेद) के बीच चमक मान दिया जाएगा। एक रंग छवि के पिक्सेल में 0 से 255 की सीमा में तीन RGB मान होंगे। स्क्रीन पर सभी रंग लाल, हरे और नीले प्रकाश को मिलाकर बनाए गए हैं। (जो एक ऐसा तथ्य है जिसे मैं वर्षों से जानता हूं और यह अभी भी बहुत ही सहज ज्ञान युक्त लगता है।)

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

विश्वसनीय परिणाम प्राप्त करने के लिए हमें प्रशिक्षण सेट के रूप में बड़ी मात्रा में छवियों की आवश्यकता होगी। लेकिन प्रोग्रामिंग से संबंधित बहुत सी चीजों के साथ हमें कुछ भी शुरू करने और पहिया का फिर से आविष्कार करने की आवश्यकता नहीं है। हम मौजूदा पुस्तकालयों और डेटाबेस का उपयोग कर सकते हैं।

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

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

लेकिन एक एआई को मिनट, सूक्ष्म अंतर का पता लगाने में विशेषज्ञ होने के लिए प्रशिक्षित किया जा सकता है। जैसे कैंसर स्क्रीनिंग का विश्लेषण करना या बहुत अधिक सटीक और तेज परिणामों के साथ आंखों के मैदानों की रक्त वाहिकाओं में परिवर्तन से मधुमेह का निदान करना। एक मशीन भी कभी नहीं ऊबती है या दोहराए जाने वाले कार्य से थक गई है जो वे करने के लिए डिज़ाइन किए गए थे।

इसलिए अगर मुझसे पूछा जाए कि वजन आखिरकार कौन सा बेहतर है - मानव या कृत्रिम छवि मान्यता - मैं नहीं कर सकता। वे दोनों बहुत अलग हैं, बहुत अलग हैं।

यह सभी देखें

मैं आसान काम के साथ $ 50- $ 100 के लिए ऑनलाइन पैसा कैसे बना सकता हूं? क्या आप इस बारे में कोई किताब सुझा सकते हैं कि सॉफ्टवेयर उत्पाद डिजाइनर डिजाइन के बारे में क्या सोचते हैं? कैसे यूट्यूब पर मेरे अपलोड किए गए वीडियो को खोजने के लिएआप स्मार्टफोन के लिए एक नया ऐप कैसे खरीदते हैं? यदि आप एक बार फिर से वर्ग एक से प्रोग्रामिंग सीखना शुरू कर रहे थे। सबसे प्रभावी ढंग से सीखने के लिए आप इसे कैसे अपनाएंगे?वेबसाइट विकसित करते समय मैं PHP का उपयोग कैसे करूं? यह वास्तव में क्या करता है? क्या ये ज़रूरी हैं?आपने कोडिंग कब शुरू की? आप इतने अच्छे प्रोग्रामर कैसे बन गए, और मैं एक कैसे बन सकता हूं?मैं एक नवसिखुआ के रूप में पायथन नौकरी कैसे प्राप्त कर सकता हूं?