dy=f(x1+dx)−f(x1)
dy是y的微分,也就是函数的微分,是指的x变化了一个极小值引起的因变量函数的变化。
泛函指的是,因变量为函数的函数。
函数 | 泛函 |
---|
f(x0)=y0 | ϕ(fθ0(x))=y0 |
当自变量为一个特定值,函数加工的结果对应特定值 | 当自变量为一个特定的函数(可以理解为特定的分布)如y=x,泛函加工为一个特定的值 |
变分指的是,当自变量函数做出微小变化y→y+δy时(可以理解为分布发生微小变化,如y=x变为y=1.00001∗x,y=x+0.0001),泛函的函数值变化了δJ,这个变化值就是泛函的变分。
q(x)=i∏q(xi)
贝叶斯学习认为模型p(x∣θ)中的参数θ不是一个确定的未知参数,而是一个随机变量,假设为θ服从p(θ∣λ),所以,需要通过贝叶斯定理求得后验p(θ∣x)=p(x)p(x∣θ)p(θ∣λ)。
需要计算p(θ∣x)的值,抽样很多样本,使用期望来近似,贝叶斯公式中p(x∣θ)是数据的似然和p(θ∣λ) 是参数的先验分布,p(x)通过∫θp(x∣θ)p(θ∣λ)dλ得到。
通过原有样本X来推断N个新的样本x^,即
p(x^∣X)=∫θp(x^,θ∣X)dθ=∫θp(x^∣θ)⋅p(θ∣X)dθ=Eθ∣X[p(x^∣θ)]
使用ELBO来替代,含有隐变量的概率模型中,观测数据的对数概率
logθp(x)
参数设定如下
X : Observed data
Z : latent variable + parameter
(X,Z) : complete data + parameter
由于
x是观测数据,
q(z∣x)简写为
q(z)
根据贝叶斯定理
p(z∣x)=p(x)p(x∣z)p(z)=p(x)p(x,z)
移项取log
logp(x)=logp(z∣x)p(x,z)=logq(z)p(z∣x)q(z)p(x,z)=logq(z)p(x,z)−logq(z)p(z∣x)
左右两边对
q(z)求进行积分
左边=∫zq(z)logp(x)dz=logp(x)
右边=∫q(z)logq(z)p(x,z)dz−∫q(z)logq(z)p(z∣x)dz
右边=ELBO(evidencelowerbound)∫q(z)logq(z)p(x,z)dz+KL(q∣∣p)∫q(z)logp(z∣x)q(z)dz
右边=关于q的变分L(q)+⩾0KL(q∣∣p)
其中
L(q)是用来定义ELBO项的函数,用以说明其输入是一个
q函数,
q函数是我们随意找的一个概率密度函数,所以
L(q)是关于
q的变分,变分推断来自于此。
说明一下,当X固定时,右边的和固定,而由于KL散度的性质,
KL(q∣∣p)恒大于零,所以
L(q)最大就是
logp(x)。
转为变分推断的关键问题,后验
p(z∣x)无法求得,所以需要使用
q(z)来近似它,即使得
q(z)≈p(z∣x)。此时
KL(q∣∣p)最小,趋近于零。反过来思考,当找到一个
q(z)~使得变分
L(q)达到最大时,也能让
KL(q∣∣p)达到最小值,即使得
q(z)~≈p(z∣x),形式化表达如下。
q(z)~=argmaxq(z) L(q) ⇒ q(z)~≈p(z∣x)
平均场理论
q(z)=i=1∏Mq(zi)logpθ(X)=logi=1∏Npθ(xi)=i=1∑Nlogpθ(xi)
logpθ(xi)=L(q)ELBO+⩾0KL(q∣∣p))⩾L(q)
需要求解的目标函数是
q(z)~=argminq(z) KL(q∣∣p)=argmaxq(z) L(q)
假设
q(z)的分布参数为
ϕ,则变分
L(q)可以写成
L(ϕ),即观测分布表示为
logpθ(xi)=L(ϕ)ELBO+⩾0KL(q∣∣p))⩾L(ϕ)
ELBO=Eqϕ(z)[logqϕ(z)pθ(xi,z)]
那么我们想要最大化
ELBO时,
q(z)分布的参数
ϕ形式化表达为
ϕ^=argmaxϕ L(ϕ)
使用梯度随机梯度上升策略,需要求得
L(ϕ)对
ϕ的梯度如下。
∇ϕL(ϕ)=∇ϕEqϕ[logpθ(xi,z)−logqϕ(z)]=∇ϕ∫qϕ[logpθ(xi,z)−logqϕ(z)]dz=∫∇ϕqϕ⋅[logpθ(xi,z)−logqϕ(z)]dz+∫qϕ∇ϕ[logpθ(xi,z)−logqϕ(z)]dz=∫qϕ⋅∇ϕlogqϕ⋅[logpθ(xi,z)−logqϕ(z)]dz+0=Eqϕ[∇ϕlogqϕ⋅[logpθ(xi,z)−logqϕ(z)]
如果使用蒙特卡罗的方式,梯度
∇ϕL(ϕ),即期望
Eqϕ[∇ϕlogqϕ⋅[logpθ(xi,z)−logqϕ(z)]可以通过从
qϕ(z)中采样L个z得到,即
z(l)∽qϕ(z),l=1,2,⋯,L∇ϕL(ϕ)≈L1l=1∑L∇ϕlogqϕ(zi)⋅[logpθ(xi,z)−logqϕ(z)]
而
Eqϕ[high variance∇ϕlogqϕ⋅[logpθ(xi,z)−logqϕ(z)]在采样时,由于log函数的性质,当
qϕ(z) → 0时,其中的
∇ϕlogqϕ项会带来高方差问题。这导致了采样需要的样本量巨大,且误差较大,甚至可以认为无法采样。因此,无法采用蒙特卡洛方式来近似梯度
∇ϕL(ϕ)。
故现在需要降低梯度表达的方差,即Variance Reduction问题。使用重参数化技巧(Reparameterization Trick)。目的是将随机变量
z和
ϕ的关系解耦,将
z的随机成分转移到
ϵ。
假设
z=gϕ(ϵ,xi) ,
ϵ∽p(ϵ),
z∽qϕ(z∣xi),则由于
∫qϕ(z∣xi)dz=∫p(ϵ)dϵ=1,可以得出
∣qϕ(z∣xi)dz∣=∣p(ϵ)⋅dϵ∣。
故梯度可以进行如下表达
∇ϕL(ϕ)带入z=gϕ(ϵ,xi)得,=∇ϕEqϕ[logpθ(xi,z)−logqϕ(z)]=∇ϕ∫[logpθ(xi,z)−logqϕ(z)]qϕdz=∇ϕ∫[logpθ(xi,z)−logqϕ(z)]p(ϵ)dϵ=∇ϕEp(ϵ)[logpθ(xi,z)−logqϕ(z)]=Ep(ϵ)[∇ϕ(logpθ(xi,z)−logqϕ(z))]=Ep(ϵ)[∇z(logpθ(xi,z)−logqϕ(z))⋅∇ϕz]=Ep(ϵ)[∇z(logpθ(xi,z)−logqϕ(z))⋅∇ϕgϕ(ϵ,xi)]
此时,便可以采用蒙特卡罗采样来近似梯度
∇ϕL(ϕ),期望即是均值。
假设进行
L次采样,
ϵ(l)∼p(ϵ), l=1,2,⋯,L。
∇ϕL(ϕ)≈∇ϕL(ϕ)=L1l=1∑L∇z(logpθ(xi,z)−logqϕ(z))⋅∇ϕgϕ(ϵ(l),xi)
SGVI训练过程如下
ϕ(t+1)←ϕ(t)+λ(t)⋅∇ϕL(ϕ)f假设数据集
X={x(i)}i=1N服从
N i.i.d.。该集合中的数据由某些随机过程生成而来,过程中含有无法观测的连续随机变量
z。这个随机过程包含两个步骤,首先,从先验分布
pθ∗(z)中生成一个
z(i)。步骤二是从条件分布
pθ∗(x∣z)中采样
x(i)。假设
pθ∗(z)和
pθ∗(x∣z)来自
pθ(z)和
pθ(x∣z)的参数家族,并且他们的表达在提及
θ和
z时都是可微的。这个过程的许多部分都是对我们不可见的:不论是真实的参数
θ∗还是隐变量
z(i)都是未知的。
隐变量模型 Latent Variable Model
GMM 混合高斯模型,有限个高斯模型混合
z~Categorical Dist
VAE 无限个(infinite)高斯模型混合:
z∼N(0,I),
x∣z∼N(μθ(z),∑θ(z)),得到如下建模,
pθ(x)=∫zpθ(x,z)dz = ∫zp(z)⋅pθ(x∣z)dz
其中
pθ(x)为intractable。
如果需要使用VAE生成一个样本,先从
p(z)中采样一个
zi,然后使用
pθ(x∣z)(实际采用一个神经网络来逼近,即Decoder)来得到
xi。
由变分推断可知
logp(x)=ELBO+KL(qϕ(z∣x)∣∣pθ(z∣x))
优化目标如下
<θ^,ϕ^>=argmin<θ,ϕ> KL(qϕ(z∣x)∣∣pθ(z∣x))=argmax<θ,ϕ> ELBO=argmax<θ,ϕ> Eqϕ(z∣x)[logpθ(x,z)]+H[qϕ]=argmax<θ,ϕ> Eqϕ(z∣x)[logpθ(x,z)−logqϕ(z∣x)]=argmax<θ,ϕ> Eqϕ(z∣x)[logpθ(x∣z)+logp(z)−logqϕ(z∣x)]=argmax<θ,ϕ> Eqϕ(z∣x)[logpθ(x∣z)]+∫qϕ(z∣x)logqϕ(z∣x)logp(z)dz=argmax<θ,ϕ>真正的目标函数 Eqϕ(z∣x)[logpθ(x∣z)]−看做正则化项,使编码器不坍缩KL(qϕ(z∣x)∣∣p(z))使用SGVI进行训练,重参数化技巧可以如下实现
ϵ可以看做采样的噪声,
ϵ∽N(0,I)。假设
z∣x∽N(μϕ(x),Σϕ(x))则
z=μϕ(x)+Σϕ21(x)⋅ϵhttps://www.bilibili.com/video/BV1DW41167vr?p=1&vd_source=309d79182a0075ce59fbfe1a028281fd
https://www.bilibili.com/video/BV1G34y1t7Dy/?p=2&spm_id_from=pageDriver&vd_source=309d79182a0075ce59fbfe1a028281fd
https://zhuanlan.zhihu.com/p/345597656