8

วิวัฒนาการโครงสร้างอัลกอริทึม: AutoPSO และ EvoGO

AI999第5课:方法演化:从优化解到优化算法本身
00:00

ในวิธีอย่าง MetaDE นั้นวิวัฒนาการเกิดขึ้นที่ชั้นพารามิเตอร์: อัลกอริทึมชั้นในแก้โจทย์จริง ส่วนอัลกอริทึมชั้นนอกปรับการตั้งค่าและกลยุทธ์ของอัลกอริทึมชั้นใน ขณะที่ AutoPSO และ EvoGO ยกสิ่งที่ถูกวิวัฒน์ขึ้นไปอีกหนึ่งชั้น โดยวิวัฒน์ตัวโครงสร้างอัลกอริทึมโดยตรง: คอมโพเนนต์ประกอบกันอย่างไร ผู้สมัครถูกสร้างขึ้นอย่างไร และกฎการอัปเดตถูกจัดระเบียบอย่างไร

วิวัฒนาการโครงสร้างอัลกอริทึม: AutoPSO และ EvoGOชั้นนอกวิวัฒน์โครงสร้างอัลกอริทึม (เปลี่ยนโครงสร้าง ไม่ใช่แค่ปรับพารามิเตอร์) · ชั้นในประเมินบนโจทย์จริงและป้อนผลกลับชั้นนอกคลังคอมโพเนนต์ (ตัวดำเนินการที่ประกอบได้)พจน์ความเร็วอนุภาค / การอัปเดตตำแหน่งโครงสร้างโทโพโลยีเพื่อนบ้านพจน์การรบกวนกลยุทธ์รีสตาร์ตสูตรคงที่ถูกแยกออกเป็นคอมโพเนนต์ที่เลือกได้การประกอบโครงสร้างการเลือกโครงสร้างที่ขับเคลื่อนด้วยผลตอบกลับในอดีตคอมโพเนนต์ประกอบกันอย่างไรผู้สมัครถูกสร้างขึ้นอย่างไรกฎการอัปเดตถูกจัดระเบียบอย่างไรโครงร่างร่วมของ AutoPSO และ EvoGOชั้นโครงสร้าง: คอมโพเนนต์และวิธีเชื่อมต่อเปลี่ยนแปลงได้ตัวสร้างผู้สมัครถูกสร้างอินสแตนซ์จากโครงสร้างชั้นนอกผลการประเมินของชั้นในค่าความเหมาะสม / เส้นทางการลู่เข้าบันทึกคู่โครงสร้าง—ประสิทธิภาพให้หลักฐานเชิงสถิติแก่การเลือกของชั้นนอกความหนาแน่นของตัวอย่างเป็นเงื่อนไขของการเลือกที่เชื่อถือได้ประกอบสร้างอินสแตนซ์โครงสร้างทำงานในชั้นในผลตอบกลับในอดีตพวงมาลัยของการอัปเดตโครงสร้างชั้นใน: ประเมินงาน + รันแบบขนานเป็นชุดด้วย GPUงานชั้นในจำนวนมากถูกประเมินพร้อมกัน ทำให้ตัวอย่างเปรียบเทียบโครงสร้าง—ประสิทธิภาพหนาแน่นพอประเมินแบบขนานเป็นชุดการปรับตัวประกอบการเรียนรู้เปลี่ยนเพียงความเข้มของพฤติกรรม การเปลี่ยนการประกอบคอมโพเนนต์ต่างหากที่เปลี่ยนรูปแบบของพฤติกรรม

เกณฑ์ชี้วัด: ชั้นนอกกำลังค้นหาอะไรกันแน่

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

  • ชั้นพารามิเตอร์: โครงสร้างคงที่ ปรับแค่ค่าตัวเลข ขอบเขตที่เข้าถึงได้คือ "ความเข้ม" ของพฤติกรรม
  • ชั้นโครงสร้าง: คอมโพเนนต์และวิธีเชื่อมต่อเปลี่ยนแปลงได้ ขอบเขตที่เข้าถึงได้คือ "รูปแบบ" ของพฤติกรรม

AutoPSO: แยก PSO คลาสสิกออกเป็นคลังคอมโพเนนต์

สูตรอัปเดตความเร็ว—ตำแหน่งของ PSO คลาสสิกนั้นถูกกำหนดตายตัว AutoPSO แยกกระบวนการนี้ออกเป็นคอมโพเนนต์ที่ประกอบได้ ได้แก่ พจน์ความเร็ว โทโพโลยีเพื่อนบ้าน พจน์การรบกวน กลยุทธ์รีสตาร์ต เป็นต้น จากนั้นชั้นนอกวิวัฒน์เลือกและประกอบเป็นตัวสร้างผู้สมัครตัวใหม่ มันไม่อาศัยโครงสร้างการอัปเดตคลาสสิกแบบคงที่อีกต่อไป แต่ทำให้ "โครงสร้างการอัปเดต" เองกลายเป็นตัวแปรที่ค้นหาได้ การปรับตัวประกอบการเรียนรู้เปลี่ยนได้เพียงความเข้มของพฤติกรรม การเปลี่ยนการประกอบคอมโพเนนต์ต่างหากที่เปลี่ยนรูปแบบของพฤติกรรม

EvoGO: ให้ผลตอบกลับในอดีตกำหนดว่าโครงสร้างควรเปลี่ยนไปทางใด

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

โครงร่างสองชั้นที่ใช้ร่วมกันและนัยเชิงวิศวกรรม

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

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