蒙地卡羅-馬可夫鏈法 (MCMC)

機率統計

教學錄影

數學符號

數學基礎

排列組合

機率統計簡介

機率

機率公理

隨機變數

連續測度

單一分布

條件機率

聯合分布

貝氏定理

動差生成函數

特徵函數

機率法則匯總

離散分布

二項分布

多項分布

負二項分布

幾何分布

超幾何分布

布瓦松分布

連續分布

均勻分布

常態分布

Gamma 分布

指數分布

卡方分布

柯西分布

Weibull 分布

T 分布

F 分布

Beta 分布

多維分布

統計

抽樣

敘述統計

推論統計

中央極限定理

估計方法

單組樣本估計

兩組樣本估計

檢定方法

單組樣本檢定

兩組樣本檢定

平均値的推論

變異數的推論

無母數推論

迴歸分析

變異數分析

實驗設計

因子實驗

品質管制

時間序列

數據分類

統計定理匯總

統計情況分類

計算統計

蒙地卡羅法

最大似然法則

假說與學習

EM 算法

簡單貝氏分類

貝氏網路

隨機過程

馬可夫鏈

蒙地卡羅馬可夫

資源

範例

投影片

教學錄影

練習題

考題解答

訊息

相關網站

參考文獻

最新修改

簡體版

English

蒙地卡羅算法

利用亂數隨機抽樣的方式以計算某種解答的演算法,被稱為蒙地卡羅演算法,其中最簡單的方法是直接取樣算法。

舉例而言,假如我們不知道半徑為 1 的圓形面積,那麼就可以利用亂數隨機取樣 1百萬個 X=random[-1…1], Y=random[-1…1] 之間的的值,然後看看有多少點落在 $x^2 + y^2 <=1$ 的範圍之內 P(in circle)。最後利用 4 * P(in circle) 就可以計算出該圓形的面積。

蒙地卡羅法除了用來計算某些曲線或形狀的面積,也可以用來逼近某些聯合隨機變數 $P(x_1, ..., x_n)$ ,像是利用 Gibbs Sampling 程序計算條件獨立下的聯合分布情況,或者利用 Metropolis Hasting 程序計算貝氏網路當中聯合機率分布的值。

貝氏網路 (Bayesian Network)

貝氏網路是用來描述機率因果關係的網路,對於一個已知的貝氏網路 (Bayesian Network),其中的某個樣本 $(x_1, ..., x_n)$ 的機率可以用下列算式表示

(1)
\begin{align} P(x_1, ..., x_n) = \prod_{i=1}^{n} P(x_i | parent(X_i)) \end{align}

貝氏網路也可以被視為某種隱馬可夫模型,其中某些節點是可觀察節點 (X),某些節點是隱含節點 (Z) ,我們可以透過蒙地卡羅馬可夫算法計算某個分布 $P(x_1, ..., x_n)$ 的機率值。

以蒙地卡羅馬可夫算法 (Markov Chain Monte Carlo) 計算貝氏網路的聯合機率分布

簡稱 MCMC 法,此方法透過對前一事件進行隨機改變而產生事件樣本,其演算法如下所示。

Algorithm MCMC-Ask(X,e,bn, N) returns an estimate of P(X|e)
  local variables : N[X], a vector of counts over X, initially zero
                            Z, the nonevidence variables in bn
                            x, the current state of the network, initially copied from e.
  initialize x with random values for the variable for the variables in Z
  for j=1 to N do
      N[x] = N[x] + 1 where x is the value of X in x
      for each Zi in Z do
         sample the value of Zi in x from P(Zi | mb(Zi)) given the value of MB(Zi) in X
  return Normalize(N[X])

參考文獻

  1. 網路電子書 , Handbook of Computational Statistics, J.E. Gentle et. al. ISBN-10: 3540404643
  2. Persi Diaconis, The Markov Chain Monte Carlo Revolution
  3. Stuart Russell and Peter Norvig, Artificial Intelligence: A Modern Approach (Second Edition)

Monte Carlo Markov Chain

  1. http://en.wikipedia.org/wiki/Hidden_Markov_model
  2. http://en.wikipedia.org/wiki/Metropolis%E2%80%93Hastings_algorithm
  3. http://en.wikipedia.org/wiki/MCMC
  4. http://en.wikipedia.org/wiki/Viterbi_algorithm

Viterbi Algorithm

  1. A Gentle Introduction to Dynamic Programming and the Viterbi Algorithm
  2. A tutorial for a Hidden Markov Model toolkit (implemented in C) that contains a description of the Viterbi algorithm
  3. An implementation of the Viterbi algorithm in Perl
  4. An implementation of a variant of the Viterbi algorithm in Python
  5. An implementation of the demonstrated Viterbi algorithm in C#
  6. An implementation of the demonstrated Viterbi algorithm in C++
  7. An implementation of the demonstrated Viterbi algorithm in C++ and Boost
  8. An implementation of the demonstrated Viterbi algorithm in Java
  9. An implementation of the demonstrated Viterbi algorithm in C and assembly

Facebook

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License