ตัวอย่างการปฏิบัติสำหรับ MCMC


14

ฉันกำลังจะไปบรรยายที่เกี่ยวข้องกับ MCMC อย่างไรก็ตามฉันไม่พบตัวอย่างที่ดีของวิธีการใช้งาน ใครช่วยยกตัวอย่างที่เป็นรูปธรรมให้ฉันได้บ้าง ทั้งหมดที่ฉันเห็นคือพวกเขาใช้โซ่มาร์คอฟและบอกว่าการกระจายแบบคงที่คือการกระจายที่ต้องการ

ฉันต้องการตัวอย่างที่ดีที่การแจกแจงที่ต้องการนั้นยากที่จะสุ่มตัวอย่าง ดังนั้นเราจึงสร้างเชนมาร์คอฟ ฉันต้องการทราบวิธีการเลือกเมทริกซ์การเปลี่ยนแปลงเพื่อให้การกระจายแบบคงที่ของเชนมาร์คอฟคือการกระจายเป้าหมายขอบคุณ


ทฤษฎีลูกโซ่มาร์คอฟพื้นฐานใช้เพื่อแสดงให้เห็นว่ารูปแบบการสุ่มตัวอย่างแบบพิเศษจะมีการแจกแจงแบบคงที่ซึ่งเป็นการกระจายข้อต่อที่ต้องการ สำหรับตัวอย่างที่ง่ายที่สุดตัวอย่าง vanilla Gibbs จำลองจากการแจกแจงแบบเต็มเงื่อนไข การเปลี่ยนเมล็ดที่สอดคล้องกันนำมารวมกันหากพวกเขาตอบสนองเงื่อนไขสำหรับการบรรจบกัน (มักจะตรงไปตรงมาเพื่อแสดง) สามารถแสดงได้อย่างง่ายดายที่จะมีการกระจายข้อต่อเป็นการกระจายนิ่ง ในทำนองเดียวกันสำหรับ Metropolis Hastings และอื่น ๆ ดูเหมือนว่าการบรรยายที่คุณกำลังดูไม่ได้อธิบายว่า MCMC เป็นห่วงโซ่มาร์คอฟได้อย่างไร
Glen_b -Reinstate Monica

คำตอบ:


3

ตัวอย่างที่ดีของการแจกแจงที่ยากต่อการสุ่มตัวอย่างคือโมเดล Hard-Core ดูหน้านี้สำหรับภาพรวม:

http://www.mathematik.uni-ulm.de/stochastik/lehre/ss06/markov/skript_engl/node34.html

รุ่นนี้กำหนดการกระจายผ่านกริดสำหรับnคงที่ซึ่งในแต่ละจุดในตารางคุณสามารถมีค่าเป็นหนึ่งหรือศูนย์ เพื่อให้สามารถยอมรับกริดได้ภายใต้โมเดลฮาร์ดคอร์ไม่มีจุดสองจุดติดกันบนกริดสามารถมีค่า 1n×nn

ภาพด้านล่างแสดงตัวอย่างการกำหนดค่าที่ยอมรับสำหรับตารางภายใต้รูปแบบฮาร์ดคอร์ ในภาพนี้คนที่แสดงเป็นจุดสีดำและศูนย์เป็นสีขาว โปรดทราบว่าจุดสีดำสองจุดไม่ติดกัน8×8

ตัวอย่างการกำหนดค่าที่ยอมรับได้สำหรับ $ 8 \ times 8 $ กริดภายใต้รุ่นฮาร์ดคอร์

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

เราต้องการสุ่มตัวอย่างจากประชากรของกริดที่ยอมรับได้นั่นคือถ้าคือเซตของกริดที่ยอมรับได้เราต้องการตัวอย่างe Eเช่นนั้นEอีE

พี(อี)=1|E|

ที่ไหนคือจำนวนของการกำหนดค่าที่ยอมรับได้ทั้งหมด|E|

สิ่งนี้แสดงถึงความท้าทายเนื่องจากเรากำลังพิจารณาn×nร่อน, วิธีการที่เราสามารถตรวจสอบจำนวนกริดที่ยอมรับได้ |E|

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

ฉันจะให้คุณอ่านกระดาษในรายละเอียดของวิธีการใช้ MCMC สำหรับปัญหานี้ แต่มันค่อนข้างตรงไปตรงมา


2

ฉันคิดว่าตัวอย่างที่ดีที่สุดที่ฉันสามารถให้คุณได้คือ:

ตัวอย่างมาร์คอฟเชนมอนติคาร์โลโดย Murali Haran

ซึ่งมีรหัสที่เป็นประโยชน์ในอาร์

ฉันคิดว่าฉันสามารถทำซ้ำบทความได้ที่นี่ แต่ไม่มีเหตุผล


2

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

FIRST EXAMPLE:

ยังไม่มีข้อความ(0,1)

ปัญหาคือในการตระหนักถึงว่าหลังจากที่จะผ่านทุกขั้นตอนกลที่มีเป็นเพียงหนึ่งในเคล็ดลับที่มีมนต์ขลัง: การตัดสินใจไบนารีของการยอมรับหรือปฏิเสธค่าที่เสนอ

