तंत्रिका नेटवर्क का उपयोग करके वाहन चलाना

अमूर्त


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

परिचय


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


तंत्रिका नेटवर्क


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

चित्र 1
ड्राइवर की तुलना "फ़ंक्शन" के साथ की जा सकती है। कई इनपुट हैं: ड्राइवर क्या देखता है। यह डेटा मस्तिष्क द्वारा एक फ़ंक्शन के रूप में संसाधित किया जाता है, और ड्राइवर की प्रतिक्रिया फ़ंक्शन से बाहर का रास्ता है।
फ़ंक्शन f (x) = y x (एक आयाम) के मान को y (एक आयाम) में परिवर्तित करता है।
हम ड्राइवर के मस्तिष्क के लिए एक बैकप्रॉपैगैशन न्यूरल नेटवर्क का उपयोग करते हैं, क्योंकि इस तरह के तंत्रिका नेटवर्क परिभाषा और मान के क्षेत्रों के साथ किसी भी फ़ंक्शन को अनुमानित करने में सक्षम होते हैं जिनके कई आयाम हो सकते हैं: F (X1, x2, ..., xn) = y1, y2, ... , yn
यह वही है जो हमें चाहिए, क्योंकि हमें कई इनपुट और आउटपुट के साथ काम करना चाहिए।
जब एक तंत्रिका नेटवर्क में केवल कुछ न्यूरॉन्स होते हैं, तो हम स्वीकार्य परिणाम प्राप्त करने के लिए आवश्यक भार की गणना कर सकते हैं। लेकिन जैसे-जैसे न्यूरॉन्स की संख्या बढ़ती है, गणना की जटिलता बढ़ जाती है। बैकप्रागैजेशन नेटवर्क को आवश्यक भार को स्थापित करने के लिए प्रशिक्षित किया जा सकता है। हमें बस उनके संबंधित इनपुट के साथ वांछित परिणाम प्रदान करना है।
प्रशिक्षण के बाद, तंत्रिका नेटवर्क एक ज्ञात परिणाम लागू करते समय आप जो चाहते हैं उसके करीब एक परिणाम का उत्पादन करने के लिए प्रतिक्रिया देगा, और किसी भी इनपुट के लिए सही उत्तर का अनुमान लगाएगा जो प्रशिक्षण से मेल नहीं खाता है।
वास्तविक गणना इस लेख के दायरे से परे है। कई अच्छी किताबें बताती हैं कि पिछड़े प्रसार नेटवर्क कैसे काम करते हैं।
इस मामले में उपयोग किए जाने वाले तंत्रिका नेटवर्क में 4 परतें हैं ( छवि 2 )। मैंने तीन से छह परतों तक विभिन्न संयोजनों की कोशिश की। सब कुछ तीन परतों के साथ पूरी तरह से काम करता है, लेकिन जब मैंने नेटवर्क को बाईस इनपुट / आउटपुट के सेट पर प्रशिक्षित किया, तो फ़ंक्शन का सन्निकटन सही नहीं था। पांच और छह परतों ने अपना काम पूरी तरह से किया, लेकिन सीखने में बहुत समय लगा (पीआईआई में 20 से 30 मिनट तक), और जब मैंने कार्यक्रम शुरू किया, तो गणना करने में बहुत अधिक प्रोसेसर समय लगा।
इस नेटवर्क में, इनपुट परत में तीन न्यूरॉन्स और परिणामस्वरूप परत में दो। बाद में क्यों समझाऊंगा। उनके बीच प्रत्येक में आठ न्यूरॉन्स की दो परतें। फिर से, मैंने एक बड़ी और छोटी संख्या के न्यूरॉन्स के साथ एक परत का परीक्षण किया और आठ पर बसा, क्योंकि यह संख्या स्वीकार्य परिणाम देती है।
न्यूरॉन्स की संख्या का चयन करते समय, ध्यान रखें कि सिस्टम में जोड़ी गई प्रत्येक परत और प्रत्येक न्यूरॉन वजन की गणना करने के लिए आवश्यक समय बढ़ाएगा।

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

