日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MCMC算法深入理解

發布時間:2023/12/9 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MCMC算法深入理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MCMC(Markov Chain Monte Carlo),即馬爾科夫鏈蒙特卡洛方法,是以馬爾科夫平穩狀態作為理論基礎,蒙特卡洛方法作為手段的概率序列生成技術。

?

MCMC理論基礎

如果轉移矩陣為P的馬爾科夫鏈平穩狀態和我們研究的概率質量函數(概率密度函數)分布一致,那么我么從任意初始值開始,經過一定次數的概率轉以后,后續的轉移值組成的序列必然服從馬爾科夫平穩狀態分布,也就是服從我們研究的概率分布,這樣就生成了我們研究的概率分布的模擬數據序列。

對于任意初始值X0,經過n次概率轉移后,生成值符合平穩狀態分布,并且后續概率轉移始終符合平穩狀態分布,所以我們可以認為從第n次開始的轉移值序列符合平穩狀態分布。數學表達如下

1、????????? 初始值為X0,X0通過轉移矩陣P生成馬氏鏈序列。

?

2、????????? 馬氏鏈經過n次轉移后達到平穩狀態。

?

3、????????? 則從第n次開始的轉移序列符合平穩狀態分布。

?

我們用城市化進程中人口轉移模型來闡述一下這個思想的物理意義。我們假設第一代人為農村人。農村人下一代為農村人,第3代為城市人,城市人接下來9代為城市人,第10代為農村人(我們模擬農村人轉化為城市人概率為0.5,城市人轉化為農村人概率為0.1)。如下表,按照這種規律生成的隨機序列農村人城市人比例為1:5,與之前計算的平穩分布17:83基本相等。實際上該模型下的馬氏鏈平穩條件為:0.5 * 農村人 = 0.1 * 城市人,可以推測出農村人 : 城市人 =? 1 : 5,與我們的模擬是一致的。

我們已經知道,使馬爾科夫鏈的平穩狀態等同于我們研究的概率分布,就可以構造出符合該概率分布的隨機序列?,F在的問題是如何構造出這樣的馬爾科夫鏈,使得其穩定分布等于我們研究的概率分布。

?

細致平穩條件

如下更強的馬爾科夫鏈穩定狀態定理可以解決這個問題

定義顯而易見,從任意狀態i轉移到狀態j的速率等于從狀態j轉移到狀態i的速率,則狀態轉移穩定。城市化進程的例子充分說明了這一點。定理中π分布就是我們研究的概率分布,我們構造出P,則構造出了穩定狀態滿足π分布馬爾科夫鏈。

?

算法實現

我們隨機初始化一個轉移矩陣Q(比如均勻分布),q(i, j)表示從狀態i轉移到狀態j的概率。一般情況下Q顯然不滿足細致平穩條件,即

p(i)q(i, j) != p(j)q(j, i)

我們構造α(i, j)與α(j, i),使等式成立,即

?

其中

α(i, j) = p(j)q(j, i) α(j, i) = p(i)q(i, j)

這樣,我們通Q與α,構造了一個符合細致平穩條件的Q’。

Q一般來說是我們熟悉的概率分布,計算機易于模擬,但是Q’怎么模擬呢?在構造Q’的過程中,我們引入的α(i, j)稱作接受率,我們生成一個符合Q分布的狀態后,再以α(i, j)的概率來接受狀態轉移。(實際上q(j, i)α(i, j)就是轉移矩陣Q’中狀態i轉移到j的概率,我們以α(i, j)接受狀態轉移就是在進行乘以轉移矩陣Q’運算)

MCMC算法如下

?

上述算法還有一個小缺陷,接受率α(i, j)可能較小,導致狀態轉移概率太小,收斂較慢。實際上,對于細致平穩條件,等式兩邊同時乘以一個倍數,也是成立的。于是我們把細致平穩條件改造為

p(i)q(i, j) α(i, j)/ α(j, i) = p(j)q(j, i)

則可以用如下接受率進行狀態轉移

?

改進后的MCMC算法如下

?

?

?

參考:

https://www.jianshu.com/p/28d32aa7cc45

《LDA數學八卦》

轉載于:https://www.cnblogs.com/coshaho/p/9743500.html

總結

以上是生活随笔為你收集整理的MCMC算法深入理解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。