从频率学派到贝叶斯:概率模型的两种视角

释放双眼,带上耳机,听听看~!
本文探讨了处理概率模型时从频率学派和贝叶斯的两种视角,以及从贝叶斯角度看待问题时的积分问题,以及推断问题的精确和近似推断方法。

一、概述

当我们处理概率模型时,我们可以从两个不同的视角看待问题:频率学派的视角和贝叶斯的视角。在频率学派的视角下,我们将问题视为一个优化问题,假设模型的最佳参数是一个确定的常数。我们可以回顾一下线性回归(我们使用最小二乘法定义损失函数),支持向量机(最终转化为一个约束优化问题),以及EM算法(我们通过迭代求解模型的参数)。这些方法共享一个特性,那就是它们都在参数空间中寻找最优参数,因此最后都变成了优化问题。

但是,当我们从贝叶斯的视角来看待问题时,问题变成了一个积分问题。在这种情况下,模型的参数并不是一个确定的常数,而是服从一个分布。对于一组给定的样本数据XX,我们需要对新的样本x^hat{x}进行评估。

那么为什么从贝叶斯角度来看就会是一个积分问题呢?现在以贝叶斯的角度来看待问题,模型的参数此时并非确定的常数,而是服从一个分布。如果已有多个样本数据记作XX,对于新的样本x^hat{x},需要得到:

p(x^∣X)=∫θp(x^,θ∣X)dθ=∫θp(x^∣θ,X)p(θ∣X)dθ=x^与X独立∫θp(x^∣θ)p(θ∣X)dθ=Eθ∣X[p(x^∣θ)]p(hat{x}|X)=int _{theta }p(hat{x},theta |X)mathrm{d}theta =int _{theta }p(hat{x}|theta ,X)p(theta |X)mathrm{d}theta \ overset{hat{x}与X独立}{=}int _{theta }p(hat{x}|theta)p(theta |X)mathrm{d}theta =E_{theta |X}[p(hat{x}|theta )]

如果新样本和数据集独立,那么这个推断问题就是求概率分布依参数后验分布的期望。推断问题的核心是参数后验分布的求解,推断分为:

  1. 精确推断

  2. 近似推断-参数空间无法精确求解:

    ①确定性近似-如变分推断

    ②随机近似-如 MCMC,MH,Gibbs

二、公式导出

有以下数据:

XX :observed variable

ZZ :latent variable ++ parameter

(X,Z)(X, Z) :complete data

我们记 ZZ 为隐变量和参数的集合(注意这里和以前不太一样,这里的 ZZ 是隐变量+参数)。接着我们变换概率 p(X)p(X) 的形式然后引入分布 q(Z)q(Z) ,这里的 XX 指的是单个样本:

log⁡p(X)=log⁡p(X,Z)−log⁡p(Z∣X)=log⁡p(X,Z)q(Z)−log⁡p(Z∣X)q(Z)log p(X)=log p(X, Z)-log p(Z mid X)=log frac{p(X, Z)}{q(Z)}-log frac{p(Z mid X)}{q(Z)}

式子两边同时对 q(Z)q(Z) 求积分:

左边=∫Zq(Z)⋅log  p(X)dZ=log  p(X)∫Zq(Z)dZ=log  p(X)右边=∫Zq(Z)log  p(X,Z)q(Z)dZ⏟ELBO(evidence  lower  bound)−∫Zq(Z)log  p(Z∣X)q(Z)dZ⏟KL(q(Z)∣∣p(Z∣X,))=L(q)⏟变分+KL(q∣∣p)⏟≥0左边=int _{Z}q(Z)cdot log; p(X)mathrm{d}Z=log; p(X)int _{Z}q(Z )mathrm{d}Z=log; p(X) \ 右边=underset{ELBO(evidence; lower; bound)}{underbrace{int _{Z}q(Z)log; frac{p(X,Z)}{q(Z)}mathrm{d}Z}}underset{KL(q(Z)||p(Z|X,))}{underbrace{-int _{Z}q(Z)log; frac{p(Z|X)}{q(Z)}mathrm{d}Z}} \ =underset{变分}{underbrace{L(q)}} + underset{geq 0}{underbrace{KL(q||p)}}

分布 qq 是用来近似后验 pp 的,我们的目的是找到一个分布 qq 使得 qqpp 最接近,也就是使 KL(q∥p)K L(q | p) 越小越好,相当于使 L(q)L(q) 越大越好 (注意 q(Z)q(Z) 其实指的是 q(Z∣X)q(Z mid X) ,我们只是简写成 q(Z))q(Z))