प्रविष्टि


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

चित्र 3
हमारे एआई ड्राइवर के देखने के क्षेत्र को परिभाषित करें और उन वस्तुओं की एक सूची बनाएं जो वह देखता है। सादगी के लिए, हम अपने उदाहरण में एक सर्कल का उपयोग करते हैं, लेकिन हम छह इंटरसेक्टिंग विमानों द्वारा छंटनी वाले एक वास्तविक शंकु का उपयोग कर सकते हैं। अब इस वृत्त की प्रत्येक वस्तु के लिए, हम जाँचते हैं कि यह देखने के बाएँ क्षेत्र में है, दाईं ओर, या केंद्र में।
तंत्रिका नेटवर्क के प्रवेश द्वार के लिए एक सरणी की आपूर्ति की जाती है: फ्लोट विजन [3] । केंद्र में, और वाहन के दाईं ओर निकटतम बाधा के लिए दूरी क्रमशः विज़न [0] , विज़न [1] और विज़न [2] में संग्रहीत की जाएगी। चित्र 3 दिखाता है कि यह व्यूह कैसा दिखता है। बाईं ओर की बाधा अधिकतम दूरी का 80% है, दाईं ओर 40% है, और केंद्र में कोई बाधा नहीं है।
इसकी गणना करने के लिए, हमें प्रत्येक वस्तु की स्थिति (x, y), कार की स्थिति (x, y) और वाहन के कोण की आवश्यकता होती है। हमें आर (सर्कल त्रिज्या) और डी राइट , डी लेफ्ट - वैक्टर कार और लाइनों के बीच एल राइट और एल लेफ्ट की आवश्यकता है । ये रेखाएं कार की गति की दिशा के समानांतर हैं। दोनों वैक्टर लाइनों के लंबवत हैं।
यद्यपि यह एक 3D दुनिया है, सभी गणित द्वि-आयामी हैं, क्योंकि एक कार तीसरे आयाम में नहीं जा सकती क्योंकि यह उड़ती नहीं है। सभी समीकरणों में केवल x और y शामिल हैं , लेकिन z नहीं।
सबसे पहले, हम लाइनों के समीकरणों की गणना करते हैं एल दाएं और एल बाएं , जो हमें यह निर्धारित करने में मदद करेंगे कि क्या दाएं, बाएं या वाहन के केंद्र में कोई बाधा है।
चित्र 4 सभी गणनाओं का एक चित्रण है।

चित्र 4

जहाँ

फिर हम लाइन पर बिंदु के निर्देशांक की गणना करते हैं

जहां V x और V वाहन की स्थिति है।
अब हम अंततः c r की गणना कर सकते हैं

इसी प्रकार, हम वेक्टर डी लेफ्ट का उपयोग करके छोड़ी गई रेखा L के समीकरण को खोजते हैं।
अगला, हमें सर्कल के केंद्र की गणना करने की आवश्यकता है। सर्कल के अंदर सब कुछ एआई द्वारा देखा जाएगा। वाहन V (x, y) की स्थिति से थोड़ी दूरी पर वृत्त C (x, y) का केंद्र।


जहां V x , V y वाहन की स्थिति और C x , C y - वृत्त का केंद्र है।
फिर हम जांचते हैं कि क्या दुनिया में प्रत्येक वस्तु एक सर्कल के भीतर है (यदि ऑब्जेक्ट्स को क्वाड-ट्री या ऑक्ट्री में व्यवस्थित किया गया है, तो यह प्रक्रिया एक लिंक की गई सूची की तुलना में बहुत तेज है)।
अगर , तो ऑब्जेक्ट एक सर्कल में है, जहां एक्स , वाई बाधा के निर्देशांक हैं
सर्कल के भीतर प्रत्येक ऑब्जेक्ट के लिए, हमें यह देखना होगा कि यह वाहन के दाईं, बाईं या केंद्र पर स्थित है या नहीं।
अगर , तब ऑब्जेक्ट सर्कल के दाईं ओर है
नहीं तो फिर बाईं ओर
अन्यथा केंद्र में।
हम ऑब्जेक्ट से कार तक की दूरी की गणना करते हैं

