ฉันควรใช้อัลกอริธึมทางพันธุกรรมเมื่อเทียบกับเครือข่ายประสาท [ปิด]


139

มีกฎง่ายๆ (หรือชุดตัวอย่าง) เพื่อตรวจสอบว่าเมื่อใดจะใช้อัลกอริทึมทางพันธุกรรมเมื่อเทียบกับเครือข่ายประสาท (และในทางกลับกัน) เพื่อแก้ปัญหา?

ฉันรู้ว่ามีหลายกรณีที่คุณสามารถผสมทั้งสองวิธีได้ แต่ฉันกำลังมองหาการเปรียบเทียบระดับสูงระหว่างสองวิธี


3
มันคุ้มค่าที่จะชี้ให้เห็นว่ามีโครงข่ายประสาทเทียมสองประเภทคือแบบมีผู้ดูแลและไม่ดูแล ภายใต้การดูแลได้รับข้อมูลการฝึกอบรมจากมนุษย์ข้อเสนอแนะที่ไม่ได้รับการดูแลอย่างใกล้ชิดในตัวเองและเป็นเหมือน GA ในแง่มุมนั้น
Chris S

3
ฉันไม่คิดว่ามันเป็น "list-y" เลย คำตอบเปรียบเทียบสองวิธีและชี้แจงว่าเมื่อใดควรใช้วิธีหนึ่งเปรียบเทียบกับวิธีอื่น
Neil N

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

คำตอบ:


130

จากวิกิพีเดีย:

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

และ:

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

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

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

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


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

44

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

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

พวกเขาเป็นสองหน่วยงานที่แตกต่างกันโดยพื้นฐาน แต่บางครั้งปัญหาที่พวกเขาสามารถแก้ไขการทับซ้อนกัน


22
โครงข่ายประสาทเทียมเป็นเพียงเทคนิคการแก้ไขที่จริงแล้ว :)
Don Reba

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

2
องค์ประกอบทั่วไปเพียงอย่างเดียวคือพวกเขาจัดเรียงตัวเองแบบไดนามิกเมื่อเข้าใกล้เป้าหมาย
lfalin

1
ฉันไม่แน่ใจว่ามีการทับซ้อนกันจริง ๆ โครงข่ายประสาทเทียมเป็นแบบจำลองที่มีฟังก์ชั่นต้นทุน GA เป็นเทคนิคการปรับให้เหมาะสมที่สามารถใช้เพื่อลดฟังก์ชั่นลดราคาดังที่ @ zenna กล่าว
Matthieu Brucher

37

GA สร้างรูปแบบใหม่ในโครงสร้างที่คุณกำหนด

NNs จัดประเภท (หรือรับรู้) รูปแบบที่มีอยู่ตามข้อมูลการฝึกอบรมที่คุณให้

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

NNs สามารถเรียนรู้ที่จะจดจำรูปแบบ (ผ่านการฝึกอบรม) แต่มันเป็นเรื่องยากที่จะรู้ว่าสิ่งที่พวกเขาได้เรียนรู้คืออะไรคือการดึงความรู้จากพวกเขาเมื่อได้รับการฝึกฝนแล้วและนำความรู้ไปใช้


26

คุณกำลังเปรียบเทียบสองสิ่งที่แตกต่างกันโดยสิ้นเชิงที่นี่

Neural Networks ใช้สำหรับการถดถอย / การจัดหมวดหมู่ - เนื่องจากชุดของตัวอย่าง (x, y) คุณต้องการถอยหลัง y ที่ไม่รู้จักสำหรับบาง x ที่กำหนด

อัลกอริทึมทางพันธุกรรมเป็นเทคนิคการเพิ่มประสิทธิภาพ รับฟังก์ชั่น f (x), คุณต้องการหาค่า x ซึ่งย่อเล็กสุด / maximizes f (x)


10
จริง พวกเขาเป็นเทคนิค 'มุมฉาก' จริงๆ คุณสามารถใช้ GA เพื่อค้นหาน้ำหนักและ / หรือโครงข่ายประสาทเทียม
redcalx

23

มีความคล้ายคลึงกันมากมายระหว่างพวกเขาดังนั้นฉันจะพยายามอธิบายความแตกต่างของพวกเขาเท่านั้น

โครงข่ายประสาท

สามารถวิเคราะห์รูปแบบออนไลน์ (ที่เปลี่ยนแปลงตลอดเวลา) โดยทั่วไปนี่เป็นตัวอย่างที่เปลี่ยนแปลงตามเวลาที่ต้องจับคู่และคาดการณ์

ตัวอย่าง :

  • การประมาณกราฟ
  • การจดจำใบหน้า

อัลกอริทึมทางพันธุกรรม

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

ตัวอย่าง :

  • การกำหนดเวลาเครื่องบิน / การจัดส่ง
  • ตารางเวลา
  • การค้นหาคุณสมบัติที่ดีที่สุดสำหรับเอเจนต์ง่าย ๆ ในสภาพแวดล้อมการประดิษฐ์
  • แสดงภาพโดยประมาณของรูปหลายเหลี่ยมแบบสุ่ม

14

คุณสามารถใช้อัลกอริทึมทางพันธุกรรมเป็นทางเลือกแทนอัลกอริทึม backpropagationเพื่อปรับปรุงน้ำหนักในเครือข่ายประสาท สำหรับตัวอย่างนี้หมายถึง: http://www.ai-junkie.com/ann/evolved/nnt1.html


1
และยังต้องการ ( cs.ucf.edu/~kstanley/neat.html ) ด้วยการติดตั้ง C # ที่ ( sharpneat.sourceforge.net )
redcalx

สำหรับ javascript, ตรวจสอบgithub.com/wagenaartje/neataptic มันใช้งานได้ดีเช่นกัน
โทมัส W

8

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

ในทางกลับกันเครือข่ายประสาทเทียม (โดยปกติ) จะทำงานกับข้อมูลอย่างต่อเนื่อง (ลอยเป็นต้น) แอปพลิเคชั่นทั่วไปสำหรับ NNs คือการประมาณฟังก์ชั่นโดยที่คุณมีชุดอินพุต X และชุด Y ของเอาต์พุตที่เกี่ยวข้อง แต่ฟังก์ชันวิเคราะห์ f: X → Y

แน่นอนว่ามีหลายพันสายพันธุ์ของทั้งคู่ดังนั้นเส้นแบ่งระหว่างพวกเขาจึงค่อนข้างเบลอ


5

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

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

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