อนุมานความแปรปรวนเมื่อเทียบกับ MCMC: เมื่อเลือกหนึ่งมากกว่าอื่น ๆ ?


36

ฉันคิดว่าฉันเข้าใจความคิดทั่วไปของทั้ง VI และ MCMC รวมถึงรสชาติที่หลากหลายของ MCMC เช่นการสุ่มตัวอย่างของกิ๊บส์, Metropolis Hastings เป็นต้นบทความนี้ให้การอธิบายที่ยอดเยี่ยมของทั้งสองวิธี

ฉันมีคำถามต่อไปนี้:

  • หากฉันต้องการทำการอนุมานแบบเบย์ทำไมฉันถึงเลือกวิธีหนึ่งเหนืออีกวิธีหนึ่ง
  • ข้อดีและข้อเสียของแต่ละวิธีคืออะไร?

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

คำตอบ:


34

สำหรับคำตอบยาวดู Blei, Kucukelbir และ McAuliffe ที่นี่ คำตอบสั้น ๆ นี้ดึงดูดอย่างมากจากนั้น

  • MCMC asymptotically แน่นอน; VI ไม่ได้ ในขีด จำกัด MCMC จะประมาณการกระจายเป้าหมายอย่างแน่นอน VI มาโดยไม่มีการรับประกัน
  • MCMC แพงคอมพิวเตอร์ โดยทั่วไปแล้ว VI จะเร็วกว่า

ความหมายเมื่อเรามีเวลาในการคำนวณเพื่อฆ่าและให้คุณค่าความแม่นยำในการประมาณการของเรา MCMC ชนะ หากเราสามารถทนต่อการเสียสละเพื่อความสะดวก - หรือเรากำลังทำงานกับข้อมูลที่มีขนาดใหญ่มากเราต้องทำการแลกเปลี่ยน - VI เป็นทางเลือกตามธรรมชาติ

หรืออย่างละเอียดและละเอียดกว่าโดยผู้เขียนที่กล่าวถึงข้างต้น:

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


ฉันคิดว่า Stan เป็นซอฟต์แวร์ที่เร็วที่สุดในการทำ MCMC (NUTS) สิ่งที่เร็วที่สุด (หรือมีประสิทธิภาพมากกว่า) ในการสรุปการอนุมานคืออะไร
skan

3
@skan คำถามที่ยอดเยี่ยม! ซอฟต์แวร์ที่มีจุดประสงค์ทั่วไปที่ใกล้เคียงที่สุดที่ฉันเคยเห็นคือเอ็ดเวิร์ดแม้ว่าฉันจะไม่ได้ใช้ด้วยตนเอง (แอปพลิเคชั่น VI จำนวนมากเป็นแบบกำหนดเองซึ่งพวกเขาได้รับอัลกอริธึมที่เหมาะสมกับรูปแบบเฉพาะที่น่าสนใจ)
Sean Easter

2
สแตนยังสนับสนุน VI ข้อ จำกัด เพียงอย่างเดียวของสแตนคือมันไม่สามารถสุ่มตัวอย่างตัวแปรแบบแยก
RJTK

นอกจากนี้ฉันไม่เชื่อว่า Stan จะใช้งาน ADVI บน GPU ... ซอฟต์แวร์ที่เร็วที่สุดสำหรับการอนุมานความแปรปรวนน่าจะเป็น TensorFlow Probability (TFP) หรือ Pyro ซึ่งทั้งคู่สร้างขึ้นบนกรอบการเรียนรู้เชิงลึกที่ปรับให้เหมาะสมอย่างสูง (เช่น CUDA) TFP เติบโตขึ้นจากการทำงานในช่วงต้นของ Edward โดย Dustin Tran ซึ่งตอนนี้เป็นผู้นำของ TFP ที่ Google ฉันเชื่อว่า
Adam Erickson

@AdamErickson FYI: Stan ค่อยๆเริ่มใช้ GPU arxiv.org/abs/1907.01063
ทิม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.