2012-07-25 14 views
6

क्या न्यूरॉन और उसके संबंधित कनेक्शन को पूरी तरह से कनेक्ट किए गए पाइब्रेन नेटवर्क में जोड़ने/निकालने का कोई अच्छा तरीका है? यह एक (2,4,1) या एक (2,2,1) नेटवर्क सभी पुराने वजन को बनाए रखते हुए करने के लिए कर रही है (और आरंभ किसी भी नए लोगों को के बारे मेंपाइब्रेन न्यूरॉन मैनिपुलेशन

from pybrain.tools.shortcuts import buildNetwork 
net = buildNetwork(2,3,1) 

मैं कैसे जाना होगा: मैं शुरू से कहो नेटवर्क शुरू करते समय यादृच्छिक हो)? कारण मैं ऐसा करना चाहता हूं क्योंकि मैं सर्वोत्तम वास्तुकला निर्धारित करने के लिए एक विकासवादी सीखने की रणनीति का उपयोग करने का प्रयास कर रहा हूं और 'उत्परिवर्तन' चरण में कुछ संभावनाओं के साथ नोड्स को जोड़ने/निकालना शामिल है। (इनपुट और आउटपुट मॉड्यूल हमेशा एक ही रहना चाहिए।)

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

उत्तर

4

मुझे लगता है कि आप NEAT एल्गोरिदम की लाइनों के साथ कर रहे हैं? आपके सवाल का दो अलग-अलग जवाब नहीं है:

  1. ओपन नेटवर्क टोपोलॉजी की विकास समाप्त हो गया: इस मामले में, मैं अपने स्वयं के "परत" में हर न्यूरॉन encapsulating की सलाह देते हैं/मॉड्यूल, और जोड़ने/निकाल और नेटवर्क से उनके कनेक्शन, क्रमशः this tutorial में थोड़ा सा, सिवाय इसके कि वहां कई और (सिंगल-न्यूरॉन) परतें होंगी। प्रत्येक स्थलीय परिवर्तन के बाद sortModules() विधि को कॉल करना न भूलें।

  2. एक पूर्वनिर्धारित ढांचे के भीतर सर्वश्रेष्ठ टोपोलॉजी ढूँढना (अधिकतम 1000 न्यूरॉन्स कहें)। उस स्थिति में शुरुआत में पूर्ण नेटवर्क बनाने के लिए यह आसान और अधिक कुशल है, और केवल मास्क कुछ कनेक्शन (उदा। MaskedParameters मॉड्यूल का उपयोग करके)। दूसरों के बीच, memetic algorithms(used like this) ऐसी टोपोलॉजी रिक्त स्थान खोजने के लिए डिज़ाइन किए गए हैं।

एक वैकल्पिक, के रूप में आप कहते हैं, मैन्युअल रूप से सभी वजन (ट्रैकिंग what is where, या NeuronDecomposableNetwork का उपयोग करके) प्रबंध कर रहा है, लेकिन मैं कि सलाह नहीं देते।


एक सामान्य टिप्पणी: इस तरह तुम्हारा के रूप में pybrain के और अधिक उन्नत का उपयोग करता है, `buildNetwork 'शॉर्टकट पर भरोसा करने के लिए वास्तव में बहुत सीमित है, और आप सीधे नेटवर्क/मॉड्यूल/कनेक्शन एपीआई का उपयोग करना चाहते हैं।

+0

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

संबंधित मुद्दे