机器学习笔记之Sigmoid信念网络(三)KL散度角度观察醒眠算法

news2024/9/30 9:29:34

机器学习笔记之Sigmoid信念网络——KL散度角度观察醒眠算法

引言

上一节介绍了MCMC以及平均场理论变分推断方法的弊端并介绍了醒眠算法(Weak-Sleep Algorithm)。本节将介绍从KL散度(KL Divergence)角度观察醒眠算法的两个迭代步骤。

回顾: 醒眠算法过程

这里以一个比较简单的 Sigmoid \text{Sigmoid} Sigmoid信念网络概率图结构为例:
Sigmoid信念网络概率图结构——简单
醒眠算法包括两个步骤:

  • Weak Phase : \text{Weak Phase :} Weak Phase : 其本质上是通过采样的方式得到一个关于 P ( h ∣ v ) \mathcal P(h \mid v) P(hv)的近似后验。以某具体样本 v ( i ) = v 1 ( i ) v^{(i)} = v_1^{(i)} v(i)=v1(i)为例,它关于隐变量后验概率分布表示如下:
    这里的示例比较简单,样本中仅包含一个随机变量。
    P ( h ( i ) ∣ v ( i ) ) = P ( h 1 ( i ) , h 2 ( i ) ∣ v 1 ( i ) ) \mathcal P(h^{(i)} \mid v^{(i)}) = \mathcal P(h_1^{(i)},h_2^{(i)} \mid v_1^{(i)}) P(h(i)v(i))=P(h1(i),h2(i)v1(i))
    这明显是关于 h 1 ( i ) , h 2 ( i ) h_1^{(i)},h_2^{(i)} h1(i),h2(i)联合后验分布——那么 Weak Phase \text{Weak Phase} Weak Phase是如何实现近似后验的呢? Weak Phase \text{Weak Phase} Weak Phase具体过程表示如下(红色线):
    Weak-Phase过程表示(红色线)
    具体样本 v ( i ) = v 1 ( i ) v^{(i)} = v_1^{(i)} v(i)=v1(i)为基础,对隐变量的后验进行采样。根据概率图模型——贝叶斯网络结构表示红色线部分明显是一个同父结构(Common Parent)。因而在给定(可观测) v 1 ( i ) v_1^{(i)} v1(i)的条件下, h 1 ( i ) , h 2 ( i ) h_1^{(i)},h_2^{(i)} h1(i),h2(i)之间相互独立:
    P ( h 1 ( i ) , h 2 ( i ) ∣ v 1 ( i ) ) = P ( h 1 ( i ) ∣ v 1 ( i ) ) ⋅ P ( h 2 ( i ) ∣ v 1 ( i ) ) \mathcal P(h_1^{(i)},h_2^{(i)} \mid v_1^{(i)}) = \mathcal P(h_1^{(i)} \mid v_1^{(i)}) \cdot \mathcal P(h_2^{(i)} \mid v_1^{(i)}) P(h1(i),h2(i)v1(i))=P(h1(i)v1(i))P(h2(i)v1(i))
    h 1 ( i ) , h 2 ( i ) h_1^{(i)},h_2^{(i)} h1(i),h2(i)各自的后验概率分布分别表示为:
    这里用 R \mathcal R R替代上一节的 r r r,更容易分辨些~
    P ( h 1 ( i ) ∣ v 1 ( i ) ) = { σ ( R v 1 ( i ) → h 1 ( i ) ⋅ v 1 ( i ) ) h 1 ( i ) = 1 1 − σ ( R v 1 ( i ) → h 1 ( i ) ⋅ v 1 ( i ) ) h 1 ( i ) = 0 P ( h 2 ( i ) ∣ v 1 ( i ) ) = { σ ( R v 1 ( i ) → h 2 ( i ) ⋅ v 1 ( i ) ) h 2 ( i ) = 1 1 − σ ( R v 1 ( i ) → h 2 ( i ) ⋅ v 1 ( i ) ) h 2 ( i ) = 0 \mathcal P(h_1^{(i)} \mid v_1^{(i)}) = \begin{cases} \sigma \left(\mathcal R_{v_1^{(i)} \to h_1^{(i)}} \cdot v_1^{(i)}\right) \quad h_1^{(i)} = 1 \\ 1 - \sigma \left(\mathcal R_{v_1^{(i)} \to h_1^{(i)}} \cdot v_1^{(i)}\right) \quad h_1^{(i)} = 0 \\ \end{cases} \\ \mathcal P(h_2^{(i)} \mid v_1^{(i)}) = \begin{cases} \sigma \left(\mathcal R_{v_1^{(i)} \to h_2^{(i)}} \cdot v_1^{(i)}\right) \quad h_2^{(i)} = 1 \\ 1 - \sigma \left(\mathcal R_{v_1^{(i)} \to h_2^{(i)}} \cdot v_1^{(i)}\right) \quad h_2^{(i)} = 0 \\ \end{cases} P(h1(i)v1(i))= σ(Rv1(i)h1(i)v1(i))h1(i)=11σ(Rv1(i)h1(i)v1(i))h1(i)=0P(h2(i)v1(i))= σ(Rv1(i)h2(i)v1(i))h2(i)=11σ(Rv1(i)h2(i)v1(i))h2(i)=0
    至此,已经求出 P ( h 1 ( i ) ∣ v 1 ( i ) ) ⋅ P ( h 2 ( i ) ∣ v 1 ( i ) ) \mathcal P(h_1^{(i)} \mid v_1^{(i)}) \cdot \mathcal P(h_2^{(i)} \mid v_1^{(i)}) P(h1(i)v1(i))P(h2(i)v1(i))结果了,但为什么称它为近似后验呢?很简单,因为 Weak Phase \text{Weak Phase} Weak Phase过程的那两条红色线是自己假设的,真实模型中是不存在的
    因此,使用因子分解的方式将 P ( h 1 ( i ) , h 2 ( i ) ∣ v 1 ( i ) ) \mathcal P(h_1^{(i)},h_2^{(i)} \mid v_1^{(i)}) P(h1(i),h2(i)v1(i))分解成 P ( h 1 ( i ) ∣ v 1 ( i ) ) ⋅ P ( h 2 ( i ) ∣ v 1 ( i ) ) \mathcal P(h_1^{(i)} \mid v_1^{(i)}) \cdot \mathcal P(h_2^{(i)} \mid v_1^{(i)}) P(h1(i)v1(i))P(h2(i)v1(i))的形式并分别求解的结果是近似结果,必然会影响精度。但 Weak Phase \text{Weak Phase} Weak Phase过程并不是追求精度,而是追求效率。这种近似方式所采集的样本仅需要 一次采样过程 即可近似出来,而不是像MCMC要等到平稳分布才可以停止采样。
    虽然‘基于平均场假设变分推断’没有涉及采样,但同样相比不动点方程收敛过程要效率的多。
  • Sleep Phase :  \text{Sleep Phase : } Sleep Phase :  该过程整个是 Sigmoid \text{Sigmoid} Sigmoid信念网络信息的正常传递过程,这个过程是基于模型产生的。也称生成过程
    按照这个顺序得到的结果自然是关于‘观测变量后验概率的结果’ P ( v ′ ∣ h ) \mathcal P(v' \mid h) P(vh),相当于通过模型生成新的样本,自然是生成过程。
    这里的 v ′ v' v表示从模型中产生的样本结果,这个样本不同于 v v v,因为 v v v是从真实分布中产生的样本: v ⇒ P d a t a v \Rightarrow \mathcal P_{data} vPdata;而 v ′ v' v是从模型中产生的样本 v ′ ⇒ P m o d e l v' \Rightarrow \mathcal P_{model} vPmodel.
    关于生成模型建模, P ( v ∣ h ) \mathcal P(v \mid h) P(vh)还是 P ( v , h ) \mathcal P(v,h) P(v,h)均可以。关于联合概率分布 P ( v , h ) \mathcal P(v,h) P(v,h)建模更加熟悉。如EM算法等:
    log ⁡ P ( v ) = log ⁡ ∑ h P ( v , h ) \log \mathcal P(v) = \log \sum_{h} \mathcal P(v,h) logP(v)=loghP(v,h)

KL Divergence \text{KL Divergence} KL Divergence观察醒眠算法

这里将 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(hv)的一个近似。这里使用 Q ( h ∣ v ) \mathcal Q(h \mid v) Q(hv)进行表示,并对它进行建模
同上,符号 ϕ \phi ϕ表示模型 Q ( h ∣ v ) \mathcal Q(h \mid v) Q(hv)的模型参数,也就是上图中反向关联(红色线)的模型参数集合 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(hv;ϕ)ϕR

观察醒眠算法是如何学习模型参数的:

  • Weak-Phase :  \text{Weak-Phase : } Weak-Phase : 
    • 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(hv;ϕ)

    • Learning Generative Connection :  \text{Learning Generative Connection : } Learning Generative Connection : 基于 Q ( h ∣ v ; ϕ ) \mathcal Q(h \mid v;\phi) Q(hv;ϕ)产生的样本,去近似学习生成过程 的参数信息。那么对应的目标函数可表示为:

      1. 就是使用‘蒙特卡洛方法’进行近似。
      2. 添加一个 log ⁡ \log log,不影响最值取值的变化。
      3. 这里 P ( v , h ( i ) ; θ ) \mathcal P(v,h^{(i)};\theta) P(v,h(i);θ)中的 v v v是真实的训练样本。
      4. 在近似求解模型参数 θ \theta θ的过程中,也就是 Weak Phase \text{Weak Phase} Weak Phase过程中,关于 Q ( h ∣ v ; ϕ ) \mathcal Q(h \mid v;\phi) Q(hv;ϕ)是给定的。即求解 W \mathcal W W步骤中, R \mathcal R R是给定的。初始状态下自然需要一个随机初始化的 R \mathcal R R.
        E Q ( h ∣ v ; ϕ ) [ log ⁡ P ( v , h ; θ ) ] ≈ 1 N ∑ i = 1 N log ⁡ P ( v , h ( i ) ; θ ) \mathbb E_{\mathcal Q(h \mid v;\phi)} \left[\log \mathcal P(v,h;\theta)\right] \approx \frac{1}{N} \sum_{i=1}^{N} \log \mathcal P(v,h^{(i)};\theta) EQ(hv;ϕ)[logP(v,h;θ)]N1i=1NlogP(v,h(i);θ)

      那么关于模型参数 θ \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(hv;ϕ)[logP(v,h;θ)]
      这实际上就是求解 证据下界(Evidence Lower Bound,ELBO) 的最优解:
      H [ Q ( h ∣ v ; ϕ ) ] \mathcal H \left[\mathcal Q(h \mid v;\phi)\right] H[Q(hv;ϕ)]表示近似后验分布 Q ( h ∣ v ; ϕ ) \mathcal Q(h \mid v;\phi) Q(hv;ϕ)的熵。
      { 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(hv;ϕ)∣∣P(v,h;θ)]ELBO=hQ(hv;ϕ)logQ(hv;ϕ)P(h,v;θ)=EQ(hv;ϕ)[logQ(hv;ϕ)P(h,v;θ)]=EQ(hv;ϕ)[logP(h,v;θ)]+H[Q(hv;ϕ)]
      由于在 Weak Phase \text{Weak Phase} Weak Phase步骤中 ϕ \phi ϕ是已知参数,因而可以将 H [ Q ( h ∣ v ; ϕ ) ] \mathcal H\left[\mathcal Q(h \mid v;\phi)\right] H[Q(hv;ϕ)]看作是一个已知的常量。而求解最值时,常量对最值结果不影响。
      θ ^ = 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(hv;ϕ)[logP(h,v;θ)]+=C H[Q(hv;ϕ)] =θargmax{EQ(hv;ϕ)[logP(h,v;θ)]}
      将最初始的期望求解最值问题转化为 ELBO \text{ELBO} ELBO求解最值问题,其作用是什么?
      自然是将 求解 θ \theta θ最优解转化为概率分布 Q ( h ∣ v ; ϕ ) \mathcal Q(h \mid v;\phi) Q(hv;ϕ)和分布 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(hv;ϕ)∣∣P(hv;θ)]达到最小,此时分布 Q ( h ∣ v ; θ ) \mathcal Q(h \mid v;\theta) Q(hv;θ)和分布 P ( h ∣ v ; θ ) \mathcal P(h \mid v;\theta) P(hv;θ)是最相似的

  • Sleep Phase :  \text{Sleep Phase : } Sleep Phase : 
    • Top-Down \text{Top-Down} Top-Down Weak Phase \text{Weak Phase} Weak Phase步骤相对应,上一步骤求解出的 θ ^ \hat \theta θ^结果进行固定,并从 P ( h , v ; θ ^ ) \mathcal P(h,v;\hat {\theta}) P(h,v;θ^)中进行采样
      此时已经不仅仅采样隐变量了,并且还会采样出‘虚拟的观测变量’。
      { h ( 1 ) , v ′ ( 1 ) , ⋯   , h ( N ) , v ′ ( N ) } ∼ P ( v , h ∣ θ ^ ) \{h^{(1)},v^{'(1)},\cdots,h^{(N)},v^{'(N)}\} \sim \mathcal P(v,h \mid \hat \theta) {h(1),v(1),,h(N),v(N)}P(v,hθ^)
    • 基于 P ( h ( i ) , v ( i ) ; θ ^ ) \mathcal P(h^{(i)},v^{(i)};\hat \theta) P(h(i),v(i);θ^)中采出的样本,去近似学习认知过程的参数信息。具体目标函数可表示为:
      对应步骤和 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);ϕ)
      E P ( h , v ; θ ^ ) [ log ⁡ Q ( h ∣ v ; ϕ ) ] ≈ 1 N ∑ i = 1 N log ⁡ Q ( h ( i ) ∣ v ′ ( i ) ; ϕ ) \begin{aligned} \mathbb E_{\mathcal P(h,v; \hat \theta)} \left[\log \mathcal Q(h \mid v;\phi)\right] \approx \frac{1}{N} \sum_{i=1}^N \log \mathcal Q(h^{(i)} \mid v^{'(i)};\phi) \end{aligned} EP(h,v;θ^)[logQ(hv;ϕ)]N1i=1NlogQ(h(i)v(i);ϕ)
      对应的最优参数 ϕ ^ \hat \phi ϕ^可表示为:
      ϕ ^ = arg ⁡ max ⁡ ϕ { E P ( h , v ; θ ^ ) [ log ⁡ Q ( h ∣ v ; ϕ ) ] } \hat \phi = \mathop{\arg\max}\limits_{\phi} \left\{\mathbb E_{\mathcal P(h,v; \hat \theta)} \left[\log \mathcal Q(h \mid v;\phi)\right]\right\} ϕ^=ϕargmax{EP(h,v;θ^)[logQ(hv;ϕ)]}
      观察,上述表达式和 ELBO \text{ELBO} ELBO之间是否存在关联关系?对上式进行化简
      1. 首先将期望展开
        关于这里确实存在一些个人疑问:为什么不去对 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的真实样本,为什么它可以不用积分?
        ϕ ^ = arg ⁡ max ⁡ ϕ ∑ h P ( h , v ; θ ^ ) log ⁡ Q ( h ∣ v ; ϕ ) \hat \phi = \mathop{\arg\max}\limits_{\phi} \sum_{h} \mathcal P(h,v;\hat \theta) \log \mathcal Q(h \mid v;\phi) ϕ^=ϕargmaxhP(h,v;θ^)logQ(hv;ϕ)
      2. 使用条件概率公式 P ( h , v ; θ ^ ) \mathcal P(h,v;\hat \theta) P(h,v;θ^)展开,并转换成如下形式:
        分解出的 P ( v ; θ ) \mathcal P(v;\theta) P(v;θ)明显是不含参数 ϕ \phi ϕ,并且也不含隐变量 h h h,将其从积分号中提出来,并视作常数,忽略掉。
        ϕ ^ = arg ⁡ max ⁡ ϕ ∑ h P ( v ; θ ) ⋅ P ( h ∣ v ; θ ) log ⁡ Q ( h ∣ v ; ϕ ) = arg ⁡ max ⁡ ϕ [ P ( v ; θ ) ⋅ ∑ h P ( h ∣ v ; θ ) log ⁡ Q ( h ∣ v ; ϕ ) ] = arg ⁡ max ⁡ ϕ [ ∑ h P ( h ∣ v ; θ ) log ⁡ Q ( h ∣ v ; ϕ ) ] \begin{aligned} \hat \phi & = \mathop{\arg\max}\limits_{\phi} \sum_{h} \mathcal P(v;\theta) \cdot \mathcal P(h \mid v;\theta) \log \mathcal Q(h \mid v;\phi)\\ & = \mathop{\arg\max}\limits_{\phi} \left[\mathcal P(v;\theta) \cdot \sum_{h} \mathcal P(h \mid v;\theta) \log \mathcal Q(h \mid v;\phi)\right] \\ & = \mathop{\arg\max}\limits_{\phi} \left[\sum_{h} \mathcal P(h \mid v;\theta) \log \mathcal Q(h \mid v;\phi)\right] \end{aligned} ϕ^=ϕargmaxhP(v;θ)P(hv;θ)logQ(hv;ϕ)=ϕargmax[P(v;θ)hP(hv;θ)logQ(hv;ϕ)]=ϕargmax[hP(hv;θ)logQ(hv;ϕ)]
      3. 步骤2的基础上,加入一个辅助项 [ − ∑ h P ( h ∣ v ; θ ) log ⁡ P ( h ∣ v ; θ ) ] \left[-\sum_h \mathcal P(h \mid v;\theta) \log \mathcal P(h \mid v;\theta)\right] [hP(hv;θ)logP(hv;θ)]
        因为该项中根本不包含任何关于参数 ϕ \phi ϕ的信息,可以将其视作常数,不影响 ϕ \phi ϕ的取值。
        这里将符号和 argmax \text{argmax} argmax合并了~
        ϕ ^ = arg ⁡ max ⁡ ϕ [ ∑ h P ( h ∣ v ; θ ) log ⁡ Q ( h ∣ v ; ϕ ) − ∑ h P ( h ∣ v ; θ ) log ⁡ P ( h ∣ v ; θ ) ] = arg ⁡ max ⁡ ϕ [ ∑ h P ( h ∣ v ; θ ) log ⁡ Q ( h ∣ v ; ϕ ) P ( h ∣ v ; θ ) ] = arg ⁡ min ⁡ ϕ KL [ P ( h ∣ v ; θ ) ∣ ∣ Q ( h ∣ v ; ϕ ) ] \begin{aligned} \hat \phi & = \mathop{\arg\max}\limits_{\phi} \left[\sum_{h} \mathcal P(h \mid v;\theta) \log \mathcal Q(h \mid v;\phi) - \sum_h \mathcal P(h \mid v;\theta) \log \mathcal P(h \mid v;\theta)\right] \\ & = \mathop{\arg\max}\limits_{\phi} \left[\sum_h \mathcal P(h \mid v;\theta) \log \frac{\mathcal Q(h \mid v;\phi)}{\mathcal P(h \mid v;\theta)}\right] \\ & = \mathop{\arg\min}\limits_{\phi} \text{KL} \left[\mathcal P(h \mid v;\theta) || \mathcal Q(h \mid v;\phi)\right] \end{aligned} ϕ^=ϕargmax[hP(hv;θ)logQ(hv;ϕ)hP(hv;θ)logP(hv;θ)]=ϕargmax[hP(hv;θ)logP(hv;θ)Q(hv;ϕ)]=ϕargminKL[P(hv;θ)∣∣Q(hv;ϕ)]

比对一下 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(hv;ϕ)∣∣P(hv;θ)]ϕ^=ϕargminKL[P(hv;θ)∣∣Q(hv;ϕ)]
很明显,这两个步骤对于模型参数的优化分别基于不同的 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续

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/128644.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ThinkPHP历史漏洞

文章目录ThinkPHP简介Thinkphp历史漏洞Thinkphp 2.x 任意代码执行漏洞漏洞描述影响版本漏洞复现Thinkphp5.0.23远程代码执行漏洞(CVE-2018-20062)漏洞描述影响版本漏洞复现ThinkPHP 5.0.x 未开启强制路由导致的RCE 漏洞分析(CNVD-2018-24942)漏洞描述影响版本漏洞复现ThinkPHP简…

2023元旦假期值得关注的空投与埋伏任务

不知不觉2023年元旦即将到来,这也是十一国庆之后大家迎来的第一次小假期,相信不少人已经开始“家里蹲”计划,不少项目方也最近搞了一些空投任务,刚好趁此时间也能刷空投,获得意外惊喜,这里我们为大家总结最…

【redis有序集合操作】

【zcount:统计有序集合分数区间内的成员数量】 zadd user_login 1 one zadd user_login 3 two zadd user_login 4 three zadd user_login 5 four ZCOUNT 返回有序集 key 中, score 值在 min 和 max 之间(默认包括 score 值等于 min 或 max )的成员的数量…

socket套接字

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起探讨和分享Linux C/C/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 socket套接字1. 什么是socket套接字2. socket编程3. 网络字节序4. IP地址转换函数5. sockaddr数据结构…

【答学员问】服务器上安装好LAMP架构,部署wordpress之后网页端无法访问

文章目录问题反馈问题排查1. 首先是IP: 确认无误:2. 安装一下 php看看是否安装:3. 最后测试PHP是否能够解析再次沟通分析整理列清单排查测试过程1. 上传包解压2. 安装好LAMP架构并测试是否支持php3. 测试是否可以访问wordpress4. 查看日志排查…

Maven是怎么样构建Spring Boot项目的?

准备好项目运行所需的环境后,就可以使用IDEA开发工具搭建一个Spring Boot入门程序了。我们既可以使用Maven方式构建项目,也可以使用Spring Initializr快捷方式构建项目。这里先介绍如何使用Maven方式构建Spring Boot项目,具体步骤如下。 1.初…

SpringBoot+VUE前后端分离项目学习笔记 - 【06 SpringBoot集成Mybatis实现数据查询】

配置文件改成yaml格式: application.yml server:port: 9090spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/joyce?serverTimezoneGMT%2b8username: rootpassword: 123456写基本的功能来验证后台数据查询功能 …

了解初级测试人员从测试自动化开始需要什么?

文章目录 前言 将测试自动化视为软件开发 选择一种编程语言开始 学习干净的代码实践和原则 了解自动化中有用的设计模式 学习干净的代码实践和原则 学习网络工作原理的基础知识 选择一个 UI 自动化工具开始 了解 HTTP 协议以及如何自动化 API 测试 熟悉数据库基础知识…

React 配置文件(三)配置本地IP地址和端口号

1.在环境变量中配置好对应IP地址和端口号,拿UAT来举例 2.在config-overrides.js中配置域名和端口号 3.在package.json中配置好启动脚本 "scripts": { "start": "react-app-rewired start", "uat": "dotenv -e .env.uat react-app…

Android之蚂蚁森林能量水滴效果

最近公司有个需求,需要一个类似于蚂蚁森林能量水滴浮动效果,所以有了这篇文章,目前在项目里,没时间提出来做demo,有代码欠缺的地方欢迎指出,一定补上。 文章目录一:效果图二:具体实现…

HotPDF Delphi PDF VCL完全形成PDF文档

HotPDF Delphi PDF VCL完全形成PDF文档 HotPDF Delphi PDF,用于创建和创建PDF文档的应用程序名称。您的公司已在您之前发布,以便在Delphi和C中使用。事实上,使用这个库,您将能够以不同的方式编辑、执行、构建和管理PDF文档。如果您…

configmap中data变成字符串问题(k8s踩坑)

发现问题 编写text文件,用于创建要给nginx的configmap,如下: [rootmaster redis]# vim txt apiVersion: v1 kind: ConfigMap metadata:name: nginx-confignamespace: redis data:nginx.conf: |#user nginx;worker_processes 1;#error_log…

【pandas】教程:4-显示数据

Pandas 显示数据 本节使用的数据为 data/air_quality_no2.csv,链接为 pandas案例和教程所使用的数据-机器学习文档类资源-CSDN文库 import pandas as pd import matplotlib.pyplot as pltair_quality pd.read_csv("data/air_quality_no2.csv", index_co…

知物由学 | SO VMP 加壳与混淆,为移动应用提供函数级保护

导读:VMP 是一种用于软件保护的软件,对软件进行加壳,加固厂商都有自己的 VMP 方案,但值得注意的是,native 层的 VMP 方案并不成熟,兼容性只是其中一个影响因素,性能更是导致该方案无法普及的重要…

2022年广西最新建筑八大员(材料员)模拟真题及答案

百分百题库提供建筑八大员(材料员)考试试题、建筑八大员(材料员)考试预测题、建筑八大员(材料员)考试真题、建筑八大员(材料员)证考试题库等,提供在线做题刷题,在线模拟考…

C++仍然是2023年值得学习的好语言吗?

如今所有学习C的人都不得不面临一个问题,即C已经大大失去了它受欢迎程度。它同时被三种编程语言所取代 - python,Java和JavaScript。这就引出了一个问题,2023年是否还值得学习C? 如果您学习C是为了在IT领域工作,那么学…

系分 - 软件工程

个人总结,仅供参考,欢迎加好友一起讨论 系分 - 软件工程 考点摘要 信息/软件系统的生命周期(★★)软件开发方法(★★★)软件开发模型(★★★★)逆向工程(★&#xff09…

一步一步改写Observer观察者模式

简单的概述: Observer模式是建立一个一(Subject)对多(Observer)的依赖关系,并且做到当“一”变化的时候,依赖这个“一”的多也能够同步自动改变。 Observer的结构: Subject相当于…

H5 拖动排序 美食排行榜

尝试写一下拖动元素进行排序,真是想到什么去写什么 😂,有的时候很多人老是跟我说,别人都封装好了,你为什么还要自己去实现一下,写的还没别人好。但我总感觉所有都用别人写好的,就放弃思考的机会…

linux的CPU使用率达到100%的快速定位方式

一.问题现象 Linux服务器(操作系统版本是centos7.9)上面部署了若干Java站点服务,突然收到运维的CPU异常g告警,到了影响业务的情况发生,经初步排查,未出现异常进程,排除挖矿病毒的原因。 二.排查思路 &am…