您当前的位置: 首页 >  机器学习

静静的喝酒

暂无认证

  • 3浏览

    0关注

    99博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

机器学习笔记之变分推断(四)随机梯度变分推断(SGVI)

静静的喝酒 发布时间:2022-09-18 16:29:48 ,浏览量:3

机器学习笔记之变分推断——随机梯度变分推断
  • 引言
    • 回顾:基于平均场假设的变分推断
      • 经典变分推断的问题
    • 随机梯度变分推断的求解过程

引言

上一节介绍了基于平均场假设的变分推断与广义EM算法的关系,本节将介绍通过随机梯度的思想实现变分推断。

回顾:基于平均场假设的变分推断

基于平均场假设的变分推断通常称为经典变分推断(Classical Variational Inference)。其核心自然是 平均场假设:将隐变量 Z \mathcal Z Z的概率分布 Q ( Z ) \mathcal Q(\mathcal Z) Q(Z)看做 M \mathcal M M个独立的子概率分布: Q ( Z ) = ∏ i = 1 M Q i ( Z ( i ) ) \mathcal Q(\mathcal Z) = \prod_{i=1}^{\mathcal M} \mathcal Q_i(\mathcal Z^{(i)}) Q(Z)=i=1∏M​Qi​(Z(i)) 其迭代过程的思想是坐标上升法(Coordinate Ascent):

  • 求解 Q j ( Z ( j ) ) \mathcal Q_j(\mathcal Z^{(j)}) Qj​(Z(j)),固定除 Q j ( Z ( j ) ) \mathcal Q_j(\mathcal Z^{(j)}) Qj​(Z(j))外的所有分布,并将求解出的 Q ^ i ( Z ( i ) ) \hat {\mathcal Q}_i(\mathcal Z^{(i)}) Q^​i​(Z(i))替换原始的 Q j ( Z ( j ) ) \mathcal Q_j(\mathcal Z^{(j)}) Qj​(Z(j)): Q ^ j ( Z ( j ) ) = arg ⁡ max ⁡ Q j ( Z ( j ) ) { − K L [ ϕ ^ ( X , Z ( j ) ) ∣ ∣ Q j ( Z ( j ) ) ] } Q ( Z ) = Q 1 ( Z ( 1 ) ) × ⋯ × Q ^ j ( Z ( j ) ) × ⋯ × Q M ( Z ( M ) ) \hat {\mathcal Q}_j (\mathcal Z^{(j)}) = \mathop{\arg\max}\limits_{\mathcal Q_j(\mathcal Z^{(j)})} \left\{-\mathcal K\mathcal L \left[\hat \phi (\mathcal X,\mathcal Z^{(j)}) || \mathcal Q_j(\mathcal Z^{(j)})\right]\right\} \\ \mathcal Q(\mathcal Z) = \mathcal Q_1(\mathcal Z^{(1)}) \times \cdots \times \hat {\mathcal Q}_j(\mathcal Z^{(j)}) \times \cdots\times \mathcal Q_{\mathcal M}(\mathcal Z^{(\mathcal M)}) Q^​j​(Z(j))=Qj​(Z(j))argmax​{−KL[ϕ^​(X,Z(j))∣∣Qj​(Z(j))]}Q(Z)=Q1​(Z(1))×⋯×Q^​j​(Z(j))×⋯×QM​(Z(M))
  • 重复上述步骤,最终第一次迭代结果得到如下形式: Q ( Z ) = Q ^ 1 ( Z ( 1 ) ) × ⋯ × Q ^ M ( Z ( M ) ) \mathcal Q(\mathcal Z) = \hat {\mathcal Q}_1(\mathcal Z^{(1)}) \times \cdots \times \hat {\mathcal Q}_{\mathcal M}(\mathcal Z^{(\mathcal M)}) Q(Z)=Q^​1​(Z(1))×⋯×Q^​M​(Z(M))
  • 继续迭代,直到 Q ( Z ) \mathcal Q(\mathcal Z) Q(Z)结果稳定且收敛。
经典变分推断的问题

虽然通过坐标上升法能够近似求解隐变量 Z \mathcal Z Z的最优后验概率分布 P ( Z ∣ X ) P(\mathcal Z \mid \mathcal X) P(Z∣X),但 经典变分推断 的问题也是显而易见的:平均场假设这个假设本身过于苛刻。

平均场假设要保证隐变量各分组之间相互独立。而隐变量本身就是基于真实情况人为定义的变量。 实际情况中,定义的隐变量满足平均场假设是极为困难的,因此,经典变分推断基本无法使用于真实任务。

