การสุ่มตัวอย่าง Gibbs กับ MH-MCMC ทั่วไป


20

ฉันเพิ่งได้อ่านการสุ่มตัวอย่างของกิ๊บส์และอัลกอริทึม Metropolis Hastings และมีคำถามสองสามข้อ

อย่างที่ฉันเข้าใจในกรณีของการสุ่มตัวอย่างของกิ๊บส์ถ้าเรามีปัญหาหลายตัวแปรขนาดใหญ่เราจะสุ่มตัวอย่างจากการแจกแจงแบบมีเงื่อนไขนั่นคือตัวอย่างหนึ่งตัวแปรในขณะที่รักษาตัวแปรอื่น ๆ ทั้งหมดไว้ในขณะที่ MH เราสุ่มตัวอย่าง

สิ่งหนึ่งที่เอกสารกล่าวคือตัวอย่างที่เสนอนั้นเป็นที่ยอมรับเสมอในการสุ่มตัวอย่างกิ๊บส์นั่นคืออัตราการยอมรับข้อเสนออยู่เสมอ 1 สำหรับฉันแล้วนี่เป็นข้อได้เปรียบที่ยิ่งใหญ่สำหรับปัญหาหลายตัวแปรขนาดใหญ่ดูเหมือนว่าอัตราการปฏิเสธสำหรับอัลกอริธึม MH ค่อนข้างใหญ่ . หากเป็นเช่นนั้นจริง ๆ แล้วอะไรคือสาเหตุที่ไม่ใช้ Gibbs Sampler ตลอดเวลาในการสร้างการกระจายหลัง


11
ข้อเสนอหลายตัวแปร MH ที่สร้างขึ้นอย่างดีอาจมีประสิทธิภาพสูงกว่าการสุ่มตัวอย่างของกิ๊บส์ถึงแม้ว่าการสุ่มตัวอย่างจากเงื่อนไขเป็นไปได้ (เช่นปกติหลายมิติมิติสูง HMC เต้น Gibbs โดยขอบกว้างเมื่อตัวแปรมีความสัมพันธ์สูง) นี่เป็นเพราะการสุ่มตัวอย่างของกิ๊บส์ไม่อนุญาตให้ตัวแปรวิวัฒนาการร่วมกัน มันคล้ายกับการปรับฟังก์ชั่นให้เหมาะสมโดยการปรับอาร์กิวเมนต์แต่ละตัวให้เหมาะสม - คุณอาจทำได้ดีกว่าถ้าคุณเพิ่มประสิทธิภาพข้อโต้แย้งทั้งหมดร่วมกันมากกว่าที่จะต่อเนื่องกันแม้ว่ามันจะง่ายกว่าในการทำหลัง
ผู้ชาย

Metropolis-Hastings สามารถสุ่มตัวอย่างได้โดยใช้ข้อเสนอสำหรับเงื่อนไข คุณหมายถึงMH บางประเภท ?
Glen_b -Reinstate Monica

1
ขอบคุณสำหรับความคิดเห็น ไม่ฉันแค่คิดโดยทั่วไปว่าทำไม Gibbs Sampler จึงไม่ได้ใช้บ่อยขึ้น พลาดความจริงที่ว่ารูปแบบการแจกแจงแบบมีเงื่อนไขนั้นจะต้องรู้จักกันก่อนในการสุ่มตัวอย่างกิ๊บส์ สำหรับความต้องการในปัจจุบันของฉันดูเหมือนว่าชุดค่าผสมจะทำงานได้ดีที่สุด ดังนั้นใช้ขั้นตอน MH สำหรับชุดย่อยของพารามิเตอร์ในขณะที่รักษาค่าคงตัวอื่น ๆ แล้วใช้ Gibbs สำหรับชุดย่อยอื่น ๆ (โดยที่เงื่อนไขนั้นง่ายต่อการประเมินการวิเคราะห์) ฉันเพิ่งเริ่มทำสิ่งนี้ดังนั้นยังไม่ทราบว่า MH ประเภทต่างๆ คำแนะนำเกี่ยวกับสิ่งใดที่ได้รับการชื่นชม :-)
Luca

คำตอบ:


12

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


1
ขอบคุณสำหรับการตอบกลับ! ดังนั้นด้วย GS ความคิดก็คือเงื่อนไขคือการแจกแจงที่ง่ายกว่าซึ่งสามารถสุ่มตัวอย่างได้อย่างง่ายดายในขณะที่การกระจายข้อต่อหรือที่รู้จักกันอาจเป็นการกระจายที่ซับซ้อนซึ่งยากที่จะสุ่มตัวอย่างจาก?
Luca

2
ใช่มันเป็นเรื่องจริง อย่างไรก็ตามบ่อยครั้งมีการสุ่มตัวอย่างจากกิ๊บส์และมหานครถูกใช้ร่วมกัน ดังนั้นการ จำกัด ตัวแปรบางตัวอาจทำให้คุณอยู่ด้านหลังแบบปิดในขณะที่ตัวแปรอื่น ๆ เป็นไปไม่ได้และคุณต้องใช้ "ขั้นตอนมหานคร" ในกรณีนี้คุณต้องตัดสินใจว่าคุณจะเลือกประเภทของ Metropolis-sampler (ความเป็นอิสระการสุ่มเดิน) และความหนาแน่นของข้อเสนอประเภทใดที่คุณใช้ แต่ฉันเดาว่ามันไกลไปหน่อยและคุณควรอ่านสิ่งนี้ด้วยตัวคุณเองก่อน
3777456

3

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

ลองใช้วิธีที่ง่ายกว่านี้: มันง่ายกว่ามากที่จะเสนอการปรับปรุงสำหรับหนึ่งตัวแปรในเวลา (กิ๊บส์) กว่าตัวแปรทั้งหมดพร้อมกัน (Metropolis Hastings)

เมื่อกล่าวถึงมิติของพื้นที่พารามิเตอร์จะยังคงส่งผลต่อการบรรจบกันของทั้ง Gibbs และ Metropolis Hastings เนื่องจากมีพารามิเตอร์มากกว่าที่อาจไม่เข้าหากัน

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


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