ฉันควรรู้อะไรเกี่ยวกับการออกแบบอัลกอริทึม Hybrid / Hamiltonian Monte Carlo ที่ดี?


12

ฉันกำลังออกแบบอัลกอริทึมการสุ่มตัวอย่างแบบไฮบริดมอนติคาร์โลสำหรับPyMCและฉันพยายามทำให้มันยุ่งยากและเป็นไปได้โดยทั่วไปดังนั้นฉันกำลังมองหาคำแนะนำที่ดีในการออกแบบอัลกอริทึม HMC ฉันได้อ่านบทสำรวจของ RadfordและBeskos et กระดาษล่าสุดของการปรับจูน (ขนาดขั้นตอน) ที่เหมาะสมของ HMC และฉันได้รวบรวมเคล็ดลับต่อไปนี้:

  • ตัวแปรโมเมนตัมควรแจกจ่ายด้วยความแปรปรวนร่วม , โดยทั่วไปคืออะไรบางอย่างเช่นเมทริกซ์ความแปรปรวนร่วมของการแจกแจง (สำหรับการแจกแจงแบบง่าย), แต่อาจแตกต่างกันไป โดยค่าเริ่มต้นฉันใช้ hessian ที่โหมดC1C
  • ควรคำนวณวิถีด้วยวิธี leapfrog (ผู้ประกอบการรายอื่นดูเหมือนจะไม่คุ้มค่า)
  • อัตราการยอมรับที่เหมาะสมคือ. 651 สำหรับปัญหาที่มีขนาดใหญ่มากและสูงกว่านั้น
  • ขนาดสเต็ปควรถูกปรับสัดส่วนเช่นโดยที่เป็นตัวแปรอิสระและคือจำนวนมิติL×d(1/4)Ld
  • ขนาดของขั้นตอนควรมีขนาดเล็กลงเมื่อมีหางแสงหรือภูมิภาคอื่นที่มีลักษณะความมั่นคงแปลก การสุ่มขนาดขั้นตอนสามารถช่วยได้

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

บางคนได้โปรดทำให้ชุมชนนี้เป็นวิกิ

คำตอบ:


3

บทความนี้น่าสนใจมาก (แม้ว่าฉันจะยังไม่ทันรู้ตัว)

Girolami M. Calderhead B. (2011) Riemann นานาวิธี Langevin และ Hamiltonian Monte Carlo JR Statist Soc B. (พร้อมการสนทนา) 73, ตอนที่ 2 หน้า 1-37


1

สำหรับการกำหนดระยะเวลาในวิถีของคนที่อยู่เบื้องหลังสแตนมีความรักของไม่มี-U-เปิดตัวอย่างhttp://arxiv.org/abs/1111.4246 คู่มือของสแตนhttp://mc-stan.org/manual.htmlมีลิงก์และรายละเอียดมากมาย

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