Hexo

凡事预则立,不预则废


  • Home

  • Tags

  • Archives

  • Navigation

  • Search

ML——EM算法

期望最大化(Exception Maximization Algorithm)EM算法


不同教材的不同形式

李航统计学习方法

算法步骤
  • 输入: 观测变量数据Y

  • 输出: 模型(参数 \(\theta\))

  • E步: 计算 \(Q(\theta, \theta^{i})\)
    $$
    \begin{align}
    Q(\theta, \theta^{i}) &= \mathbb{E}_{Z}[logP(Y,Z|\theta)|Y,\theta^{i}] \\
    &= \mathbb{E}_{Z\sim P(Z|Y,\theta^{i})}[logP(Y,Z|\theta)] \\
    &= \sum_{Z} P(Z|Y,\theta^{i})logP(Y,Z|\theta) \\
    &= \sum_{Z} logP(Y,Z|\theta)P(Z|Y,\theta^{i})
    \end{align}
    $$

  • M步: 求使得 \(Q(\theta, \theta^{i})\) 极大化的参数 \(\theta=\theta^{i+1}\)
    $$\theta^{i+1} = \mathop{\arg\max}_{\theta}Q(\theta, \theta^{i})$$

  • 重复E步和M步,直到收敛

  • 理解: \(Q(\theta, \theta^{i})\) 可以理解为 \(Q(\theta|\theta^{i})\),表示在参数 \(\theta^{i}\) 已知的情况下,对数似然函数关于隐变量后验分布的期望函数,函数的参数为 \(\theta\)

隐变量的期望还是分布?

参考博客:https://www.jianshu.com/p/c3ff1ae5cb66

仅考虑隐变量的期望
  • 应用场景为k-means聚类,但是k-means聚类E步求的是最可能的 \(Z\) 值(概率最大的 \(Z\) 值),而不是 \(Z\) 的期望
步骤 具体细节
E步 基于 \(\theta^{i}\) 推断隐变量 \(Z\) 的期望,记为 \(Z^{i}\)
M步 基于已观测变量 \(Y\) 和 \(Z^{i}\) 对参数 \(\theta\) 做极大似然估计,得到 \(\theta^{i+1}\) $$\theta^{i+1}=\mathop{\arg\max}_{\theta}P(Y,Z^{i}\mid\theta)$$
考虑隐变量的分布
  • 应用场景为GMM模型聚类
步骤 具体细节
E步 基于 \(\theta^{i}\) 推断隐变量 \(Z\) 的后验分布 \(P(Z\mid Y,\theta^{i})\)
E步M步均可 基于隐变量的后验分布 \(P(Z\mid Y,\theta^{i})\)
计算对数似然函数 \(logP(Y,Z\mid\theta)\) 关于隐变量 \(Z\) 的后验分布 \(P(Z\mid Y,\theta^{i})\) 的期望 \(Q(\theta,\theta^{i})\)
$$Q(\theta,\theta^{i}) = \mathbb{E}_{P(Z\mid Y,\theta^{i})}logP(Y,Z\mid \theta)$$
M步 基于期望函数 \(Q(\theta, \theta^{i})\),对参数 \(\theta\) 求极值(极大似然估计),得到$$\theta^{i+1}=\mathop{\arg\max}_{\theta}Q(\theta, \theta^{i})=\mathop{\arg\max}_{\theta}\mathbb{E}_{P(Z\mid Y,\theta^{i})}logP(Y,Z\mid \theta)$$
推导
  • 已知数据是观测数据Y,像极大似然法一样,使得似然函数最大化即可,这里为了方便计算使用对数似然

  • 我们的终极目标与极大似然法一样,求一个使得似然函数最大(可能是极大)的参数$$\theta^{\star}=\mathop{\arg\max}_{\theta}L(\theta)$$
    其中
    $$
    \begin{align}
    L(\theta)&=logP(Y|\theta)\\
    &=log\sum_{Z}P(Y,Z|\theta)\\
    &=log\left(\sum_{Z}P(Y|Z,\theta)P(Z|\theta)\right)
    \end{align}
    $$

  • 显然,上述似然函数比较难以求解,非凸,且涉及和(积分或加法)的对数等操作,难以展开(可能还有其他的原因)

  • 所以我们使用EM算法迭代不断逼近原始似然函数的最优解 \(\theta^{\star}\) (注意:我们只能得到局部最优,但是一般来说局部最优也够用了)

  • 可用Jensen不等式得到 \(L(\theta)\) 的下界来作为优化目标不断迭代
    $$
    \begin{align}
    L(\theta)&=log\left(\sum_{Z}P(Y|Z,\theta)P(Z|\theta)\right)\\
    &=log\left(\sum_{Z}P(Z|Y,\theta^{i})\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{i})}\right)\\
    &\geq \sum_{Z}P(Z|Y,\theta^{i})log\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{i})}\\
    &=B(\theta,\theta^{i})
    \end{align}
    $$

  • 由于此时 \(B(\theta, \theta^{i})\) 是 \(L(\theta)\) 的下界(\(B(\theta, \theta^{i})\) 是固定 \(\theta^{i}\) 时关于 \(\theta\) 的凸函数且容易求导,可以求极大值),所以使得前者增大的参数 \(\theta\) 也能使得后者增大,为了使得后者尽可能的增大,我们对前者取极大值

    • 下面的推导基于事实: 消去与 \(\theta\) 无关的项,极大值点(\(\theta^{i+1}\))不变