अब हम सरणी ( विज़न [0] , विज़न [1] या विज़न [2] ) के संबंधित भाग में दूरी को बचाते हैं, बशर्ते कि पहले से सहेजी गई दूरी केवल गणना की गई से अधिक हो। प्रारंभ में, विज़न सरणी को 2r मानों के साथ आरंभीकृत किया जाना चाहिए।
प्रत्येक ऑब्जेक्ट की जांच करने के बाद, हमारे पास कार के दाईं ओर, केंद्र में और बाईं ओर निकटतम वस्तुओं के लिए दूरी के साथ एक सरणी है। यदि इस क्षेत्र में कोई ऑब्जेक्ट नहीं मिला, तो सरणी तत्व का डिफ़ॉल्ट मान होगा। , जिसका अर्थ है: "दृष्टि के भीतर एक भी वस्तु नहीं है।"
चूंकि तंत्रिका नेटवर्क एक सिग्मॉइड फ़ंक्शन का उपयोग करता है, इसलिए इनपुट 0.0 और 1.0 के बीच होना चाहिए। 0.0 का अर्थ होगा कि वस्तु वाहन को छू रही है और 1.0 का अर्थ है कि दृष्टि के भीतर कोई वस्तु नहीं है। चूँकि हम AI ड्राइवर को देखने के लिए अधिकतम दूरी तय करते हैं, हम आसानी से सभी दूरी को 0.0 से 1.0 तक एक सीमा में ला सकते हैं।


निकास


बाहर निकलने पर, हमें कार की गति और दिशा बदलने के लिए निर्देश प्राप्त करना चाहिए। यह त्वरण, ब्रेकिंग और स्टीयरिंग कोण हो सकता है। इसलिए हमें दो निकास की आवश्यकता है; एक त्वरण / मंदी मूल्य होगा (ब्रेकिंग केवल एक नकारात्मक त्वरण है), और दूसरा दिशा में बदलाव का संकेत देगा।
इनपुट के समान परिणाम के लिए परिणाम 0.0 और 1.0 के बीच है। त्वरण के लिए, 0.0 का अर्थ है "पूर्ण ब्रेक"; 1,0 - "पूर्ण गला घोंटना" और 0.5 - कोई ब्रेकिंग या त्वरण नहीं। स्टीयरिंग के लिए, 0.0 का अर्थ है "पूरी तरह से छोड़ दिया," 1.0 का अर्थ है "पूरी तरह से सही," और 0.5 का अर्थ है कोई दिशा नहीं। इसलिए हमें परिणामों का उन मूल्यों में अनुवाद करना होगा जिनका हम उपयोग कर सकते हैं।


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

ट्रेनिंग


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

और अब आप इसे तालिका 2 में संख्याओं में अनुवाद कर सकते हैं।
तालिका 2
इनपुट न्यूरॉन्सआउटपुट न्यूरॉन्स
बाईं ओरकेंद्र मेंदाईं ओरत्वरणदिशा
1.01.01.01.00.5
0.51.01.00.60.7
1.01.00.50.60.3
1.00.51.00.30.4
0.51.00.50.70.5
0.00.00.00.20.2
0.50.50.50.50.4
0.01.01.00.40.9
1.01.00.00.40.1
1.00.01.00.20.2
0.01.00.01.00.5
0.00.01.00.30.8
1.00.00.00.30.2
0.30.40.10.50.3
0.10.40.30.50.7
0.00.10.20.30.9
0.20.10.00.30.1
0.00.30.60.50.8
0.60.30.00.50.2
0.20.30.40.50.9
0.40.30.20.40.1


