हमें कैसे पता चलेगा कि अगली पीढ़ी बेहतर होगी?


32

मुझे इस MSDN लेख द्वारा हाल ही में आनुवंशिक एल्गोरिदम से परिचित कराया गया था , जिसमें वह उन्हें जुझारू विकास कहते हैं, लेकिन यह एक ही बात लगती है, और यह समझने में संघर्ष कर रहा हूँ कि दो संभावित समाधानों का संयोजन हमेशा एक नया समाधान पैदा करेगा जो कम से कम के रूप में हो अपने माता-पिता के रूप में अच्छा है।

ऐसा क्यों है? निश्चित रूप से संयोजन कुछ बदतर पैदा कर सकता है।

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


12
However, there will be combinations that are weaker. Why isn't this an issue with GA?- क्योंकि कमजोर संयोजन त्याग दिए जाते हैं।
रॉबर्ट हार्वे

6
हम जानते हैं कि अगली पीढ़ी बदतर नहीं होगी क्योंकि हम अच्छे लोगों को नहीं फेंकते हैं लेकिन हम बुरे लोगों को दूर फेंक देते हैं। और एक उचित मौका है कि कुछ अच्छे लोगों के संयोजन से यह और भी बेहतर हो जाएगा, लेकिन इसकी गारंटी नहीं है।
user253751

7
Why isn't this an issue with GA?खैर, यह है, या अधिक बिल्कुल, यह हो सकता है। जीए का उपयोग करने के लिए अनुकूलन करने के लिए कई (कई) मापदंडों में से एक जनसंख्या का आकार है: यदि यह बहुत कम है, तो आप केवल कमजोर व्यक्तियों का उत्पादन कर सकते हैं, लेकिन अगर यह बहुत अधिक है, तो फिटनेस फ़ंक्शन के साथ जुड़े गणना समय बहुत अधिक हो सकता है।
लॉफाइलॉफ

3
यह प्रजनन और निराई के बीच का अंतर है : प्रजनन चरण (विल) से बदतर संतान पैदा हो सकती है, लेकिन अगले चरण के प्रजनन से पहले निराई की अवस्था (सबसे खराब) को समाप्त कर देना चाहिए।
त्रिपुंड हंड्रेड

आप सभी को धन्यवाद। अगर मैं सही ढंग से समझूं, तो यह वह था जिस तरह से उसने इसे लेख में लिखा था जिसने मुझे राह से निकाल दिया। उन्होंने कहा " नया, संभवतः बहुत अच्छा, बाल जीव एक गरीब जीव की जगह लेता है " जिसने मेरे प्रश्न को प्रेरित किया। लगता है कि गलत था :)
Avrohom Yisroel

जवाबों:


43

एक आनुवंशिक एल्गोरिथ्म जनसंख्या को कम करके प्रत्येक पीढ़ी में सुधार करने की कोशिश करता है। प्रत्येक सदस्य का मूल्यांकन एक फिटनेस फ़ंक्शन के अनुसार किया जाता है, और उनमें से केवल एक उच्च स्कोरिंग भाग को पुन: पेश करने की अनुमति दी जाती है।

आप सही हैं, हालांकि: इस बात की कोई गारंटी नहीं है कि अगली पीढ़ी अपने पूर्ववर्ती स्कोर पर सुधार करेगी।

डॉकिन्स के वीज़ल कार्यक्रम पर विचार करें : स्ट्रिंग को "विकसित करना" "Methinks it is like a weasel"। रैंडम स्ट्रिंग्स की आबादी से शुरू होकर, फिटनेस फंक्शन निकटतम टेक्स्टुअल मैच का मूल्यांकन करता है, जो अगली पीढ़ी का उत्पादन करने के लिए हैरान है। एक साधारण क्रॉसओवर प्रजनन के साथ, दो उच्च-स्कोरिंग तार जो संयुक्त हैं, बहुत आसानी से लो-स्कोरिंग संतान पैदा कर सकते हैं। यहां तक ​​कि एकल उच्च-फिटनेस स्ट्रिंग के "अलैंगिक" यादृच्छिक म्यूटेशन से बच्चे की फिटनेस कम हो सकती है।