$$
\begin{align}
\theta^{i+1} &= \mathop{\arg\max}_{\theta}B(\theta,\theta^{i})\\
&=\mathop{\arg\max}_{\theta}\left( \sum_{Z}P(Z|Y,\theta^{i})log\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{i})}\right)\\
&=\mathop{\arg\max}_{\theta}\left( \sum_{Z}P(Z|Y,\theta^{i})logP(Y|Z,\theta)P(Z|\theta)-\sum_{Z}P(Z|Y,\theta^{i})logP(Z|Y,\theta^{i})\right)\\
&= \mathop{\arg\max}_{\theta}\left( \sum_{Z}P(Z|Y,\theta^{i})logP(Y|Z,\theta)P(Z|\theta)\right)\\
&=\mathop{\arg\max}_{\theta}Q(\theta,\theta^{i})
\end{align}
$$

  • 由上式可知,我们的EM算法步骤中E步和M步是正确的
  • 问题:推导第二步中为什么选择 \(P(Z|Y,\theta^{i})\) 而不是其他分布呢?
    • 解答: \(B(\theta, \theta^{i})\) 和 \(L(\theta)\) 什么时候相等呢?(前面推导中Jensen不等式什么时候能取等号呢?)
    • Jensen不等式取等号当且仅当Jensen不等式中函数的值为常数,此处函数的值为 \(log\frac{P(Y,Z|\theta)}{Q(Z)}\)
      $$
      \begin{align}
      L(\theta)&=log\left(\sum_{Z}P(Y,Z|\theta)\right)\\
      &=log\left(\sum_{Z}Q(Z)\frac{P(Y,Z|\theta)}{Q(Z)}\right)\\
      &\geq \sum_{Z}Q(Z)log\frac{P(Y,Z|\theta)}{Q(Z)}\\
      \end{align}
      $$
    • 不等式中当且仅当 \(log\frac{P(Y,Z|\theta)}{Q(Z)}\) 为常数,也就是 \(\frac{P(Y,Z|\theta)}{Q(Z)}=c\),c为常数,时等号成立
    • 此时由于 \(Q(Z)\) 是一个分布(注意:正因为 \(Q(Z)\) 是一个分布才能用Jensen不等式),所以有
      $$
      \begin{align}
      Q(Z)=\frac{P(Y,Z|\theta)}{\sum_{Z}P(Y,Z|\theta)}=\frac{P(Y,Z|\theta)}{P(Y|\theta)}=P(Z|Y,\theta)
      \end{align}
      $$

