แรงจูงใจที่ใช้งานง่ายสำหรับการอัพเดต BFGS


15

ฉันกำลังสอนชั้นสำรวจการวิเคราะห์เชิงตัวเลขและกำลังมองหาแรงจูงใจสำหรับวิธีการ BFGS สำหรับนักเรียนที่มีพื้นฐาน / สัญชาตญาณ จำกัด ในการเพิ่มประสิทธิภาพ!

ในขณะที่ฉันไม่มีเวลาพิสูจน์อย่างจริงจังว่าทุกอย่างมาบรรจบกันฉันกำลังมองหาแรงจูงใจที่สมเหตุสมผลว่าทำไมการอัปเดตของ BFGS Hessian จึงอาจปรากฏขึ้น วิธีการค้นพบของ Broyden (การเขียนของฉันอยู่ที่นี่ ) สามารถกระตุ้นได้โดยขอให้การประมาณของคุณในปัจจุบันของ Jacobian ลดความแตกต่างกับ Jacobian เก่าภายใต้ข้อ จำกัด ที่คำนึงถึงเซคแคนต์ล่าสุด: J_k (\ vec x_k- \ vec x_ {k-1}) = f (\ vec x_k) -f (\ vec x_ {k-1 }) J k (x k -x k - 1 )=F(x k )-เอฟ(x k - 1 )JkJk1Fro2Jk(xkxk1)=f(xk)f(xk1)

อนุพันธ์ของการอัพเดต BFGS ดูเหมือนจะเกี่ยวข้องและมืดมนกว่ามาก! โดยเฉพาะอย่างยิ่งผมอยากได้ที่จะสรุปเบื้องต้นว่าการปรับปรุงควรจะเป็นอันดับที่ 2 หรือใช้รูปแบบเฉพาะ มีแรงจูงใจในการมองสั้น ๆ สำหรับการอัพเดท BFGS Hessian เช่นเดียวกับ Broyden หรือไม่?


4
หากคุณอนุญาตการอัปเดตตามอำเภอใจคุณสามารถใช้ Hessian แบบเต็มในวิธีของนิวตัน ข้อดีอย่างหนึ่งของการคำนวณที่สำคัญของการอัปเดตอันดับต่ำคือช่วยให้คุณสามารถปรับปรุงการแยกตัวประกอบของ Hessian โดยประมาณได้อย่างรวดเร็ว
Brian Borchers

คำตอบ:


12

การได้มาของ BFGS นั้นง่ายกว่าเมื่อมีการพิจารณาฟังก์ชั่นการคิดต้นทุน (อย่างเคร่งครัด):

แต่บาง พื้นหลัง ข้อมูลเป็นสิ่งที่จำเป็น: สมมติหนึ่งต้องการที่จะลดนูนทำงาน บอกว่ามีวิธีการแก้ปัญหาโดยประมาณx_kจากนั้นหนึ่งประมาณค่าต่ำสุดของโดยค่าต่ำสุดของการขยายเทย์เลอร์ที่ถูกตัดทอน นั่นคือหนึ่งในรูปลักษณ์สำหรับเช่นว่ามีน้อยและชุดP การคำนวณความชันของ - "ด้วยความเคารพต่อ " - และการตั้งค่าเป็นศูนย์จะให้ความสัมพันธ์ x k f f ( x k + p ) f ( x k ) + f ( x k ) T p + 1

(x)นาทีxRn.
xkp ( ) x k + 1 : = x k + p ( ) p H ( x k ) [ x k + 1 - x k ] = f ( x k + 1 ) - f ( x k ) , H
(xk+พี)(xk)+(xk)Tพี+12พีTH(xk)พี.(* * * *)
พี(* * * *)xk+1=xk+พี(* * * *)พี
H(xk)[xk+1-xk]=(xk+1)-(xk),
ที่คือ 'Jacobian of the gradient' หรือเมทริกซ์ของ HessianH

เนื่องจากการคำนวณและการผกผันของ Hessian มีราคาแพง ...


... คำตอบสั้น ๆ

