กลับไปหน้าบทความ

อ่าน 7 นาที

BFGS หน่วยความจำจำกัด

BFGS หน่วยความจำจำกัด ( L-BFGS หรือ LM-BFGS ) เป็น อัลก อริธึมการ หาค่าเหมาะสมที่สุด ในกลุ่ม วิธีควาซี-นิวตัน ที่ประมาณ ค่าอัลกอริธึม Broyden–Fletcher–Goldfarb–Shanno (BFGS)...

BFGS หน่วยความจำจำกัด

BFGS หน่วยความจำจำกัด ( L-BFGSหรือLM-BFGS ) เป็น อัลก อริธึมการหาค่าเหมาะสมที่สุด ในกลุ่มวิธีควาซี-นิวตันที่ประมาณค่าอัลกอริธึม Broyden–Fletcher–Goldfarb–Shanno (BFGS) โดยใช้ หน่วยความจำคอมพิวเตอร์จำนวนจำกัด[ 1 ]เป็นอัลกอริธึมที่ได้รับความนิยมสำหรับการประมาณค่าพารามิเตอร์ใน การเรียน รู้ของเครื่อง[ 2 ] [ 3 ]ปัญหาเป้าหมายของอัลกอริธึมนี้คือการลดค่าให้น้อยที่สุดเหนือค่าที่ไม่จำกัดของเวกเตอร์จริงโดยที่เป็นฟังก์ชันสเกลาร์ที่หาอนุพันธ์ได้

เช่นเดียวกับ BFGS ดั้งเดิม L-BFGS ใช้การประมาณค่าเมทริกซ์เฮสเซียน ผกผัน เพื่อนำทางการค้นหาผ่านพื้นที่ตัวแปร แต่ในขณะที่ BFGS เก็บค่าประมาณหนาแน่นของเมทริกซ์เฮสเซียนผกผัน ( โดยที่ nคือจำนวนตัวแปรในปัญหา) L-BFGS จะเก็บเพียงเวกเตอร์ไม่กี่ตัวที่แสดงถึงค่าประมาณโดยปริยาย เนื่องจากความต้องการหน่วยความจำเชิงเส้นที่เกิดขึ้น วิธี L-BFGS จึงเหมาะอย่างยิ่งสำหรับปัญหาการหาค่าเหมาะสมที่สุดที่มีตัวแปรจำนวนมาก แทนที่จะใช้เมทริกซ์เฮสเซียนผกผันH k L-BFGS จะเก็บประวัติการอัปเดตตำแหน่งxและเกรเดียนต์ ∇ f ( x ) ในอดีต m ครั้ง โดยทั่วไปขนาดของประวัติmอาจมีขนาดเล็ก (มักจะ) การอัปเดตเหล่านี้ใช้เพื่อดำเนินการโดยปริยายที่ต้องใช้ผลคูณเวกเตอร์ H k

อัลกอริทึม

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

L-BFGS มีคุณสมบัติหลายอย่างร่วมกับอัลกอริธึมควาซี-นิวตันอื่นๆ แต่แตกต่างกันมากในวิธีการคูณเมทริกซ์-เวกเตอร์ โดยที่คือทิศทางโดยประมาณของนิวตัน คือเกรเดียนต์ปัจจุบัน และคือเมทริกซ์เฮสเซียนผกผัน มีแนวทางที่เผยแพร่แล้วหลายวิธีที่ใช้ประวัติการอัปเดตเพื่อสร้างเวกเตอร์ทิศทางนี้ ในที่นี้ เราจะนำเสนอแนวทางทั่วไปที่เรียกว่า "การเรียกซ้ำแบบสองลูป" [ 4 ] [ 5 ]

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

.

เรากำหนดและจะเป็นค่าประมาณ 'เริ่มต้น' ของเมทริกซ์เฮสเซียนผกผัน ซึ่งเป็นจุดเริ่มต้น ของการประมาณค่าของเราในรอบการทำซ้ำ k