至此,我们在近似求解后验概率分布 P ( Z ∣ X ) P(\mathcal Z \mid \mathcal X) P(Z∣X),就需要对 P ( Z ∣ X ) P(\mathcal Z \mid \mathcal X) P(Z∣X)整体进行求解。 本节将从梯度角度对 P ( Z ∣ X ) P(\mathcal Z \mid \mathcal X) P(Z∣X)进行求解。

随机梯度变分推断的求解过程

回顾变分推断的推导过程,基于隐变量 Z \mathcal Z Z的最优近似分布 Q ^ ( Z ) \hat {\mathcal Q}(\mathcal Z) Q^​(Z) 可进行如下表示: Q ^ ( Z ) = arg ⁡ max ⁡ Q ( Z ) L [ Q ( Z ) ] ⇒ Q ^ ( Z ) ≈ P ( Z ∣ X ) L [ Q ( Z ) ] = ∫ Z Q ( Z ) ⋅ log ⁡ [ P ( X , Z ) Q ( Z ) ] d Z \hat {\mathcal Q}(\mathcal Z) = \mathop{\arg\max}\limits_{\mathcal Q(\mathcal Z)} \mathcal L[\mathcal Q(\mathcal Z)] \Rightarrow \hat {\mathcal Q}(\mathcal Z) \approx P(\mathcal Z \mid \mathcal X) \\ \mathcal L[\mathcal Q(\mathcal Z)] = \int_{\mathcal Z} \mathcal Q(\mathcal Z) \cdot \log \left[\frac{P(\mathcal X,\mathcal Z)}{\mathcal Q(\mathcal Z)}\right] d \mathcal Z Q^​(Z)=Q(Z)argmax​L[Q(Z)]⇒Q^​(Z)≈P(Z∣X)L[Q(Z)]=∫Z​Q(Z)⋅log[Q(Z)P(X,Z)​]dZ 既然是 通过调整 Q ( Z ) \mathcal Q(\mathcal Z) Q(Z)的最值,使得 L [ Q ( Z ) ] \mathcal L[\mathcal Q(\mathcal Z)] L[Q(Z)]达到最大,因此可以尝试使用 梯度上升法(Gradient Ascent) 进行求解。

这里需要进行一些假设: 既然要求解最优的 Q ( Z ) \mathcal Q(\mathcal Z) Q(Z),根据梯度上升法,自然要求解 Q ( Z ) \mathcal Q(\mathcal Z) Q(Z)的梯度。

