तंत्रिका नेटवर्क प्रशिक्षण के लिए आनुवंशिक एल्गोरिथ्म बनाम बैकप्रॉपैगैनेशन


34

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

क्या एक या दूसरे का उपयोग करने के लिए अंगूठे का कुछ सामान्य नियम है? हो सकता है कि यह एनएन के प्रकार पर निर्भर करता है या कला समाधान के कुछ राज्य मौजूद हैं जो आमतौर पर दूसरों से बेहतर प्रदर्शन करते हैं?

यदि संभव हो तो मैं सामान्य उत्तरों की तलाश कर रहा हूं: यानी, "यदि एनएन विशाल है, तो जीए बेहतर है", या "जीए हमेशा बेहतर होता है, लेकिन कम्प्यूटेशनल प्रदर्शन के मुद्दे" आदि हैं ...

जवाबों:


23

यदि आप वैज्ञानिक साहित्य को ध्यान से देखते हैं तो आपको विपरीत परिणाम मिलेंगे। जाहिर है, कुछ मामलों में GA (और सामान्य रूप से, एवोल्यूशनरी एल्गोरिदम) आपको एक इष्टतम एनएन डिज़ाइन खोजने में मदद कर सकते हैं, लेकिन आम तौर पर उनके पास बहुत सारी कमियां हैं (एल्गोरिथ्म मापदंडों की ट्यूनिंग, कम्प्यूटेशनल जटिलता आदि) और उनका उपयोग वास्तविक के लिए संभव नहीं है- दुनिया अनुप्रयोगों। बेशक आप समस्याओं का एक समूह पा सकते हैं जहां जीए / ईएएस हमेशा होता हैbackpropagation से बेहतर है। यह देखते हुए कि एक इष्टतम एनएन डिज़ाइन ढूंढना एक जटिल मल्टीमॉडल ऑप्टिमाइज़ेशन समस्या है जीए / ईएएस "पारंपरिक" एल्गोरिदम के साथ प्राप्त परिणामों को बेहतर बनाने में मदद कर सकता है, उदाहरण के लिए जीए / ईएएस का उपयोग करके केवल शुरुआती वजन खोजने या पारंपरिक एल्गोरिदम की मदद करने के लिए। स्थानीय मिनीमा से बचना (यदि आप रुचि रखते हैं तो मैंने इस विषय में एक पेपर लिखा है)।

मैंने इस क्षेत्र पर बहुत काम किया है और मैं आपको बता सकता हूं कि एनएएन पर लागू जीए / ईएएस पर कई वैज्ञानिक कार्य हैं क्योंकि वे एक उभरते शोध क्षेत्र हैं (या बेहतर, वे हुआ करते थे)।


2
यह कुछ ऐसा है जिसे मैं हाल ही में लेकर आया हूं - पहले 'अच्छा' समाधान ढूंढें और फिर इसे जीए के साथ आगे सुधारें। न केवल एनएन पर लागू होता है, बल्कि सामान्य रूप से अनुकूलन होता है ...
शशकेलो

1
मुझे भ्रम है कि वे परस्पर अनन्य क्यों हैं। मुझे लगा कि जीए को संरचना सीखना है; Backpropagation केवल वजन सीख सकते हैं
पीट

8

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

अनिवार्य रूप से अनुकूलन मशीन सीखने में सभी बुराई की जड़ है, जितना अधिक आप करते हैं, उतना ही अधिक संभावना है कि आप डेटा को ओवर-फिटिंग कर रहे हैं।


Dikran, हालांकि GA प्राकृतिक चयन करता है लेकिन आपके द्वारा बताई गई जानकारी को अनदेखा नहीं करता है, यह केवल यह सुनिश्चित करता है कि चयनित समाधान अपनी समस्या को हल करता है यदि नहीं, तो यह पता करें कि क्यों और उस अपग्रेड को अपग्रेड करें जो नेटवर्क तक गतिशीलता का आधार बनाता है एक या दो सबसे अच्छे घोल में मिलाएं। आशा है कि आपको वह राज मिलेगा?

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

5