อัลกอริทึมนี้ใช้การเรียกซ้ำแบบ BFGS สำหรับเมทริกซ์เฮสเซียนผกผัน ดังนี้

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

ดังนั้นเราสามารถคำนวณทิศทางการลงได้ดังนี้:

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

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

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

แอปพลิเคชัน

L-BFGS ได้รับการขนานนามว่าเป็น "อัลกอริทึมที่เลือกใช้" สำหรับการปรับโมเดลลอจลิเนียร์ (MaxEnt)และฟิลด์สุ่มแบบมีเงื่อนไขด้วยการปรับค่า -regularization [ 2 ] [ 3 ]

ตัวแปร

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

แอล-บีเอฟจีเอส-บี

อั ลกอริทึม L-BFGS-Bขยาย L-BFGS เพื่อจัดการกับข้อจำกัดแบบกล่องอย่างง่าย ( หรือที่เรียกว่าข้อจำกัดขอบเขต) บนตัวแปร กล่าวคือ ข้อจำกัดในรูปแบบl ix iu iโดยที่l iและu iเป็นขอบเขตล่างและขอบเขตบนคงที่ต่อตัวแปรตามลำดับ (สำหรับแต่ละx iอาจละเว้นขอบเขตใดขอบเขตหนึ่งหรือทั้งสองขอบเขตก็ได้) [ 7 ] [ 8 ]วิธีการนี้ทำงานโดยการระบุตัวแปรคงที่และตัวแปรอิสระในแต่ละขั้นตอน (โดยใช้วิธีการไล่ระดับอย่างง่าย) จากนั้นใช้วิธี L-BFGS กับตัวแปรอิสระเท่านั้นเพื่อให้ได้ความแม่นยำที่สูงขึ้น จากนั้นจึงทำซ้ำกระบวนการ

โอวล์-คิวเอ็น

ควอซี-นิวตันหน่วยความจำจำกัดแบบออร์แธนต์ ( OWL-QN ) เป็นรูปแบบ L-BFGS สำหรับการปรับโมเดลแบบมีการควบคุม โดยใช้ประโยชน์จากความเบาบางโดยธรรมชาติของโมเดลดังกล่าว[ 3 ] โดยจะลดฟังก์ชันในรูปแบบ

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

โอ-แอลบีเอฟจีเอส

Schraudolph และคณะนำเสนอ การประมาณค่าแบบ ออนไลน์สำหรับทั้ง BFGS และ L-BFGS [ 9 ]คล้ายกับการไล่ระดับแบบสุ่มซึ่งสามารถใช้เพื่อลดความซับซ้อนในการคำนวณโดยการประเมินฟังก์ชันข้อผิดพลาดและการไล่ระดับบนชุดย่อยที่สุ่มเลือกจากชุดข้อมูลทั้งหมดในแต่ละรอบการทำซ้ำ พบว่า O-LBFGS มีการลู่เข้าเกือบแน่นอนทั่วโลก[ 10 ]ในขณะที่การประมาณค่าแบบออนไลน์ของ BFGS (O-BFGS) ไม่จำเป็นต้องลู่เข้าเสมอไป[ 11 ]

การนำรูปแบบต่างๆ มาใช้

ตัวอย่างการใช้งานแบบโอเพนซอร์สที่โดดเด่น ได้แก่:

ตัวอย่างการใช้งานที่ไม่ใช่โอเพนซอร์สที่น่าสนใจ ได้แก่:

  • ตัวแปร L-BFGS-B ยังมีอยู่ในอัลกอริทึม ACM TOMS หมายเลข 778 [ 8 ] [ 13 ]ในเดือนกุมภาพันธ์ 2011 ผู้เขียนบางส่วนของโค้ด L-BFGS-B ดั้งเดิมได้โพสต์การอัปเดตครั้งใหญ่ (เวอร์ชัน 3.0)
  • การใช้งานอ้างอิงในFortran 77 (และมี อินเทอร์เฟซ Fortran 90 ) [ 14 ] [ 15 ]เวอร์ชันนี้ รวมถึงเวอร์ชันเก่ากว่า ได้ถูกแปลงเป็นภาษาอื่นๆ อีกมากมาย
  • การใช้งาน OWL-QN C++ โดยนักออกแบบ[ 3 ] [ 16 ]