吴恩达CS229

  • E步: 计算 \(Q_{i}(Z)=P(Z|Y,\theta^{i})\)
  • M步: 求使得原始似然函数下界极大化的参数 \(\theta=\theta^{i+1}\)
    $$
    \begin{align}
    \theta^{i+1} &= \mathop{\arg\max}_{\theta}\sum_{Z}P(Z|Y,\theta^{i})log\frac{P(Y|Z,\theta)P(Z|\theta)}{P(Z|Y,\theta^{i})} \\
    &= \mathop{\arg\max}_{\theta}\sum_{Z}Q_{i}(Z)log\frac{P(Y|Z,\theta)P(Z|\theta)}{Q_{i}(Z)}
    \end{align}
    $$
    • 进一步消除与 \(\theta\) 无关的项可以得到
      $$
      \begin{align}
      \theta^{i+1} &= \mathop{\arg\max}_{\theta}\sum_{Z}Q_{i}(Z)logP(Y|Z,\theta)P(Z|\theta)
      \end{align}
      $$
  • 推导步骤和李航统计学习方法一样,核心是运用Jensen不等式

总结

  • 以上两个不同课程的E步不同,但完全等价,吴恩达CS229课程中E步计算 \(Q_{i}(Z)=P(Z|Y,\theta^{i})\) 就等价于计算出了李航统计学习方法中的 \(Q(\theta, \theta^{i})\),二者关系如下:
    $$
    \begin{align}
    Q(\theta, \theta^{i})&=\sum_{Z}P(Z|Y,\theta^{i})logP(Y|Z,\theta)P(Z|\theta) \\
    &= \sum_{Z}Q_{i}(Z)logP(Y|Z,\theta)P(Z|\theta)
    \end{align}
    $$
  • M步中,二者本质上完全相同,但是吴恩达CS229中没消去与 \(\theta\) 无关的项,所以看起来不太简洁

实例

实例一
  • 三个硬币的抛硬币问题
    • 第一次:抛硬币A,决定第二次抛C还是B,选中B的概率为 \(\pi\)
    • 第二次:抛硬币B或C,正面为1,反面为0
  • (第一个硬币A抛中B的概率为隐变量)
实例二
  • 200个人不知道男女的身高拟合问题(性别为隐变量)
  • 这里是高斯混合模型的代表
实例三
  • K-Means聚类
  • 参考<<百面机器学习>>P100-P101

进一步理解

我的理解
  • 初始化参数 \(\theta^{0}\)

  • 1.根据参数 \(\theta^{i}\) 计算当前隐变量的分布函数 \(Q_{i}(Z)=P(Z|Y,\theta^{i})\)

    • 这一步的本质是使得在参数 \(\theta = \theta^i\) 时, 求得一个隐变量 \(Z\) 的分布,使得原始式子中的不等式取等号
  • 2.根据 \(Q_{i}(Z)=P(Z|Y,\theta^{i})\) 得到对数似然函数下界函数 \(B(\theta, \theta^{i})\) (求原始似然函数的下界B函数是因为直接对原始似然函数求极大值很难)或者 \(Q(\theta,\theta^{i})\)
    $$\mathop{\arg\max}_{\theta}B(\theta, \theta^{i})=\mathop{\arg\max}_{\theta}Q(\theta,\theta^{i})$$
    (\(Q(\theta,\theta^{i})\) 可以看作是 \(B(\theta, \theta^{i})\) 的简化版, \(B(\theta, \theta^{i})\) 才是原始似然函数的下界, \(Q(\theta,\theta^{i})\) 不是原始似然函数的下界)

    • 这里 \(B(\theta, \theta^{i})\) 就是原始似然函数的下界(也就是不等式取到等号)
  • 3.求使得函数 \(B(\theta, \theta^{i})\) 极大化的参数 \(\theta=\theta^{i+1}\)

    • 这一步是在固定隐变量 \(Z\) 的分布时, 用极大似然求一个使得下界 \(B(\theta, \theta^{i})\) 最大的参数 \(\theta = \theta^{i+1}\) 使得 \(B(\theta^{i+1}, \theta^{i}) = \text{max} B(\theta, \theta^{i})\)
  • 4.循环1,2,3直到收敛(相邻两次参数的变化或者是似然函数的变化足够小即可判断为收敛)

    • \(||\theta^{i+1}-\theta^{i}||<\epsilon_{1}\) 或者 \(||Q(\theta^{i+1},\theta^{i})-Q(\theta^{i},\theta^{i})||<\epsilon_{2}\)
  • 总结:

    • 在吴恩达CS229课程中: E步包含1, M步包含2,3,其中第2步中求的是 \(B(\theta, \theta^{i})\)
    • 在李航<<统计学习方法>>中: E步包含1,2, M步包含3,其中第2步中求的是 \(Q(\theta,\theta^{i})\)
    • 两种表达等价
