อัลกอรึทึมวิวัฒนาการ: มันคืออะไรและทำไมถึงต้องการ

สารบัญ:

อัลกอรึทึมวิวัฒนาการ: มันคืออะไรและทำไมถึงต้องการ
อัลกอรึทึมวิวัฒนาการ: มันคืออะไรและทำไมถึงต้องการ
Anonim

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

อัลกอรึทึมเชิงวิวัฒนาการมักจะประมาณการแก้ปัญหาทุกประเภทได้ดี เพราะในอุดมคติแล้ว พวกเขาไม่ได้ตั้งสมมติฐานใดๆ เกี่ยวกับแนวฟิตเนสที่เป็นพื้นฐาน วิธีการที่ใช้สำหรับการสร้างแบบจำลองวิวัฒนาการและอัลกอริธึมทางพันธุกรรมมักจะจำกัดเฉพาะการศึกษากระบวนการทางจุลภาคและแบบจำลองการวางแผนตามระยะเซลล์ ในแอปพลิเคชัน EA ส่วนใหญ่ ความซับซ้อนในการคำนวณเป็นปัจจัยห้าม

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

การนำไปใช้

การสร้างแบบจำลองวิวัฒนาการและอัลกอริทึม
การสร้างแบบจำลองวิวัฒนาการและอัลกอริทึม

ขั้นตอนที่หนึ่งคือการสร้างประชากรเริ่มต้นของบุคคลโดยการสุ่ม

ขั้นตอนที่สองคือการประเมินความเหมาะสมของแต่ละคนในกลุ่มนี้ (จำกัดเวลา ความพร้อมเพียงพอ ฯลฯ)

ขั้นตอนที่สาม - ทำซ้ำขั้นตอนการฟื้นฟูต่อไปนี้เพื่อให้เสร็จสิ้น:

  1. เลือกคนที่เหมาะสมที่สุดในการผสมพันธุ์ (พ่อแม่).
  2. นำบุคคลใหม่ที่ผ่านอัลกอริธึมวิวัฒนาการโดยใช้ครอสโอเวอร์และการกลายพันธุ์เพื่อให้ได้ลูกหลาน
  3. ประเมินความฟิตของคนใหม่
  4. แทนที่ประชากรที่พอดีน้อยที่สุดด้วย

ประเภท

Genetic Algorithm คือลำดับวิวัฒนาการ ซึ่งเป็นประเภท Expert Advisor ที่ได้รับความนิยมมากที่สุด การแก้ปัญหาจะค้นหาในรูปแบบของสตริงของตัวเลข (ตามธรรมเนียมไบนารีแม้ว่าการแสดงที่ดีที่สุดมักจะเป็นสิ่งที่สะท้อนถึงปัญหาที่กำลังแก้ไขมากขึ้น) โดยใช้ตัวดำเนินการเช่นการรวมตัวใหม่และการกลายพันธุ์ (บางครั้งอาจใช้ทั้งสองอย่างในบางกรณีทั้งสองอย่าง). ที่ปรึกษาผู้เชี่ยวชาญประเภทนี้มักใช้ในปัญหาการปรับให้เหมาะสม อีกชื่อหนึ่งสำหรับสิ่งนี้คือ fetura (จากภาษาละตินสำหรับ "birth"):

  1. โปรแกรมพันธุกรรม. โดยนำเสนอวิธีแก้ปัญหาเป็นรหัสคอมพิวเตอร์ และความเหมาะสมจะพิจารณาจากความสามารถในการทำงานด้านคอมพิวเตอร์
  2. การเขียนโปรแกรมเชิงวิวัฒนาการ. คล้ายกับอัลกอริธึมทางพันธุกรรมวิวัฒนาการ แต่โครงสร้างได้รับการแก้ไขและพารามิเตอร์ตัวเลขสามารถเปลี่ยนแปลงได้
  3. การเขียนโปรแกรมการแสดงออกของยีน พัฒนาแอปพลิเคชันคอมพิวเตอร์ แต่สำรวจระบบจีโนไทป์-ฟีโนไทป์ โดยโปรเจ็กต์ที่มีขนาดต่างกันจะถูกเข้ารหัสบนโครโมโซมเชิงเส้นที่มีความยาวคงที่
  4. กลยุทธ์. ทำงานกับเวกเตอร์ของจำนวนจริงเพื่อแทนคำตอบ มักใช้อัลกอริธึมอัตราการกลายพันธุ์วิวัฒนาการที่ปรับตัวเองได้
  5. การพัฒนาความแตกต่าง. อิงตามความแตกต่างของเวกเตอร์และดังนั้นจึงเหมาะสำหรับปัญหาการเพิ่มประสิทธิภาพตัวเลขเป็นหลัก
  6. วิวัฒนาการของระบบประสาท. คล้ายกับการเขียนโปรแกรมเชิงวิวัฒนาการและอัลกอริธึมทางพันธุกรรม แต่ส่วนหลังเป็นโครงข่ายประสาทเทียม ซึ่งอธิบายโครงสร้างและน้ำหนักของการเชื่อมต่อ การเข้ารหัสจีโนมสามารถโดยตรงหรือโดยอ้อม

