机器学习笔记之深度信念网络——贪心逐层预训练算法
引言
上一节介绍了深度信念网络模型的构建思想,本节将介绍后验概率求解——贪心逐层预训练算法。
回顾:深度信念网络的结构表示
深度信念网络本质上是 在已有 Sigmoid \text{Sigmoid} Sigmoid信念网络的基础上,使用 RBM \text{RBM} RBM层对隐变量的边缘概率分布进行学习 的逻辑。已知一个深度信念网络表示如下:
这明显是一个四层深度信念网络,具体包含两个部分:
- 观测变量层 v ( 1 ) v^{(1)} v(1),隐变量层 h ( 1 ) , h ( 2 ) h^{(1)},h^{(2)} h(1),h(2)组成的 Sigmoid \text{Sigmoid} Sigmoid信念网络;
- 隐变量层 h ( 1 ) , h ( 2 ) h^{(1)},h^{(2)} h(1),h(2)组成的受限玻尔兹曼机
该网络中随机变量结点的联合概率分布可表示为:
任意相邻的随机变量层之间存在关联关系,也就是说,没有直接关联关系的层如
h ( 1 ) h^{(1)} h(1)与
h ( 3 ) h^{(3)} h(3)之间条件独立。具体结构详见:
贝叶斯网络——结构表示与
马尔可夫随机场——结构表示
P ( v ( 1 ) , h ( 1 ) , h ( 2 ) , h ( 3 ) ) = P ( v ( 1 ) ∣ h ( 1 ) , h ( 2 ) , h ( 3 ) ) ⋅ P ( h ( 1 ) , h ( 2 ) , h ( 3 ) ) = P ( v ( 1 ) ∣ h ( 1 ) ) ⋅ P ( h ( 1 ) ∣ h ( 2 ) , h ( 3 ) ) ⋅ P ( h ( 2 ) , h ( 3 ) ) = P ( v ( 1 ) ∣ h ( 1 ) ) ⋅ P ( h ( 1 ) ∣ h ( 2 ) ) ⋅ P ( h ( 2 ) , h ( 3 ) ) \begin{aligned} \mathcal P(v^{(1)},h^{(1)},h^{(2)},h^{(3)}) & = \mathcal P(v^{(1)} \mid h^{(1)},h^{(2)},h^{(3)}) \cdot \mathcal P(h^{(1)},h^{(2)},h^{(3)}) \\ & = \mathcal P(v^{(1)} \mid h^{(1)}) \cdot \mathcal P(h^{(1)} \mid h^{(2)},h^{(3)}) \cdot \mathcal P(h^{(2)},h^{(3)}) \\ & = \mathcal P(v^{(1)} \mid h^{(1)}) \cdot \mathcal P(h^{(1)} \mid h^{(2)}) \cdot \mathcal P(h^{(2)},h^{(3)}) \end{aligned} P(v(1),h(1),h(2),h(3))=P(v(1)∣h(1),h(2),h(3))⋅P(h(1),h(2),h(3))=P(v(1)∣h(1))⋅P(h(1)∣h(2),h(3))⋅P(h(2),h(3))=P(v(1)∣h(1))⋅P(h(1)∣h(2))⋅P(h(2),h(3))
其中, P ( v ( 1 ) ∣ h ( 1 ) ) , P ( h ( 1 ) ∣ h ( 2 ) ) \mathcal P(v^{(1)} \mid h^{(1)}),\mathcal P(h^{(1)} \mid h^{(2)}) P(v(1)∣h(1)),P(h(1)∣h(2))均是 Sigmoid \text{Sigmoid} Sigmoid信念网络关于随机变量的后验概率,因而可以进行如下表示:
其中
W h ( 1 ) → v ( 1 ) , W h ( 2 ) → h ( 1 ) \mathcal W_{h^{(1)} \to v^{(1)}},\mathcal W_{h^{(2)} \to h^{(1)}} Wh(1)→v(1),Wh(2)→h(1)均表示随机变量层与层之间的权重信息,并且均以矩阵的方式表示,例如:
W h ( 1 ) → v ( 1 ) = [ W h j ( 1 ) → v i ( 1 ) ] ∣ D ∣ × ∣ P ( 1 ) ∣ \mathcal W_{h^{(1)} \to v^{(1)}} = \left[\mathcal W_{h_j^{(1)} \to v_i^{(1)}}\right]_{|\mathcal D| \times |\mathcal P^{(1)}|} Wh(1)→v(1)=[Whj(1)→vi(1)]∣D∣×∣P(1)∣
其中
D , P ( 1 ) \mathcal D,\mathcal P^{(1)} D,P(1)分别表示观测变量层、第一层隐变量的随机变量集合;对应的
∣ D ∣ , ∣ P ( 1 ) ∣ |\mathcal D|,|\mathcal P^{(1)}| ∣D∣,∣P(1)∣表示各层随机变量的个数。
同理,对应层的偏置项
b ( k ) ( k = 0 , 1 , 2 , 3 ) b^{(k)}(k=0,1,2,3) b(k)(k=0,1,2,3)表示为(以
b ( 0 ) b^{(0)} b(0)为例):
b ( 0 ) = ( b 1 ( 0 ) , b 2 ( 0 ) , ⋯ , b ∣ D ∣ ( 0 ) ) ∣ D ∣ × 1 T b^{(0)} = \left(b_1^{(0)},b_2^{(0)},\cdots,b_{|\mathcal D|}^{(0)}\right)_{|\mathcal D| \times 1}^T b(0)=(b1(0),b2(0),⋯,b∣D∣(0))∣D∣×1T
两种后验概率均表示生成过程,详见
Sigmoid信念网络的定义。
P ( v ( 1 ) ∣ h ( 1 ) ) = Sigmoid { [ W h ( 1 ) → v