यह ध्यान देने योग्य है, मुझे लगता है, यह जरूरी नहीं कि दोष है। इस तरह की खोज के साथ, स्थानीय मैक्सिमा का विचार है । जनसंख्या का एक सदस्य एक समाधान है कि प्रतिनिधित्व कर सकते हैं नहीं इष्टतम परिणाम है, लेकिन सबसे अच्छा है कि रास्ते में बदतर हो रही बिना प्राप्त किया जा सकता है।

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

अब "Methinks it is like a walrus"विकसित होने पर क्या होता है? यह अच्छा स्कोर करता है। परम लक्ष्य स्ट्रिंग के साथ-साथ नहीं, बल्कि "Methinks it is like a walrut"अन्य करीबी बदलावों से बेहतर है जिन्हें म्यूटेशन के एक चरण तक पहुँचा जा सकता है।

वालरस स्ट्रिंग एक स्थानीय अधिकतम है, और जब तक कार्यक्रम अगली पीढ़ी के स्कोर को खराब नहीं होने देता है तब तक खोज वहां अटक सकती है।


1
प्रासंगिक: youtube.com/watch?v=YT1vXXMsYak - डॉकिन के कंप्यूटर प्रोग्राम का प्रदर्शन लगभग 12 मिनट का है, हालांकि पूरा व्याख्यान देखने लायक है क्योंकि यह उस मूल सैद्धांतिक आधार का वर्णन करता है जिस पर विकास (चाहे जैविक हो या नकली) जमीन।
पेरिआटा ब्रीटाटा

24
वास्तव में, आप कभी-कभी कमजोर स्कोरिंग सदस्यों के एक निश्चित प्रतिशत को "आनुवंशिक विविधता" बढ़ाने के लिए जीवित रहने की अनुमति देंगे, साथ ही पूरी तरह से यादृच्छिक उत्परिवर्तन भी पेश करेंगे जो किसी भी मौजूदा सदस्य पर आधारित नहीं हैं।
जर्ग डब्ल्यू मित्तग

@JoshCaswell को इसके लिए धन्यवाद। हालांकि सभी उत्तर उत्कृष्ट थे, मैं इसे स्वीकार किए जाने वाले के रूप में चिह्नित करने जा रहा हूं क्योंकि यह मेरे द्वारा मांगी गई हर चीज को कवर करता है, और कुछ चीजें जो मैंने अभी तक नहीं पूछी थीं!
एवरोहोम यिसरोएल

खुशी है कि मैं मदद कर सकता हूं, @AvrohomYisroel
जोश कैसवेल

6

हम नहीं जानते कि यह बेहतर होगा, हम जानते हैं कि यह खराब नहीं होगा।

हर पीढ़ी में, केवल सबसे अच्छे तत्वों के ओस्प्रिंग शामिल नहीं होते हैं, लेकिन यदि आप करेंगे तो सबसे अच्छे तत्व स्वयं भी शामिल हैं। चूंकि वे अभी भी मौजूद हैं, वे पहले की तरह ही स्कोर करेंगे। मतलब यह है कि अगर वंश में से कोई भी बेहतर नहीं है, तो पिछली पीढ़ी के विजेता फिर से जीतेंगे - और फिर से उत्परिवर्तित / नस्ल होंगे।

गौर करें: एक पूर्वज के साथ एक व्यक्ति का एक पत्र, जैसे कि A एक उत्परिवर्तित बच्चा एक संख्या को जोड़कर परिभाषित किया जा रहा है जैसे A1, माता-पिता के चारों ओर कोष्ठक के साथ क्रॉस-ब्रेड समाधान लिखा जा रहा है जैसे (A1B2) और इसके बाद किसी भी अविभाज्य रिटेन का फिटनेस कोर - उच्चतर बेहतर[12]

प्रदर्शन के लिए, 5 के एक पूल पर विचार करें, जहां हम सबसे अच्छे 2. रखते हैं और प्रत्येक के 1 म्यूटेट के साथ भरते हैं, साथ ही एक क्रॉस ब्रीड

पीढ़ी १

  • A [10]
  • B [5]
  • C [4]
  • D [3]
  • E [1]