เปรียบเทียบกับกระบวนการทางชีววิทยา

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

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

เทคนิคที่เกี่ยวข้อง

อัลกอริธึมวิวัฒนาการ
อัลกอริธึมวิวัฒนาการ

อัลกอริทึมรวมถึง:

  1. การเพิ่มประสิทธิภาพอาณานิคมมด ตามแนวคิดที่ว่าแมลงค้นหาอาหารโดยเชื่อมต่อกับฟีโรโมนเพื่อสร้างทางเดิน เหมาะอย่างยิ่งสำหรับการเพิ่มประสิทธิภาพการรวมกันและปัญหากราฟ
  2. อัลกอริธึมตัวเลื่อนรูท ผู้สร้างได้รับแรงบันดาลใจจากการทำงานของรากพืชในธรรมชาติ
  3. อัลกอริทึมสำหรับรังผึ้งเทียม ตามพฤติกรรมของผึ้ง มีการเสนอเบื้องต้นสำหรับการเพิ่มประสิทธิภาพเชิงตัวเลขและขยายเพื่อแก้ปัญหาเชิงรวม ขอบเขต และหลายวัตถุประสงค์ อัลกอริทึมของผึ้งขึ้นอยู่กับพฤติกรรมการหาอาหารของแมลง มันถูกนำไปใช้ในหลาย ๆ แอปพลิเคชันเช่นการกำหนดเส้นทางและการตั้งเวลา
  4. การเพิ่มประสิทธิภาพฝูงอนุภาค - ตามแนวคิดพฤติกรรมฝูงสัตว์ และยังเหมาะสำหรับงานกระบวนการเชิงตัวเลขเป็นหลัก

วิธี metaheuristic ยอดนิยมอื่น ๆ

  1. ล่าสัตว์หา. วิธีการตามการจับกลุ่มของสัตว์บางชนิด เช่น หมาป่า เป็นต้น ซึ่งกระจายหน้าที่การล้อมเหยื่อ สมาชิกของอัลกอริธึมวิวัฒนาการแต่ละคนมีความเกี่ยวข้องกับผู้อื่นในทางใดทางหนึ่ง โดยเฉพาะอย่างยิ่งสำหรับผู้นำ นี่คือวิธีการปรับให้เหมาะสมอย่างต่อเนื่องซึ่งถูกปรับให้เป็นวิธีการประมวลผลแบบผสมผสาน
  2. ค้นหาตามขนาด อัลกอริธึมของกระบวนการปรับตัวนั้นไม่เหมือนกับวิธีการ metaheuristic ที่อิงกับธรรมชาติซึ่งแตกต่างจากวิธี metaheuristic ตามธรรมชาติ แต่จะใช้วิธีที่เน้นประสิทธิภาพอย่างง่ายโดยยึดตามการอัปเดตพารามิเตอร์อัตราส่วนมิติการค้นหาในการวนซ้ำแต่ละครั้ง อัลกอริธึมหิ่งห้อยได้รับแรงบันดาลใจจากวิธีที่หิ่งห้อยดึงดูดเข้าหากันด้วยแสงแวบวับ สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับการเพิ่มประสิทธิภาพหลายรูปแบบ
  3. ค้นหาความสามัคคี ตามความคิดพฤติกรรมของนักดนตรี ในกรณีนี้ อัลกอริธึมวิวัฒนาการเป็นหนทางไปสู่การเพิ่มประสิทธิภาพแบบผสมผสาน
  4. ดัดแปลงแบบเกาส์เซียน. ตามทฤษฎีสารสนเทศ ใช้เพื่อเพิ่มประสิทธิภาพและความพร้อมใช้งานโดยเฉลี่ยสูงสุด ตัวอย่างของอัลกอริธึมวิวัฒนาการในสถานการณ์นี้: เอนโทรปีในอุณหพลศาสตร์และทฤษฎีข้อมูล

มีม

การสร้างแบบจำลองวิวัฒนาการ
การสร้างแบบจำลองวิวัฒนาการ

วิธีไฮบริดตามแนวคิดของ Richard Dawkins ที่มีม โดยปกติแล้วจะอยู่ในรูปแบบของอัลกอริธึมตามประชากรรวมกับขั้นตอนการเรียนรู้ส่วนบุคคลที่สามารถทำการปรับแต่งในท้องถิ่นได้ เน้นการใช้ความรู้เฉพาะปัญหาและความพยายามที่จะจัดระเบียบการค้นหาแบบละเอียดและทั่วโลกในลักษณะการทำงานร่วมกัน

