การพัฒนาโครงข่ายประสาทเทียมเพื่อแก้ปัญหา NP


10

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

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

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

ดังนั้นโดยทั่วไปคำถามของฉันคือ: เราไม่สามารถใช้อัลกอริธึมเชิงพันธุกรรม + เครือข่ายประสาทเพื่อแก้ไขปัญหา NP ทุกข้อได้หรือไม่ เราเพิ่งสร้างบริบทวิวัฒนาการที่เหมาะสมและปล่อยให้ "ธรรมชาติ" หาทางออก

การลงทะเบียนเรียน: จะลึกเข้าไปในเครือข่ายประสาท

แก้ไข: ฉันรู้ว่าเราสามารถใช้ Brute-Force หรือค้นหาโซลูชันที่ไม่มีประสิทธิภาพในหลายกรณี นั่นคือเหตุผลที่ฉันพยายามเน้นการพัฒนาโครงข่ายประสาทเทียม ดังที่ฉันพูดในความคิดเห็น: ให้เวลาเพียงพอและอัตราการกลายพันธุ์ที่เหมาะสมเราสามารถหาทางออกที่ดีที่สุด (หรืออย่างน้อยนั่นคือสิ่งที่ฉันคิด)

แนวคิด


1
เราไม่จำเป็นต้อง เราสามารถใช้กำลังดุร้าย เป้าหมายของคุณคืออะไร
Pål GD

2
ฉันไม่ใช่ผู้เชี่ยวชาญเกี่ยวกับเครือข่ายประสาทดังนั้นฉันไม่รู้ว่าพวกเขาจะได้รับการฝึกฝนเพื่อแก้ปัญหา NP ได้อย่างถูกต้องหรือไม่ แต่ฉันไม่คิดว่าคุณกำลังถามคำถามที่ถูกต้อง การหาอัลกอริธึมที่แก้ปัญหาที่เกิดขึ้นใน NP มักจะไม่ยากเพียงตรวจสอบวิธีแก้ปัญหาที่เป็นไปได้ทั้งหมด อย่างไรก็ตามการค้นหาอัลกอริทึมที่แก้ปัญหา NP-hard ในเวลาพหุนามเป็นเรื่องที่แตกต่างและการดำรงอยู่ของมันไม่น่าเป็นไปได้สูง เนื่องจากเครือข่ายประสาทสามารถจำลองได้ด้วยเครื่องจักรที่น่าสนใจพวกเขายังคงต้องการเวลาพหุนามสูงยกเว้น P = NP และจะไม่ช่วยอะไรมาก
Dennis Kraft

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

ประเด็นของฉันคือ: การใช้อัตราการกลายพันธุ์ที่เหมาะสมและมีเวลาเพียงพอที่เราจะสามารถหาทางออกที่ดีที่สุด (อย่างน้อยในทางทฤษฎี) (หรืออย่างน้อยสูงสุดในท้องถิ่น) รูปภาพ: แนวคิด
NMO

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

คำตอบ:


21

ไม่ทิศทางนี้ไม่น่าจะมีประโยชน์ด้วยเหตุผลสองประการ:

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

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

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


1
คำตอบที่ดีจริงๆ Genetic Algorithms + Neural Networks ดูเหมือนมีประสิทธิภาพมาก แต่อาจจะไม่เพียงพอที่จะแก้ปัญหาทุกปัญหา ฉันนึกภาพออกจากเครือข่ายประสาทนี้ + อัลกอริทึมทางพันธุกรรมในป่ามองหาวิธีแก้ปัญหานี้ เหมือนลูกเสือน้อยฮ่าฮ่า
NMO

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

9

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


4

เครือข่ายนิวรัลไม่ได้แก้ปัญหา NP-complete สิ่งที่พวกเขาทำคือแก้ปัญหาที่ใกล้เคียงกับปัญหาที่เกิดขึ้นกับ NP

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

หากคุณลบความต้องการที่จะถูก 100% ทุกครั้งวิธีการแก้ไขปัญหาอื่น ๆ ก็ทำได้ดีมาก ตัวอย่างเช่นอัลกอริธึมการวางแผนเส้นทางจำนวนมาก (a la Google Maps) จะต้องมีปัญหา NP-complete แต่มันค่อนข้างเล็กน้อยที่จะหาอัลกอริทึมที่ค้นหาเส้นทางภายใน 1% ของเวลาที่เหมาะสมที่สุด 99.9% มันพยายามที่จะปักหมุดผลลัพธ์ในกรณีที่ 0.1% สุดท้ายของกรณีที่ผลักดันความพยายามที่ทำให้ NP-Complete มีราคาแพงมาก

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


1

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

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

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


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

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

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

คำตอบนี้มีความสับสนเกี่ยวกับคำจำกัดความของความสมบูรณ์แบบของ NP ตรงกันข้ามกับสิ่งที่คุณเรียกร้องถ้าเราแก้ปัญหา NP-complete เราสามารถตรวจสอบได้ว่าเรามีทางออกที่ถูกต้องหรือไม่ มีความแตกต่างระหว่างปัญหาการค้นหา NP-complete และปัญหาการปรับให้เหมาะสม NP-hard สำหรับอดีตเราสามารถตรวจสอบได้อย่างมีประสิทธิภาพว่าการแก้ปัญหานั้นถูกต้องหรือไม่ แต่สำหรับหลังเราอาจไม่สามารถทำได้
DW

ฉันมีคุณสมบัติที่เราไม่สามารถตรวจสอบได้ว่าเป็นวิธีการแก้ปัญหาที่ดีที่สุดโดยไม่มีการบังคับให้สัตว์เลี้ยงแก้ปัญหาอย่างเหมาะสมที่สุดก่อนสิ่งนี้ไม่ถูกต้องหรือไม่? ฉันให้เหตุผลสำหรับเหตุผลของฉันที่ neuroevolution มีแนวโน้มน้อยที่จะติดอยู่ในท้องถิ่นที่ดีที่สุดด้วยการอ้างอิงลิงค์ไปยังอัลกอริทึมเรียบร้อยและการออกกำลังกายที่ใช้ร่วมกันฉันคิดว่าการไล่ระดับสี กรอบสามารถช่วยบรรเทาสิ่งนี้ฉันจะไม่เครดิตว่าเป็นความเกลียดชัง SGG มีคุณสมบัติในการติด
nickw
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.