(cf. การอัปเดตของ Broyden) อาจเป็นได้ว่าการอัพเดต BFGSย่อเล็กสุด ในเกณฑ์ Frobenius ที่ถ่วงน้ำหนักอย่างชาญฉลาด ภายใต้H - 1 k - H - 1WHk+1-1

Hk-1-H-1W
  1. H[xk+1-xk]=(xk+1)-(xk) - นี่คือสิ่งที่เราต้องการ - และ
  2. HT=Hเนื่องจาก Hessian มีความสมมาตร

ดังนั้นทางเลือกของน้ำหนักในเป็นค่าผกผันของ Hessian เฉลี่ย , cf ที่นี่สำหรับคำสั่ง แต่ไม่มีหลักฐานให้สูตรการปรับปรุง BFGS (ด้วย )WHW=W1/2HW1/2F G=01H(xk+τพี)dταk=1

ประเด็นสำคัญคือ:

  • หนึ่งพยายามประมาณโซลูชันสำหรับต้นทุนจริงโดยโซลูชันสำหรับการประมาณกำลังสอง
  • การคำนวณของ Hessian และสิ่งที่ตรงกันข้ามมันมีราคาแพง หนึ่งคนชอบการอัพเดทง่ายๆ
  • การอัปเดตจะถูกเลือกให้เหมาะสมที่สุดสำหรับการกลับด้านแทนที่จะเป็น Hessian จริง
  • นั่นคือการอัปเดตอันดับ 2 เป็นผลมาจากตัวเลือกเฉพาะของน้ำหนักในบรรทัดฐาน Frobenius

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


ขอบคุณมากนี่เป็นสิ่งที่ยอดเยี่ยม (และมากกว่าหรือน้อยกว่าที่ฉันคาดไว้จากการอภิปรายใน Nocedal & Wright) คำถามที่เหลืออีกข้อหนึ่งที่ฉันมีคือ: ทำไมเราถึงเลือกและบรรทัดฐานในขณะที่เราทำ ฉันเข้าใจว่ามันเกี่ยวกับหน่วยต่างๆ แต่มีทางเลือกมากมายที่เป็นไปได้ของและบรรทัดฐานที่ทำสิ่งนี้ WW
Justin Solomon

ใช่จริง ฉันก็ไม่รู้ คำตอบเดียวคือมันให้สูตรการคำนวณที่ง่ายและทำงานได้ดี ในอดีตวิธีการนี้ในการอัปเดต - การลดความแตกต่างในการอัปเดตให้น้อยที่สุดคือวิธีที่ Shanno ใช้ มันเป็นผู้ตัดสิน (Goldfarb) ที่พบว่าการเลือกที่เฉพาะเจาะจงของน้ำหนักนำไปสู่สูตรของ Broyden และ Fletcher ดูวิทยานิพนธ์ปริญญาเอกนี้การพัฒนาที่ผ่านมาของวิธีการตัดแกน BFGS ...สำหรับการหยั่งรู้ของนักพัฒนาของ BFGS อย่างไรก็ตามทั้งสามวิธีนั้นค่อนข้างเป็นนามธรรม
Jan

1
น่าสนใจขอบคุณสำหรับคำแนะนำ! การเขียนปัจจุบันของฉัน (มีข้อผิดพลาดทางคณิตศาสตร์ที่ต้องการความช่วยเหลือ) อยู่ที่นี่: graphics.stanford.edu/courses/cs205a-13-fall/assets/notes/ … (ถ้าคุณต้องการเครดิตสำหรับความช่วยเหลือของคุณฉันยินดีที่จะให้มัน - โปรดส่งอีเมลถึงฉันพร้อมข้อมูลติดต่อที่เหมาะสม)
Justin Solomon

@jan ทำไมคุณถึงสมการและไม่ใช่ ไม่ได้เป็นเงื่อนไขที่กำหนดโดย secantที่f_k ขอบคุณ!
H(xk)[xk+1-xk]=(xk+1)-(xk)
H(xk+1)[xk+1-xk]=(xk+1)-(xk)?
Hk+1sk=Yksk=xk+1-xk,Yk=k+1-k
Jeff Faraci
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.