วิวัฒนาการอัลกอริธึมเป็นแนวทางฮิวริสติกสำหรับปัญหาที่ไม่สามารถแก้ไขได้ง่ายในเวลาพหุนาม เช่น ปัญหา NP-hard แบบคลาสสิกและสิ่งอื่นใดที่อาจใช้เวลานานเกินไปในการประมวลผลอย่างละเอียดถี่ถ้วน เมื่อใช้อย่างอิสระ มักใช้สำหรับปัญหาเชิงผสมผสาน อย่างไรก็ตาม อัลกอริธึมทางพันธุกรรมมักใช้ควบคู่กับวิธีอื่นๆ ซึ่งเป็นวิธีที่รวดเร็วในการค้นหาจุดเริ่มต้นที่เหมาะสมที่สุดหลายแห่ง

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

  • การเริ่มต้น;
  • choice;
  • ตัวดำเนินการทางพันธุกรรม
  • จบ

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

การเริ่มต้น

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

ตัวเลือก

รหัสพันธุกรรม
รหัสพันธุกรรม

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

ฟังก์ชั่นหลายวัตถุประสงค์

EA สามารถขยายเพื่อใช้ระบบเหล่านี้ได้ สิ่งนี้ทำให้กระบวนการค่อนข้างซับซ้อน เนื่องจากแทนที่จะระบุจุดที่เหมาะสมที่สุดจุดหนึ่ง จะได้รับชุดเมื่อใช้จุดเหล่านี้ ชุดของการแก้ปัญหานี้เรียกว่า Pareto frontier และมีองค์ประกอบที่เหมาะสมเท่าเทียมกันในแง่ที่ว่าไม่มีวิธีแก้ปัญหาอื่นใดครอบงำ

ตัวดำเนินการทางพันธุกรรม

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

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

สิ้นสุด

การสร้างแบบจำลองและอัลกอริทึม
การสร้างแบบจำลองและอัลกอริทึม

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

ตัวอย่างอัลกอริธึมวิวัฒนาการ

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

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

EA ใช้งานที่ไหน

กว้างกว่านั้น อัลกอริธึมวิวัฒนาการถูกใช้ในแอปพลิเคชันที่หลากหลาย เช่น การประมวลผลภาพ การกำหนดเส้นทางของยานพาหนะ การเพิ่มประสิทธิภาพการสื่อสารผ่านมือถือ การพัฒนาซอฟต์แวร์ และแม้แต่การฝึกอบรมโครงข่ายประสาทเทียม เครื่องมือเหล่านี้เป็นหัวใจสำคัญของแอพและเว็บไซต์จำนวนมากที่ผู้คนใช้เป็นประจำทุกวัน รวมถึง Google Maps และแม้แต่เกมอย่าง The Sims นอกจากนี้ วงการแพทย์ใช้ EA เพื่อช่วยในการตัดสินใจทางคลินิกเกี่ยวกับการรักษามะเร็ง อันที่จริง อัลกอริธึมวิวัฒนาการนั้นแข็งแกร่งมากจนสามารถใช้แก้ปัญหาการปรับให้เหมาะสมได้แทบทุกอย่าง

กฎของมัวร์

ความชุกของ EO ที่เพิ่มขึ้นนั้นเกิดจากสองปัจจัยหลัก: พลังการประมวลผลที่มีอยู่และการสะสมของชุดข้อมูลขนาดใหญ่ ข้อแรกสามารถอธิบายได้ด้วยกฎของมัวร์ ซึ่งระบุโดยพื้นฐานว่าปริมาณพลังประมวลผลในคอมพิวเตอร์จะเพิ่มขึ้นเป็นสองเท่าทุกๆ สองปีโดยประมาณ คำทำนายนี้มีมานานหลายทศวรรษ ปัจจัยที่สองเกี่ยวข้องกับการพึ่งพาเทคโนโลยีที่เพิ่มขึ้น ซึ่งช่วยให้สถาบันสามารถรวบรวมข้อมูลจำนวนมากอย่างไม่น่าเชื่อ ซึ่งช่วยให้พวกเขาสามารถวิเคราะห์แนวโน้มและเพิ่มประสิทธิภาพผลิตภัณฑ์ได้

อัลกอรึทึมวิวัฒนาการช่วยนักการตลาดได้อย่างไร

การสร้างแบบจำลองทางพันธุกรรม
การสร้างแบบจำลองทางพันธุกรรม

สภาวะตลาดเปลี่ยนแปลงอย่างรวดเร็วและมีการแข่งขันสูง สิ่งนี้ทำให้ผู้จัดการฝ่ายการตลาดต้องแข่งขันกันเพื่อการตัดสินใจที่ดีขึ้น เพิ่มขึ้นในที่มีอยู่พลังประมวลผลทำให้พนักงานใช้ EA ในการแก้ปัญหา

การเพิ่มประสิทธิภาพการแปลง

การสร้างแบบจำลองและอัลกอริทึมทางพันธุกรรม
การสร้างแบบจำลองและอัลกอริทึมทางพันธุกรรม

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

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

แนะนำ: