9

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

मुझे नहीं पता कि समस्या न्यूरल नेट (बहुत सरल?) या प्रजनन तंत्र की संरचना है: जनसंख्या विस्फोट को रोकने के लिए, प्रारंभिक आबादी लगभग 20 एजेंट है, और जनसंख्या 50 के करीब हो जाती है, प्रजनन मौका शून्य तक पहुंचता है। जब प्रजनन होता है, तो माता-पिता को शुरुआत से अंत तक एजेंटों की सूची में जाकर चुना जाता है, और प्रत्येक एजेंट के लिए जांच कर रहा है कि 0 से 1 के बीच यादृच्छिक संख्या इस एजेंट की ऊर्जा के बीच अनुपात से कम है या उसके योग सभी एजेंटों की ऊर्जा। यदि हां, तो खोज खत्म हो गई है और यह एजेंट माता-पिता बन जाता है, क्योंकि हम इस तंत्र की प्रतिलिपि को अपने तंत्रिका नेटवर्क में एक या अधिक वजन में उत्परिवर्तन की कुछ संभावनाओं के साथ जोड़ते हैं।

अग्रिम धन्यवाद!

+0

"कुछ नहीं होता" से आपका क्या मतलब है? – timday

+0

एजेंट यादृच्छिक रूप से स्थानांतरित होते हैं, समय-समय पर दिशा बदलते हैं, लेकिन भोजन की तलाश नहीं करते हैं। – user1767774

+1

बीटीडब्ल्यू अगर आप अभी तक नहीं आए हैं और इस तरह के प्रोजेक्ट के लिए कुछ प्रेरणा की आवश्यकता है, तो पढ़ें: http://ttapress.com/553/crystal-nights-by-greg-egan/ – timday

उत्तर

6

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

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

जवाब में अद्यतन:

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

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

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

+0

धन्यवाद, यह एक अच्छा विचार है, लेकिन मुझे यकीन नहीं है कि मुझे सही वजन कैसे चुनना चाहिए। मैं एक सक्रियण समारोह के रूप में tanh (x) का उपयोग करें। ए, बी, सी वजन और अल्फा, डीएक्स, एजेंट के कोण, क्षैतिज दूरी और निकटतम भोजन के लिए लंबवत दूरी होना चाहिए। मुझे ऐसा ए, बी, सी चाहिए ताकि तनह (ए * अल्फा + बी * डीएक्स + सी * डीई) = ईपीएसलॉन * (टैन (डीई/डीएक्स) -अल्फा) - मैं चाहता हूं कि आउटपुट कुछ स्थिर समय हो भोजन के कोण (टैन (डीई/डीएक्स)) वर्तमान कोण के लिए। यह 3 अज्ञातों के साथ एक समीकरण है। वैसे, मैंने वर्णित प्रजनन तंत्र के बारे में क्या सोचा है? – user1767774

+1

मैंने आपके सुझाव का पालन किया है और नेटवर्क आउटपुट को वेक्टर बनाया है, और कुछ मिनटों के बाद भोजन मांगने वाला व्यवहार विकसित हुआ था! धन्यवाद (-: इस महत्वपूर्ण परिवर्तन का कारण क्या है? सहजता से वेक्टर कोण के बारे में जानकारी और परिमाण के बारे में कम प्रासंगिक जानकारी दोनों को पकड़ता है, इसलिए आउटपुट सरल स्केलर (कोण) के मुकाबले खराब परिणामों को छोड़कर कोई भी खराब हो सकता है। ... – user1767774

+1

मेरा अनुमान है: क्योंकि आपके तंत्रिका नेटवर्क मॉडल के लिए भोजन की दिशा के सरल "पासथ्रू" की ओर बढ़ने के लिए आंदोलन दिशा के लिए यह बहुत आसान है क्योंकि उनके लिए एक एटान फ़ंक्शन विकसित करना है। – timday