xmean0sd 1rnorm(10000)ที่จะง่ายเกินไปเพียงแค่บางสิ่งบางอย่างทำงานตามสายของ

epsεxผมxผม+1runif(1, - eps, eps)xผม

ทุกค่าที่เสนอจะแตกต่างจากค่าก่อนในแบบสุ่มและภายในขอบเขตของ [- eps,+ eps]ทุกค่าที่เสนอจึงจะแตกต่างจากมูลค่าก่อนในแฟชั่นแบบสุ่มและภายในขอบเขตของ

ผมผม+1

ยังไม่มีข้อความ(0,1)xผม+1xผม

min(1, dnorm(candidate_value)/dnorm(x))1ยังไม่มีข้อความ(0,1) พีdxผม+1xผมmin(1, ...)dnormที่สูงกว่าอัตราต่อรองของมันได้รับการยอมรับ

min(1, dnorm(candidate_value)/dnorm(x))runif(1)01(ใกล้ที่สุดเท่าที่จะได้รับการโยนเหรียญสำหรับค่าอย่างต่อเนื่อง) เรายอมรับและปฏิบัติในx[i+1]การเข้ามาของห่วงโซ่ที่มีค่าที่เสนอ ; มิฉะนั้นเราเติมเต็มด้วยซ้ำที่ค่าก่อนหน้า , x[i]... ความคิดที่จะเป็นดีกว่าสองของเดียวกันมากกว่าหนึ่งที่อยู่ห่างไกลเกินไปในหาง

เราทำเช่นนี้หลายพันครั้งและเรารวบรวมค่าทั้งหมดเหล่านี้ (เฉพาะค่าที่ยอมรับและซ้ำ ๆ ) และเมื่อเราพล็อตฮิสโตแกรมเราจะได้เส้นโค้งปกติที่มีค่าsdใกล้เคียงกับ1และมีศูนย์กลางที่ 0.

จุดสุดท้ายเพียงจุดเดียว: เราจะเริ่มจากตรงไหน? อาจไม่เกี่ยวข้องกัน แต่ในการจำลองเรากรอกค่าแรกเป็น0, x = 0; vec[1] = xก่อนที่จะวนลูปผ่านส่วนที่เหลือทั้งหมดของการทำซ้ำและปล่อยให้กระบวนการเป็นไปตามหลักสูตรของ

SECOND EXAMPLE:

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


ต้องการการแก้ไขเล็กน้อยบางประการ: "การมาถึงที่นี่ทำให้งงงวยโดย CMCMs " ... ต้องมีการพลิก " Rosenbluth-Hatings " .... อาจต้องมี "s" พิเศษในนั้น ฉันจะบอกว่าตัวอย่างแรกไม่ได้ "ยากที่จะตัวอย่างจาก" (ตามที่คำถามถาม) ทั้งสองตัวอย่างของคุณดูเหมือนจะเป็น Metropolis-Hastings (ซึ่งมีความสำคัญอย่างแน่นอน) แต่ MCMC มีมากกว่านั้น เช่นเดียวกับตัวอย่างผู้คนจำนวนมากใช้การสุ่มตัวอย่างจากกิ๊บส์บ่อยครั้งผ่าน JAGS / BUGS / ฯลฯ ไม่มีการตัดสินใจเกี่ยวกับการยอมรับขั้นตอนที่เสนอ - คุณจะดำเนินการต่อไป
Glen_b -Reinstate Monica

ฉันแก้ไขการสะกด isomeric ของ CMCM "s" ที่หายไป กำจัดไฮเปอร์ลิงก์ที่อาจไม่ได้รับการรับประกันไปยัง YouTube เพื่อแก้ไขปัญหาชื่อ อธิบายว่าทำไมฉันถึงเลือกตัวอย่างแรกเพื่ออธิบายอย่างละเอียดทั้งๆที่คำขอเฉพาะของคำถามเก่า ๆ ฉันขอขอบคุณที่คุณชี้ให้เห็นปัญหาเหล่านี้ทั้งหมด ฉันไม่แน่ใจเกี่ยวกับความหมายของบรรทัดสุดท้ายของคุณ
Antoni Parellada

มันเป็นเพียงการอ้างอิงถึงบรรทัด " มีเพียงหนึ่งเคล็ดลับวิเศษ: การตัดสินใจไบนารีของการยอมรับหรือปฏิเสธค่าที่เสนอ "; เพื่อชี้ให้เห็นว่ามันไม่ใช่คุณสมบัติของอัลกอริทึม MCMC ทั้งหมด นั่นไม่ได้หมายความว่ามีปัญหากับคำตอบของคุณ คุณสามารถถือว่ามันเป็นการชี้แจงหากคุณต้องการ บิต isomeric นั้นดี
Glen_b -Reinstate Monica

1

วิดีโอ Youtubeนี้เป็นภาพที่แสดงให้เห็นถึงปัญหาง่าย ๆ ที่แก้ไขได้ด้วย MCMC

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

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

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

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