การทำความเข้าใจ MCMC: ทางเลือกอื่นจะเป็นอย่างไร


13

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

โดยวิธีการภาพประกอบสมมติว่าเรากำลังพยายามที่จะคำนวณความน่าจะเป็นของพารามิเตอร์ของเราได้รับข้อมูลกำหนดรูปแบบที่คำนวณตรงข้ามเป็นz) การคำนวณนี้โดยตรงกับ Bayes' ทฤษฎีบทเราต้องหารเป็นแหลมออกที่นี่ แต่เราสามารถคำนวณได้โดยรวมเข้าด้วยกันพูดดังนี้:P(x,y,z|D)P(D|x,y,z)P(D)

p_d = 0.
for x in range(xmin,xmax,dx):
    for y in range(ymin,ymax,dy):
        for z in range(zmin,zmax,dz):
            p_d_given_x_y_z = cdf(model(x,y,z),d)
            p_d += p_d_given_x_y_z * dx * dy * dz

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


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

3
ไม่เกี่ยวข้องกับคำถาม แต่ฉันคิดว่าคุณพลาด x, y, z ก่อนหน้านี้ในอินทิกรัลของคุณ (มันปรากฏในตัวเศษของสูตร Bayes)
alberto

คำตอบ:


17

คุณกำลังอธิบายการประมาณกริดกับคนหลังและนั่นเป็นวิธีที่ถูกต้องแม้ว่าจะไม่ได้รับความนิยมมากที่สุด มีบางกรณีที่การคำนวณการแจกแจงหลังสามารถวิเคราะห์ได้ Monte Carlo Markov Chains หรือวิธีการอื่น ๆ โดยประมาณเป็นวิธีการรับตัวอย่างการกระจายหลังซึ่งบางครั้งก็ทำงานเมื่อไม่สามารถหาวิธีการวิเคราะห์ได้

โซลูชั่นการวิเคราะห์ที่สามารถพบได้โดยทั่วไปจะมีกรณีของ "ผัน" ครอบครัวและคุณสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับที่โดย googling, ดูตัวอย่างhttps://en.wikipedia.org/wiki/Conjugate_prior

เป็นตัวอย่างแรกถ้าหากก่อนหน้าของคุณpเป็นแบบสม่ำเสมอ[0, 1]โดยที่pพารามิเตอร์ความสำเร็จในการทดลองแบบทวินามแบบง่ายผู้หลังจะเท่ากับการแจกแจงแบบเบต้า การรวมหรือการรวมสามารถทำได้อย่างชัดเจนในกรณีนี้

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

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


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

7

การคำนวณตัวส่วนไม่ช่วยในการทำความเข้าใจธรรมชาติของการแจกแจงหลัง (หรือการแจกแจงใด ๆ ) ดังที่ได้กล่าวไว้ในคำถามล่าสุดเพื่อทราบว่าความหนาแน่นของเวกเตอร์ d-มิติคือ ไม่ได้บอกฉันว่าพื้นที่ใดที่น่าสนใจสำหรับการแจกแจงหลังθ

π(θ|x)exp{||θx||2||θ+x||4||θ2x||6},x,θd,

6

วิธีการมอนติคาร์โลเป็นเทคนิคที่ใช้ประโยชน์จากการสุ่มตัวเลข เป้าหมายคือการหาตัวอย่างที่กระจายตามและสันนิษฐานว่านั้นซับซ้อน ซึ่งหมายความว่าเราไม่สามารถประเมินได้โดยตรง หากไม่เป็นเช่นนั้นคุณสามารถคำนวณได้ ในฐานะที่เป็นตัวอย่างของคุณนี้จะเป็น(D)xP(x)P(x)P(D)

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

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

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