而 Q ( Z ) \mathcal Q(\mathcal Z) Q(Z)本身是一个分布,也可以看作成一个概率模型。而概率模型本身可以看作是关于该模型参数的一个函数。因此:定义概率模型 Q ( Z ) \mathcal Q(\mathcal Z) Q(Z)的模型参数为 ϕ \phi ϕ,最终将求解 Q ( Z ) \mathcal Q(\mathcal Z) Q(Z)的梯度转化为求解模型参数 ϕ \phi ϕ的梯度: Q ( Z ∣ ϕ ) \mathcal Q(\mathcal Z \mid \phi) Q(Z∣ϕ)写法是保留之前对概率模型的表达。例如 P ( X ∣ θ ) P(\mathcal X \mid \theta) P(X∣θ),对应的 L [ Q ( Z ) ] \mathcal L[\mathcal Q(\mathcal Z)] L[Q(Z)]公式也需要进行修改。 Q ( Z ) → Q ( Z ∣ ϕ ) L [ Q ( Z ) ] = ∫ Z ∣ ϕ Q ( Z ∣ ϕ ) ⋅ log ⁡ [ P ( X , Z ) Q ( Z ∣ ϕ ) ] d Z = E Q ( Z ∣ ϕ ) [ log ⁡ P ( X , Z ) − log ⁡ Q ( Z ∣ ϕ ) ] = L ( ϕ ) \mathcal Q(\mathcal Z) \to \mathcal Q(\mathcal Z \mid \phi) \\ \begin{aligned} \mathcal L[\mathcal Q(\mathcal Z)] & = \int_{\mathcal Z \mid \phi} \mathcal Q(\mathcal Z \mid \phi) \cdot \log \left[\frac{P(\mathcal X,\mathcal Z)}{\mathcal Q(\mathcal Z \mid \phi)}\right] d\mathcal Z \\ & = \mathbb E_{\mathcal Q(\mathcal Z \mid \phi)} \left[\log P(\mathcal X,\mathcal Z) - \log \mathcal Q(\mathcal Z \mid \phi)\right] \\ & = \mathcal L(\phi) \end{aligned} Q(Z)→Q(Z∣ϕ)L[Q(Z)]​=∫Z∣ϕ​Q(Z∣ϕ)⋅log[Q(Z∣ϕ)P(X,Z)​]dZ=EQ(Z∣ϕ)​[logP(X,Z)−logQ(Z∣ϕ)]=L(ϕ)​ 与此同时, L [ Q ( Z ) ] \mathcal L[\mathcal Q(\mathcal Z)] L[Q(Z)]中的变量由 Q ( Z ) \mathcal Q(\mathcal Z) Q(Z)变为 ϕ \phi ϕ,即 L ( ϕ ) \mathcal L(\phi) L(ϕ)。从而将求解最优 Q ^ ( Z ) \hat {\mathcal Q}(\mathcal Z) Q^​(Z)转化为求解最优参数 ϕ ^ \hat \phi ϕ^​: ϕ ^ = arg ⁡ max ⁡ ϕ L ( ϕ ) \hat \phi = \mathop{\arg\max}\limits_{\phi} \mathcal L(\phi) ϕ^​=ϕargmax​L(ϕ) 对梯度 ∇ ϕ L ( ϕ ) \nabla_{\phi}\mathcal L(\phi) ∇ϕ​L(ϕ)进行表示: ∇ ϕ L ( ϕ ) = ∇ ϕ ∫ Z ∣ ϕ Q ( Z ∣ ϕ ) ⋅ log ⁡ [ P ( X , Z ) Q ( Z ∣ ϕ ) ] d Z = ∇ ϕ ∫ Z ∣ ϕ Q ( Z ∣ ϕ ) ⋅ [ log ⁡ P ( X , Z ) − log ⁡ Q ( Z ∣ ϕ ) ] d Z \begin{aligned} \nabla_{\phi}\mathcal L(\phi) & = \nabla_{\phi} \int_{\mathcal Z \mid \phi} \mathcal Q(\mathcal Z \mid \phi) \cdot \log \left[\frac{P(\mathcal X,\mathcal Z)}{\mathcal Q(\mathcal Z \mid \phi)}\right] d\mathcal Z \\ & = \nabla_{\phi} \int_{\mathcal Z \mid \phi} \mathcal Q(\mathcal Z \mid \phi) \cdot \left[ \log P(\mathcal X,\mathcal Z) - \log \mathcal Q(\mathcal Z \mid \phi)\right] d\mathcal Z \end{aligned} ∇ϕ​L(ϕ)​=∇ϕ​∫Z∣ϕ​Q(Z∣ϕ)⋅log[Q(Z∣ϕ)P(X,Z)​]dZ=∇ϕ​∫Z∣ϕ​Q(Z∣ϕ)⋅[logP(X,Z)−logQ(Z∣ϕ)]dZ​ 根据牛顿-莱布尼兹公式,将积分号 ∫ \int ∫与梯度 ∇ \nabla ∇进行交换: 乘法求导~ ∫ Z ∣ ϕ ∇ ϕ Q ( Z ∣ ϕ ) ⋅ [ log ⁡ P ( X , Z ) − log ⁡ Q ( Z ∣ ϕ ) ] d Z + ∫ Z ∣ ϕ Q ( Z ∣ ϕ ) ⋅ ∇ ϕ [ log ⁡ P ( X , Z ) − log ⁡ Q ( Z ∣ ϕ ) ] d Z \int_{\mathcal Z \mid \phi} \nabla_{\phi} \mathcal Q(\mathcal Z \mid \phi) \cdot \left[ \log P(\mathcal X,\mathcal Z) - \log \mathcal Q(\mathcal Z \mid \phi)\right]d\mathcal Z + \int_{\mathcal Z \mid \phi} \mathcal Q(\mathcal Z \mid \phi) \cdot \nabla_{\phi}\left[ \log P(\mathcal X,\mathcal Z) - \log \mathcal Q(\mathcal Z \mid \phi)\right] d\mathcal Z ∫Z∣ϕ​∇ϕ​Q(Z∣ϕ)⋅[logP(X,Z)−logQ(Z∣ϕ)]dZ+∫Z∣ϕ​Q(Z∣ϕ)⋅∇ϕ​[logP(X,Z)−logQ(Z∣ϕ)]dZ

