2011-10-16 15 views
6

PyBrain तंत्रिका नेटवर्क बनाने के लिए एक पायथन आधारित लाइब्रेरी है। मैंने अपनी साइट पर ट्यूटोरियल्स को देखा है लेकिन वे मुझे बहुत मदद नहीं कर रहे हैं। सिमुलेशन मैं करने की योजना बना रहा हूं जिसमें एक कार है जो ट्रैक पर ड्राइव करती है, जिसमें 5 रेंजफिंडर्स हैं, जो 0.0 और 1.0 के बीच की दूरी के बीच वर्तमान दूरी दिखाते हैं। फिटनेस औसत गति पर आधारित है। (उच्चतर बेहतर होगा) आउटपुट एक नंबर होगा, आप उस विशिष्ट पल के लिए कितना बारी करते हैं, जहां सभी तरह से सही 1.0 है, और सभी तरह से छोड़ा गया है -1.0 या 0.0, जो भी इसे आसान बनाता है।PyBrain का उपयोग कैसे करें?

मुझे लगता है कि इस सेटअप का उपयोग करने में मुझे 5 इनपुट न्यूरॉन्स और 1 आउटपुट न्यूरॉन होगा। उदाहरण के लिए, मुझे लगता है कि मेरे पास 4 छिपा न्यूरॉन्स हैं। आइए यह भी मान लें कि मैंने runSimulation() नामक एक फ़ंक्शन बनाया है जो एक तंत्रिका नेटवर्क को तर्क के रूप में लेता है, कार को उस तंत्रिका नेटवर्क का उपयोग करके एक कोर्स को नीचे चलाता है, और औसत गति (फिटनेस) देता है।

runSimulation() के बार-बार परिणामों के आधार पर मैं तंत्रिका नेटवर्क को कैसे प्रशिक्षित कर सकता हूं?


मुझे आशा है कि मैं सही ढंग से इस समझा रहा हूँ, (यहां तक ​​कि थोड़ा जानते हुए भी मैं क्या कर रहा हूँ का उल्लेख नहीं) लेकिन अगर मैं नहीं कर रहा हूँ, कृपया मुझे बताओ।

उत्तर

9

ऐसा लगता है कि यह एक पर्यवेक्षित सीखने की समस्या है। इस प्रकार की समस्या में आपको अपने एनएन को प्रशिक्षित करने से पहले कुछ जवाब देने की आवश्यकता है।

आप दृष्टिकोण

  1. अपनी कार के लिए एक सरल भूलभुलैया बनाएँ निम्नलिखित कोशिश कर सकते हैं।
  2. इस भूलभुलैया में अपनी कार को मैन्युअल रूप से ड्राइव करें।
  3. अपने मोड़ जानकारी इकट्ठा

आप कार के पीछे है मान देता है।

  • आरएफ = रेंजफाइंडर
  • rf_f = rangefinder_forward
  • rf_r = rangefinder_right
  • rf_l = rangefinder_left
  • rf_60 = rangefinder_60 डिग्री
  • rf_320 = rangefinder_320 डिग्री

नीचे है आपके आरएफ आरेख

320 f 60 
    \ |/
    \ |/
    \ |/ 
l--------------r 
     | 
     | 
     | 

आपका ट्रेन सेट नीचे जैसा होना चाहिए।

rf_f , rf_l , rf_r, rf_60, rf_320 , turn 
0  0  0 0 0  0  0 // we go directly, no obstacles detected 
0  0  0 0 0  0  0  // we go directly, , no obstacles detected 
1.0 0  0 0 0  0  0 // We see a wall in forward far away. 
0.9 1  0 0 0  0  0.2 // We see a wall in forward and left, 
              therefore turn right slightly etc. 
0.8 0.8  0 0 0  0  0.4 // We see a wall in forward and left, 
             therefore turn right slightly etc. 

आपके एनएन को ऐसा प्रशिक्षण डेटासेट देने के बाद आप इसे प्रशिक्षित कर सकते हैं।

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