机器学习笔记之深度玻尔兹曼机(二)深度玻尔兹曼机的预训练过程

news2024/9/21 8:03:35

机器学习笔记之深度玻尔兹曼机——深度玻尔兹曼机的预训练过程

  • 引言
    • 深度信念网络预训练过程的问题
    • 深度玻尔兹曼机的预训练过程(2023/1/24)

引言

上一节介绍了玻尔兹曼机系列的相关模型,本节将介绍深度玻尔兹曼机的预训练过程。

深度信念网络预训练过程的问题

在玻尔兹曼机系列整体介绍中提到过,无论是深度信念网络还是深度玻尔兹曼机,它们建模的核心思想是:叠加 RBM \text{RBM} RBM结构。以一个三层结构 v , h ( 1 ) , h ( 2 ) v,h^{(1)},h^{(2)} v,h(1),h(2)为例,观察未叠加时的状态表示如下:
叠加RBM结构分解
实际上,深度信念网络深度玻尔兹曼机的学习过程是相同的。以深度信念网络为例,上图的学习过程可分为两个部分:
受限玻尔兹曼机——对数似然梯度中介绍过,可以通过'对比散度'的方式求解模型参数的对数似然梯度,再通过梯度上升法对模型参数进行近似求解。在这里,求解模型参数并不是重点,只需要知道模型参数是可以求解的即可。

  • 第一层学习过程:第一层本质上就是一个受限玻尔兹曼机,关于观测变量的似然函数 P ( v ) \mathcal P(v) P(v)可表示如下:
    P ( v ) = ∑ h ( 1 ) P ( v , h ( 1 ) ) = ∑ h ( 1 ) P ( h ( 1 ) ) ⋅ P ( v ∣ h ( 1 ) ) \mathcal P(v) = \sum_{h^{(1)}} \mathcal P(v,h^{(1)}) = \sum_{h^{(1)}} \mathcal P(h^{(1)}) \cdot \mathcal P(v \mid h^{(1)}) P(v)=h(1)P(v,h(1))=h(1)P(h(1))P(vh(1))
    关于两个概率分布 P ( h ( 1 ) ) , P ( v ∣ h ( 1 ) ) \mathcal P(h^{(1)}),\mathcal P(v\mid h^{(1)}) P(h(1)),P(vh(1))在玻尔兹曼机系列整体介绍中提到过,它们均可以通过模型参数进行表示:

    • P ( h ( 1 ) ) \mathcal P(h^{(1)}) P(h(1))可表示为如下形式:
      关于‘联合概率分布’ P ( v , h ( 1 ) ) \mathcal P(v,h^{(1)}) P(v,h(1))详见受限玻尔兹曼机——模型表示
      这里为方便观看起见,暂时将各随机变量与自身关联关系对应的偏置项 b , c b,c b,c忽略掉。
      P ( h ( 1 ) ) = ∑ v P ( v , h ( 1 ) ) = ∑ v 1 Z exp ⁡ [ v T W ( 1 ) ⋅ h ( 1 ) ] \begin{aligned} \mathcal P(h^{(1)}) & = \sum_{v} \mathcal P(v,h^{(1)}) \\ & = \sum_{v} \frac{1}{\mathcal Z} \exp [v^T \mathcal W^{(1)} \cdot h^{(1)}] \end{aligned} P(h(1))=vP(v,h(1))=vZ1exp[vTW(1)h(1)]
    • P ( v ∣ h ( 1 ) ) \mathcal P(v \mid h^{(1)}) P(vh(1))根据受限玻尔兹曼机——后验概率可表示为如下形式:
      P ( v ∣ h ( 1 ) ) = ∏ k = 1 ∣ D ∣ P ( v k ∣ h ( 1 ) ) P ( v k ∣ h ( 1 ) ) = Sigmoid ( ∑ j = 1 ∣ P ∣ w k j ⋅ h j + b k ) w k j ∈ W ( 1 ) \begin{aligned} \mathcal P(v \mid h^{(1)}) & = \prod_{k=1}^{|\mathcal D|}\mathcal P(v_k \mid h^{(1)}) \\ \mathcal P(v_k \mid h^{(1)}) & = \text{Sigmoid} \left(\sum_{j=1}^{|\mathcal P|}w_kj \cdot h_j + b_k\right) \quad w_{kj} \in \mathcal W^{(1)} \end{aligned} P(vh(1))P(vkh(1))=k=1DP(vkh(1))=Sigmoid j=1Pwkjhj+bk wkjW(1)

    这里仅需要知道 P ( h ( 1 ) ) , P ( v ∣ h ( 1 ) ) \mathcal P(h^{(1)}),\mathcal P(v \mid h^{(1)}) P(h(1)),P(vh(1))可以使用 W ( 1 ) \mathcal W^{(1)} W(1)进行表示即可,这里使用符号 P ( h ( 1 ) ; W ( 1 ) ) , P ( v ∣ h ( 1 ) ; W ( 1 ) ) \mathcal P(h^{(1)};\mathcal W^{(1)}),\mathcal P(v \mid h^{(1)};\mathcal W^{(1)}) P(h(1);W(1)),P(vh(1);W(1))进行表示:
    第一层学习过程的重点在于:边缘概率分布 P ( h ( 1 ) ) \mathcal P(h^{(1)}) P(h(1))仅和模型参数 W ( 1 ) \mathcal W^{(1)} W(1)之间存在关联关系。
    P ( v ; W ( 1 ) ) = ∑ h ( 1 ) P ( h ( 1 ) ; W ( 1 ) ) ⋅ P ( v ∣ h ( 1 ) ; W ( 1 ) ) \mathcal P(v;\mathcal W^{(1)}) = \sum_{h^{(1)}} \mathcal P(h^{(1)};\mathcal W^{(1)}) \cdot \mathcal P(v \mid h^{(1)};\mathcal W^{(1)}) P(v;W(1))=h(1)P(h(1);W(1))P(vh(1);W(1))

  • 第二层学习过程,第二层同样也是一个受限玻尔兹曼机,如果是处理方式,和第一层是完全相同的。但第二层需要的样本是关于 h ( 1 ) h^{(1)} h(1)随机变量结点相关的样本,而我们只有观测变量 v v v的样本 V \mathcal V V
    因此,必然需要关于 h ( 1 ) h^{(1)} h(1)的样本。因而需要从第一层的后验 P ( h ( 1 ) ∣ v ) \mathcal P(h^{(1)} \mid v) P(h(1)v)采集样本。关于后验 P ( h ( 1 ) ∣ v ) \mathcal P(h^{(1)} \mid v) P(h(1)v)表示如下:
    受限玻尔兹曼机各隐变量之间相互条件独立,这是受限玻尔兹曼机自身的结构性质。
    P ( h ( 1 ) ∣ v ) = ∏ l = 1 ∣ P ( 1 ) ∣ P ( h l ∣ v ) \mathcal P(h^{(1)} \mid v) = \prod_{l=1}^{|\mathcal P^{(1)}|} \mathcal P(h_l \mid v) P(h(1)v)=l=1P(1)P(hlv)
    关于隐变量集合 h ( 1 ) h^{(1)} h(1)中的某一个隐变量 h l h_l hl的后验分布表示如下。通过对该概率分布进行采样,可以得到关于 P ( h l ∣ v ) \mathcal P(h_l \mid v) P(hlv)的样本信息。
    P ( h l ∣ v ) = { Sigmoid ( ∑ i = 1 n w l i ⋅ v i + c l ) h l = 1 1 − Sigmoid ( ∑ i = 1 n w l i ⋅ v i + c l ) h l = 0 \mathcal P(h_l \mid v) = \begin{cases} \text{Sigmoid} \left(\sum_{i=1}^n w_{li} \cdot v_i + c_l\right) \quad h_l = 1\\ 1 - \text{Sigmoid} \left(\sum_{i=1}^n w_{li} \cdot v_i + c_l\right) \quad h_l = 0 \end{cases} P(hlv)={Sigmoid(i=1nwlivi+cl)hl=11Sigmoid(i=1nwlivi+cl)hl=0
    至此,有了关于 h ( 1 ) h^{(1)} h(1)的样本之后,可以和第一层学习过程一样,对第二层的隐变量 h ( 2 ) h^{(2)} h(2)进行表示:
    和第一层的过程相同,这里不再赘述。
    P ( h ( 1 ) ; W ( 2 ) ) = ∑ h ( 2 ) P ( h ( 1 ) , h ( 2 ) ; W ( 2 ) ) = ∑ h ( 2 ) P ( h ( 2 ) ; W ( 2 ) ) ⋅ P ( h ( 1 ) ∣ h ( 2 ) ; W ( 2 ) ) \begin{aligned} \mathcal P(h^{(1)};\mathcal W^{(2)}) & = \sum_{h^{(2)}} \mathcal P(h^{(1)},h^{(2)};\mathcal W^{(2)}) \\ & = \sum_{h^{(2)}} \mathcal P(h^{(2)};\mathcal W^{(2)}) \cdot \mathcal P(h^{(1)} \mid h^{(2)};\mathcal W^{(2)}) \end{aligned} P(h(1);W(2))=h(2)P(h(1),h(2);W(2))=h(2)P(h(2);W(2))P(h(1)h(2);W(2))

深度信念网络中,它将上述两层受限玻尔兹曼机堆叠的过程中,它仅仅是将 P ( h ( 1 ) ; W ( 1 ) ) \mathcal P(h^{(1)};\mathcal W^{(1)}) P(h(1);W(1))通过新构建一层模型,从而构成新的受限玻尔兹曼机进行学习。从公式的角度观察,它将 P ( h ( 1 ) ; W ( 2 ) ) \mathcal P(h^{(1)};\mathcal W^{(2)}) P(h(1);W(2))替换了 P ( h ( 1 ) ; W ( 1 ) ) \mathcal P(h^{(1)};\mathcal W^{(1)}) P(h(1);W(1))
DBN :  P ( v ; W ( 1 ) ) = ∑ h ( 1 ) P ( h ( 1 ) ; W ( 2 ) ) ⋅ P ( v ∣ h ( 1 ) ; W ( 1 ) ) = ∑ h ( 1 ) [ ∑ h ( 2 ) P ( h ( 2 ) ; W ( 2 ) ) ⋅ P ( h ( 1 ) ∣ h ( 2 ) ; W ( 2 ) ) ] ⋅ P ( v ∣ h ( 1 ) ; W ( 1 ) ) \begin{aligned} \text{DBN : } \mathcal P(v;\mathcal W^{(1)}) & = \sum_{h^{(1)}} \mathcal P(h^{(1)};\mathcal W^{(2)}) \cdot \mathcal P(v \mid h^{(1)};\mathcal W^{(1)}) \\ & = \sum_{h^{(1)}} \left[\sum_{h^{(2)}} \mathcal P(h^{(2)};\mathcal W^{(2)}) \cdot \mathcal P(h^{(1)} \mid h^{(2)};\mathcal W^{(2)})\right] \cdot \mathcal P(v \mid h^{(1)};\mathcal W^{(1)}) \end{aligned} DBN : P(v;W(1))=h(1)P(h(1);W(2))P(vh(1);W(1))=h(1)[h(2)P(h(2);W(2))P(h(1)h(2);W(2))]P(vh(1);W(1))
但在3层网络中,也就是第一层第二层合并的情况下,关于隐变量集合 h ( 1 ) h^{(1)} h(1)真实后验 是什么?在混合后的3层网络中,边缘概率分布 P ( h ( 1 ) ) \mathcal P(h^{(1)}) P(h(1))表示如下:
P ( h ( 1 ) ) = ∑ h ( 2 ) , v P ( v , h ( 1 ) , h ( 2 ) ) \mathcal P(h^{(1)}) = \sum_{h^{(2)},v} \mathcal P(v,h^{(1)},h^{(2)}) P(h(1))=h(2),vP(v,h(1),h(2))
虽然此时没有办法写出该网络的联合概率分布表示,但不可否认的是, P ( v , h ( 1 ) , h ( 2 ) ) \mathcal P(v,h^{(1)},h^{(2)}) P(v,h(1),h(2))必然和参数 W ( 1 ) , W ( 2 ) \mathcal W^{(1)},\mathcal W^{(2)} W(1),W(2)均有关联
P ( h ( 1 ) ) ⇒ P ( h ( 1 ) ; W ( 1 ) , W ( 2 ) ) \mathcal P(h^{(1)}) \Rightarrow \mathcal P(h^{(1)};\mathcal W^{(1)},\mathcal W^{(2)}) P(h(1))P(h(1);W(1),W(2))
也就是说,深度信念网络仅用包含 W ( 2 ) \mathcal W^{(2)} W(2)的表示近似了真实表示
P ( h ( 1 ) ; W ( 2 ) ) ≈ P ( h ( 1 ) ; W ( 1 ) , W ( 2 ) ) \mathcal P(h^{(1)};\mathcal W^{(2)}) \approx \mathcal P(h^{(1)};\mathcal W^{(1)},\mathcal W^{(2)}) P(h(1);W(2))P(h(1);W(1),W(2))
此时,在两个受限玻尔兹曼机叠加之后,无论是单个受限玻尔兹曼机 P ( h ( 1 ) ; W ( 1 ) ) \mathcal P(h^{(1)};\mathcal W^{(1)}) P(h(1);W(1))还是深度信念网络 P ( h ( 1 ) ; W ( 2 ) ) \mathcal P(h^{(1)};\mathcal W^{(2)}) P(h(1);W(2)),它们的表示 都是不准确的。能否存在一个想法,让 P ( h ( 1 ) ; W ( 1 ) ) \mathcal P(h^{(1)};\mathcal W^{(1)}) P(h(1);W(1)) P ( h ( 1 ) ; W ( 2 ) ) \mathcal P(h^{(1)};\mathcal W^{(2)}) P(h(1);W(2))联合在一起去近似 P ( h ( 1 ) ; W ( 1 ) , W ( 2 ) ) \mathcal P(h^{(1)};\mathcal W^{(1)},\mathcal W^{(2)}) P(h(1);W(1),W(2))呢?

深度玻尔兹曼机的预训练过程(2023/1/24)

针对上述问题,存在这样一个想法:既然想要联合近似,可以将 P ( h ( 1 ) ; W ( 1 ) ) \mathcal P(h^{(1)};\mathcal W^{(1)}) P(h(1);W(1)) P ( h ( 1 ) ; W ( 2 ) ) \mathcal P(h^{(1)};\mathcal W^{(2)}) P(h(1);W(2))对应取算数平均值
P ( h ( 1 ) ; W ( 1 ) , W ( 2 ) ) ≈ 1 2 [ P ( h ( 1 ) ∣ W ( 1 ) ) + P ( h ( 1 ) ∣ W ( 2 ) ) ] \mathcal P(h^{(1)};\mathcal W^{(1)},\mathcal W^{(2)}) \approx \frac{1}{2} \left[\mathcal P(h^{(1)} \mid \mathcal W^{(1)}) + \mathcal P(h^{(1)} \mid \mathcal W^{(2)})\right] P(h(1);W(1),W(2))21[P(h(1)W(1))+P(h(1)W(2))]
这种说法并非绝对,算数平均值仅是一种具体操作,而背后的思想是:相比于深度信念网络 P ( h ( 1 ) ; W ( 2 ) ) ≈ P ( h ( 1 ) ; W ( 1 ) , W ( 2 ) ) \mathcal P(h^{(1)};\mathcal W^{(2)}) \approx \mathcal P(h^{(1)};\mathcal W^{(1)},\mathcal W^{(2)}) P(h(1);W(2))P(h(1);W(1),W(2)),能否在两个受限玻尔兹曼机结合在一起后,关于边缘概率分布 P ( h ( 1 ) ) \mathcal P(h^{(1)}) P(h(1))的描述让 W ( 1 ) \mathcal W^{(1)} W(1)也参与进来,而不是仅使用 W ( 2 ) \mathcal W^{(2)} W(2)进行描述

虽然受限玻尔兹曼机对模型结构存在严苛要求,但这些要求主要影响的是观测变量、隐变量之间的关系,对应的是条件概率 P ( h ( 1 ) ∣ v ( 1 ) ) \mathcal P(h^{(1)} \mid v^{(1)}) P(h(1)v(1))或者 P ( v ( 1 ) ∣ h ( 1 ) ) \mathcal P(v^{(1)} \mid h^{(1)}) P(v(1)h(1))。这意味着条件概率能够被准确表示。

边缘概率分布 P ( h ( 1 ) ) \mathcal P(h^{(1)}) P(h(1))并不能被精确表示,而只能被近似表示。观察 P ( h ( 1 ) ) \mathcal P(h^{(1)}) P(h(1))的展开式,可以通过蒙特卡洛方法进行近似:

  • 关于 ∑ v ( 1 ) \sum_{v^{(1)}} v(1)内包含 N N N个,也就是样本数量个连加项,可看作计算代价为∞,而针对这种期望形式的表达,使用蒙特卡洛方法近似是完全可以实现的。
  • 关于 1 N ∑ v ( i ) ∈ V P ( h ( 1 ) ∣ v ( i ) ; W ( 1 ) ) \frac{1}{N}\sum_{v^{(i)} \in \mathcal V} \mathcal P(h^{(1)} \mid v^{(i)};\mathcal W^{(1)}) N1v(i)VP(h(1)v(i);W(1))这种求解方式也被称作 appregated posterior Distribution \text{appregated posterior Distribution} appregated posterior Distribution聚合后验分布,后验自然是指 P ( h ( 1 ) ∣ v ( i ) ; W ( 1 ) ) \mathcal P(h^{(1)} \mid v^{(i)};\mathcal W^{(1)}) P(h(1)v(i);W(1)),而聚合是指:本想从‘真实分布’ P d a t a / P ( v ( 1 ) ) \mathcal P_{data}/\mathcal P(v^{(1)}) Pdata/P(v(1))中进行采样,但实际上,真实分布是无法得到的,而只有 N N N个真实样本,通过 N N N个真实样本的‘经验分布’作为采样分布来近似 P d a t a \mathcal P_{data} Pdata.

P ( h ( 1 ) ; W ( 1 ) ) = ∑ v ( 1 ) P ( v ( 1 ) , h ( 1 ) ; W ( 1 ) ) = ∑ v ( 1 ) P ( v ( 1 ) ) ⋅ P ( h ( 1 ) ∣ v ( 1 ) ; W ( 1 ) ) = E P ( v ( 1 ) ) [ P ( h ( 1 ) ∣ v ( 1 ) ; W ( 1 ) ) ] ≈ 1 N ∑ v ( i ) ∈ V P ( h ( 1 ) ∣ v ( i ) ; W ( 1 ) ) \begin{aligned} \mathcal P(h^{(1)};\mathcal W^{(1)}) & = \sum_{v^{(1)}} \mathcal P(v^{(1)},h^{(1)};\mathcal W^{(1)}) \\ & = \sum_{v^{(1)}} \mathcal P(v^{(1)}) \cdot \mathcal P(h^{(1)} \mid v^{(1)};\mathcal W^{(1)}) \\ & = \mathbb E_{\mathcal P(v^{(1)})} \left[\mathcal P(h^{(1)} \mid v^{(1)};\mathcal W^{(1)})\right]\\ & \approx \frac{1}{N} \sum_{v^{(i)} \in \mathcal V} \mathcal P(h^{(1)} \mid v^{(i)};\mathcal W^{(1)}) \end{aligned} P(h(1);W(1))=v(1)P(v(1),h(1);W(1))=v(1)P(v(1))P(h(1)v(1);W(1))=EP(v(1))[P(h(1)v(1);W(1))]N1v(i)VP(h(1)v(i);W(1))
同理,关于参数 W ( 2 ) \mathcal W^{(2)} W(2)表示的边缘概率分布 P ( h ( 1 ) ; W ( 2 ) ) \mathcal P(h^{(1)};\mathcal W^{(2)}) P(h(1);W(2))使用蒙特卡洛方法表示为:
其中 H \mathcal H H表示从 P ( h ( 2 ) ) \mathcal P(h^{(2)}) P(h(2))中采样所产生的样本集合。不同于 P ( v ( 1 ) ) \mathcal P(v^{(1)}) P(v(1))中的具体样本,准确的说,它是经过两次迭代采样得到的样本:
P ( h ( 1 ) ) ⇐ { h ( 1 ) , i } i = 1 N ∼ P ( h ( 1 ) ∣ v ( 1 ) ; W ( 1 ) ) \begin{aligned} \mathcal P(h^{(1)}) \Leftarrow \left\{h^{(1),i}\right\}_{i=1}^N \sim \mathcal P(h^{(1)} \mid v^{(1)};\mathcal W^{(1)}) \end{aligned} P(h(1)){h(1),i}i=1NP(h(1)v(1);W(1))

  • 上述是第一层产生的样本。很明显,它是从后验分布 P ( h ( 1 ) ∣ v ( 1 ) ; W ( 1 ) ) \mathcal P(h^{(1)} \mid v^{(1)};\mathcal W^{(1)}) P(h(1)v(1);W(1))中采集出来的,但真正想要的是 P ( h ( 1 ) ) \mathcal P(h^{(1)}) P(h(1))自身的分布。而 P ( h ( 1 ) ) \mathcal P(h^{(1)}) P(h(1))分布和 P ( v ( 1 ) ) \mathcal P(v^{(1)}) P(v(1))一样,没有办法求出准确解。因此,将采样得到的 { h ( 1 ) , i } i = 1 N \{h^{(1),i}\}_{i=1}^N {h(1),i}i=1N所形成的经验分布近似为 P ( h ( 1 ) ) \mathcal P(h^{(1)}) P(h(1)).
    P ( h ( 2 ) ) ⇐ { h ( 2 ) , j } j = 1 N = H ∼ P ( h ( 2 ) ∣ h ( 1 ) ; W ( 2 ) ) \mathcal P(h^{(2)}) \Leftarrow \left\{h^{(2),j}\right\}_{j=1}^N = \mathcal H \sim \mathcal P(h^{(2)} \mid h^{(1)};\mathcal W^{(2)}) P(h(2)){h(2),j}j=1N=HP(h(2)h(1);W(2))
  • 此时已经得到了 h ( 1 ) h^{(1)} h(1)的样本,上述描述的是以相同方法产生的第二层样本。

P ( h ( 1 ) ; W ( 2 ) ) = ∑ h ( 2 ) P ( h ( 1 ) , h ( 2 ) ; W ( 2 ) ) = ∑ h ( 2 ) P ( h ( 2 ) ) ⋅ P ( h ( 1 ) ∣ h ( 2 ) ; W ( 2 ) ) = E P ( h ( 2 ) ) [ P ( h ( 1 ) ∣ h ( 2 ) ; W ( 2 ) ) ] ≈ 1 N ∑ h ( 2 ) ∈ H P ( h ( 1 ) ∣ h ( 2 ) ; W ( 2 ) ) \begin{aligned} \mathcal P(h^{(1)};\mathcal W^{(2)}) & = \sum_{h^{(2)}} \mathcal P(h^{(1)},h^{(2)};\mathcal W^{(2)}) \\ & = \sum_{h^{(2)}} \mathcal P(h^{(2)}) \cdot \mathcal P(h^{(1)} \mid h^{(2)};\mathcal W^{(2)}) \\ & = \mathbb E_{\mathcal P(h^{(2)})} \left[\mathcal P(h^{(1)} \mid h^{(2)};\mathcal W^{(2)})\right] \\ & \approx \frac{1}{N} \sum_{h^{(2)} \in \mathcal H} \mathcal P(h^{(1)} \mid h^{(2)};\mathcal W^{(2)}) \end{aligned} P(h(1);W(2))=h(2)P(h(1),h(2);W(2))=h(2)P(h(2))P(h(1)h(2);W(2))=EP(h(2))[P(h(1)h(2);W(2))]N1h(2)HP(h(1)h(2);W(2))

此时,两个网络层关于 P ( h ( 1 ) ) \mathcal P(h^{(1)}) P(h(1))聚合后验分布表示结束后,在两网络层融合过程中,关于 P ( h ( 1 ) ) \mathcal P(h^{(1)}) P(h(1))的描述以算术平均值为例,可能得到如下结果:
这仅仅描述的是通过不同参数得到的聚合后验分布的融合过程。
P ( h ( 1 ) ; W ( 1 ) ; W ( 2 ) ) ≈ 1 2 [ P ( h ( 1 ) ; W ( 1 ) ) + P ( h ( 1 ) ; W ( 2 ) ) ] = 1 2 N [ ∑ v ( i ) ∈ V P ( h ( 1 ) ∣ v ( i ) ; W ( 1 ) ) + ∑ h ( 2 ) ∈ H P ( h ( 2 ) ∣ h ( 1 ) ; W ( 2 ) ) ] \begin{aligned} \mathcal P(h^{(1)};\mathcal W^{(1)};\mathcal W^{(2)}) & \approx \frac{1}{2} \left[\mathcal P(h^{(1)} ;\mathcal W^{(1)}) + \mathcal P(h^{(1)};\mathcal W^{(2)})\right] \\ & = \frac{1}{2N} \left[\sum_{v^{(i)} \in \mathcal V} \mathcal P(h^{(1)} \mid v^{(i)};\mathcal W^{(1)}) + \sum_{h^{(2)} \in \mathcal H} \mathcal P(h^{(2)} \mid h^{(1)};\mathcal W^{(2)})\right] \end{aligned} P(h(1);W(1);W(2))21[P(h(1);W(1))+P(h(1);W(2))]=2N1 v(i)VP(h(1)v(i);W(1))+h(2)HP(h(2)h(1);W(2))
这种模型融合的方式是否存在问题:这种相加的方式会存在 Double Counting \text{Double Counting} Double Counting现象。在上面的描述中,样本集合 V \mathcal V V h ( 2 ) h^{(2)} h(2)对应的样本集合 H \mathcal H H之间并不是相互独立的,而是通过 bottom-up \text{bottom-up} bottom-up方法逐级生成出来的:
V ⇒ 1 N ∑ v ( i ) ∈ V P ( h ( 1 ) ∣ v ( i ) ; W ( 1 ) ) ≈ P ( h ( 1 ) ) ⏟ 近似计算 P ( h ( 1 ) ) ⇒ H ^ = { h ( 1 ) , i } i = 1 N ∼ P ( h ( 1 ) ) ⏟ 从 P ( h ( 1 ) ) 中抽取样本,组成关于 h ( 1 ) 的隐变量样本集合 H ^ ⇒ 1 N ∑ h ( 1 ) ∈ H ^ P ( h ( 2 ) ∣ h ( 1 ) ; W ( 2 ) ) ≈ P ( h ( 2 ) ) ⏟ 近似计算 P ( h ( 2 ) ) ⇒ H = { h ( 2 ) , j } j = 1 N ∼ P ( h ( 2 ) ) ⏟ 从 P ( h ( 2 ) ) 中抽取样本,组成关于 h ( 2 ) 的因变量样本集合 H \begin{aligned} \mathcal V & \Rightarrow \underbrace{\frac{1}{N}\sum_{v^{(i)} \in \mathcal V} \mathcal P(h^{(1)} \mid v^{(i)};\mathcal W^{(1)}) \approx \mathcal P(h^{(1)})}_{近似计算\mathcal P(h^{(1)})} \\ & \Rightarrow \underbrace{\hat {\mathcal H} = \left\{h^{(1),i}\right\}_{i=1}^N \sim \mathcal P(h^{(1)})}_{从\mathcal P(h^{(1)})中抽取样本,组成关于h^{(1)}的隐变量样本集合\hat {\mathcal H}} \\ & \Rightarrow \underbrace{\frac{1}{N}\sum_{h^{(1) \in \hat {\mathcal H}}}\mathcal P(h^{(2)} \mid h^{(1)};\mathcal W^{(2)}) \approx\mathcal P(h^{(2)})}_{近似计算\mathcal P(h^{(2)})} \\ & \Rightarrow \underbrace{\mathcal H = \left\{h^{(2),j}\right\}_{j=1}^N \sim \mathcal P(h^{(2)})}_{从\mathcal P(h^{(2)})中抽取样本,组成关于h^{(2)}的因变量样本集合\mathcal H} \end{aligned} V近似计算P(h(1)) N1v(i)VP(h(1)v(i);W(1))P(h(1))P(h(1))中抽取样本,组成关于h(1)的隐变量样本集合H^ H^={h(1),i}i=1NP(h(1))近似计算P(h(2)) N1h(1)H^P(h(2)h(1);W(2))P(h(2))P(h(2))中抽取样本,组成关于h(2)的因变量样本集合H H={h(2),j}j=1NP(h(2))
很明显可以观察到:

  • 计算 P ( h ( 1 ) ; W ( 2 ) ) \mathcal P(h^{(1)};\mathcal W^{(2)}) P(h(1);W(2))时,需要使用隐变量样本集合 H \mathcal H H;隐变量样本集合 H \mathcal H H生成过程中,就已经用过样本集合 V \mathcal V V一次;
  • 计算 P ( h ( 1 ) ; W ( 1 ) ) \mathcal P(h^{(1)};\mathcal W^{(1)}) P(h(1);W(1))时,需要使用样本集合 V \mathcal V V,此时又用了一次;

这意味着样本集合 V \mathcal V V重复使用了。这种操作会产生什么影响:会使得该模型表达的分布过于尖锐。何为尖锐?即样本分布极差很大。为何会产生这种情况?因为假设通过采样得到了两个完全相同的样本,即便他们在样本空间中重合,那也是两个样本,而样本集合在描述概率分布过程中,使用的是 经验分布,在重复使用样本集合 V \mathcal V V时整个经验分布会产生严重的数值上的分裂

  • 数据密集的部分可能会影响较小(概率密度函数下降的程度较小),或者说经验分布分子、分母之间比率相差不大;
  • 而数据不密集的部分会有较大影响,虽然分子数值上升,但远没有分母增加的多,这使得概率密度函数相比之前更小了
  • 这种分布可能没有缓冲区间,对应模型产生的生成样本,也会存在特征上的较大缺陷。

相关参考:
深度玻尔兹曼机2-预训练1-介绍

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

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

相关文章

Escher 愛雪磁磚設計法則 - 高雄燕巢深水國小科展指導

“Talk is cheap. Show me the code.” ― Linus Torvalds 老子第41章 上德若谷 大白若辱 大方無隅 大器晚成 大音希聲 大象無形 道隱無名 拳打千遍, 身法自然 “There’s no shortage of remarkable ideas, what’s missing is the will to execute them.” – Seth Godin …

GreenPlum AOCO列存如何将数据刷写磁盘

GreenPlum AOCO列存如何将数据刷写磁盘AOCO列存表每个字段一个文件,前面我们介绍了列存表如何加载数据页,本文我们重点介绍AOCO表如何进行刷写。AOCO表进行insert、update、delete会产生脏数据,和heap表的异步脏页刷写不同,AOCO表…

写一个锅炉温控系统用python编写

简单来说就是锅炉水热了之后循环泵自动开启,然后将热水输送走,送到暖气,热水抽走,凉水进入锅炉,温度降低,循环泵关闭,等待下一次水烧热。因为需要取暖的房子距离烧锅炉的地方比较远,所以需要循环泵,如果距离近的话水烧热后利用热水上流冷水回流的原理会自动完成循环。…

前言技术之mybatis-plus

目录 1.什么是mybatis-plus 2.初体验 3.日志 4.主键生成策略 5.更新 6.自动填充 1.什么是mybatis-plus 升级版的mybatis,目的是让mybatis更易于使用, 用官方的话说“为简化而生” 官网: MyBatis-Plus 2.初体验 1.准备数据库脚本 数据…

BI 解决方案:BimlStudio 22.3.0 Crack

全功能开发环境:::: 导入现有解决方案 通过添加 BimlScript 自动化进行更改并重新生成包;使您的解决方案更好、更快。 可视化整个 BI 解决方案 通过我们的可视化设计器在一个位置进行更改,观察您的整个解决方案自行更新…

【ArcGIS微课1000例】0061:ArcGIS打开xyz格式点云数据的方法

本文讲述ArcMap和ArcScene中如何打开xyz格式的点云数据并做可视化的方法。 文章目录 一、xyz格式点云简介二、ArcMap打开xyz点云三、ArcScene打开xyz点云四、注意事项一、xyz格式点云简介 本实验使用的数据是配套数据包中的0061.rar,斯坦福大学的点云数据,格式为X,Y,Z,如下…

【My Electronic Notes系列——晶闸管】

目录 序言: 🏮🏮新年的钟声响,新年的脚步迈,祝新年的钟声,敲响你心中快乐的音符,幸运与平安,如春天的脚步紧紧相随,春节快乐!春华秋实,我永远与你…

Linux下动静态库的打包与使用C C++

目录前言为什么用动静态库动态链接与静态链接底层优缺点Linux下的动静态库动静态库的对比打包静态库使用静态库打包动态库使用动态库小结win下打包动静态库前言 为什么用动静态库 我们在实际开发中,经常要使用别人已经实现好的功能,这是为了开发效率和…

移动窗口下的LiDAR点云区域生长滤波算法教程

一、前言LiDAR 滤波的现有方法包括:数学形态学滤波法、基于地形坡度滤波、最小二乘内插法滤波等滤波方法。最小二乘内插法能够较好的获取地形趋势面,但是算法中无法根据地形自适应设置参数;在地形起伏较大的地区提取结果精度低;无…

Linux进程的后台运行

文章目录一. 什么是进程?二. 进程后台运行在了解三种进程后台运行的方式前,小编觉得有必要先简单讲解一下什么是进程。 PS: 本篇博客技术参考价值不大,只是类似随笔比较水,详细的知识点可以关注一下nohup命令的使用。 一. 什么是进程? 什…

00开篇词:带你玩转gRPC框架

前言 大家好,先做一下自我介绍 我叫Barry Yan,目前是一名互联网公司的研发工程师,同时也是后端技术领域的狂热爱好者和技术博主,在GitHub、CSDN社区、51CTO博客社区、阿里云技术社区、掘金技术社区和InfoQ写作社区等都有自己的博…

详解1242:网线主管(二分答案经典习题)

题目1242:网线主管时间限制: 1000 ms 内存限制: 65536 KB提交数: 23180 通过数: 5566【题目描述】仙境的居民们决定举办一场程序设计区域赛。裁判委员会完全由自愿组成,他们承诺要组织一次史上最公正的比赛。他们决定将选手的电脑用星形拓扑结构连接在一…

【SVM原理推导】核SVM为什么能分类非线性问题?

核SVM为什么能分类非线性问题?要解决这个问题,首先应该先深入理解SVM的原理与本质。(涉及SVM的问题是很常见的,因为SVM可以算是传统机器学习领域非常成功的算法之一了,现在仍有许多research运用SVM解决问题。) 一、支持向量机(SVM) 1. 基本介绍与提出背景 支持向量机…

【C++】lambda 表达式 | 包装器

​🌠 作者:阿亮joy. 🎆专栏:《吃透西嘎嘎》 🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉lambda表…

解决宏碁非凡S3 安装Win11时无法找到驱动器问题

1 问题描述 机型:宏碁非凡S3 2022款CPU:i5 1240P安装系统:Win11 专业版问题描述:安装系统时,在选择驱动器界面无法找到驱动器,如下图所示 2 解决流程 查了一下网上的解决办法,进入BIOS把VMD C…

非极大值抑制(Non-Maximum Suppression)

文章目录一、什么是非极大值抑制二、为什么要用非极大值抑制三、 如何使用非极大值抑制四、代码段一、什么是非极大值抑制 非极大值抑制,简称为NMS算法,英文为Non-Maximum Suppression。其思想是搜素局部最大值,抑制非极大值。NMS算法在不同…

JavaEE7-Bean的作用域

目录 1.作用域定义 2.Bean的6种作用域 2.1.singleton:单例作用域(默认作用域) 2.2.prototype:原型作用域(多例作用域) 2.3.request:请求作用域 2.4.session:会话作用域 2.5.a…

C++基础回顾

吼吼吼CC基础回顾C基础入门一、标识符1.1标识符命名规则二、数据类型2.1整形(格式:int 关键字)2.2 sizeof关键字2.3 float关键字2.4字符型2.5转义字符2.6字符串型2.7布尔类型2.8数据的输入三、运算符3.1算数运算符前置递增与后置递增区别3.2 …

MS Access数据库多数据源JDBC查询

Druid, C3P0都不支持微软的Access,如何实现多数据源JDBC查询?? 2023-01-23T23:54:52.4760800 WARNING com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask544a5904 -- Acquisition Attempt Failed!!! Clearing pending a…

Linux内核驱动初探(二) TI声卡

目录 0. 前言 1. menuconfig 2. 超时问题 3. 稳定性问题 0. 前言 通过查询该设备原理图可知,该声卡的Codec芯片型号为德州仪器 TLV320DAC3101。 1. menuconfig 我们在 linux-menuconfig 里面如下设置:进入 Device Drivers ---> Sound card supp…