蒙特卡洛法(Monte carlo method),也稱為統計模擬方法,通過從概率模型的隨機抽樣進行近似數值計算的方法。
它要解決的問題是,假設概率分布的定義已知,通過抽樣獲得概率分布的隨機樣本,並通過得到的隨機樣本對概率分布的特征進行分析。故這種方法的核心即是隨機抽樣。
一般的蒙特卡洛法有直接抽樣法、接受-拒絕抽樣法、重要性抽樣法等。
接受-拒絕抽樣法(accept-reject sampling method),適合於概率密度函數復雜,比如其概率密度函數有多個變量,各變量相互不獨立,密度函數形式復雜,從而導致其不能直接進行抽樣的情況。
假設p(x)不能直接抽樣,接受-拒絕法先找一個可以直接抽樣的分布q(x),稱為建議分布,且q(x)的c倍一定大於等於p(x)。按照q(x)進行抽樣,假設得到結果是x*,按的比例隨機決定是否接受x*。
圖1-1 接受-拒絕抽樣法
蒙特卡洛法還可以用於數學期望估計。假設有隨機變量x,其概率密度函數為p(x),f(x)為定義在X上的函數,目標是求函數f(x)關於密度函數p(x)的數學期望
做法是按照概率分布p(x)獨立地抽取n個樣本,之后計算函數f(x)的樣本均值
作為數學期望的近似值。當抽樣的樣本容量增大時,樣本的均值以概率1收斂於數學期望。
蒙特卡洛法還可以用於定積分的近似計算,稱為蒙特卡洛積分法。假設有一函數h(x),目標是計算該函數的積分
如果能夠將h(x)分解成一個函數f(x)和一個概率密度函數p(x)的乘積的形式,那么就有
這樣h(x)的積分就可以表示成一個函數f(x)關於一個概率密度函數p(x)的數學期望。而函數的數學期望又可以通過函數的樣本均值估計。那么樣本均值就能來近似地計算積分了。
例如,用蒙特卡洛積分法求
解: 令
即假設隨機變量x在(0,1)區間遵循均勻分布。
使用蒙特卡洛積分法,在(0,1)區間按照均勻分布抽取10個隨機樣本,計算樣本的函數均值
樣本 |
X1 |
X2 |
X3 |
X4 |
X5 |
X6 |
X7 |
X8 |
X9 |
X10 |
f(x) |
0.043 |
0.045 |
0.054 |
0.059 |
0.076 |
0.094 |
0.111 |
0.111 |
0.115 |
0.124 |
表1-1 10個隨機樣本對應f(x)的值
故原式子的近似積分為
馬爾可夫鏈的一些定義和性質
設有馬爾可夫鏈,其狀態空間
,轉移概率矩陣
。
平穩分布
如果存在狀態空間上的一個分布
使得
生成,則稱
為馬爾可夫鏈
的平穩分布。
也即,以該平穩分布作為初始分布,面向未來進行隨機轉給轉移,之后的任意一個時刻的狀態分布都是該平穩分布。
分布為馬爾科夫鏈平穩分布充分必要條件為
是下列方程組的解:
例如有圖1-2 的馬爾可夫鏈,其轉移概率矩陣為
求其平穩分布。
圖1-2 實例馬爾可夫鏈
解:設平穩分布為,有方程組得
解方程組,得到唯一的平穩分布
不可約性
如果時刻0從狀態j起,時刻t為狀態i的概率大於0,,則稱此馬爾可夫鏈是不可約的。
也即,一個不可約的馬爾可夫鏈,從任意狀態出發,經過充分長的時間后,可以到達任意狀態。
而下圖的馬爾可夫鏈是可約的,
圖1-3 可約的馬爾可夫鏈
通過計算,該馬爾可夫鏈的平穩分布為,表明此鏈,轉移到狀態3后,就在該狀態上循環跳轉,不能到達狀態1和狀態2。
非周期性
如果一馬爾可夫鏈在時刻0從狀態i出發,時刻t返回到該狀態i的所有時間長 的最大公約數是1,則稱此馬爾可夫鏈是非周期的。
也即,一個非周期性的馬爾可夫鏈,不存在一個狀態,從這個狀態出發,再返回到這個狀態時所經歷的時間長呈一定的周期性。
而下圖的馬爾可夫鏈是周期的,
圖1-4 周期的馬爾可夫鏈
通過計算,該馬爾可夫鏈的平穩分布為,表明此鏈,從每個狀態出發,返回該狀態的時刻都是3的倍數,具有周期性,最總停留着每個狀態的概率都為1/3。
正常返性
定義概率為馬爾可夫鏈在時刻0從狀j出發,時刻t首次轉移到該狀態i的概率,即
,若對所有的狀態i,j都滿足
,則稱此馬爾可夫鏈是正常返的。
也即,一個正常返的馬爾可夫鏈,其中任意一個狀態,從其他任意一個狀態出發,當時間趨近於無窮是,首次轉移到這個狀態的概率不為0。
可逆馬爾可夫鏈
如果任意狀態i,j,對任意一個時刻t滿足
則稱此馬爾可夫鏈為可逆馬爾可夫鏈,上面的等式組也稱細致平衡方程。
也即,一可逆馬爾可夫鏈,以平穩分布作為初始分布,進行隨機狀態轉移,無論是面向未來還是面向過去,任何一個時刻的狀態分布都是該平穩分布。
而下圖的馬爾可夫鏈是不可逆的,
圖1-5 不可逆的馬爾可夫鏈
通過計算,該馬爾可夫鏈的平穩分布為,不滿足細致平衡方程。
而通過分析和推理,能得到:
- 不可約且非周期的有限狀態馬爾可夫鏈,有唯一平穩分布存在
- 不可約、非周期正常返的馬爾可夫鏈,有唯一平穩分布存在
- 可逆的馬爾可夫鏈一定有唯一平穩分布存在