q~(Z)=argmax⁡q(Z)L(q)⇒q~(Z)≈p(Z∣X)tilde{q}(Z)=underset{q(Z)}{operatorname{argmax}} L(q) Rightarrow tilde{q}(Z) approx p(Z mid X)

ZZ 是一个高维随机变量,在变分推断中我们对 q(Zq(Z ) 做以下假设(基于平均场假设的变分推断),也就是说我们把多维变量的不同维度分为 MM 组,组与组之间是相互独立的:

q(Z)=∏i=1Mqi(Zi)q(Z)=prod_{i=1}^M q_ileft(Z_iright)

求解时我们固定 qi(Zi),i≠jq_ileft(Z_iright), i neq j 来求 qj(Zj)q_jleft(Z_jright) ,接下来将 L(q)L(q) 写作两部分:

L(q)=∫Zq(Z)log  p(X,Z)dZ⏟①−∫Zq(Z)log  q(Z)dZ⏟②L(q)=underset{①}{underbrace{int _{Z}q(Z)log; p(X,Z)mathrm{d}Z}}-underset{②}{underbrace{int _{Z}q(Z)log; q(Z)mathrm{d}Z}}

对于①:

①=∫Z∏i=1Mqi(Zi)log  p(X,Z)dZ1dZ2⋯dZM=∫Zjqj(Zj)(∫Z−Zj∏i≠jMqi(Zi)log  p(X,Z)dZ1dZ2⋯dZM(i≠j))⏟∫Z−Zjlog  p(X,Z)∏i≠jMqi(Zi)dZidZj=∫Zjqj(Zj)⋅E∏i≠jMqi(Zi)[log  p(X,Z)]⋅dZj①=int _{Z}prod_{i=1}^{M}q_{i}(Z_{i})log; p(X,Z)mathrm{d}Z_{1}mathrm{d}Z_{2}cdots mathrm{d}Z_{M}\ =int _{Z_{j}}q_{j}(Z_{j})underset{int _{Z-Z_{j}}log; p(X,Z)prod_{ineq j}^{M}q_{i}(Z_{i})mathrm{d}Z_{i}}{underbrace{left (int _{Z-Z_{j}}prod_{ineq j}^{M}q_{i}(Z_{i})log; p(X,Z)underset{(ineq j)}{mathrm{d}Z_{1}mathrm{d}Z_{2}cdots mathrm{d}Z_{M}}right )}}mathrm{d}Z_{j}\ =int _{Z_{j}}q_{j}(Z_{j})cdot E_{prod_{ineq j}^{M}q_{i}(Z_{i})}[log; p(X,Z)]cdot mathrm{d}Z_{j}

对于②:

②=∫Zq(Z)log  q(Z)dZ=∫Z∏i=1Mqi(Zi)∑i=1Mlog  qi(Zi)dZ=∫Z∏i=1Mqi(Zi)[log  q1(Z1)+log  q2(Z2)+⋯+log  qM(ZM)]dZ其中∫Z∏i=1Mqi(Zi)log  q1(Z1)dZ=∫Z1Z2⋯ZMq1(Z1)q2(Z2)⋯qM(ZM)⋅log  q1(Z1)dZ1dZ2⋯dZM=∫Z1q1(Z1)log  q1(Z1)dZ1⋅∫Z2q2(Z2)dZ2⏟=1⋅∫Z3q3(Z3)dZ3⏟=1⋯∫ZMqM(ZM)dZM⏟=1=∫Z1q1(Z1)log  q1(Z1)dZ1也就是说∫Z∏i=1Mqi(Zi)log  qk(Zk)dZ=∫Zkqk(Zk)log  qk(Zk)dZk则②=∑i=1M∫Ziqi(Zi)log  qi(Zi)dZi=∫Zjqj(Zj)log  qj(Zj)dZj+C②=int _{Z}q(Z)log; q(Z)mathrm{d}Z\ =int _{Z}prod_{i=1}^{M}q_{i}(Z_{i})sum_{i=1}^{M}log; q_{i}(Z_{i})mathrm{d}Z\ =int _{Z}prod_{i=1}^{M}q_{i}(Z_{i})[log; q_{1}(Z_{1})+log; q_{2}(Z_{2})+cdots +log; q_{M}(Z_{M})]mathrm{d}Z\ 其中int _{Z}prod_{i=1}^{M}q_{i}(Z_{i})log; q_{1}(Z_{1})mathrm{d}Z\ =int _{Z_{1}Z_{2}cdots Z_{M}}q_{1}(Z_{1})q_{2}(Z_{2})cdots q_{M}(Z_{M})cdot log; q_{1}(Z_{1})mathrm{d}Z_{1}mathrm{d}Z_{2}cdots mathrm{d}Z_{M}\ =int _{Z_{1}}q_{1}(Z_{1})log; q_{1}(Z_{1})mathrm{d}Z_{1}cdot underset{=1}{underbrace{int _{Z_{2}}q_{2}(Z_{2})mathrm{d}Z_{2}}}cdot underset{=1}{underbrace{int _{Z_{3}}q_{3}(Z_{3})mathrm{d}Z_{3}}}cdots underset{=1}{underbrace{int _{Z_{M}}q_{M}(Z_{M})mathrm{d}Z_{M}}}\ =int _{Z_{1}}q_{1}(Z_{1})log; q_{1}(Z_{1})mathrm{d}Z_{1}\ 也就是说int _{Z}prod_{i=1}^{M}q_{i}(Z_{i})log; q_{k}(Z_{k})mathrm{d}Z=int _{Z_{k}}q_{k}(Z_{k})log; q_{k}(Z_{k})mathrm{d}Z_{k}\ 则②=sum_{i=1}^{M}int _{Z_{i}}q_{i}(Z_{i})log; q_{i}(Z_{i})mathrm{d}Z_{i}\ =int _{Z_{j}}q_{j}(Z_{j})log; q_{j}(Z_{j})mathrm{d}Z_{j}+C

然后我们可以得到①−②  ①-②;

首先①=∫Zjqj(Zj)⋅E∏i≠jMqi(Zi)[log  p(X,Z)]⏟写作log  p^(X,Zj)⋅dZj然后①−②=∫Zjqj(Zj)⋅logp^(X,Zj)qj(Zj)dZj+C∫Zjqj(Zj)⋅logp^(X,Zj)qj(Zj)dZj=−KL(qj(Zj)∣∣p^(X,Zj))≤0首先①=int _{Z_{j}}q_{j}(Z_{j})cdotunderset{写作log; hat{p}(X,Z_{j})}{ underbrace{E_{prod_{ineq j}^{M}q_{i}(Z_{i})}[log; p(X,Z)]}}cdot mathrm{d}Z_{j} \ 然后①-②=int _{Z_{j}}q_{j}(Z_{j})cdot logfrac{hat{p}(X,Z_{j})}{q_{j}(Z_{j})}mathrm{d}Z_{j}+C \ int _{Z_{j}}q_{j}(Z_{j})cdot logfrac{hat{p}(X,Z_{j})}{q_{j}(Z_{j})}mathrm{d}Z_{j}=-KL(q_{j}(Z_{j})||hat{p}(X,Z_{j}))leq 0

qj(Zj)=p^(X,Zj)q_{j}(Z_{j})=hat{p}(X,Z_{j})才能得到最⼤值。

三、回顾EM算法

回想一下广义EM算法中,我们需要固定θtheta然后求解与pp最接近的qq,这里就可以使用变分推断的方法,我们有如下式子:

log  pθ(X)=ELBO⏟L(q)+KL(q∣∣p)⏟≥0≥L(q)log; p_{theta }(X)=underset{L(q)}{underbrace{ELBO}}+underset{geq 0}{underbrace{KL(q||p)}}geq L(q)

然后求解qq

q^=argminq  KL(q∣∣p)=argmaxq  L(q)hat{q}=underset{q}{argmin}; KL(q||p)=underset{q}{argmax}; L(q)

如果我们使用类似于平均场变分推断的方法,我们可以得到一些结果。在这里,ZiZ_i并不代表ZZ的第ii个维度,而是指一组互相独立的变量。对于每一个 qj(Zj)q_jleft(Z_jright) ,我们都固定其余的 qi(Zi)q_ileft(Z_iright) ,然后求解这个值。我们可以使用坐标上升的方法进行迭代求解。上述的推导适用于单个样本,也适用于数据集。

log  qj(Zj)=E∏i≠jMqi(Zi)[log  pθ(X,Z)]=∫Z1∫Z2⋯∫Zj−1∫Zj+1⋯∫ZMq1q2⋯qj−1qj+1⋯qM⋅log  pθ(X,Z)dZ1dZ2⋯dZj−1dZj+1⋯dZMlog; q_{j}(Z_{j})=E_{prod_{ineq j}^{M}q_{i}(Z_{i})}[log; p_{theta }(X,Z)]\ =int _{Z_{1}}int _{Z_{2}}cdots int _{Z_{j-1}}int _{Z_{j+1}}cdots int _{Z_{M}}q_{1}q_{2}cdots q_{j-1}q_{j+1}cdots q_{M}cdot log; p_{theta }(X,Z)mathrm{d}Z_{1}mathrm{d}Z_{2}cdots mathrm{d}Z_{j-1}mathrm{d}Z_{j+1}cdots mathrm{d}Z_{M}

一次迭代求解的过程如下:

log  q^1(Z1)=∫Z2⋯∫ZMq2⋯qM⋅log  pθ(X,Z)dZ2⋯dZMlog  q^2(Z2)=∫Z1∫Z3⋯∫ZMq^1q3⋯qM⋅log  pθ(X,Z)dZ1dZ3⋯dZM⋮log  q^M(ZM)=∫Z1⋯∫ZM−1q^1⋯q^M−1⋅log  pθ(X,Z)dZ1⋯dZM−1log; hat{q}_{1}(Z_{1})=int _{Z_{2}}cdots int _{Z_{M}}q_{2}cdots q_{M}cdot log; p_{theta }(X,Z)mathrm{d}Z_{2}cdots mathrm{d}Z_{M}\ log; hat{q}_{2}(Z_{2})=int _{Z_{1}}int _{Z_{3}}cdots int _{Z_{M}}hat{q}_{1}q_{3}cdots q_{M}cdot log; p_{theta }(X,Z)mathrm{d}Z_{1}mathrm{d}Z_{3}cdots mathrm{d}Z_{M}\ vdots \ log; hat{q}_{M}(Z_{M})=int _{Z_{1}}cdots int _{Z_{M-1}}hat{q}_{1}cdots hat{q}_{M-1}cdot log; p_{theta }(X,Z)mathrm{d}Z_{1}cdots mathrm{d}Z_{M-1}

我们看到,对每一个 qj(Zj)q_jleft(Z_jright) ,都是固定其余的 qi(Zi)q_ileft(Z_iright) ,求这个值,于是可以使用坐标上升的方法进行迭代求解,上面的推导针对单个样本,但是对数据集也是适用的。
需要注意的是变分推断中参数 θtheta 是一个随机变量,因此 ZZ 既包括隐变量也包括参数 θtheta ,而在广义EM算法中, θtheta 被假设存在一个最优的常量,我们虽然也应用了平均场理论的方法,但是这里的 ZZ 只包括隐变量, θtheta 在这一步中被固定住了,相当于广义EM算法的E-step。

基于平均场假设的变分推断存在一些问题:

(1)假设太强,非常复杂的情况下,假设不适用;

(2)期望中的多重积分,计算量大,可能无法计算。

四、随机梯度变分推断 (SGVI)

  1. 直接求导数的方法

ZZXX 的过程叫做生成过程或解码过程,相当于Decoder(从不可见的ZZ生成可见的XX)。从 XXZZ 的过程叫做推断过程或编码过程,相当于Encoder(从可见的XX推断出不可见的ZZ)。基于平均场的变分推断可以导出坐标上升的算法,但是这个假设在一些情况下过于强烈,同时积分也可能无法计算。除了坐标上升,优化方法还有梯度上升,我们希望通过梯度上升得到变分推断的另一种算法。

首先假定 q(Z)=qϕ(Z)q(Z)=q_phi(Z) ,是和 ϕphi 这个参数相关联的概率分布。于是有:

argmax⁡q(Z)L(q)=argmax⁡ϕL(ϕ)underset{q(Z)}{operatorname{argmax}} L(q)=underset{phi}{operatorname{argmax}} L(phi)

其中 L(ϕ)=Eqϕ[log⁡pθ(X,Z)−log⁡qϕ(Z)]L(phi)=E_{q_phi}left[log p_theta(X, Z)-log q_phi(Z)right] ,这里的 XX 表示的是一个样本。

接下来我们关于ϕphi求偏导∇ϕnabla_{phi }

∇ϕL(ϕ)=∇ϕEqϕ[log  pθ(X,Z)−log  qϕ(Z)]=∇ϕ∫qϕ(Z)[log  pθ(X,Z)−log  qϕ(Z)]dZ=∫∇ϕqϕ(Z)⋅[log  pθ(X,Z)−log  qϕ(Z)]dZ⏟①+∫qϕ(Z)∇ϕ[log  pθ(X,Z)−log  qϕ(Z)]dZ⏟②其中②=∫qϕ(Z)∇ϕ[log  pθ(X,Z)⏟与ϕ无关−log  qϕ(Z)]dZ=−∫qϕ(Z)∇ϕlog  qϕ(Z)dZ=−∫qϕ(Z)1qϕ(Z)∇ϕqϕ(Z)dZ=−∫∇ϕqϕ(Z)dZ=−∇ϕ∫qϕ(Z)dZ=−∇ϕ1=0因此∇ϕL(ϕ)=①=∫∇ϕqϕ(Z)⋅[log  pθ(X,Z)−log  qϕ(Z)]dZ=∫qϕ(Z)∇ϕlog  qϕ(Z)⋅[log  pθ(X,Z)−log  qϕ(Z)]dZ=Eqϕ[(∇ϕlog  qϕ(Z))(log  pθ(X,Z)−log  qϕ(Z))]nabla_{phi }L(phi )=nabla_{phi }E_{q_{phi }}[log; p_{theta }(X,Z)-log; q_{phi }(Z)]\ =nabla_{phi }int q_{phi }(Z)[log; p_{theta }(X,Z)-log; q_{phi }(Z)]mathrm{d}Z \ =underset{①}{underbrace{int nabla_{phi }q_{phi }(Z)cdot [log; p_{theta }(X,Z)-log; q_{phi }(Z)]mathrm{d}Z}}+underset{②}{underbrace{int q_{phi }(Z)nabla_{phi }[log; p_{theta }(X,Z)-log; q_{phi }(Z)]mathrm{d}Z}}\ 其中②=int q_{phi }(Z)nabla_{phi }[underset{与phi 无关}{underbrace{log; p_{theta }(X,Z)}}-log; q_{phi }(Z)]mathrm{d}Z\ =-int q_{phi }(Z)nabla_{phi }log; q_{phi }(Z)mathrm{d}Z\ =-int q_{phi }(Z)frac{1}{q_{phi }(Z)}nabla_{phi }q_{phi }(Z)mathrm{d}Z\ =-int nabla_{phi }q_{phi }(Z)mathrm{d}Z\ =-nabla_{phi }int q_{phi }(Z)mathrm{d}Z\ =-nabla_{phi }1\ =0\ 因此nabla_{phi }L(phi )=①\ =int {color{Red}{nabla_{phi }q_{phi }(Z)}}cdot [log; p_{theta }(X,Z)-log; q_{phi }(Z)]mathrm{d}Z\ =int {color{Red}{q_{phi }(Z)nabla_{phi }log; q_{phi }(Z)}}cdot [log; p_{theta }(X,Z)-log; q_{phi }(Z)]mathrm{d}Z\ =E_{q_{phi }}[(nabla_{phi }log; q_{phi }(Z))(log; p_{theta }(X,Z)-log; q_{phi }(Z))]

这个期望可以通过蒙特卡洛采样来近似,从而得到梯度,然后利用梯度上升的方法来得到参数:

Z(l)∼qϕ(Z)Eqϕ[(∇ϕlog  qϕ(Z))(log  pθ(X,Z)−log  qϕ(Z))]≈1L∑i=1L(∇ϕlog  qϕ(Z(l)))(log  pθ(X,Z(l))−log  qϕ(Z(l)))Z^{(l)}sim q_{phi }(Z)\ E_{q_{phi }}[(nabla_{phi }log; q_{phi }(Z))(log; p_{theta }(X,Z)-log; q_{phi }(Z))]approx frac{1}{L}sum_{i=1}^{L}(nabla_{phi }log; q_{phi }(Z^{(l)}))(log; p_{theta }(X,Z^{(l)})-log; q_{phi }(Z^{(l)}))

但是,存在一个问题,求和符号中有一个对数项log;pθlog; p_{theta },所以如果我们直接采样,如果采样到qϕ(Z)q_{phi }(Z)接近于00的样本点,这会造成对数值极不稳定,也就是说直接采样的方差很大,需要非常多的样本。并且,如果计算出的梯度误差已经非常大,那么所得到的ϕ^hat{phi}就会有很大的误差,ϕ^hat{phi}q(z)q(z)的参数,误差会一层一层地传递,最后的结果可能会不理想。为了解决方差太大的问题,我们采用了一个技巧,叫做重参数化技巧(Reparameterization)

  1. 重参数化技巧

我们定义Z=gϕ(ε,X),ε∼p(ε)Z=g_{phi }(varepsilon ,X),varepsilon sim p(varepsilon ),对于Z∼qϕ(Z∣X)Zsim q_{phi }(Z|X),我们有∣qϕ(Z∣X)dZ∣=∣p(ε)dε∣left | q_{phi }(Z|X)mathrm{d}Z right |=left | p(varepsilon )mathrm{d}varepsilon right |。这是为了将ZZ的随机性转移到εvarepsilon上,使得我们可以将求梯度的操作移到期望的中括号里面,具体如下:

∇ϕL(ϕ)=∇ϕEqϕ[log  pθ(X,Z)−log  qϕ(Z)]=∇ϕ∫qϕ(Z)[log  pθ(X,Z)−log  qϕ(Z)]dZ=∇ϕ∫[log  pθ(X,Z)−log  qϕ(Z)]qϕ(Z)dZ=∇ϕ∫[log  pθ(X,Z)−log  qϕ(Z)]p(ε)dε=∇ϕEp(ε)(log  pθ(X,Z)−log  qϕ(Z)]=Ep(ε)[∇ϕ(log  pθ(X,Z)−log  qϕ(Z))]=Ep(ε)[∇Z(log  pθ(X,Z)−log  qϕ(Z))∇ϕZ]=Ep(ε)[∇Z(log  pθ(X(i),Z)−log  qϕ(Z∣X(i)))∇ϕgϕ(ε(l),X(i))]nabla_{phi }L(phi )=nabla_{phi }E_{q_{phi }}[log; p_{theta }(X,Z)-log; q_{phi }(Z)]\ =nabla_{phi }int q_{phi }(Z)[log; p_{theta }(X,Z)-log; q_{phi }(Z)]mathrm{d}Z\ =nabla_{phi }int [log; p_{theta }(X,Z)-log; q_{phi }(Z)]{color{Red}{q_{phi }(Z)mathrm{d}Z}}\ =nabla_{phi }int [log; p_{theta }(X,Z)-log; q_{phi }(Z)]{color{Red}{p(varepsilon )mathrm{d}varepsilon }}\ =nabla_{phi }E_{p(varepsilon )}(log; p_{theta }(X,Z)-log; q_{phi }(Z)]\ =E_{p(varepsilon )}[nabla_{phi }(log; p_{theta }(X,Z)-log; q_{phi }(Z))]\ =E_{p(varepsilon )}[nabla_{Z}(log; p_{theta }(X,Z)-log; q_{phi }(Z))nabla_{phi }Z]\ =E_{p(varepsilon )}[nabla_{Z}(log; p_{theta }(X^{(i)},Z)-log; q_{phi }(Z|X^{(i)}))nabla_{phi }g_{phi }(varepsilon^{(l)} ,X^{(i)})]

解释一下倒数第二步,链式求导法则

∂f∂ϕ=∂f∂z⋅∂z∂ϕz=g(ϕ)frac{partial f}{partial phi}=frac{partial f}{partial z} cdot frac{partial z}{partial phi} quad z=g(phi)

最后一步所有Z都可以看成gϕ(ε(l),X(i)),l=1,2,…,Lg_{phi }(varepsilon^{(l)} ,X^{(i)}), l = 1,2,…,LX(i)X^{(i)}为第i个样本,只是在最后一步列出了完整式子

对最终这个中括号里的式子进行蒙特卡洛采样,然后计算期望,得到梯度。这里的采样就是从p(ε)p(varepsilon )中进行采样了。

SGVI的迭代过程为:

ϕt+1←ϕt+λt⋅∇ϕL(ϕ)phi ^{t+1}leftarrow phi ^{t}+lambda ^{t}cdot nabla_{phi }L(phi )

这就是典型的梯度上升,蒙特卡洛采样的方法会在后面的文章中介绍。

总结

EM算法解决的是含有隐变量的参数估计问题(是一个优化方法);而VI解决的是后验概率的推断问题,求的是概率分布;SGVI的思想是在VI的基础之上,通过假设分布类型,将分布估计转换为参数估计。

“开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 10 天,点击查看活动详情

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

提升 Python 函数调用灵活性:参数传递类型详解

2023-12-4 19:33:14

AI教程

图算法在转转推荐系统中的应用

2023-12-4 19:46:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索