เราจะรู้ได้อย่างไรว่าคนรุ่นต่อไปจะดีขึ้น?


32

ฉันได้รับการแนะนำให้รู้จักกับอัลกอริธึมทางพันธุกรรมเมื่อเร็ว ๆ นี้โดยบทความ MSDN นี้ซึ่งเขาเรียกว่าวิวัฒนาการ combinatorial แต่ดูเหมือนว่ามันจะเป็นสิ่งเดียวกัน ดีเท่าพ่อแม่

ทำไมเป็นเช่นนี้ แน่นอนว่าการรวมกันอาจทำให้บางสิ่งแย่ลง

เท่าที่ฉันเข้าใจอัลกอริทึมจะขึ้นอยู่กับแนวคิดที่ว่าเมื่อชายและหญิงของสปีชีส์ผลิตลูกหลานลูกหลานเหล่านั้นจะมีลักษณะของทั้งพ่อและแม่ ชุดค่าผสมบางอย่างจะดีขึ้นบางส่วนแย่ลงและบางชุดก็ดี คนที่ดีกว่า (สำหรับสิ่งที่ขาดหายไปของ "ดีกว่า" มีความเหมาะสม) จะมีโอกาสรอดชีวิตมากกว่า อย่างไรก็ตามจะมีชุดค่าผสมที่อ่อนกว่า เหตุใดจึงไม่มีปัญหากับ GA


12
However, there will be combinations that are weaker. Why isn't this an issue with GA?- เนื่องจากชุดค่าผสมที่อ่อนกว่าถูกละทิ้ง
Robert Harvey

6
เรารู้ว่าคนรุ่นต่อไปจะไม่เลวร้ายยิ่งกว่าเพราะเราไม่ทิ้งคนดี แต่เราทิ้งคนเลว และมีโอกาสที่เหมาะสมที่จะรวมสิ่งดีๆเข้าด้วยกันจะทำให้ดีขึ้น แต่ก็ไม่รับประกัน
user253751

7
Why isn't this an issue with GA?มันเป็นอย่างนั้นหรือมากกว่านั้นอย่างแน่นอน หนึ่งในหลาย ๆ พารามิเตอร์เพื่อเพิ่มประสิทธิภาพโดยใช้ GAs คือขนาดของประชากร: ถ้าต่ำเกินไปคุณอาจสร้างบุคคลที่อ่อนแอ แต่ถ้าสูงเกินไปเวลาการคำนวณที่เกี่ยวข้องกับฟังก์ชั่นฟิตเนสอาจสูงเกินไป
Loufylouf

3
มันเป็นความแตกต่างระหว่างการผสมพันธุ์กับการกำจัดวัชพืช : ขั้นตอนการผสมพันธุ์อาจจะทำให้ลูกหลานแย่ลง แต่ระยะการกำจัดวัชพืชจะ (ควร) กำจัดสิ่งที่แย่ที่สุดก่อนการผสมพันธุ์ครั้งต่อไป
TripeHound

ขอขอบคุณทุกท่าน. ถ้าฉันเข้าใจถูกต้องมันเป็นวิธีที่เขาใช้ในบทความที่ทำให้ฉันหลุดพ้นจากเส้นทาง เขากล่าวว่า " สิ่งมีชีวิตใหม่ที่ดีน่าจะเป็นสิ่งมีชีวิตของเด็กมาแทนที่สิ่งมีชีวิตที่น่าสงสาร " ซึ่งทำให้คำถามของฉัน ดูเหมือนว่าเป็นเรื่องที่ผิด :)
Avrohom ยีส

คำตอบ:


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 - การสาธิตโปรแกรมคอมพิวเตอร์ของ Dawkin อยู่ที่ประมาณ 12 นาทีแม้ว่าการบรรยายทั้งหมดจะมีค่าควรรับชมเนื่องจากอธิบายพื้นฐานทางทฤษฎีพื้นฐานที่วิวัฒนาการ (ไม่ว่าจะทางชีวภาพหรือแบบจำลอง) สายดิน
Periata Breatta

24
แน่นอนว่าบางครั้งคุณอาจอนุญาตให้สมาชิกที่มีคะแนนอ่อนกว่าอยู่รอดเพื่อเพิ่ม "ความหลากหลายทางพันธุกรรม" รวมถึงแนะนำการกลายพันธุ์แบบสุ่มโดยสมบูรณ์ซึ่งไม่ได้อิงจากสมาชิกที่มีอยู่เลย
Jörg W Mittag

