上一节介绍了MCMC以及平均场理论变分推断方法的弊端并介绍了醒眠算法(Weak-Sleep Algorithm)。本节将介绍从KL散度(KL Divergence)角度观察醒眠算法的两个迭代步骤。
这里以一个比较简单的 Sigmoid \text{Sigmoid} Sigmoid信念网络概率图结构为例:
醒眠算法包括两个步骤:
这里的示例比较简单,样本中仅包含一个随机变量。
这里用
R \mathcal R R替代上一节的
r r r,更容易分辨些~
虽然‘基于平均场假设变分推断’没有涉及采样,但同样相比不动点方程收敛过程要效率的多。
按照这个顺序得到的结果自然是关于‘观测变量后验概率的结果’
P ( v ′ ∣ h ) \mathcal P(v' \mid h) P(v′∣h),相当于通过模型生成新的样本,自然是生成过程。
这里的
v ′ v' v′表示从模型中产生的样本结果,这个样本不同于
v v v,因为
v v v是从真实分布中产生的样本:
v ⇒ P d a t a v \Rightarrow \mathcal P_{data} v⇒Pdata;而
v ′ v' v′是从模型中产生的样本
v ′ ⇒ P m o d e l v' \Rightarrow \mathcal P_{model} v′⇒Pmodel.这里将 Sleep Phase \text{Sleep Phase} Sleep Phase的生成过程(Generative Connection)看作生成模型的步骤,并使用联合概率分布进行建模:
这里的
θ \theta θ指的就是
Sigmoid \text{Sigmoid} Sigmoid信念网络中表示随机变量结点之间关联关系的模型参数集合
W \mathcal W W.
例如上图中的
W \mathcal W W就表示
{ W h 1 ( i ) → v 1 ( i ) ; W h 2 ( i ) → v 1 ( i ) } \left\{\mathcal W_{h_1^{(i)} \to v_1^{(i)}};\mathcal W_{h_2^{(i)} \to v_1^{(i)}}\right\} {Wh1(i)→v1(i);Wh2(i)→v1(i)}
Generative Model : P ( v , h ; θ ) θ ⇒ W \text{Generative Model : } \mathcal P(v,h;\theta) \quad \theta \Rightarrow \mathcal W Generative Model : P(v,h;θ)θ⇒W
同理,将 Weak Phase \text{Weak Phase} Weak Phase的认知过程(Recognization)将其视作模型的形式。通过上面对认知过程的描述,它本质上是对后验概率分布 P ( h ∣ v ) \mathcal P(h \mid v) P(h∣v)的一个近似。这里使用 Q ( h ∣ v ) \mathcal Q(h \mid v) Q(h∣v)进行表示,并对它进行建模:
同上,符号
ϕ \phi ϕ表示模型
Q ( h ∣ v ) \mathcal Q(h \mid v) Q(h∣v)的模型参数,也就是上图中反向关联(红色线)的模型参数集合
R \mathcal R R.
上图中的
R \mathcal R R则表示
{ R v 1 ( i ) → h 1 ( i ) ; R v 1 ( i ) → h 2 ( i ) } \left\{\mathcal R_{v_1^{(i)} \to h_1^{(i)}};\mathcal R_{v_1^{(i)} \to h_2^{(i)}}\right\} {Rv1(i)→h1(i);Rv1(i)→h2(i)}
Recognization Model : Q ( h ∣ v ; ϕ ) ϕ ⇒ R \text{Recognization Model : } \mathcal Q(h \mid v;\phi) \quad \phi \Rightarrow \mathcal R Recognization Model : Q(h∣v;ϕ)ϕ⇒R
观察醒眠算法是如何学习模型参数的:
Bottom-up : \text{Bottom-up : } Bottom-up : 给定真实样本条件下,从隐变量的后验概率分布中进行采样:
{ h ( 1 ) , ⋯ , h ( N ) } ∼ Q ( h ∣ v ; ϕ ) \{h^{(1)},\cdots, h^{(N)}\} \sim \mathcal Q(h \mid v;\phi) {h(1),⋯,h(N)}∼Q(h∣v;ϕ)
Learning Generative Connection : \text{Learning Generative Connection : } Learning Generative Connection : 基于 Q ( h ∣ v ; ϕ ) \mathcal Q(h \mid v;\phi) Q(h∣v;ϕ)产生的样本,去近似学习生成过程 的参数信息。那么对应的目标函数可表示为:
就是使用‘蒙特卡洛方法’进行近似。
添加一个
log \log log,不影响最值取值的变化。
这里
P ( v , h ( i ) ; θ ) \mathcal P(v,h^{(i)};\theta) P(v,h(i);θ)中的
v v v是真实的训练样本。
在近似求解模型参数
θ \theta θ的过程中,也就是
Weak Phase \text{Weak Phase} Weak Phase过程中,关于
Q ( h ∣ v ; ϕ ) \mathcal Q(h \mid v;\phi) Q(h∣v;ϕ)是给定的。即求解
W \mathcal W W步骤中,
R \mathcal R R是给定的。初始状态下自然需要一个随机初始化的
R \mathcal R R.那么关于模型参数 θ \theta θ的最优解 θ ^ \hat \theta θ^可表示为:
θ ^ = arg max θ E Q ( h ∣ v ; ϕ ) [ log P ( v , h ; θ ) ] \begin{aligned} \hat \theta & = \mathop{\arg\max}\limits_{\theta} \mathbb E_{\mathcal Q(h \mid v;\phi)} \left[\log \mathcal P(v,h;\theta)\right] \\ \end{aligned} θ^=θargmaxEQ(h∣v;ϕ)[logP(v,h;θ)]
这实际上就是求解 证据下界(Evidence Lower Bound,ELBO) 的最优解:
H [ Q ( h ∣ v ; ϕ ) ] \mathcal H \left[\mathcal Q(h \mid v;\phi)\right] H[Q(h∣v;ϕ)]表示近似后验分布
Q ( h ∣ v ; ϕ ) \mathcal Q(h \mid v;\phi) Q(h∣v;ϕ)的熵。
{ log P ( v ) = ELBO + KL [ Q ( h ∣ v ; ϕ ) ∣ ∣ P ( v , h ; θ ) ] ELBO = ∑ h Q ( h ∣ v ; ϕ ) ⋅ log P ( h , v ; θ ) Q ( h ∣ v ; ϕ ) = E Q ( h ∣ v ; ϕ ) [ log P ( h , v ; θ ) Q ( h ∣ v ; ϕ ) ] = E Q ( h ∣ v ; ϕ ) [ log P ( h , v ; θ ) ] + H [ Q ( h ∣ v ; ϕ ) ] \begin{cases} \log \mathcal P(v) = \text{ELBO} + \text{KL} \left[\mathcal Q(h \mid v;\phi)||\mathcal P(v,h;\theta)\right] \\ \begin{aligned}\text{ELBO} & = \sum_{h} \mathcal Q(h \mid v;\phi) \cdot \log \frac{\mathcal P(h,v;\theta)}{\mathcal Q(h \mid v;\phi)}\\ & = \mathbb E_{\mathcal Q(h \mid v;\phi)} \left[\log \frac{\mathcal P(h,v;\theta)}{\mathcal Q(h \mid v;\phi)}\right] \\ & = \mathbb E_{\mathcal Q(h \mid v;\phi)} \left[\log \mathcal P(h,v;\theta)\right] + \mathcal H \left[\mathcal Q(h \mid v;\phi)\right] \end{aligned} \end{cases} ⎩ ⎨ ⎧logP(v)=ELBO+KL[Q(h∣v;ϕ)∣∣P(v,h;θ)]ELBO=h∑Q(h∣v;ϕ)⋅logQ(h∣v;ϕ)P(h,v;θ)=EQ(h∣v;ϕ)[logQ(h∣v;ϕ)P(h,v;θ)]=EQ(h∣v;ϕ)[logP(h,v;θ)]+H[Q(h∣v;ϕ)]
由于在
Weak Phase \text{Weak Phase} Weak Phase步骤中
ϕ \phi ϕ是已知参数,因而可以将
H [ Q ( h ∣ v ; ϕ ) ] \mathcal H\left[\mathcal Q(h \mid v;\phi)\right] H[Q(h∣v;ϕ)]看作是一个已知的常量。而求解最值时,常量对最值结果不影响。
θ ^ = arg max θ ELBO = arg max θ { E Q ( h ∣ v ; ϕ ) [ log P ( h , v ; θ ) ] + H [ Q ( h ∣ v ; ϕ ) ] ⏟ = C } = arg max θ { E Q ( h ∣ v ; ϕ ) [ log P ( h , v ; θ ) ] } \begin{aligned} \hat \theta & = \mathop{\arg\max}\limits_{\theta} \text{ELBO} \\ & = \mathop{\arg\max}\limits_{\theta} \left\{\mathbb E_{\mathcal Q(h \mid v;\phi)} \left[\log \mathcal P(h,v;\theta)\right] + \underbrace{\mathcal H \left[\mathcal Q(h \mid v;\phi)\right]}_{=\mathcal C} \right\} \\ & = \mathop{\arg\max}\limits_{\theta} \left\{\mathbb E_{\mathcal Q(h \mid v;\phi)} \left[\log \mathcal P(h,v;\theta)\right] \right\} \end{aligned} θ^=θargmaxELBO=θargmax⎩ ⎨ ⎧EQ(h∣v;ϕ)[logP(h,v;θ)]+=C H[Q(h∣v;ϕ)]⎭ ⎬ ⎫=θargmax{EQ(h∣v;ϕ)[logP(h,v;θ)]}
将最初始的期望求解最值问题转化为 ELBO \text{ELBO} ELBO求解最值问题,其作用是什么?
自然是将 求解 θ \theta θ最优解转化为概率分布 Q ( h ∣ v ; ϕ ) \mathcal Q(h \mid v;\phi) Q(h∣v;ϕ)和分布 P ( h , v ; θ ) \mathcal P(h,v;\theta) P(h,v;θ)之间的相关性比较。 ELBO \text{ELBO} ELBO最大,意味着 KL [ Q ( h ∣ v ; ϕ ) ∣ ∣ P ( h ∣ v ; θ ) ] \text{KL} \left[\mathcal Q(h \mid v;\phi)|| \mathcal P(h \mid v;\theta)\right] KL[Q(h∣v;ϕ)∣∣P(h∣v;θ)]达到最小,此时分布 Q ( h ∣ v ; θ ) \mathcal Q(h \mid v;\theta) Q(h∣v;θ)和分布 P ( h ∣ v ; θ ) \mathcal P(h \mid v;\theta) P(h∣v;θ)是最相似的。
此时已经不仅仅采样隐变量了,并且还会采样出‘虚拟的观测变量’。
对应步骤和
Weak Phase \text{Weak Phase} Weak Phase相似,需要注意
Q ( h ( i ) ∣ v ′ ( i ) ∣ ; ϕ ) \mathcal Q(h^{(i)} \mid v^{'(i)} \mid ;\phi) Q(h(i)∣v′(i)∣;ϕ)关于这里确实存在一些个人疑问:为什么不去对
v v v进行积分。因为在
Sleep Phase \text{Sleep Phase} Sleep Phase中,
v v v也是从
P ( h , v ; θ ^ ) \mathcal P(h,v;\hat \theta) P(h,v;θ^)中生成出来的虚拟样本,不同于
Weak Phase \text{Weak Phase} Weak Phase的真实样本,为什么它可以不用积分?
分解出的
P ( v ; θ ) \mathcal P(v;\theta) P(v;θ)明显是不含参数
ϕ \phi ϕ,并且也不含隐变量
h h h,将其从积分号中提出来,并视作常数,忽略掉。
因为该项中根本不包含任何关于参数
ϕ \phi ϕ的信息,可以将其视作常数,不影响
ϕ \phi ϕ的取值。
这里将符号和
argmax \text{argmax} argmax合并了~
比对一下 Weak Phase \text{Weak Phase} Weak Phase和 Sleep Phase \text{Sleep Phase} Sleep Phase之间关于模型参数的描述:
{ θ ^ = arg min θ KL [ Q ( h ∣ v ; ϕ ) ∣ ∣ P ( h ∣ v ; θ ) ] ϕ ^ = arg min ϕ KL [ P ( h ∣ v ; θ ) ∣ ∣ Q ( h ∣ v ; ϕ ) ] \begin{cases} \hat \theta = \mathop{\arg\min}\limits_{\theta} \text{KL} \left[\mathcal Q(h \mid v;\phi)|| \mathcal P(h\mid v;\theta)\right] \\ \hat \phi = \mathop{\arg\min}\limits_{\phi} \text{KL} \left[\mathcal P(h \mid v;\theta) || \mathcal Q(h \mid v;\phi)\right] \end{cases} ⎩ ⎨ ⎧θ^=θargminKL[Q(h∣v;ϕ)∣∣P(h∣v;θ)]ϕ^=ϕargminKL[P(h∣v;θ)∣∣Q(h∣v;ϕ)]
很明显,这两个步骤对于模型参数的优化分别基于不同的 KL Divergence \text{KL Divergence} KL Divergence。也就是说,这两个参数的更新并没有共用同一个目标函数。
注意
KL Divergence \text{KL Divergence} KL Divergence中分布顺序与结果之间存在差异。没有什么交换律~
这也是该算法被称为启发式算法的原因,无法确定参数 ϕ , θ \phi,\theta ϕ,θ是否能够收敛成稳定形式。因而这种方式只能适用于某些模型。
如果将醒眠算法与广义 EM \text{EM} EM算法的迭代思路进行对比的话,发现EM算法无论是E步还是M步,它们均有相同的目标函数——使 ELBO \text{ELBO} ELBO达到最大。
但醒眠算法不同。求解 θ ^ \hat \theta θ^中的 v v v是真实样本;而 ϕ ^ \hat \phi ϕ^中的 v v v是模型生成的虚拟样本,实际上在 Sleep Phase \text{Sleep Phase} Sleep Phase步骤中,参数更新已经在发生偏移了。
关于 Sleep Phase \text{Sleep Phase} Sleep Phase的另一层含义是,不同于 Weak Phase \text{Weak Phase} Weak Phase以真实样本作为条件, Sleep Phase \text{Sleep Phase} Sleep Phase最初始状态是以入度为零的隐变量结点作为条件。而隐变量就是认人为假定模型中的变量信息。因而都是虚拟样本。
在花书P371页下方也称其为‘幻想粒子’(Fantasy Particle)。在
配分函数——随机最大似然中也提到过这个词。
至此,关于 Sigmoid \text{Sigmoid} Sigmoid信念网络部分介绍到此结束。下一节将介绍深度玻尔兹曼机(Deep Boltzmann Machine,DBM)。
相关参考:
(系列二十六)Sigmoid Belief Network5-醒眠算法-KL Divergence
(系列二十六)Sigmoid Belief Network5-醒眠算法-KL Divergence续