न्यूरोटिक बाइक: उत्पत्ति

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

कार्य के बारे में संक्षेप में: वाहन - हमारे मामले में यह या तो विदेशी है, या पहियों पर सिंगर सिलाई मशीन, चलो इसे बस "एजेंट" कहते हैं - शुरू से अंत तक एक ही नाम के शोर के साथ टिब्बा के साथ ड्राइव करना चाहिए। यह वही है जो एजेंट अपने सैंडबॉक्स में दिखता है:



एक एजेंट जो ट्रैक की पीठ को छूता है या लक्ष्य की ओर बढ़ने में उचित उत्साह नहीं दिखाता है, उसे ट्रैक से हटा दिया जाता है।

हम तंत्रिका नेटवर्क का उपयोग करके समस्या का समाधान करेंगे, लेकिन आनुवंशिक एल्गोरिथम (जीए) द्वारा अनुकूलित - इस तरह की प्रक्रिया को न्यूरोएवोल्यूशन कहा जाता है। हमने सदी की शुरुआत में केनेथ स्टेनली और रिस्टो मिइक्कुलैन द्वारा आविष्कार की गई NEAT (न्यूरोएवोल्यूशन ऑफ ऑगमेंटिंग टोपोलॉजी) विधि का इस्तेमाल किया [1] : सबसे पहले, उन्होंने राष्ट्रीय अर्थव्यवस्था के लिए महत्वपूर्ण समस्याओं में अच्छा काम किया, और दूसरी बात, हमने प्रोजेक्ट पर काम करना शुरू किया। पहले से ही NEAT को लागू करने का अपना ढांचा था। इसलिए, स्पष्ट रूप से, हमने एक समाधान पद्धति का चयन नहीं किया - बल्कि, हमने एक ऐसा कार्य चुना जहां आप ड्राइव कर सकते हैं जो पहले से ही तैयार है।

यह आंकड़ा आनुवंशिक एल्गोरिदम की अनुमानित योजना को दर्शाता है:



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

हमारे और सभी समान मामलों के लिए, यह न्यूनतम टोपोलॉजी निम्नलिखित विचारों से ली गई है। सार्थक कुछ करने के लिए, एजेंट की जरूरत है:

  • पर्यावरण और उनकी स्थिति के बारे में जानकारी है,
  • इस जानकारी को संसाधित करें
  • अपनी दुनिया के साथ बातचीत।

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



बी - पूर्वाग्रह, एस - सेंसर, ओ - आउटपुट परत के न्यूरॉन्स, एक - एक्टूएटर्स, एन - सेंसर की संख्या, के - एक्चुएटर्स की संख्या

और यहाँ हमारे कार्य के लिए न्यूनतम NS है:



हमारे पास केवल एक एक्ट्यूएटर है - यह हमारे पहिएदार निर्माण का इंजन है। यह अभी तक पता नहीं है कि पाइप को कैसे शूट करना, कूदना और खेलना है। आउटपुट लेयर के एकल न्यूरॉन से इंजन को निम्नलिखित मूल्य की आपूर्ति की जाती है (इसे एक परत कहना शर्म की बात है):

f (w_b + \ _ \ _ limit_ {i = 1} ^ {n} {s_iw_i})

यहाँ b b , उत्पादन से लेकर न्यूरॉन से आउटपुट न्यूरॉन तक जाने वाले कनेक्शन के भार का मूल्य है, इस तथ्य से गुणा किया जाता है कि कोई भी पूर्वाग्रह "उत्पादन" करता है, अर्थात। +1, s i , i-th सेंसर पर रेंज [0,1] के लिए सामान्यीकृत मूल्य है, w मैं i-th सेंसर से आउटपुट न्यूरॉन तक कनेक्शन वजन का मान है, और f सक्रियण फ़ंक्शन है।

एक सक्रियण समारोह के रूप में, हम इस सोफ्टसाइन कल्पना का उपयोग करते हैं:

f (x) = \ frac {1} {2} + \ frac {1} {2} \ left (\ frac {x} {0.2 + | x |}} सही)

- उसने संकीर्ण सर्कल [2] में एक प्रसिद्ध न्यूरो-विकासवादी के परीक्षणों में सबसे अच्छा प्रदर्शन किया। और यह झुकता की कोमलता और इस समारोह के ग्राफ की समरूपता की तुलना कोणीय-तुला लेकी ReLU से करने का कोई मतलब नहीं है:



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