लॉग इन:
0.0: ऑब्जेक्ट लगभग वाहन को छू रहा है।
1.0: वाहन से अधिकतम दूरी पर देखने के क्षेत्र में वस्तु या नहीं
उत्पादन:
त्वरण
0.0: अधिकतम नकारात्मक त्वरण (ब्रेकिंग या इसके विपरीत)
1.0: अधिकतम सकारात्मक त्वरण
दिशा
0.0: पूर्ण बाएँ
0.5: सीधे
1.0: पूर्ण अधिकार

निष्कर्ष / सुधार करने के तरीके


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

चित्र 5
वाहन थोड़ी देर के लिए "फंस जाता है", क्योंकि यह तय करने में हिचकिचाता है कि बाएं या दाएं जाना है या नहीं। यह उम्मीद की जानी थी: कभी-कभी लोगों को भी यही समस्या होती है। इसे ठीक करना इतना आसान नहीं है, यह तंत्रिका नेटवर्क के वजन को समायोजित करने की कोशिश कर रहा है। लेकिन हम कोड की एक पंक्ति जोड़ सकते हैं जो बताता है:
"यदि (वाहन 5 सेकंड के लिए नहीं चलता है), तो (नियंत्रण रखें और इसे 90 डिग्री दाईं ओर मोड़ें)।"
इस तरह, हम गारंटी दे सकते हैं कि कार कभी भी खड़ी न हो, न जाने क्या करना है।
वाहन को दोनों घरों के बीच एक छोटा अंतर नहीं दिखाई देगा, जैसा कि चित्र 5 में दिखाया गया है। चूंकि हमारे पास दृष्टि (बाएं, केंद्र, दाएं) में उच्च स्तर की सटीकता नहीं है, दो इमारतें जो एक-दूसरे के करीब हैं, कृत्रिम बुद्धि के लिए एक दीवार की तरह दिखेंगी। हमारे एआई के स्पष्ट दृष्टिकोण के लिए, हमें तंत्रिका नेटवर्क के प्रवेश द्वार पर सटीकता के 5 या 7 स्तरों की आवश्यकता है। "दायें, केंद्र, बायें," के बजाय हम "दायें, निकट, दायें, निकट, निकट, बायें, निकट" हो सकते हैं। तंत्रिका नेटवर्क के एक अच्छे प्रशिक्षण के साथ, कृत्रिम बुद्धि अंतराल को देखेगा और समझेगा कि यह इसके माध्यम से गुजर सकता है।
यह एक 2D दुनिया में काम करता है, लेकिन अगर कोई वाहन एक गुफा से उड़ान भरने में सक्षम हो तो क्या होगा? इस तकनीक में कुछ बदलावों के साथ, हम AI को उड़ सकते हैं, सवारी नहीं कर सकते। आखिरी समस्या के अनुरूप, हम टकटकी की सटीकता बढ़ाते हैं। लेकिन "अधिकार" और "सिंह" को जोड़ने के बजाय, हम तालिका 3 में दिखाए अनुसार कर सकते हैं।
तालिका 3
ऊपर छोड़ दियाऊपरठीक ऊपर
बाईं ओरकेंद्रदाईं ओर
नीचे छोड़ दियानीचेनीचे दाईं ओर

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

साहित्य


  1. जॉय रोजर्स, C ++, एकेडमिक प्रेस, सैन डिएगो, सीए, 1997 में ऑब्जेक्ट-ओरिएंटेड न्यूरल नेटवर्क
  2. एमटी हैगन, एचबी डेमथ और एमएच बीले, न्यूरल नेटवर्क डिज़ाइन, पीडब्ल्यूएस प्रकाशन, बोस्टन, एमए, 1995

Source: https://habr.com/ru/post/In101789/


All Articles