रखें A, Bक्योंकि वे सबसे अच्छे दो हैं, और अन्य 3 स्लॉट्स को वहां के वंशजों के साथ फिर से भरना है

पीढ़ी २

  • A [10]
  • B [5]
  • (AB) [7]
  • A1 [12]
  • B1 [4]

रखें A, और (AB), जैसा कि वे सबसे अच्छे 2 हैं - थिस का मतलब है कि दादाजी Aअभी भी पूल में रहेंगे क्योंकि अधिकांश बच्चे काम कर रहे हैं

पीढ़ी ३

  • A [10]
  • (AB) [12]
  • (A(AB)) [14]
  • A2 [8]
  • (AB)1 [13]

रखें (AB)1और (A(AB))- इस समय कोई दादा दादी, बनाए रखा गया उनके बच्चों में से दो में उन्हें हरा के रूप में। लेकिन अगर (AB1)हमने थोड़ा बुरा प्रदर्शन किया है तो हम (AB)इसके बजाय रखे होंगे ।

यह तब तक जारी रहता है जब तक स्कोर स्थिर नहीं हो जाता। जो इंगित करता है कि आपने किसी तरह की स्थानीय मैक्सिमा (संभावित रूप से एक वैश्विक मैक्सिमा) को मारा है। यह पता लगाने के लिए कि अगर वही व्यक्ति अगली पीढ़ी में "क्लोन" बने रहेंगे, तो इसका पता क्यों लगाया जाएगा। (हालांकि उच्च आयामी समस्याओं के लिए, जिसमें बहुत लंबा समय लग सकता है, इसलिए बेहतर है कि केवल सुधार की जांच करें <एक विशेष सहिष्णुता)


1
"हर पीढ़ी में, केवल सबसे अच्छे तत्वों के ओस्प्रिंग शामिल नहीं होते हैं, बल्कि स्वयं सर्वश्रेष्ठ तत्वों को भी शामिल करते हैं" यह कार्यान्वयन पर निर्भर करता है। कुछ कार्यान्वयन ऐसा नहीं करते हैं। ऐसा करने को कभी-कभी "अभिजात्यवाद" कहा जाता है।
jpmc26

4

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


4
आह, इसलिए ऐसा लगता है कि लेख थोड़ा भ्रामक था। उन्होंने कहा " नया, संभवतः बहुत अच्छा, बाल जीव एक गरीब जीव की जगह लेता है " जो मुझे भ्रमित करता है। मुझे लगता है कि अगर वह जीवों के भार का संयोजन कर रहा है, तो कुल मिलाकर हम वृद्धि की उम्मीद करेंगे, हालांकि व्यक्तिगत नए जीव पिछले वाले की तुलना में कमजोर हो सकते हैं। क्या वह सही है? आभार
एवरोह यिसरोएल

@AvrohomYisroel: बिल्कुल सही।
जैक्सबी

1
@AvrohomYisroel: गैर-विशेषज्ञों की अनुमानित समझ से सावधान रहें। (इसके अलावा, विशेषज्ञों की शुद्धता "शब्दजाल की दीवार" से सावधान रहें।)
एरिक टॉवर्स

@EricTowers हाँ, मैं समस्या देख रहा हूँ! मुझे लगा कि वह एक विशेषज्ञ थे, पिछले लेखों को देखते हुए, जो उन्होंने लिखे हैं, लेकिन उन्होंने स्पष्ट रूप से इस लेख में कुछ बड़ी गलतियाँ की हैं।
एवरहोम यिसरेल 16

4

जब मैंने कॉलेज में जेनेटिक एल्गोरिदम का अध्ययन किया तो उसे इस तरह समझाया गया:

एक समाधान की कल्पना "जीन" का संयोजन है, जहां प्रत्येक जीन को प्रभावित करता है कि एक पूरे के रूप में समाधान कितना अच्छा है। जब दो समाधान मिलते हैं, तो उन्हें प्रत्येक माता-पिता से यादृच्छिक रूप से चुना जाता है।

अब, यदि जीन लीड करता है, आम तौर पर, अच्छे समाधान के लिए, तो यह जीन पूल में आवृत्ति बढ़ जाती है। चरम स्थिति में, जीन आबादी पर हावी होगा।

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

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


2

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

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