观察第二项: ∫ Z ∣ ϕ Q ( Z ∣ ϕ ) ⋅ ∇ ϕ [ log ⁡ P ( X , Z ) − log ⁡ Q ( Z ∣ ϕ ) ] d Z \int_{\mathcal Z \mid \phi} \mathcal Q(\mathcal Z \mid \phi) \cdot \nabla_{\phi}\left[ \log P(\mathcal X,\mathcal Z) - \log \mathcal Q(\mathcal Z \mid \phi)\right] d\mathcal Z ∫Z∣ϕ​Q(Z∣ϕ)⋅∇ϕ​[logP(X,Z)−logQ(Z∣ϕ)]dZ:

  • 由于 ϕ \phi ϕ是概率模型 Q ( Z ∣ ϕ ) \mathcal Q(\mathcal Z \mid \phi) Q(Z∣ϕ)的模型参数,而 P ( X , Z ) P(\mathcal X,\mathcal Z) P(X,Z)是 X , Z \mathcal X,\mathcal Z X,Z的联合概率分布,因此与 ϕ \phi ϕ无关。因此第二项可变化为: − ∫ Z ∣ ϕ Q ( Z ∣ ϕ ) ⋅ ∇ ϕ log ⁡ Q ( Z ∣ ϕ ) d Z = − ∫ Z ∣ ϕ 1 Q ( Z ∣ ϕ ) ⋅ Q ( Z ∣ ϕ ) ⋅ ∇ ϕ Q ( Z ∣ ϕ ) d Z = − ∫ Z ∣ ϕ ∇ ϕ Q ( Z ∣ ϕ ) d Z \begin{aligned} & - \int_{\mathcal Z \mid \phi} \mathcal Q(\mathcal Z \mid \phi) \cdot \nabla_{\phi} \log \mathcal Q(\mathcal Z \mid \phi) d\mathcal Z \\ & = -\int_{\mathcal Z \mid \phi} \frac{1}{\mathcal Q(\mathcal Z \mid \phi)} \cdot \mathcal Q(\mathcal Z \mid \phi) \cdot \nabla_{\phi} \mathcal Q(\mathcal Z \mid \phi)d\mathcal Z \\ & = - \int_{\mathcal Z \mid \phi} \nabla_{\phi} \mathcal Q(\mathcal Z \mid \phi)d\mathcal Z \end{aligned} ​−∫Z∣ϕ​Q(Z∣ϕ)⋅∇ϕ​logQ(Z∣ϕ)dZ=−∫Z∣ϕ​Q(Z∣ϕ)1​⋅Q(Z∣ϕ)⋅∇ϕ​Q(Z∣ϕ)dZ=−∫Z∣ϕ​∇ϕ​Q(Z∣ϕ)dZ​
  • 再次使用牛顿-莱布尼兹公式,将梯度符号 ∇ \nabla ∇还原位置: − ∇ ϕ ∫ Z ∣ ϕ Q ( Z ∣ ϕ ) d Z - \nabla_{\phi} \int_{\mathcal Z \mid \phi} \mathcal Q(\mathcal Z \mid \phi) d\mathcal Z −∇ϕ​∫Z∣ϕ​Q(Z∣ϕ)dZ
  • 根据概率密度积分, ∫ Z ∣ ϕ Q ( Z ∣ ϕ ) d Z = 1 \int_{\mathcal Z \mid \phi} \mathcal Q(\mathcal Z \mid \phi) d\mathcal Z = 1 ∫Z∣ϕ​Q(Z∣ϕ)dZ=1,第二项相当于对常数1求偏导,最后结果为0。即: 第二项被完整地消掉了~ ∫ Z ∣ ϕ Q ( Z ∣ ϕ ) ⋅ ∇ ϕ [ log ⁡ P ( X , Z ) − log ⁡ Q ( Z ∣ ϕ ) ] d Z = − ∇ ϕ 1 = 0 \int_{\mathcal Z \mid \phi} \mathcal Q(\mathcal Z \mid \phi) \cdot \nabla_{\phi}\left[ \log P(\mathcal X,\mathcal Z) - \log \mathcal Q(\mathcal Z \mid \phi)\right] d\mathcal Z = -\nabla_{\phi} 1 = 0 ∫Z∣ϕ​Q(Z∣ϕ)⋅∇ϕ​[logP(X,Z)−logQ(Z∣ϕ)]dZ=−∇ϕ​1=0