@JoshCaswell ขอบคุณสำหรับสิ่งนี้ แม้ว่าคำตอบทั้งหมดจะยอดเยี่ยม แต่ฉันจะทำเครื่องหมายว่าเป็นคำตอบที่ยอมรับเพราะครอบคลุมทุกอย่างที่ฉันถามและสองสิ่งที่ฉันยังไม่ได้ถาม!
Avrohom Yisroel

ดีใจที่ฉันสามารถช่วย @AvrohomYisroel
Josh Caswell

6

เราไม่รู้ว่ามันจะดีขึ้นเรารู้ว่ามันจะไม่แย่ลง

ในทุก ๆ ยุคไม่ได้มีเพียงแค่องค์ประกอบที่ดีที่สุดเท่านั้น แต่ยังรวมถึงองค์ประกอบที่ดีที่สุดด้วย - โคลนนิ่งหากคุณต้องการ เนื่องจากพวกเขายังคงอยู่พวกเขาจะทำคะแนนเหมือนเดิม หมายความว่าหากไม่มีลูกหลานคนใดดีกว่าผู้ชนะรุ่นก่อนหน้าจะชนะอีกครั้งและจะได้รับการกลายพันธุ์ / ผสมพันธุ์ใหม่

ลองพิจารณา: เมื่อบุคคลต้นกำเนิดเป็นตัวอักษรเช่นA เด็กกลายพันธุ์ที่ถูกกำหนดโดยการเพิ่มจำนวนเช่นA1การแก้ปัญหาข้ามขนมปังที่เขียนด้วยวงเล็บรอบผู้ปกครองเช่น(A1B2) และแกนกลางสมรรถภาพของการเขียน indivisual ใด ๆ หลังจากนั้น - สูงกว่าดีกว่า[12]

สำหรับการสาธิตพิจารณาพูล 5 ซึ่งเรารักษาไว้อย่างดีที่สุด 2. และเติมด้วย 1 กลายพันธุ์ของแต่ละตัวรวมทั้งสายพันธุ์

รุ่นที่ 1

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

เก็บA, Bขณะที่พวกเขาเป็นที่ดีที่สุดทั้งสองและเติมอีก 3 ช่องด้วยมีลูกหลาน

รุ่นที่ 2

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

เก็บไว้Aและ(AB)ตามที่ดีที่สุด 2 - นี่หมายความว่าคุณปู่Aจะยังคงอยู่ในสระว่ายน้ำเพราะเด็กส่วนใหญ่ทำงานอ่อนแอ

รุ่นที่ 3

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

รักษา(AB)1และ (A(AB))- คราวนี้ไม่มีปู่ย่าตายายได้รับการบำรุงรักษาขณะที่เด็กสองคนตีพวกเขา แต่ถ้าหาก(AB1)ทำไปแล้วแย่กว่าเดิมเล็กน้อยเราก็จะเก็บไว้(AB)แทน

สิ่งนี้จะดำเนินต่อไปจนกระทั่งคะแนนคงที่ ซึ่งบ่งบอกว่าคุณได้รับผลกระทบสูงสุดในท้องถิ่น (อาจเป็นค่าสูงสุดทั่วโลก) สาเหตุหนึ่งที่ต้องตรวจสอบสิ่งนี้คือถ้าบุคคลเดียวกันยังคงถูก "โคลน" ไปสู่รุ่นต่อไป (แม้ว่าสำหรับปัญหามิติสูงที่อาจใช้เวลานานเกินไปอาจจะดีกว่าเพื่อตรวจสอบการปรับปรุง <ความอดทนเฉพาะ)


1
"ในทุกรุ่นไม่ได้มีเพียงแค่องค์ประกอบที่ดีที่สุดเท่านั้น แต่ยังรวมถึงองค์ประกอบที่ดีที่สุดด้วย" สิ่งนี้ขึ้นอยู่กับการนำไปใช้ การใช้งานบางอย่างไม่ทำเช่นนี้ การทำเช่นนี้บางครั้งเรียกว่า "อภิสิทธิ์"
jpmc26

4