เอกสารอ้างอิง

  1. ^ Liu, DC; Nocedal, J. (1989). "เกี่ยวกับวิธีการหน่วยความจำที่จำกัดสำหรับการเพิ่มประสิทธิภาพขนาดใหญ่" . การเขียนโปรแกรมคณิตศาสตร์ B . 45 (3): 503– 528. CiteSeerX  10.1.1.110.6443 . doi : 10.1007/BF01589116 . S2CID  5681609 .
  2. ^ a b Malouf, Robert (2002). "การเปรียบเทียบอัลกอริธึมสำหรับการประมาณค่าพารามิเตอร์เอนโทรปีสูงสุด" . รายงานการประชุมวิชาการด้านการเรียนรู้ภาษาธรรมชาติครั้งที่ 6 (CoNLL-2002) . หน้า  49– 55. doi : 10.3115/1118853.1118871 .
  3. ^ a b c d Andrew, Galen; Gao, Jianfeng (2007). "การฝึกอบรมแบบปรับขนาดได้ของแบบจำลองลอจลิเนียร์ที่มีการควบคุมด้วย L₁" Proceedings of the 24th International Conference on Machine Learning . doi : 10.1145/1273496.1273501 . ISBN 9781595937933S2CID 5853259 ​
  4. ^ Matthies, H.; Strang, G. (1979). "การแก้สมการไฟไนต์เอเลเมนต์ที่ไม่เชิงเส้น" วารสารนานาชาติสำหรับวิธีการเชิงตัวเลขในวิศวกรรม 14 ( 11): 1613– 1626. Bibcode : 1979IJNME..14.1613M . doi : 10.1002/nme.1620141104 .
  5. ^ Nocedal, J. (1980). "การปรับปรุงเมทริกซ์ควาซี-นิวตันด้วยพื้นที่จัดเก็บที่จำกัด"คณิตศาสตร์ของการคำนวณ 35 ( 151): 773– 782. doi : 10.1090/S0025-5718-1980-0572855-7 .
  6. ^ Byrd, RH; Nocedal, J.; Schnabel, RB (1994). "การแสดงเมทริกซ์ Quasi-Newton และการใช้งานในวิธีการหน่วยความจำจำกัด" การเขียนโปรแกรมทางคณิตศาสตร์63 (4): 129– 156. doi : 10.1007/BF01582063 . S2CID 5581219 . 
  7. ^ Byrd, RH; Lu, P.; Nocedal, J.; Zhu, C. (1995). "อัลกอริทึมหน่วยความจำจำกัดสำหรับการเพิ่มประสิทธิภาพภายใต้ข้อจำกัดขอบเขต" . SIAM J. Sci. Comput. 16 (5): 1190– 1208. Bibcode : 1995SJSC...16.1190B . doi : 10.1137/0916069 . S2CID 6398414 . 
  8. ^ a b Zhu, C.; Byrd, Richard H.; Lu, Peihuang; Nocedal, Jorge (1997). "L-BFGS-B: Algorithm 778: L-BFGS-B, รูทีน FORTRAN สำหรับการเพิ่มประสิทธิภาพที่มีข้อจำกัดขอบเขตขนาดใหญ่" . ACM Transactions on Mathematical Software . 23 (4): 550– 560. doi : 10.1145/279232.279236 . S2CID 207228122 . 
  9. ^ Schraudolph, N.; Yu, J.; Günter, S. (2007). วิธีการควาซี-นิวตันแบบสุ่มสำหรับการเพิ่มประสิทธิภาพนูนแบบออนไลน์ AISTATS.
  10. ^ Mokhtari, A.; Ribeiro, A. (2015). "การบรรจบกันทั่วโลกของ BFGS หน่วยความจำจำกัดแบบออนไลน์" (PDF)วารสารการวิจัยการเรียนรู้ของเครื่อง16 : 3151– 3181. arXiv : 1409.2045 .
  11. ^ Mokhtari, A.; Ribeiro, A. (2014). "RES: Regularized Stochastic BFGS Algorithm". IEEE Transactions on Signal Processing . 62 (23): 6089– 6104. arXiv : 1401.7625 . Bibcode : 2014ITSP...62.6089M . CiteSeerX 10.1.1.756.3003 . doi : 10.1109/TSP.2014.2357775 . S2CID 15214938 .  
  12. ^ "เอกสารอย่างเป็นทางการของ Optim.jl " เอกสาร Optim.jl
  13. ^ "หน้าหลักของ TOMS" . toms.acm.org .
  14. ^ Morales, JL; Nocedal, J. (2011). "ข้อสังเกตเกี่ยวกับ "อัลกอริทึม 778: L-BFGS-B: รูทีนย่อย Fortran สำหรับการเพิ่มประสิทธิภาพแบบมีข้อจำกัดขอบเขตขนาดใหญ่"". ACM Transactions on Mathematical Software . 38 : 1– 4. doi : 10.1145/2049662.2049669 . S2CID  16742561 .
  15. ^ "รหัสการหาค่าเหมาะสมที่สุดแบบไม่เชิงเส้น L-BFGS-B" . users.iems.northwestern.edu .
  16. ^ "ตัวเพิ่มประสิทธิภาพ Quasi-Newton แบบจำกัดหน่วยความจำสำหรับ Orthant-Wise สำหรับวัตถุประสงค์ที่มีการปรับค่า L1"ศูนย์ดาวน์โหลดของ Microsoft

