ทำไมอัลกอริธึมการปรับให้เหมาะสมได้ถูกกำหนดไว้ในแง่ของปัญหาการเพิ่มประสิทธิภาพอื่น ๆ ?


23

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

ตัวอย่างเช่นhttps://arxiv.org/pdf/1511.05133v1.pdf

ป้อนคำอธิบายรูปภาพที่นี่

ทุกอย่างดูดีและดี แต่แล้วก็มีนี้ในการอัปเดตz k + 1 .... ดังนั้นอัลกอริทึมที่แก้ปัญหาสำหรับargminคืออะไร? เราไม่รู้และมันก็ไม่พูด อย่างน่าอัศจรรย์เราต้องแก้ปัญหาการหาค่าเหมาะที่สุดอีกอันซึ่งก็คือการหาเวกเตอร์ที่ย่อขนาดเล็กสุดเพื่อให้ผลิตภัณฑ์ชั้นในมีค่าอย่างน้อยที่สุด - จะทำอย่างไรได้บ้าง?argminxzk+1argmin

ใช้ตัวอย่างอื่น: https://arxiv.org/pdf/1609.05713v1.pdf

ป้อนคำอธิบายรูปภาพที่นี่

ทุกอย่างดูดีและดีจนกว่าคุณจะพบตัวดำเนินการใกล้เคียงที่อยู่ตรงกลางของอัลกอริทึมและนิยามของตัวดำเนินการนั้นคืออะไร

Boom:ป้อนคำอธิบายรูปภาพที่นี่

argminxf

ใครบางคนได้โปรดให้ความกระจ่างแก่ฉันเพื่อ:

  1. ทำไมอัลกอริธึมการปรับให้เหมาะสมจำนวนมากถึงกำหนดไว้ในแง่ของปัญหาการเพิ่มประสิทธิภาพอื่น ๆ

(นี่จะไม่ใช่ปัญหาของไก่และไข่ในการแก้ปัญหาที่ 1 คุณต้องแก้ปัญหาที่ 2 โดยใช้วิธีการแก้ปัญหาที่ 3 ซึ่งขึ้นอยู่กับการแก้ปัญหา .... )

  1. xk+1=argminxreally complicated loss function

  2. argminx

(Bounty: ทุกคนสามารถอ้างอิงกระดาษที่ผู้เขียนทำให้ชัดเจนอัลกอริทึมสำหรับปัญหาย่อยที่ฝังอยู่ในอัลกอริทึมการเพิ่มประสิทธิภาพระดับสูง?)


สิ่งนี้อาจเกี่ยวข้อง
GeoMatt22

1
ฉันรู้สึกว่าคำถามของคุณจะดีขึ้นมากถ้าคุณเน้นปัญหาย่อยที่อาจเป็นปัญหาความแข็งกระด้างมากกว่าที่พวกเขามีอยู่
Mehrdad

โอ๊ะโอ ... "NP-hardness" ควรพูดว่า "NP-hard" ในความคิดเห็นล่าสุดของฉัน
Mehrdad

ดูแก้ไข 2 สำหรับคำตอบของฉันซึ่งให้การอ้างอิง \ ตามที่ร้องขอในคำขอเงินรางวัล
Mark L. Stone

คำตอบ:


27

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

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

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

หากปัญหาการปรับให้เหมาะสมเป็นแบบสุ่มหรือไดนามิกอาจมีระดับของการปรับให้เหมาะสมเพิ่มเติม