โดยทั่วไปอัลกอริธึมทางพันธุกรรมทำงานโดยการสร้างรูปแบบ (สุ่ม) จำนวนหนึ่งบนผู้ปกครองในแต่ละรุ่น จากนั้นฟังก์ชั่นการเลือกบางอย่างจะถูกนำไปใช้และลูกหลานที่เหมาะสมที่สุดตามฟังก์ชั่นนี้ยังมีชีวิตอยู่ ดังนั้นลูกหลานจึงไม่จำเป็นต้องดีกว่าเนื่องจากความผันแปรเป็นแบบสุ่ม แต่เมื่อรวมกับส่วนที่เลือกคุณจะได้รับการปรับปรุงตลอดเวลา


4
อาดังนั้นดูเหมือนว่าบทความจะทำให้เข้าใจผิดเล็กน้อย เขากล่าวว่า " สิ่งมีชีวิตใหม่ที่ดีน่าจะเป็นสิ่งมีชีวิตของเด็กมาแทนที่สิ่งมีชีวิตที่น่าสงสาร " ซึ่งเป็นสิ่งที่ทำให้ฉันสับสน ฉันเดาว่าเขารวมสิ่งมีชีวิตจำนวนมากเข้าด้วยกันโดยรวมแล้วเราคาดว่าจะเพิ่มขึ้นแม้ว่าสิ่งมีชีวิตใหม่ ๆ อาจจะอ่อนแอกว่าสิ่งที่เคยทำมาก่อนหน้านี้ นั่นถูกต้องใช่ไหม? ขอบคุณ
Avrohom Yisroel

@AvrohomYisroel: เผง
JacquesB

1
@AvrohomYisroel: ระวังความเข้าใจโดยประมาณของผู้ที่ไม่ใช่ผู้เชี่ยวชาญ (และระวังความแม่นยำ "กำแพงแห่งศัพท์แสง" ของผู้เชี่ยวชาญ)
Eric Towers

@EricTowers ใช่ฉันเห็นปัญหา! ฉันคิดว่าเขาเป็นผู้เชี่ยวชาญโดยตัดสินจากบทความก่อนหน้านี้ที่เขาเขียน แต่ดูเหมือนว่าเขาจะทำผิดพลาดใหญ่ในบทความนี้
Avrohom Yisroel

4

เมื่อฉันศึกษาอัลกอริทึมทางพันธุกรรมในวิทยาลัยมีการอธิบายดังนี้:

ลองนึกภาพทางออกคือการรวมกันของ "ยีน" ซึ่งแต่ละยีนมีผลต่อวิธีการแก้ปัญหาโดยรวมที่ดีคือ เมื่อโซลูชันสองตัวถูกผสมพันธุ์ยีนเหล่านั้นจะถูกสุ่มเลือกจากผู้ปกครองแต่ละคน

ทีนี้ถ้ายีนนำไปสู่การแก้ปัญหาที่ดีก็คือความถี่ในการเพิ่มจำนวนยีน ในกรณีที่รุนแรงยีนจะครอบงำประชากร

ดังนั้นเมื่อคุณคิดถึงอัลกอริธึมทางพันธุกรรม (และวิวัฒนาการโดยทั่วไป) คุณไม่ควรคิดถึงบุคคล คุณควรคิดถึงยีนและประชากรโดยรวม แม้ว่าทางออกที่ดีที่สุดจะหายไป แต่ก็ไม่ได้หมายความว่ายีนนั้นหายไป

นอกจากนี้ยังมีแนวคิดเรื่องอภิสิทธิ์ชนในขั้นตอนวิธีพันธุกรรม หมายความว่าทางออกที่ดีที่สุดจะถูกเก็บไว้ตลอดชั่วอายุคน นี่อาจทำให้การลู่เข้าของอัลกอริทึมเร็วขึ้น แต่มันง่ายกว่าสำหรับอัลกอริทึมที่จะติดอยู่ใน optima ท้องถิ่น


2

อัลกอริทึม GA ไม่ได้กำหนดไว้ แต่ไม่รับประกันว่าจะได้รับการปรับปรุงในแต่ละรุ่นและพวกเขาก็ไม่รับประกันว่าจะได้รับประโยชน์สูงสุด อย่างไรก็ตามขั้นตอนการเลือกของ GA ที่ใช้ฟังก์ชั่นการออกกำลังกายทำให้มีโอกาสมากขึ้นที่ "โซลูชั่นที่ดี" จะอยู่รอด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.