อ่านเพิ่มเติม

  • Liu, DC; Nocedal, J. (1989). "เกี่ยวกับวิธีการหน่วยความจำที่จำกัดสำหรับการเพิ่มประสิทธิภาพขนาดใหญ่" . การเขียนโปรแกรมคณิตศาสตร์ B . 45 (3): 503– 528. CiteSeerX  10.1.1.110.6443 . doi : 10.1007/BF01589116 . S2CID  5681609 .
  • Haghighi, Aria (2 ธันวาคม 2014). "การหาค่าเหมาะสมที่สุดเชิงตัวเลข: ทำความเข้าใจ L-BFGS" .
  • Pytlak, Radoslaw (2009). "อัลกอริทึมควาซี-นิวตันที่มีหน่วยความจำจำกัด" . อัลกอริทึมการไล่ระดับแบบสังยุคในการเพิ่มประสิทธิภาพแบบไม่นูน . Springer. หน้า  159–190 . ISBN 978-3-540-85633-7.
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Limited-memory_BFGS&oldid=1360450026 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ BFGS หน่วยความจำจำกัด

BFGS หน่วยความจำจำกัด ( L-BFGS หรือ LM-BFGS ) เป็น อัลก อริธึมการ หาค่าเหมาะสมที่สุด ในกลุ่ม วิธีควาซี-นิวตัน ที่ประมาณ ค่าอัลกอริธึม Broyden–Fletcher–Goldfarb–Shanno (BFGS)...

อัลกอริทึม

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

แอปพลิเคชัน

L-BFGS ได้รับการขนานนามว่าเป็น "อัลกอริทึมที่เลือกใช้" สำหรับการปรับ โมเดลลอจลิเนียร์ (MaxEnt) และ ฟิลด์สุ่มแบบมีเงื่อนไข ด้วยการ ปรับค่า -regularization [ 2 ] [ 3 ] ℓ 2 {\displaystyle \ell _{2}}

ตัวแปร

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