นี่คือตัวอย่าง การเขียนโปรแกรมกำลังสองตามลำดับ (SQP) ปัญหาการหาค่าเหมาะที่สุดเบื้องต้นได้รับการแก้ไขโดยการทำซ้ำเงื่อนไขเงื่อนไขการหาค่าเหมาะที่สุดของ Karush-Kuhn-Tucker โดยเริ่มจากจุดเริ่มต้นโดยมีวัตถุประสงค์ซึ่งเป็นการประมาณกำลังสองของปัญหาของลากรองจ์และเชิงเส้นของข้อ จำกัด โปรแกรม Quadratic Program (QP) ที่ได้รับการแก้ไขแล้ว QP ซึ่งได้รับการแก้ไขอาจมีข้อ จำกัด ของภูมิภาคที่เชื่อถือได้หรือมีการค้นหาบรรทัดจากการทำซ้ำในปัจจุบันไปจนถึงการแก้ปัญหาของ QP ซึ่งเป็นปัญหาการเพิ่มประสิทธิภาพของตัวเองเพื่อค้นหาการทำซ้ำในครั้งต่อไป หากมีการใช้วิธี Quasi-Newton ปัญหาการปรับให้เหมาะสมจะต้องแก้ไขเพื่อพิจารณาการปรับปรุง Quasi-Newton เป็น Hessian ของ Lagrangian - โดยปกติจะเป็นการเพิ่มประสิทธิภาพของรูปแบบปิดโดยใช้สูตรปิดแบบฟอร์มเช่น BFGS หรือ SR1 แต่มันอาจเป็นการเพิ่มประสิทธิภาพเชิงตัวเลข จากนั้น QP ใหม่จะได้รับการแก้ไข ฯลฯ หาก QP ไม่สามารถทำได้รวมถึงการเริ่มต้นปัญหาการเพิ่มประสิทธิภาพจะได้รับการแก้ไขเพื่อหาจุดที่เป็นไปได้ ในขณะเดียวกันอาจมีปัญหาการปรับให้เหมาะสมภายในหนึ่งหรือสองระดับที่เรียกว่าภายในตัวแก้ไข QP ในตอนท้ายของการวนซ้ำแต่ละครั้งปัญหาเชิงเส้นกำลังสองน้อยที่ไม่เป็นลบเชิงเส้นอาจถูกแก้ไขเพื่อกำหนดคะแนนการเพิ่มประสิทธิภาพ เป็นต้น

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

สิ่งนี้ควรเริ่มให้แนวคิดแก่คุณ

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

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

แก้ไข 2 : เพื่อตอบสนองต่อคำขอเงินรางวัลที่เพิ่งเพิ่มโดย OP กระดาษอธิบายเครื่องมือเพิ่มประสิทธิภาพแบบไม่เชิงเส้น SQP SNOPT https://web.stanford.edu/group/SOL/reports/snopt.pdfระบุถึงตัวแก้ปัญหา QP SQOPT ซึ่งเป็นเอกสารแยกต่างหากเช่นเดียวกับที่ใช้ในการแก้ปัญหาย่อย QP ใน SNOPT


2

ฉันชอบคำตอบของ Mark แต่ฉันจะพูดถึง "Simulated Annealing" ซึ่งโดยทั่วไปแล้วสามารถทำงานบนอัลกอริธึมการเพิ่มประสิทธิภาพใด ๆ ในระดับสูงการทำงานเช่นนี้:

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

ปรีชาคือมันจะค้นหาพื้นที่อย่างกว้างขวางในตอนเริ่มต้นมองหา "สถานที่ที่ดีกว่า" เพื่อค้นหาสิ่งที่ดีที่สุด

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


หมวดหมู่ของ "เมตาอัลกอริทึม" นี้บางครั้งเรียกว่าmetaheuristic
GeoMatt22

@ GeoMatt22 นี่คือคำจำกัดความของการพิสูจน์แบบฮิวริสติกหรือการโต้เถียงแบบฮิวริสติกที่ฉันกำหนดไว้ในระดับปริญญาตรี: "การโต้แย้งใด ๆ หรือการขาดมันซึ่งไม่ได้พิสูจน์อย่างจริงจังว่าสิ่งใดที่จะพิสูจน์" อะนาล็อกอัลกอริธึมฮิวริสติกคืออัลกอริธึมใด ๆ หรือการขาดมันซึ่งไม่รับประกันว่าจะไม่สามารถแก้ปัญหาได้อย่างถูกต้อง
Mark L. Stone

เหมือนฮิวริสติกที่" หยุดนาฬิกา " ไหม Neumaier (2004)อนุกรมวิธานอธิบายที่นี่ดูเหมือนว่าเหมาะสม
GeoMatt22

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

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

2

ผมคิดว่าการอ้างอิงที่ตอบสนองความต้องการของคุณของฉันเป็นที่นี่ ไปที่ส่วนที่ 4 - การเพิ่มประสิทธิภาพในการคำนวณแบบเบย์สมัยใหม่

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


2

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

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

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

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

compartimentalization นี้ไม่เพียง แต่ทำให้อัลกอริทึมทั่วไป แต่ยังง่ายต่อการวิเคราะห์: ตราบใดที่มีอัลกอริทึมสำหรับปัญหาย่อยที่มีคุณสมบัตินี้แล้วอัลกอริทึมที่เสนอจะมีอัตราการบรรจบกันหรืออะไรก็ตาม

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