การใช้ MCMC เพื่อประเมินค่าที่คาดหวังของฟังก์ชันมิติสูง


10

ฉันกำลังทำงานในโครงการวิจัยที่เกี่ยวข้องกับการปรับให้เหมาะสมและเพิ่งมีความคิดที่จะใช้ MCMC ในการตั้งค่านี้ น่าเสียดายที่ฉันค่อนข้างใหม่สำหรับวิธีการ MCMC ดังนั้นฉันจึงมีคำถามหลายข้อ ฉันจะเริ่มต้นด้วยการอธิบายปัญหาแล้วถามคำถามของฉัน

ปัญหาของเราเดือดลงไปประมาณมูลค่าที่คาดหวังของฟังก์ชั่นค่าใช้จ่ายc(ω)ที่ω=(ω1,ω2,...ωh)เป็นhตัวแปรสุ่ม -dimentional ที่มีความหนาแน่นf(ω) )

ในกรณีของเราเป็นรุ่นแบบปิดของc(ω)ไม่อยู่ ซึ่งหมายความว่าเราต้องใช้วิธีการ Monte Carlo เพื่อประมาณค่าที่คาดหวัง น่าเสียดายที่การประมาณการของE[c(ω)]ที่สร้างขึ้นโดยใช้วิธี MC หรือ QMC นั้นมีความแปรปรวนมากเกินไปที่จะเป็นประโยชน์ภายในการตั้งค่าภาคปฏิบัติ

หนึ่งความคิดที่ว่าเราต้องใช้การกระจายความสำคัญการสุ่มตัวอย่างในการสร้างจุดตัวอย่างที่จะผลิตประมาณการต่ำแปรปรวนของE[c(ω)] ] ในกรณีของเราสำคัญเหมาะสุ่มตัวอย่างกระจายg(ω)จะต้องมีประมาณสัดส่วนกับc(ω)f(ω) ) เห็นว่าg(ω)เป็นที่รู้จักกันอย่างต่อเนื่องฉันสงสัยว่าฉันสามารถใช้ MCMC พร้อมกับข้อเสนอการกระจายc(ω)f(ω)เพื่อสร้างตัวอย่างจากg(ω)ที่สุด

คำถามของฉันที่นี่คือ:

  • MCMC สามารถใช้ได้ภายในการตั้งค่านี้หรือไม่? ถ้าเป็นเช่นนั้นวิธีการ MCMC แบบใดที่เหมาะสม ฉันทำงานใน MATLAB ดังนั้นฉันจึงชอบสิ่งที่มีการนำ MATLAB ไปใช้แล้ว

  • มีเทคนิคใดบ้างที่ฉันสามารถใช้เพื่อเร่งระยะเวลาการเบิร์นอินสำหรับ MCMC และฉันจะบอกได้อย่างไรว่าการกระจายตัวแบบคงที่มาถึงแล้ว? ในกรณีนี้ก็จริงใช้เวลาบิตที่ยุติธรรมของเวลาในการคำนวณc(ω)สำหรับให้ωω


พิมพ์ผิดในย่อหน้าสุดท้าย? แทนc ( w ) ? C(w)c(w)
mpiktas

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

@onestop - คุณเป็นกริดกระจัดกระจายทำงานได้ดีขึ้นเล็กน้อยในกรณีของฉันแม้ว่าฉันต้องการทดสอบความคิดนี้
Berk U.

ฟังดูเหมือนการเงิน
กระทะ

1
มันสามารถนำไปใช้กับการเงิน เราจะใช้มันสำหรับการจัดการที่เหมาะสมของระบบพลังงานแม้ว่า :)
Berk U.

คำตอบ:


4

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

อย่างไรก็ตามเช่นเดียวกับวิธีการรวมตัวเลขใด ๆ มันไม่ได้เป็นเครื่องมือที่เป็นสากลทั้งหมด มีเงื่อนไขเมื่อเป็นประโยชน์และเงื่อนไขเมื่อไม่มี

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

นอกจากนี้หากประมาณการของคุณมีความถูกต้องค่อนข้าง( ω )จะแหลมขึ้นอย่างรวดเร็วและฟังก์ชั่นอย่างใกล้ชิดคล้ายเดลต้าจึงสำคัญเป็นอย่างมีประสิทธิภาพทดแทนω →การω เมตร xωf(ω)ωωmax

f(ω)f(ωmax)+(ωωmax)f(ωmax)+12(ωωmax)2f(ωmax)+

นี่เป็นกลยุทธ์ที่มีประโยชน์เมื่อได้รับช่วงเวลาของอย่างง่ายดายω

Edwin Jaynes มีข้อความพูดที่ดีเกี่ยวกับเรื่องนี้:

เมื่อใดก็ตามที่มีวิธีการแบบสุ่มในการทำบางสิ่งมีวิธีที่ไม่สุ่มซึ่งให้ผลลัพธ์ที่ดีกว่า แต่ต้องใช้ความคิดมากกว่า

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


ขอบคุณมากสำหรับโพสต์ของคุณ ฉันชอบไอเดีย MC ของคุณมาก ๆ ฉันสงสัยว่าถ้าคุณรู้เกี่ยวกับทรัพยากรในนั้นเพื่อให้ฉันสามารถอ่านได้หรือไม่ ทุกสิ่งที่มีตัวอย่างในการดำเนินการจะได้รับการชื่นชมมาก
Berk U.

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

2

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

แต่ดูเหมือนว่าคุณกำลังติดตามอย่างถูกต้องเกี่ยวกับการสุ่มตัวอย่างที่สำคัญ กุญแจสำคัญในที่นี้คือเลือกการแจกแจงแบบเอนเอียงที่มีความน่าจะเป็นอย่างมากกระจุกตัวอยู่ใกล้กับภูมิภาคที่คุณสนใจและมันมีหางที่หนากว่าการกระจายแบบเล็กน้อย

ฉันต้องการเพิ่มว่านี่เป็นปัญหาการวิจัยแบบเปิดดังนั้นหากคุณสามารถหาสิ่งที่ดีมันจะเป็นที่สนใจของชุมชน!


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

0

g(ω)

นอกจากนี้คุณอาจต้องการค้นหาเทคนิคการลดความแปรปรวนในฟิลด์การรวม MC ชุดทรัพยากรที่มีอยู่ในตัวเองเป็นบทหนังสือฟรีจาก Art Owen ที่ Stanford ตอนที่ 8, 9 และ 10 โดยเฉพาะ

ที่นั่นคุณจะพบการรักษาเชิงลึกเกี่ยวกับการสุ่มตัวอย่างแบบปรับตัวการเรียกซ้ำและเทคนิคอื่น ๆ

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