Metropolis-Hastings算法:《Equation of state calculationsby fast computing machines》
吉布斯抽样算法:《Stochastic relaxation, Gibbs distribution and the Bayesian restoration of images》
电信保温杯笔记——《统计学习方法(第二版)——李航》
本文是对原书的精读,会有大量原书的截图,同时对书上不详尽的地方进行细致解读与改写。
在介绍前,我们需要先引入问题的背景:
为了得到满足概率密度函数(PDF:probability density function )分布的随机采样值,人们想了一种方法,这种方法就是逆变换采样(inverse transform sampling),先求出该PDF分布的累积分布函数(CDF:cumulative distribution function ),CDF取值是[0,1]且单调递增,如下图。
我们知道均匀采样是很容易实现的,在[0,1]随机取一个值,就能在CDF曲线上找到对应的x,这个过程就实现了满足PDF的随机采样,因为PDF较大的x轴区间,它对应的CDF曲线上的值域[a,b]就越大,那么在[0,1]上均匀采样时,取值就很容易落入[a,b]中,相应地也很容易获取x轴该区间上的值,于是就实现了满足PDF分布的随机采样。
上述过程的数学过程就是,知道PDF,求CDF函数F(x),然后求F(x)的反函数 u = F − 1 ( x ) u=F^{-1}(x) u=F−1(x),当在[0,1]上随机采样 u 0 u_0 u0,就能通过反函数 u = F − 1 ( x ) u=F^{-1}(x) u=F−1(x)求得 x 0 x_0 x0。
实际上,很多PDF并不是那么容易求出它的CDF函数的,而CDF的反函数更是不好求。
于是就有人提出了下面蒙特卡罗法中的接受拒绝采样法。下面蒙特卡罗法只有接受拒绝采样法比较符合介绍的主线,但碍于书上对整个蒙特卡罗法做了描述,所以保留了。看完接受拒绝采样法可以直接看马尔科夫链。
蒙特卡罗法可以粗略地分成两类:
但归根到底,还是用于得到满足PDF分布的随机采样值。
蒙特卡罗法实现的随机抽样是,假设概率分布的定义已知,通过抽样获得概率分布的随机样本。
接受的点会作为随机采样点。
可以参考【数之道 22】巧妙使用"接受-拒绝"方法,玩转复杂分布抽样
这是由于上述缺点,于是就有人提出了马尔科夫链蒙特卡罗法来解决抽样效率低的问题。在介绍马尔可夫链蒙特卡罗法前,需要先介绍马尔科夫链。看完这里可以直接看马尔科夫链了。
蒙特卡罗法求解某种随机分布的特征数就是,通过随机抽样,近似计算随机分布的某个特征数,如期望,积分。
可以参考电信保温杯笔记——《统计学习方法(第二版)——李航》第10章 隐马尔可夫模型
这些定义与性质的介绍,最后是为了介绍可逆马尔科夫链中的细致平稳方程。马尔科夫链蒙特卡罗法是基于它的。
马尔可夫链可能存在唯一平稳分布,无穷多个平稳分布,或不存在平稳分布。当离散状态马尔可夫链有无穷个状态时,有可能没有平稳分布。
以下介绍离散状态马尔可夫链的性质。可以自然推广到连续状态马尔可夫链。
这里感觉书上写的是错的,应该参考《随机过程》中的常返性定义。
有限步数,回到在自身状态的概率为1,就是说总会回来的。常返性形容的对象是自身回到自身,而不可约性形容的对象是一个状态到另一个状态。
利用细致平稳方程,我们就能构造一条具有平稳分布 π \pi π的马尔科夫链。如果该平稳分布 π \pi π就是我们已知的PDF函数 p ( x ) p(x) p(x),那么马尔科夫链生成的一系列取值就会符合PDF,也就得到满足PDF的随机采样,这就是下面要介绍的马尔可夫链蒙特卡罗法。
本节叙述Metropolis-Hastings 算法,是马尔可夫链蒙特卡罗法的代表算法。
如果要构造一条平稳分布是p(x)的马尔科夫链,那么可以定义一个转移核或转移矩阵,使得细致平稳方程成立,此时得到的可逆马尔科夫链的平稳分布就是p(x)。下面过程就是介绍如何构造转移核。看完下面的定义会在详细解释一下建议分布和接受分布。
如果要马尔科夫链的平稳分布就是 p ( x ) p(x) p(x),那么就需要转移核 p ( x , x ′ ) p(x,x') p(x,x′)满足公式(19.41),也就是满足 p ( x ) p ( x , x ′ ) = p ( x ′ ) p ( x ′ , x ) p(x)p(x,x')=p(x')p(x',x) p(x)p(x,x′)=p(x′)p(x′,x)。公式(19.41)说的是先出现 x x x后出现 x ′ x' x′的概率等于先出现 x ′ x' x′后出现 x x x的概率,如果单纯只有建议分布而没有接受分布来辅助构成细致平稳方程或者说是公式(19.41),此时构造出来的先出现 x x x后出现 x ′ x' x′的概率为 p ( x ) p ( x , x ′ ) = p ( x ) q ( x , x ′ ) p(x)p(x,x')=p(x)q(x,x') p(x)p(x,x′)=p(x)q(x,x′),并不等于构造出来的先出现 x ′ x' x′后出现 x x x的概率 p ( x ′ ) p ( x ′ , x ) = p ( x ′ ) q ( x ′ , x ) p(x')p(x',x)=p(x')q(x',x) p(x′)p(x′,x)=p(x′)q(x′,x)。有了接受分布来辅助构成细致平稳方程以后,当 p ( x ) q ( x , x ′ ) > p ( x ′ ) q ( x ′ , x ) p(x)q(x,x')>p(x')q(x',x) p(x)q(x,x′)>p(x′)q(x′,x)时,接受分布的作用就是用来降低 p ( x ) q ( x , x ′ ) p(x)q(x,x') p(x)q(x,x′)的值使 p ( x ) p ( x , x ′ ) = p ( x ′ ) p ( x ′ , x ) p(x)p(x,x')=p(x')p(x',x) p(x)p(x,x′)=p(x′)p(x′,x);当 p ( x ) q ( x , x ′ ) < p ( x ′ ) q ( x ′ , x ) p(x)q(x,x') p(x)q(x,x′)<p(x′)q(x′,x)
p ( x 1 , . . . , x j ∣ x j + 1 , . . . , x k ) p(x_1,...,x_j|x_{j+1},...,x_k) p(x1,...,xj∣xj+1,...,xk)是满条件分布, p ( x 1 , . . . , x j ∣ x j + 1 , . . . , x k − 1 ) p(x_1,...,x_j|x_{j+1},...,x_{k-1}) p(x1,...,xj∣xj+1,...,xk−1)不是满条件分布。
p ( x I ∣ x − I ) = p ( x I , x − I ) p ( x − I ) = p ( x ) ∫ p ( x I , x − I ) d x I = p ( x ) ∫ p ( x ) d x I ∝ P ( x ) ( 19.45 ) p(x_I|x_{-I}) = \frac{ p(x_I, x_{-I}) }{ p(x_{-I}) } = \frac{ p(x) }{ \int p(x_I, x_{-I})\, dx_I } = \frac{ p(x) }{ \int p(x)\, dx_I } \propto P(x) \quad (19.45) p(xI∣x−I)=p(x−I)p(xI,x−I)=∫p(xI,x−I)dxIp(x)=∫p(x)dxIp(x)∝P(x)(19.45)
特殊在于它的建议分布为:
q ( x , x ′ ) = p ( x j ′ ∣ x − j ) q(x,x') = p(x'_j|x_{-j}) q(x,x′)=p(xj′∣x−j)
p ( α i ∣ α − i , θ , z , y ) = p ( α i ∣ α − i , θ ) = p ( α i , α − i , θ ) p ( α − i , θ ) = p ( α , θ ) p ( α − i , θ ) = p ( θ ∣ α ) p ( α ) p ( α − i , θ ) ∝ p ( θ ∣ α ) p ( α ) ( 19.53 ) \begin{aligned} p(\alpha_i | \alpha_{-i}, \theta , z, y) &= p(\alpha_i | \alpha_{-i}, \theta ) = \frac{ p( \alpha_i,\alpha_{-i}, \theta ) } { p(\alpha_{-i}, \theta ) } \\ &= \frac{ p( \alpha, \theta ) } { p(\alpha_{-i}, \theta ) } = \frac{ p( \theta | \alpha ) p(\alpha) } { p(\alpha_{-i}, \theta ) } \propto p( \theta | \alpha ) p(\alpha) \quad(19.53) \end{aligned} p(αi∣α−i,θ,z,y)=p(αi∣α−i,θ)=p(α−i,θ)p(αi,α−i,θ)=p(α−i,θ)p(α,θ)=p(α−i,θ)p(θ∣α)p(α)∝p(θ∣α)p(α)(19.53)
【数之道 22】巧妙使用"接受-拒绝"方法,玩转复杂分布抽样
蒙特卡洛(Monte Carlo, MCMC)方法的原理和应用
hktxt /Learn-Statistical-Learning-Method
Dod-o /Statistical-Learning-Method_Code