图示理解
  • 迭代图示如下图(图来自博客:https://www.cnblogs.com/xieyue/p/4384915.html)
  • 也可参考李航<<统计学习方法>>第160页的图和解释

收敛性

  • 参考李航<<统计学习方法>>第160页-第162页推导过程
  • 参考<<百面机器学习>>第P099页-第P100页
    • 核心思想原始函数单调有界
    • 原始函数为 \(L(\theta)\),函数下界为 \(B(\theta,\theta^{i})\)
    • E步:
      • 找到使得在当前 \(\theta^{i}\) 确定时,原始函数的下界 \(B(\theta, \theta^{i})\),在 \(\theta^{i}\) 处有
        \(\)
        $$
        \begin{align}
        L(\theta^{i}) = B(\theta,\theta^{i})
        \end{align}
        $$
    • M步:
      • 找到使得函数 \(B(\theta,\theta^{i})\) 取得极大值的 \(\theta^{i+1}\)
    • i = i + 1,然后重新开始E和M步
      $$
      \begin{align}
      L(\theta^{i+1}) >= L(\theta^{i+1})
      \end{align}
      $$
    • 所以函数是单调的
    • 由于 \(L(\theta)\) 有界(这里原始函数有界可以从似然函数的定义得到)
    • 函数单调有界=>函数收敛(数学分析中的定理)

优劣性

优势
  • 简单性
  • 普适性
劣势
  • 不能保证收敛到最大值,只能保证收敛到极大值
  • 对初始值敏感,不同初始值可能收敛到不同极值点
  • 实际使用时通常采用多次选择不同的初始值来进行迭代,最终对估计值选最好的

EM算法的推广

  • 引入F函数
GEM1

F函数极大-极大法

  • 初始化参数 \(\theta^{0}\)
  • E步: 求使得 \(F(\tilde{P},\theta^{i})\) 极大化的 \(\tilde{P}^{i+1}\)
  • M步: 求使得 \(F(\tilde{P}^{i+1},\theta)\) 极大化的 \(\theta^{i+1}\)
  • 重复E,M,直到收敛
GEM2
  • 初始化参数 \(\theta^{0}\)
  • E步: 计算 \(Q(\theta,\theta^{i})\)
  • M步: 求 \(\theta^{i+1}\) 使得 \(Q(\theta^{i+1},\theta^{i}) > Q(\theta^{i},\theta^{i})\)
  • 重复E,M,直到收敛
  • 总结: \(Q(\theta,\theta^{i})\) 的极大化难求时,这种方法可以简化计算
GEM3
  • 初始化参数 \(\theta^{0}\)
  • E步: 计算 \(Q(\theta,\theta^{i})\)
  • M步: 对参数 \(\theta^{i}\) 的每一个维度k,固定参数的其他维度,求使得 \(Q(\theta,\theta^{i})\) 极大化的 \(\theta_{k}^{i+1}\),最终得到 \(\theta^{i+1}\)
    • 使得 \(Q(\theta^{i+1},\theta^{i}) > Q(\theta^{i},\theta^{i})\)
  • 重复E,M,直到收敛
  • 总结: 一种特殊的GEM算法,将M步分解为参数 \(\theta\) 的维度次来条件极大化

ML——MCMC采样

本文介绍MCMC采样法和他的两个常用方法:MH(Metropolis-Hastings)采样法和Gibbs采样法
马尔可夫蒙特卡罗(Markov Chain Monte Carlo, MCMC)采样法

  • 对于高维空间中的随机向量,拒绝采样和重要性采样经常难以找到合适的参考分布,容易导致采样效率低下(样本的接受概率太小或者重要性权重太低),此时可以考虑马尔可夫蒙特卡罗采样法(MCMC)
  • MCMC中常见的有两种,MH(Metropolis-Hastings)采样法和Gibbs采样法

MCMC概述

  • 马尔可夫蒙特卡罗(Markov Chain Monte Carlo, MCMC)采样法可分为两个部分(两个MC)描述

蒙特卡罗法

  • 蒙特卡罗法(Monte Carlo)是指: 基于采样的数值型近似求解方法

马尔可夫链

又称离散时间马尔可夫链(discrete-time Markov chain,缩写为DTMC),或者马氏链

  • 马尔可夫链(Markov Chain)是指: 状态空间中经过从一个状态到另一个状态的转换的随机过程, 该随机过程满足马尔可夫性
  • 马尔可夫性(Markov property)是指: 当一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态;换句话说,在给定现在状态时,它与过去状态(即该过程的历史路径)是条件独立的,那么此随机过程即具有马尔可夫性质。具有马尔可夫性质的过程通常称之为马尔可夫过程
    • 马尔可夫性的简单理解: “无记忆性”: 下一状态的概率分布只能由当前状态决定,在时间序列中它前面的事件均与之无关

MCMC基本思想

  • 针对采样的目标分布,构造一个马尔可夫链 ,使得该马尔可夫链的平稳分布就是目标分布
  • 从任何一个初始状态出发,沿着马尔可夫链进行状态转移,直到马尔可夫链收敛(到达平稳状态)
  • 继续在马尔可夫链上进行状态转移,收敛后继续采样得到的样本就是原始目标分布的样本
    • burn-in处理 : 现实应用中,我们需要丢弃收敛前的样本,只保留收敛后的样本
    • burn-in 原意为”老化,定型”之意,在这里表示我们只取后面马氏链定型(收敛)后采样得到的样本
    • 假设采样到收敛用了n次采样,那么服从原始分布的k个样本为 \((x^{n+1}, x^{n+2},,,, x^{n+k})\) 有时候为了得到近似独立的样本,可以间隔每r次再取出其中一个样本 \((x^{n+r}, x^{n+2r},,,, x^{n+kr})\)
    • 真正独立同分布的k个样本可用多条k条不同的收敛后的马氏链得到,不同马氏链采样得到的样本是独立同分布的
  • 核心: 马尔可夫链的构造 ,也就是确定马尔可夫链的状态转移概率

常见的MCMC方法

MH(Metropolis-Hastings)采样法

  • 对于原始目标分布 \(p(x)\)
  • 选择一个参考条件分布 \(q(x^{\star}|x)\),定义接受概率 \(A(x,x^{\star})\):
    • (注意这里是参考条件分布,因为是马尔可夫链,所以每个状态都由上一个状态转移而来,需要定义的参考分布应该是条件分布,不是一般拒绝采样中的普通参考分布)
      $$
      A(x,x^{\star}) = min\left ( 1, \frac{p(x^{\star})q(x|x^{\star})}{p(x)q(x^{\star}|x)} \right )
      $$
  • MH采样法构建满足平稳分布就是目标分布 \(p(x)\) 的秘诀就是让每次采样时,当前状态以一定概率停留在上一状态
    • 与拒绝采样对应: 接受意味着跳转到下一状态,拒绝意味着停留在当前状态
采样过程
  • 随机选取初始样本x^{0}
  • for t = 1,2,3,…:
    • 参考条件分布采样 \(x^{\star} \sim q(x^{star}|x^{t-1})\)
    • 均匀分布采样 \(u \sim U(0,1)\)
    • 判断是否接受: 如果 \(u < A(x^{t-1}, x^{\star})\),则接受,令: \(x^{t} = x^{\star}\),否则拒绝,令: \(x^{t}=x^{t-1}\)
  • burn-in处理 : 丢弃采样到平稳分布前的样本, 只保留平稳分布后的样本即为服从原始分布 \(p(x)\) 的样本
    • 假设采样到收敛用了n次采样,那么服从原始分布的k个样本为 \((x^{n+1}, x^{n+2},,,, x^{n+k})\) 有时候为了得到近似独立的样本,可以间隔每r次再取出其中一个样本 \((x^{n+r}, x^{n+2r},,,, x^{n+kr})\)
    • 真正独立同分布的k个样本可用多条k条不同的收敛后的马氏链得到,不同马氏链采样得到的样本是独立同分布的
  • 采样次数一般来说是凭经验选择一个足够大的值,现实是现实可以使用一些参数变化量这类的指标来判断采样是否收敛,参考NLP——LLDA的Gibbs采样实现
与拒绝采样的区别
  • MH采样基于拒绝采样来逼近平稳分布
  • 拒绝采样中: 如果样本某一步被拒绝,那么该步不会产生新的样本,需要重新对当前步进行采样
  • MH中: 每一步都会产生一个样本,被拒绝后,就令当前样本和上一个样本相同即可
    • 因为这里是为了使得每个状态的转出概率等于转入概率,所以拒绝就意味着当前采样步骤状态不跳转
    • MH采样法最核心的思想就是一定概率停留在上一个状态来实现对马尔可夫链的构建的
MH采样法正确性证明
  • MH采样法构造的马尔可夫链(状态转移概率矩阵)是正确的吗?

  • 细致平稳条件 , 如果非周期的马氏链的状态转移矩阵P和分布 \(\pi(x)\) 满足下面的式子对任意的 \(i,j\) 都成立:
    $$\pi(x^{i})P_{ij} = \pi(x^{j})P_{ji}$$

    • 上式为细致平稳分布条件(detailed balance condition)
    • 其中 \(\pi(x)\) 为马氏链的平稳分布,在这里等于我们的原始分布 \(p(x)\)
  • 证明 \(\pi(x)\) 为马氏链的平稳分布:
    $$
    \begin{align}
    \sum_{i=1}^{\infty}\pi(x^{i})P_{ij} = \sum_{i=1}^{\infty}\pi(x^{j})P_{ji} = \pi(x^{j})\sum_{i=1}^{\infty}P_{ji} = \pi(x^{j}) \\
    => \pi(x) P = \pi(x)
    \end{align}
    $$

    • 由于 \(\pi(x)\) 为方程 \(\pi(x) P = \pi(x)\) 的解,所以 \(\pi(x)\) 是状态转移矩阵P对应的马氏链的平稳分布
  • 在MH采样法中

    • 参考条件分布函数本对应状态转移矩阵的一个元素, \(q(x^{i}|x^{j}) = P_{ij}\) (注意: 实际上一般不相等)
    • 但是很难构造这样方便采样的函数,于是我们使用一个接受率来修正 \(q(x^{i}|x^{j})\alpha(x^{j}, x^{i}) = P_{ij}\)
      • \(\alpha(x^{j}, x^{i})\) 表示从 \(x^{j}\) 跳转到 \(x^{i}\) 的接受率, 其值可如下求得:
        $$
        \begin{align}
        \pi(x^{i}) P_{ij} &= \pi(x^{j})P_{ji} \\
        \pi(x^{i}) q(x^{j}|x^{i})\alpha(x^{i}, x^{j}) &= \pi(x^{j})q(x^{i}|x^{j})\alpha(x^{j}, x^{i})
        \end{align}
        $$
    • 显然,直接取:
      $$
      \begin{align}
      \alpha(x^{i}, x^{j}) &= \pi(x^{j})q(x^{i}|x^{j})\\
      \alpha(x^{j}, x^{i}) &= \pi(x^{i})q(x^{j}|x^{i})\\
      \end{align}
      $$
    • 即可
  • 但是由于 \(\alpha(x^{j}, x^{i})\) 一般来说太小,所以我们考虑将 \(\alpha(x^{j}, x^{i})\) 和 \(\alpha(x^{i}, x^{j})\) 同时扩大M倍,使得其中大的那个为1,即可得到最大的接受率

    • 使用原始接受率的方法称为一般MCMC方法
    • 使用扩大M被接受率的方法称为MCMC的改进方法: MH方法
  • 改进后的接受率为从 \(x^{i}\) 跳转到 \(x^{j}\) 的接受率:
    $$
    \begin{align}
    A(x^{i}, x^{j}) = min\left ( 1, \frac{p(x^{j})q(x^{i}|x^{j})}{p(x^{i})q(x^{j}|x^{i})} \right )
    \end{align}
    $$

    • 理解:
      $$
      \begin{align}
      p(x^{j})q(x^{i}|x^{j}) &> p(x^{i})q(x^{j}|x^{i})时: A(x^{i}, x^{j}) = 1 \\
      p(x^{j})q(x^{i}|x^{j}) &< p(x^{i})q(x^{j}|x^{i})时: A(x^{i}, x^{j}) = \frac{p(x^{j})q(x^{i}|x^{j})}{p(x^{i})q(x^{j}|x^{i})}
      \end{align}
      $$
  • 在MH中表现为从 \(x\) 跳转到 \(x^{\star}\) 的接受率:
    $$
    A(x,x^{\star}) = min\left ( 1, \frac{p(x^{\star})q(x|x^{\star})}{p(x)q(x^{\star}|x)} \right )
    $$

Gibbs采样法

Gibbs采样是MH采样法的一个特例,每次只更新样本的一个维度

  • 针对维度很高的多维向量,同时采样多个维度难度较高,且接受率很小
  • 使用Gibbs采样每次采样一个维度可以解决这个问题
准备
  • 求得已知其他维度下,每一维度的条件概率 \(p(x_{i}|x_{1},,,x_{i-1}, x_{i+1},,,x_{d})\)
采样过程
  • 随机选择初始状态 \(x^{0} = (x_{1}^{0}, x_{2}^{0}, x_{3}^{0},,,, x_{d}^{0})\)

  • for t = 1,2,3,…:

    • 基于前一次产生的样本: \(x^{t-1} = (x_{1}^{t-1}, x_{2}^{t-1}, x_{3}^{t-1},,,, x_{d}^{t-1})\),依次采样和更新每个维度的值,即依次按照:
      • \(x_{1}^{t} \sim p(x_{1}|x_{2}^{t-1},,,x_{d}^{t-1})\)
      • \(x_{2}^{t} \sim p(x_{2}|x_{1}^{t}, x_{3}^{t-1},,,x_{d}^{t-1})\)
      • \(x_{i}^{t} \sim p(x_{i}|x_{1}^{t},,,x_{i-1}^{t}, x_{i+1}^{t-1},,,x_{d}^{t-1})\)
      • \(x_{d}^{t} \sim p(x_{d}|x_{1}^{t}, x_{2}^{t},,,x_{d-1}^{t})\)
    • 得到新的一个样本: \(x^{t} = (x_{1}^{t}, x_{2}^{t}, x_{3}^{t},,,, x_{d}^{t})\)
  • burn-in处理 : 丢弃采样到平稳分布前的样本, 只保留平稳分布后的样本即为服从原始分布 \(p(x)\) 的样本

    • 假设采样到收敛用了n次采样,那么服从原始分布的k个样本为 \((x^{n+1}, x^{n+2},,,, x^{n+k})\),有时候为了得到近似独立的样本,可以间隔每r次再取出其中一个样本 \((x^{n+r}, x^{n+2r},,,, x^{n+kr})\)
    • 真正独立同分布的k个样本可用多条k条不同的收敛后的马氏链得到,不同马氏链采样得到的样本是独立同分布的
    • 注意: 采样完成部分维度生成的中间样本如 \((x_{1}^{t},,,x_{i-1}^{t}, x_{i}^{t}, x_{i+1}^{t-1},,,x_{d}^{t-1})\) 是不能作为最终样本的,因为他们之间(同一轮次的多个中间样本)相互依赖性太强,不具有独立同分布的(虽然完全采样完成的也不能视为具有独立同分布,但是可近似的认为是独立同分布的)
  • 采样次数一般来说是凭经验选择一个足够大的值,现实是现实可以使用一些参数变化量这类的指标来判断采样是否收敛,参考NLP——LLDA的Gibbs采样实现

1…301302303…352
San Ye

San Ye

Stay Hungry. Stay Foolish.

704 posts
53 tags
© 2026 San Ye
Powered by Hexo
|
Theme — NexT.Gemini v5.1.4