एक ही आकृति पूर्वाग्रह न्यूरॉन की भूमिका को दर्शाती है - आउटपुट परत के न्यूरॉन तक जाने वाले बंधन का भार जिम्मेदार है, (1) से निम्नानुसार है, अनुपस्थिति के साथ पूर्वाग्रह च (x) की परिमाण और दिशा के लिए। आकृति में बिंदीदार रेखा w b = -1 पर सक्रियण फ़ंक्शन का ग्राफ़ दिखाती है। यह पता चला है कि सेंसर पर सिग्नल की अनुपस्थिति में भी, इस तरह के कनेक्शन वाला एक एजेंट जल्दी से वापस चला जाएगा: f (x) = f (-1 + 0) .00.083 <0.5। सामान्य तौर पर, फ़ंक्शन के मूल्यों को क्षैतिज रूप से स्थानांतरित करने से पूर्वाग्रह कनेक्शन को सूक्ष्मता (अच्छी तरह से या मोटे तौर पर, वजन पर निर्भर करता है) इंजन के सभी संवेदक मूल्यों और उनके कनेक्शन के वजन की प्रतिक्रिया को एक ही बार में समायोजित करता है। ऐसा लगता है कि खोज स्थान में एक नया आयाम जोड़ा गया है (डब्ल्यू बी के लिए "सही" मूल्य को खोजना होगा), लेकिन अतिरिक्त विस्थापन की स्वतंत्रता के रूप में लाभ इस तरह के विस्थापन की संभावना को पछाड़ते हैं।

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

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

  • कनेक्शन वजन में परिवर्तन
  • कनेक्शन विलोपन,
  • लिंक जोड़ें
  • न्यूरॉन सम्मिलन।

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



यहाँ h एक छुपा हुआ न्यूरॉन है।

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

कल्पना कीजिए कि हम जीनोटाइप वाले क्रॉस-एजेंट को उपरोक्त सूची से उत्परिवर्तन की विभिन्न श्रृंखलाओं से गुजरना चाहते हैं:



कुछ अंशों को देखना तर्कसंगत लगता है जो माता-पिता दोनों में टोपोलॉजी के संदर्भ में सामान्य हैं और अजन्मे बच्चे के जीनोटाइप के लिए इन टुकड़ों का एक टुकड़ा लेते हैं। ऐसा करना मुश्किल होगा, यहां तक ​​कि सामान्य मामले में भी एनपी मुश्किल है, लेकिन मान लीजिए कि हम कामयाब रहे। इस मामले में, हम पाते हैं कि दाईं ओर के माता-पिता में बाएं माता-पिता के ग्राफ़ में दो सबग्राफ आइसोमॉर्फिक हैं। नीचे दिए गए आंकड़े में, इन सबग्राफ के आर्क्स को अलग-अलग रंगों में हाइलाइट किया गया है:



बाएं पैरेंट जीन के साथ पुनर्संयोजन के लिए कौन सा चुनना है?

आइए हम इन जीनोटाइप के उद्भव के इतिहास की ओर मुड़ें:



मूल एजेंट के दोनों पूर्वजों ने उम्मीद के मुताबिक शुरुआत की, न्यूनतम एनएस (टी 0 ) के साथ। उनके जीनोम किसी तरह वहाँ उत्परिवर्तित हो गए, और समय टी 1 के समय में, छिपे हुए न्यूरॉन को बाएं माता-पिता के पूर्वज के कनेक्शन s 1 -> o में डाला गया। इस नाटकीय क्षण में, बॉन्ड्स को एन्कोडिंग s 1 -> h और h -> o अपने अर्थ को बाएं पैरेंट के पूर्वज में खोजते हैं: लिंक s 1 -> o का प्रतिस्थापन
सही समय पर टी 2 के जीनोटाइप में 1 -> एच 1 और एच 1 -> ओ का जीन वास्तव में एक ही अर्थ रखता है। हमारे पूर्वजों का आगे का भाग्य हमारे लिए विशेष हितकारी नहीं है - हम पहले से ही जानते हैं कि किसके साथ क्या करना है:



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

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


साइबर अप्राकृतिकवादियों के जीवन की अन्य महत्वपूर्ण कहानियों का एक व्यापक संग्रह [3] में पाया जा सकता है।

सूत्रों का कहना है


[1] KO स्टेनली और आर .. मिक्कुलनेन, ऑग्मेंटिंग टोपोलॉजी इवोल्यूशनरी कम्प्यूटेशन, वॉल्यूम के माध्यम से तंत्रिका नेटवर्क का विकास। 10, नहीं। 2, पीपी। 99-127, 2002।
[2] सी। ग्रीन, "शार्पनट में एक्टिवेशन फंक्शंस की समीक्षा," 19 जून, 2017।
[3] जे। लेहमैन एट अल, "डिजिटल विकास की आश्चर्यजनक रचनात्मकता: विकासवादी संगणना और कृत्रिम जीवन अनुसंधान समुदायों से उपाख्यानों का संग्रह," arXiv: तंत्रिका और विकासवादी कम्प्यूटिंग, 2018।

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


All Articles