至此, ∇ ϕ L ( ϕ ) \nabla_{\phi} \mathcal L(\phi) ∇ϕ​L(ϕ)可表示为: 只剩下了第一项~ ∇ ϕ L ( ϕ ) = ∫ Z ∣ ϕ ∇ ϕ Q ( Z ∣ ϕ ) ⋅ [ log ⁡ P ( X , Z ) − log ⁡ Q ( Z ∣ ϕ ) ] d Z \nabla_{\phi} \mathcal L(\phi) = \int_{\mathcal Z \mid \phi} \nabla_{\phi} \mathcal Q(\mathcal Z \mid \phi) \cdot \left[ \log P(\mathcal X,\mathcal Z) - \log \mathcal Q(\mathcal Z \mid \phi)\right]d\mathcal Z ∇ϕ​L(ϕ)=∫Z∣ϕ​∇ϕ​Q(Z∣ϕ)⋅[logP(X,Z)−logQ(Z∣ϕ)]dZ 观察: ∇ ϕ Q ( Z ∣ ϕ ) \nabla_{\phi}\mathcal Q(\mathcal Z \mid \phi) ∇ϕ​Q(Z∣ϕ)它并不是概率分布,而是概率分布的梯度。因此没有办法将上式写成期望形式。 但是这里通过技巧 将 Q ( Z ∣ ϕ ) \mathcal Q(\mathcal Z \mid \phi) Q(Z∣ϕ)还原出来: 可以自己反过来推一下~ ∇ ϕ Q ( Z ∣ ϕ ) = Q ( Z ∣ ϕ ) ⋅ ∇ ϕ log ⁡ Q ( Z ∣ ϕ ) \nabla_{\phi}\mathcal Q(\mathcal Z \mid \phi) = \mathcal Q(\mathcal Z \mid \phi) \cdot \nabla_{\phi} \log \mathcal Q(\mathcal Z \mid \phi) ∇ϕ​Q(Z∣ϕ)=Q(Z∣ϕ)⋅∇ϕ​logQ(Z∣ϕ) 将上式带入, ∇ ϕ L ( ϕ ) \nabla_{\phi} \mathcal L(\phi) ∇ϕ​L(ϕ)可以表示为: ∫ Z ∣ ϕ Q ( Z ∣ ϕ ) ⋅ ∇ ϕ log ⁡ Q ( Z ∣ ϕ ) ⋅ [ log ⁡ P ( X , Z ) − log ⁡ Q ( Z ∣ ϕ ) ] d Z \int_{\mathcal Z \mid \phi} \mathcal Q(\mathcal Z \mid \phi) \cdot \nabla_{\phi} \log \mathcal Q(\mathcal Z \mid \phi) \cdot \left[ \log P(\mathcal X,\mathcal Z) - \log \mathcal Q(\mathcal Z \mid \phi)\right] d\mathcal Z ∫Z∣ϕ​Q(Z∣ϕ)⋅∇ϕ​logQ(Z∣ϕ)⋅[logP(X,Z)−logQ(Z∣ϕ)]dZ 可以将上述积分看作 Q ( Z ∣ ϕ ) \mathcal Q(\mathcal Z \mid \phi) Q(Z∣ϕ)分布的期望形式: ∇ ϕ L ( ϕ ) = E Q ( Z ∣ ϕ ) { ∇ ϕ log ⁡ Q ( Z ∣ ϕ ) ⋅ [ log ⁡ P ( X , Z ) − log ⁡ Q ( Z ∣ ϕ ) ] } \nabla_{\phi} \mathcal L(\phi) =\mathbb E_{\mathcal Q(\mathcal Z \mid \phi)}\left\{\nabla_{\phi} \log \mathcal Q(\mathcal Z \mid \phi) \cdot [\log P(\mathcal X,\mathcal Z) - \log \mathcal Q(\mathcal Z \mid \phi)]\right\} ∇ϕ​L(ϕ)=EQ(Z∣ϕ)​{∇ϕ​logQ(Z∣ϕ)⋅[logP(X,Z)−logQ(Z∣ϕ)]} 至此,将梯度 ∇ ϕ L ( ϕ ) \nabla_{\phi}\mathcal L(\phi) ∇ϕ​L(ϕ)使用期望形式表示出来。后续可以使用蒙特卡洛采样方法对该期望进行近似求解。

至此,每求解一个 ∇ ϕ L ( ϕ ) \nabla_{\phi} \mathcal L(\phi) ∇ϕ​L(ϕ),都可以对 Q ( Z ∣ ϕ ) \mathcal Q(\mathcal Z \mid \phi) Q(Z∣ϕ)概率分布的模型参数 ϕ \phi ϕ 更新一次,以此类推。 最终可以近似得到概率模型 Q ( Z ∣ ϕ ) \mathcal Q(\mathcal Z \mid \phi) Q(Z∣ϕ)的最优模型参数 ϕ ^ \hat \phi ϕ^​,从而求解概率模型 Q ( Z ∣ ϕ ^ ) \mathcal Q(\mathcal Z \mid \hat \phi) Q(Z∣ϕ^​)。

下一节将介绍 随机梯度变分推断的问题及其他衍生方法。

相关参考: 机器学习-变分推断4(随机梯度变分推断-SGVI-1)

关注
打赏
1664446683
查看更多评论
立即登录/注册

微信扫码登录

0.0396s