जब भी आप बड़ी मात्रा में डेटा से निपटते हैं और आप फीड-फॉरवर्ड न्यूरल नेटवर्क के साथ एक पर्यवेक्षित शिक्षण कार्य को हल करना चाहते हैं, बैकप्रोपैजेशन पर आधारित समाधान बहुत अधिक संभव हैं। इसका कारण यह है, कि एक जटिल तंत्रिका नेटवर्क के लिए, मुक्त मापदंडों की संख्या बहुत अधिक है। एक उद्योग परियोजना जिस पर मैं वर्तमान में काम कर रहा हूं उसमें लगभग 1000 इनपुट, दो छिपी हुई परतें @ 384 न्यूरॉन्स प्रत्येक और 60 आउटपुट के साथ एक फीड-फॉरवर्ड न्यूरल नेटवर्क शामिल है। यह 1000 * 384 + 384 * 384 + 384 * 60 = 554496 वजन मापदंडों की ओर जाता है जिन्हें अनुकूलित किया जाना है। यहाँ GA दृष्टिकोण का उपयोग करना बहुत धीमी गति से होगा।


मेरी समझ यह है कि जीए उन समस्याओं से निपटने के लिए बनाया गया है जो मानक दृष्टिकोणों के साथ हल करना कठिन हैं। यह वर्णित स्थिति में बेहतर प्रदर्शन नहीं करना चाहिए?
शशेल्लो

2
मुझे लगा कि जीए का उपयोग यह पता लगाने के लिए किया जाना चाहिए कि यह किस संरचना का उदाहरण है कि कितनी छिपी हुई परतें हैं और वे कैसे जुड़ी हुई हैं। Backpropagation केवल वजन पता लगा सकते हैं
पीट

2

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

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

हालाँकि, एक बड़े क्षेत्र की खोज करने से, स्थानीय आशाओं से बचकर, जीएएस लंबे समय में बेहतर प्रदर्शन करेंगे, बस प्रशिक्षण में अधिक समय लगेगा।

मैं उत्सुक हूं कि बैकपॉप की तुलना में जीए कितना धीमा है, और अगर किसी को हाइब्रिड एल्गोरिदम के बारे में पता है (तितर बितर खोज ऐसा लगता है कि यह इसके लिए आदर्श होगा।)


1
अपने पहले पैराग्राफ से असहमत। प्रशिक्षण समस्या में नियमित रूप से दृष्टिकोण के माध्यम से ओवरफिटिंग को रोका जाता है। यदि आप मेटा-ऑप्टिमाइज़ेशन करना शुरू करते हैं --- जो बहुत सारी प्रशिक्षण समस्याओं को हल कर रहा है (उदाहरण के लिए कर्नेल पैरामीटर, नेटवर्क आर्किटेक्चर, ...) - ओवरफ़िटिंग का ध्यान रखना अधिक कठिन हो जाता है और निश्चित रूप से अब इसकी कोई गारंटी नहीं है।
मार्क क्लेसेन

यदि ओवरफिटिंग अनुकूलन के कारण नहीं होती है, तो जल्दी रोकना ओवरफिटिंग के लिए एक प्रभावी उपाय नहीं होगा।
दिनकर मंगल

1

im GA और बैकप्रॉपैगैशन के बीच का अंतर यह है कि GA यादृच्छिक संख्याओं पर आधारित है और बैकप्रॉपैजेशन स्टैचस्टिक ग्रेडिएंट डीसेंट जैसे स्टैटिक एल्गोरिथ्म पर आधारित है। GA यादृच्छिक संख्याओं पर आधारित होता है और उस उत्परिवर्तन के साथ जुड़ने का अर्थ है कि यह संभवतः स्थानीय मिनीमा में पकड़े जाने से बचना होगा। लेकिन फिर जीए यादृच्छिक संख्याओं पर आधारित होने का मतलब है कि यह 2 अलग-अलग समयों के लिए संभव है जब आप एक ही नेटवर्क पर सीखने को चलाते हैं, तो यह एक अलग निष्कर्ष पर पहुंच सकता है अर्थात वजन का एक अलग सेट।


सिर्फ टिप्पणी करते हुए, हम यादृच्छिक init का भी उपयोग करते हैं। बैक-प्रोप में वज़न के लिए। यदि हम आरंभ करते समय एक ही बीज का उपयोग करते हैं, तो यह एक ही समाधान को जन्म देगा, लेकिन यदि आप नहीं करते हैं, तो शायद यह नहीं होगा। तो, बैक-प्रोप, भी, एक यादृच्छिक इनपुट पर निर्भर करता है। जब आप बीज को ठीक करते हैं, तो आपके पास आनुवंशिक एल्गोरिथ्म में भी वही परिणाम होगा क्योंकि यह उसी seq का उपयोग करेगा। फिर से संख्या की।
बंदूक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.