मुझे तंत्रिका नेटवर्क के विपरीत आनुवंशिक एल्गोरिदम का उपयोग कब करना चाहिए? [बन्द है]


139

क्या समस्या को हल करने के लिए तंत्रिका नेटवर्क (और इसके विपरीत) के विपरीत आनुवंशिक एल्गोरिदम का उपयोग करने के लिए निर्धारित करने के लिए अंगूठे (या उदाहरणों के सेट) का एक नियम है?

मुझे पता है कि ऐसे मामले हैं जिनमें आप दोनों तरीकों को मिला सकते हैं, लेकिन मैं दोनों तरीकों के बीच उच्च-स्तरीय तुलना की तलाश कर रहा हूं।


3
यह इंगित करने के लायक है कि दो प्रकार के तंत्रिका नेटवर्क हैं - पर्यवेक्षण और अनसुना। पर्यवेक्षित मानव से प्रशिक्षण डेटा प्राप्त करते हैं, अपने आप में असुरक्षित प्रतिक्रिया और उस संबंध में GA की तरह अधिक होते हैं।
क्रिस एस

3
मुझे नहीं लगता कि यह "सूची-वाई" है। जवाब दो तरीकों की तुलना करते हैं, और स्पष्ट करते हैं कि एक बनाम दूसरे का उपयोग कब करना है।
नील एन

संक्षिप्त उत्तर: GA का उपयोग तब करें जब मॉडल के लिए फ़ंक्शन गैर-निरंतर / असतत हो, या जब डेटासेट खगोलीय रूप से उच्च-आयामी हो। बाकी के लिए तंत्रिका नेटवर्क या GA (या अन्य मॉडल) का उपयोग करें जो आपको सबसे अच्छा परिणाम देता है। अधिक जानकारी के लिए, यहाँ मेरा जवाब देखें: stackoverflow.com/a/49684833/1121352
विस्तृत

जवाबों:


130

विकिपीडिया से:

एक आनुवंशिक एल्गोरिथ्म (GA) अनुकूलन और खोज समस्याओं के सटीक या अनुमानित समाधान खोजने के लिए कंप्यूटिंग में उपयोग की जाने वाली एक खोज तकनीक है।

तथा:

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

यदि आपके पास एक समस्या है जहां आप समाधान के लायक मात्रा निर्धारित कर सकते हैं, तो एक आनुवंशिक एल्गोरिथ्म समाधान स्थान की निर्देशित खोज कर सकता है। (जैसे दो बिंदुओं के बीच सबसे छोटा मार्ग खोजें)

जब आपके पास विभिन्न वर्गों में कई आइटम होते हैं, तो एक तंत्रिका नेटवर्क उन वस्तुओं को वर्गीकृत करने के लिए "सीख" सकता है जो इससे पहले "देखा" नहीं है। (जैसे चेहरा पहचानना, आवाज पहचानना)

निष्पादन समय पर भी विचार किया जाना चाहिए। एक आनुवंशिक एल्गोरिथ्म एक स्वीकार्य समाधान खोजने में लंबा समय लेता है। एक तंत्रिका नेटवर्क को "सीखने" के लिए लंबा समय लगता है, लेकिन फिर यह लगभग तुरंत नए इनपुट को वर्गीकृत कर सकता है।


13
मैं जीए परिभाषा में थोड़ा जोड़ना चाहता हूं। कभी-कभी लोग जीए समस्या के समाधान स्थान को राज्यों या मूल्यों के एक सेट के रूप में सोचते हैं। जैसे कि "सभी तरीकों का पता लगाएं, चार शतरंज के टुकड़ों का एक सेट चेकमेट बनाने के लिए शतरंज की बिसात पर व्यवस्थित किया जा सकता है।" हालाँकि समाधान स्थान एल्गोरिदम का एक सेट भी हो सकता है। यह वह जगह है जहाँ आनुवंशिक एल्गोरिदम की वास्तविक शक्ति खेल में आती है। वे आपको एक प्रश्न का उत्तर देने में मदद करते हैं जैसे "शतरंज के टुकड़ों के दिए गए सेट के साथ चाल का एक क्रम खोजें जो एक चेकमेट में परिणाम देगा।"
लेफलिन

44

एक आनुवंशिक एल्गोरिथ्म (इसके सेक्सी नाम के बावजूद), अधिकांश उद्देश्यों के लिए, एक अनुकूलन तकनीक है । यह मुख्य रूप से आपको कई प्रकार के चर के लिए उकसाता है और इन चरों के लिए मूल्यों का सबसे अच्छा संयोजन खोजना चाहता है। यह वहां पहुंचने के लिए सिर्फ प्राकृतिक विकास से तकनीक उधार लेता है।

तंत्रिका नेटवर्क पैटर्न को पहचानने के लिए उपयोगी होते हैं । वे मस्तिष्क के एक सरलीकृत मॉडल का पालन करते हैं, और उनके बीच कई भार बदलकर इनपुट के आधार पर आउटपुट का अनुमान लगाने का प्रयास करते हैं।

वे दो मूलभूत रूप से अलग-अलग संस्थाएं हैं, लेकिन कभी-कभी वे समस्याएं जो ओवरलैप को हल करने में सक्षम हैं।


22
तंत्रिका नेटवर्क वास्तव में सिर्फ एक प्रक्षेप तकनीक है। :)
डॉन रेबा

3
आनुवंशिक एल्गोरिदम (अनुकूलन) और तंत्रिका नेटवर्क (पर्यवेक्षण सीखने) के लिए +1 में लगभग कुछ भी सामान्य नहीं है।
अल्फ़ा

