这些方法都依赖于我们知道输入和输出,但只是不知道这个映射 f f f。很多时候需要计算关于 f f f的积分,逐个带点显然太费劲了。
蒙特卡罗抽样方法
假设我们要求积分 h ( θ ) = ∫ E h ( θ ) π ( θ ∣ x ) d θ h(\theta)=\int_E h(\theta)\pi(\theta | x)d\theta h(θ)=∫Eh(θ)π(θ∣x)dθ
其中 π ( θ ∣ x ) \pi(\theta | x) π(θ∣x)是某个后验分布
而h很难求出显式表达式,这时候可利用抽样方法对上式子进行近似。
整理一下知道:
h = ∫ E h ( θ ) π ( θ ∣ x ) d θ = E θ ∼ π ( θ ∣ x ) [ h ( θ ∣ x ) ] h=\int_E h(\theta)\pi(\theta | x)d\theta=E_{\theta \sim \pi(\theta | x)}[h(\theta | x)] h=∫Eh(θ)π(θ∣x)dθ=Eθ∼π(θ∣x)[h(θ∣x)]
那么可利用大数定理,当从 θ ∼ π ( θ ∣ x ) \theta \sim \pi(\theta | x) θ∼π(θ∣x)抽样足够多的 m m m,就有:
h ˉ = 1 M ∑ i = 1 m h ( θ i ) = ∫ E h ( θ ) π ( θ ∣ x ) d θ \bar{h}=\frac{1}{M}\sum_{i=1}^mh(\theta_i)=\int_E h(\theta)\pi(\theta | x)d\theta hˉ=M1i=1∑mh(θi)=∫Eh(θ)π(θ∣x)dθ
特别的,当 π ( θ ∣ x ) = 1 \pi(\theta | x)=1 π(θ∣x)=1退化为黎曼积分。
例
特别的,若要求积分 h ′ = ∫ E h ( θ ) d θ h'=\int_E h(\theta)d\theta h′=∫Eh(θ)dθ,那么可自行构造一个分布,
h ′ = ∫ E h ′ ( θ ) p ( θ ∣ x ) ⋅ p ( θ ∣ x ) d θ h'=\int_E \frac{h'(\theta)}{p(\theta | x)} ·p(\theta | x)d\theta h′=∫Ep(θ∣x)h′(θ)⋅p(θ∣x)dθ
此时记 h ′ ( θ ) = h ( θ ) p ( θ ∣ x ) h'(\theta)=h(\theta){p(\theta | x)} h′(θ)=h(θ)p(θ∣x)即可。
于是对于这类例子,从 x ∼ p ( x ) x\sim p(x) x∼p(x)中采样出n个样本 x 1 , x 2 , . . . , x n x_1, x_2, ..., x_n x1,x2,...,xn,然后有:
∫ E f ( x ) d x = 1 N ∑ i = 1 n f ( x i ) p ( x i ) \int_E f(x)dx=\frac{1}{N}\sum_{i=1}^n \frac{f(x_i)}{p(x_i)} ∫Ef(x)dx=N1i=1∑np(xi)f(xi)
蒙特卡罗重要性采样
由于对于一些分布存在严重的拖尾效应或聚集问题。导致采样出来的样本质量很低。
所以可尝试从与后验分布近似的简单分布进行采样。但其实并没有解决问题。
马尔可夫蒙特卡罗方法
事实上很难找与后验分布近似的重要性函数,所以还是不得不从复杂的后验分布采样。
但前面提到,很难直接对其进行采样。但可以通过构造一个马尔科夫链,使其平稳分布就是该后验分布,从而就实现了从复杂的后验分布中采样,进一步可以计算相关的积分。
特点是太慢了。