क्या माइक्रोकंट्रोलर पर न्यूरल नेटवर्क चलाना संभव है


23

क्या आप एक माइक्रोप्रोसेसर पर एक साधारण तंत्रिका नेटवर्क को लागू कर सकते हैं जैसे कि मशीन लर्निंग में उपयोग किया जाने वाला Arduino Uno?


2
जिज्ञासा से बाहर, आप क्यों करना चाहेंगे?
जोश वैंडर हुक

1
मैं इस क्षेत्र का विशेषज्ञ नहीं हूं, लेकिन आखिरी बार मैंने सुना है, एनएन का प्रशिक्षण सिमुलेशन में किया गया था, और एनएन को एक चेसिस पर लागू किया गया था , और शायद आर्दुइनो की तुलना में उच्च-स्तरीय नियंत्रक के साथ।
जोश वेंडर हुक

1
ठीक है, आपको इसे लिंक करने की आवश्यकता नहीं है, आप सिर्फ एनएन को सिमुलेशन में प्रशिक्षित करते हैं, फिर एनएन के टोपोलॉजी को निकालते हैं, जिसमें एज वेट और नोड लिंक शामिल हैं। फिर आप एनएन प्रोग्राम करें (यह सिर्फ एक समीकरण है जिसे आपको हल करना है)। मुझे लगता है कि इस परियोजना को लेने से पहले थोड़ा और शोध की आवश्यकता है।
जोश वेंडर हुक

1
यह शायद मैं 16 का उल्लेख कर रहा हूँ और यह हाई स्कूल के लिए मेरा इलेक्ट्रॉनिक्स प्रमुख काम है।
जॉर्डन

1
उस स्थिति में, मुझे लगता है कि आप इसे लागू करने के प्रयास में ड्यूटी की कॉल से ऊपर और परे जा रहे हैं?
जो बेकर

जवाबों:


10

क्या आप एक माइक्रोकंट्रोलर पर एक तंत्रिका नेटवर्क को प्रशिक्षित कर सकते हैं ? हो सकता है, लेकिन कृपया कोशिश न करें। क्या आप एक माइक्रोकंट्रोलर पर वर्गीकरण आदि के लिए एनएन का उपयोग कर सकते हैं? ज़रूर, जब तक आप नोड और किनारे के मूल्यों के प्रसार के परिणाम की गणना कर सकते हैं और गुणा को संभाल सकते हैं।


1
मैं सहमत हूँ। मान लें कि आपको Arduino पर प्रशिक्षित करने के लिए आवश्यक जटिलता का एक तंत्रिका नेटवर्क मिल सकता है, तो आप अभी भी प्रशिक्षण समय की एक पागल राशि के लिए तैयार रहेंगे। एनएन का ऑफ-बोर्ड प्रशिक्षण जाने का तार्किक तरीका है।
fgb

23

एक Arduino पर इसे लागू करना निश्चित रूप से संभव है। यहाँ 3 ऐसे Arduino पुस्तकालय हैं जो तंत्रिका नेटवर्क को लागू करते हैं:

नेटवर्क की जटिलता जिसे अरुडिनो संभाल सकता है, एक अलग सवाल है, खासकर जब यह प्रशिक्षण की बात आती है - प्रशिक्षण डेटा पर हजारों पुनरावृत्तियों। एक तेज़ मशीन पर प्रशिक्षण और फिर न्यूरॉन वेट को Arduino पर कॉपी करना आपके कार्यान्वयन को विकसित करने का एक स्मार्ट तरीका होगा।


5

हाँ। यदि आप इसे केवल फ़ीड-फ़ॉरवर्ड मोड में चलाते हैं और अपना प्रशिक्षण ऑफ़-लाइन कहीं और करते हैं:

मैंने एक Arduino UNO पर 3-लेयर (5-5-2) फीडफॉर्वर्ड ANN प्रोग्राम किया। यह एक मोबाइल रोबोट पर चलता था। जब भी रोबोट कुछ हिट करेगा, तो वह नेटवर्क को फिर से प्रशिक्षित करेगा। रियल-टाइम में नेट का फीडफ़वर्ड हिस्सा भाग गया; जबकि बैक-प्रचार प्रशिक्षण ~ 5 से 20 सेकंड के आदेश पर लिया गया था। मुझे लगता है कि आप नेटवर्क के आकार को ट्रिम कर सकते हैं और साथ ही इसे थोड़ा तेज चलाने के लिए मापदंडों के साथ खेल सकते हैं, लेकिन अगर आप एक Arduino पर बैकप्रोपैजेशन करने की योजना बनाते हैं, तो मुझे लगता है कि यह बहुत धीमा होगा।

चीजों को गति देने के कुछ विचारों में शामिल हैं:

  • फिक्स्ड बनाम फ्लोटिंग पॉइंट का उपयोग करें (MCU के w / o एक FPU के लिए)
  • एक MCU का उपयोग करें जिसमें एक FPU हो
  • tanh
  • प्रशिक्षण चरण एक पीसी पर ऑफ़लाइन हो

यहाँ एक त्वरित राइट-अप मैंने नेटवर्क का किया है।


3

हां वास्तव में, यह संभव है कि माइक्रोकंट्रोलर में तंत्रिका नेटवर्क को एम्बेड किया जाए। वैज्ञानिक साहित्य में इसके कई ऐसे उदाहरण हैं लेकिन मैं एक बहुत ही सरल MCU के साथ क्या किया जा सकता है अगर आप काफी स्मार्ट हैं, तो मैं इस बात का उल्लेख कर सकता हूं। में विकासवादी Bits'n'Spikes , लेखकों एक वास्तविक समय तंत्रिका नेटवर्क और एक आनुवंशिक एल्गोरिथ्म यह प्रशिक्षित करने के लिए, ताकि एक अंतर पहिया रोबोट को नियंत्रित करने के spiking के कार्यान्वयन का वर्णन। पूरा कोड एक छोटे PIC16F628 4MHz MCU में 1-घन-इंच ऐलिस रोबोट पर चलता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.