贝叶斯采样方法
对于无法解析求标准的积分、在高维空间的数值积分又行不通的问题,下文介绍一些计算方法。所期待的计算技术致力于从后验分布中将样本采集出来,所有的推断均可通过这些样本的使用而得出。
1. 后验期望
设从后验分布 p ( θ ∣ D ) p(\theta|D) p(θ∣D) 中采集到样本 { θ 1 , . . . , θ N s } \lbrace \theta^1,...,\theta^{N_s} \rbrace {
θ1,...,θNs} ,然后函数 h ( θ ) h(\theta) h(θ) 的后验期望分布用如下样本均值来近似:
E [ h ( θ ) ∣ D ] ≈ 1 N S ∑ t = 1 N S h ( θ t ) E[h(\theta)|D]\approx \frac{1}{N_S}\sum_{t=1}^{N_S}h(\theta^t) E[h(θ)∣D]≈NS1t=1∑NSh(θt)
很多量例如概率值都可以根据函数的后验期望给予表述。设 θ \theta θ 的后验密度函数为 p ( θ ∣ D ) p(\theta|D) p(θ∣D) 。对于某一区域 A A A ,令 h ( θ ) = I ( θ ∈ A ) h(\theta)=I(\theta\in A) h(θ)=I(θ∈A),其中 I I I 是指示函数
E [ I ( θ ∈ A ) ∣ D ] = ∫ θ I ( θ ∈ A ) p ( θ ∣ D ) d θ = ∫ θ ∈ A p ( θ ∣ D ) d θ E[I(\theta\in A)|D]=\int_{\theta}I(\theta\in A)p(\theta|D)d\theta\\=\int_{\theta\in A}p(\theta|D)d\theta E[I(θ∈A)∣D]=∫θI(θ∈A)p(θ∣D)dθ=∫θ∈Ap(θ∣D)dθ
即 E [ I ( θ ∈ A ) ∣ D ] E[I(\theta\in A)|D] E[I(θ∈A)∣D] 是 θ \theta θ 位于区域 A A A 中的后验概率。对这一概率的近似采样是
E [ I ( θ ∈ A ) ∣ D ] ≈ 1 N S ∑ t = 1 N S I ( θ t ∈ A ) E[I(\theta\in A)|D]\approx \frac{1}{N_S}\sum_{t=1}^{N_S}I(\theta^t\in A) E[I(θ∈A)∣D]≈NS1t=1∑NSI(θt∈A)
2. 贝叶斯分类器的采样类型
p ( x ∣ ω j , D j ) = ∫ p ( x ∣ θ j ) p ( θ j ∣ D j ) d θ j = E θ j ∣ D j [ p ( x ∣ θ j ) ] ≈ 1 N S ∑ t = 1 N S p ( x ∣ θ j t ) p(x|\omega_j,D_j)=\int p(x|\theta_j)p(\theta_j|D_j)d\theta_j\\=E_{\theta_j|D_j}[p(x|\theta_j)]\\\approx \frac{1}{N_S}\sum_{t=1}^{N_S}p(x|\theta_j^t) p(x∣ωj,Dj)=∫p(x∣θj)p(θj∣Dj)dθj=Eθj∣Dj[p(x∣θj)]≈NS1t=1∑NSp(x∣θjt)
贝叶斯分类器就是当 g i > g j , j = 1 , . . . , C , j ≠ i g_i>g_j,j=1,...,C,j\ne i gi>gj,j=1,...,C,j=i 时,将 x x x 归入 ω i \omega_i ωi 类,其中
g i = ( ∑ t = 1 N S p ( x ∣ θ i t ) ) p ( ω i ) g_i=(\sum_{t=1}^{N_S}p(x|\theta_i^t))p(\omega_i) gi=(t=1∑NSp(x∣θit))p(ωi)
3. 拒绝采样
有一种简单的采样方法是对一般的分布拒绝采样,尽管这样做常常很低效。
- 拒绝采样算法
-
指定一个密度函数 s ( θ ) s(\theta) s(θ) ,该密度函数与 f ( θ ) = g ( θ ) / ∫ g ( θ ′ ) d θ ′ f(\theta)=g(\theta)/\int g(\theta')d\theta' f(θ)=g(θ)/∫g(θ′)dθ′ 具有相同的支集,且 g ( θ ) / s ( θ ) g(\theta)/s(\theta) g(θ)/s(θ) 有界。
-
设 g ( θ ) / s ( θ ) g(\theta)/s(\theta) g(θ)/s(θ) 的上界是 A A A。
-
重复一下过程直到一个 θ \theta θ 被接受:
- 从已知分布 s ( θ ) s(\theta) s(θ) 中采一个点 θ \theta θ。
- 从位于 [ 0 , 1 ] [0,1] [0,1] 上的均匀分布中采得 u u u 。
- 如果 A u ⩽ g ( θ ) / s ( θ ) Au\leqslant g(\theta)/s(\theta) Au⩽g(θ)/s(θ) ,则接受 θ \theta θ 。
-
4. 均匀比方法
均匀比方法可以用于从单变量分布中获取样本。假定需要从概率密度函数 f ( θ ) = g ( θ ) / ∫ g ( θ ′ ) d θ ′ f(\theta)=g(\theta)/\int g(\theta')d\theta' f(θ)=g(θ)/∫g(θ′)dθ′ 的分布中抽取样本,令 D D D 表示区域 R 2 R^2 R2 ,满足
D = { ( u , v ) ; 0 ⩽ u ⩽ g ( v / u ) } D=\lbrace (u,v);0\leqslant u\leqslant \sqrt{g(v/u)} \rbrace D={
(u,v);0⩽u⩽g(v/u)}
然后,从 D D D 中均匀采一个点,并取 θ = v / u \theta=v/u θ=v/u ,即为从与 g ( θ ) g(\theta) g(θ) 成比例关系的密度分布 f ( θ ) f(\theta) f(θ) 中给出一个样本。
5. 重要性采样
重要性采样提供出一种方法,该方法用这些样本在于 f ( θ ) f(\theta) f(θ) 成比例的密度函数的又一个分布上论断。如果两个分布的支集相同,重要性采样的结果是:当 θ \theta θ 服从 f ( θ ) f(\theta) f(θ) 分布时,函数 h ( θ ) h(\theta) h(θ) 的期望可近似为
E f [ h ( θ ) ] ≈ 1 ∑ t = 1 N S w t ∑ t = 1 N S w t h ( θ t ) E_f[h(\theta)]\approx\frac{1}{\sum_{t=1}^{N_S}w^t}\sum_{t=1}^{N_S}w^th(\theta^t) Ef[h(θ)]≈∑t=1NSwt1t=1∑NSwth(θt)
其中, w t w^t wt 是一组非归一化的重要性权值,定义如下:
w t = f ( θ t ) / q ( θ t ) , t = 1 , . . . , N S w^t=f(\theta^t)/q(\theta^t),t=1,...,N_S wt=f(θt)/q(θt),t=1,...,NS
分布 q ( θ ) q(\theta) q(θ) 称为重要性采样建议分布。
-
从先验分布中采集后验分布
考虑这样一种特例:由 f ( θ ) f(\theta) f(θ) 所定义的分布是后验分布,产生于似然函数 p ( x ∣ θ ) p(x|\theta) p(x∣θ) 和先验分布 p ( θ ) p(\theta) p(θ) ,先验分布 p ( θ ) p(\theta) p(θ) 由 q ( θ ) q(\theta) q(θ) 定义。
w t = p ( x ∣ θ t ) p ( θ t ) p ( θ t ) = p ( x ∣ θ t ) w^t=\frac{p(x|\theta^t)p(\theta^t)}{p(\theta^t)}=p(x|\theta^t) wt=p(θt)p(x∣θt)p(θt)=p(x∣θt)
因此,我们找到了从先验分布中采集样本,用似然函数权衡样本,进而推断出后验分布的一种方法。
如果,很容易从由 q ( θ ) q(\theta) q(θ) 所定义的分布中采集到样本,则算法的效果会有所提升,但直接从由 f ( θ ) f(\theta) f(θ) 所定义的分布中采集样本并非易事。在样本集规模一定时, q ( θ ) q(\theta) q(θ) 越接近 f ( θ ) f(\theta) f(θ) ,估计的准确性越高。重要性采样的权值出现很大波动时,所做的估计可能不可靠,因为如果权值过大就会出现退化问题,这将导致所做的估计仅仅依据最大权值的那些样本。
-
用于贝叶斯分类器
就分类问题,对 ω j \omega_j ωj 类的预测密度表示为
p ( x ∣ ω j , D j ) = E θ j ∣ D j [ p ( x ∣ θ j ) ] p(x|\omega_j,D_j)=E_{\theta_j|D_j}[p(x|\theta_j)] p(x∣ωj,Dj)=Eθj∣Dj[p(x∣θj)]在近似重要性采样情况下,如果 f i ( θ j ) f_i(\theta_j) fi(θj) 与后验密度函数 p ( θ j ∣ D j ) p(\theta_j|D_j) p(θj∣Dj) 成比例,样本 { θ j 1 , . . . , θ j N S } \lbrace \theta_j^1,...,\theta_j^{N_S} \rbrace { θj1,...,θjNS} 源于与 q j ( θ j ) q_j(\theta_j) qj(θj) 成比例的概率密度函数的分布,则
p ( x ∣ ω j , D j ) ≈ 1 ∑ t = 1 N S w j t ∑ t = 1 N S w j t p ( x ∣ θ j t ) p(x|\omega_j,D_j)\approx\frac{1}{\sum_{t=1}^{N_S}w_j^t}\sum_{t=1}^{N_S}w_j^tp(x|\theta_j^t) p(x∣ωj,Dj)≈∑t=1NSwjt1t=1∑NSwjtp(x∣θjt)
w j t = f j ( θ j t ) / q j ( θ j t ) = p ( D j ∣ θ j t ) p ( θ j t ) q j ( θ j t ) , t = 1 , . . . , N S w_j^t=f_j(\theta_j^t)/q_j(\theta_j^t)=\frac{p(D_j|\theta_j^t)p(\theta_j^t)}{q_j(\theta_j^t)},t=1,...,N_S wjt=fj(θjt)/qj(θjt)=qj(θjt)p(Dj∣θjt)p(θjt),t=1,...,NS
此时的贝叶斯分类器为:
g i = ( 1 ∑ t = 1 N S w j t ∑ t = 1 N S w j t p ( x ∣ θ j t ) ) p ( ω i ) g_i=(\frac{1}{\sum_{t=1}^{N_S}w_j^t}\sum_{t=1}^{N_S}w_j^tp(x|\theta_j^t))p(\omega_i) gi=(∑t=1NSwjt1t=1∑NSwjtp(x∣θjt))p(ωi)
分类标准同前所述。
实际上,此类的计算方法理解起来并不困难。就像试验一样,通过实验结果的均值来判断试验概率。