2
एकमात्र आम तत्व यह है कि वे गतिशील रूप से खुद को पुनर्व्यवस्थित करते हैं क्योंकि वे एक लक्ष्य तक पहुंचते हैं।
लेफलिन

1
मुझे यकीन नहीं है कि वास्तव में कोई ओवरलैप है। तंत्रिका नेटवर्क एक लागत फ़ंक्शन के साथ एक मॉडल है, GA एक अनुकूलन तकनीक है जिसका उपयोग इस लागत फ़ंक्शन को कम करने के लिए किया जा सकता है, जैसा कि @zenna ने कहा।
मैथ्यू ब्रूचर

37

GA एक संरचना में नए पैटर्न उत्पन्न करता है जिसे आप परिभाषित करते हैं।

NN आपके द्वारा प्रदान किए जाने वाले प्रशिक्षण डेटा के आधार पर मौजूदा पैटर्न को वर्गीकृत (या पहचानते हैं) करते हैं।

GA, कुशलता से समाधानों के एक बड़े राज्य-स्थान की खोज करने और एक या एक से अधिक अच्छे समाधानों पर कुशलतापूर्वक प्रदर्शन करने में अच्छा प्रदर्शन करते हैं, लेकिन जरूरी नहीं कि यह 'सर्वश्रेष्ठ' समाधान हो।

एनएन पैटर्न (प्रशिक्षण के माध्यम से) को पहचानना सीख सकते हैं, लेकिन उन्होंने जो सीखा है, उसका पता लगाना कठिन है, यानी एक बार प्रशिक्षित होने पर उनसे ज्ञान निकालने के लिए, और कुछ अन्य (गैर-एनएन) में ज्ञान का पुन: उपयोग करें।


26

आप यहां दो बिल्कुल अलग चीजों की तुलना कर रहे हैं।

तंत्रिका नेटवर्क का उपयोग प्रतिगमन / वर्गीकरण के लिए किया जाता है - (x, y) उदाहरणों का एक सेट दिया गया है, आप किसी भी x के लिए अज्ञात y को पुनः प्राप्त करना चाहते हैं।

जेनेटिक एल्गोरिदम एक अनुकूलन तकनीक है। एक फ़ंक्शन f (x) को देखते हुए, आप x को निर्धारित करना चाहते हैं जो f (x) को अधिकतम / अधिकतम करता है।


10
वास्तव में। वे वास्तव में 'ऑर्थोगोनल' तकनीक हैं। आप तंत्रिका शुद्ध वजन और / या वास्तुकला को खोजने के लिए GA का उपयोग कर सकते हैं।
redcalx

23

उनके बीच कई समानताएं हैं, इसलिए मैं केवल उनके मतभेदों को रेखांकित करने की कोशिश करूंगा

तंत्रिका जाल

ऑनलाइन पैटर्न (जो समय के साथ बदलते हैं) का विश्लेषण करने में सक्षम हैं। आम तौर पर, यह एक समय-भिन्न नमूना होता है जिसे मिलान और भविष्यवाणी करने की आवश्यकता होती है।

उदाहरण :

  • ग्राफ एक्सट्रपलेशन
  • चेहरे की पहचान

आनुवंशिक एल्गोरिदम

उपयोग किया जाता है जब आप उन विशेषताओं को कोड कर सकते हैं जो आपको लगता है कि एक विशिष्ट, गैर-बदलती समस्या में योगदान कर सकते हैं। इन विशेषताओं को कोड करने में सक्षम होने पर जोर दिया जाता है (कभी-कभी आप जानते हैं कि वे क्या हैं) और यह समस्या बड़ी हद तक अपरिवर्तित है (अन्यथा evolutions नहीं जुटे)।

उदाहरण :

  • शेड्यूलिंग हवाई जहाज / शिपिंग
  • टाइम टेबल।
  • एक कृत्रिम वातावरण में एक साधारण एजेंट के लिए सबसे अच्छी विशेषताओं का पता लगाना
  • यादृच्छिक बहुभुज के साथ एक तस्वीर का एक अनुमान प्रस्तुत करना

14

आप एक विकल्प के रूप में आनुवंशिक एल्गोरिदम का उपयोग कर सकते हैं न्यूरल नेटवर्क में वेट को अपडेट बैकप्रॉपगैशन एल्गोरिदम के । इस उदाहरण के लिए देखें: http://www.ai-junkie.com/ann/evolved/nnt1.html


1
और NEAT ( cs.ucf.edu/~kstanley/neat.html ) भी। C # कार्यान्वयन के साथ ( sharpneat.sourceforge.net ) पर
Redcalx

जावास्क्रिप्ट के लिए, github.com/wagenaartje/neataptic देखें । यह NEAT को भी लागू करता है।
थॉमस डब्ल्यू

8

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

दूसरी ओर तंत्रिका नेटवर्क, (आमतौर पर) निरंतर डेटा (फ़्लोट्स, आदि) पर काम करते हैं। एनएन के लिए एक विशिष्ट एप्लिकेशन फ़ंक्शन सन्निकटन है, जहां आपको इनपुट का एक सेट एक्स और संबंधित आउटपुट का एक सेट वाई है, लेकिन विश्लेषणात्मक फ़ंक्शन एफ: एक्स → वाई।

बेशक, दोनों के हजारों संस्करण हैं, इसलिए उनके बीच की रेखा कुछ धुंधली है।


5

अंगूठे का कोई नियम नहीं है। कई मामलों में आप उनमें से किसी एक का उपयोग करने के लिए अपनी समस्या बना सकते हैं। मशीन लर्निंग अभी भी अनुसंधान का एक सक्रिय क्षेत्र है और जो सीखने के मॉडल का उपयोग करना बहस का विषय हो सकता है।

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

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