机器学习笔记之受限玻尔兹曼机(二)模型表示

机器学习笔记之受限玻尔兹曼机——模型表示

  • 引言
    • 回顾:玻尔兹曼分布
    • 玻尔兹曼机
      • 关于玻尔兹曼机的问题
    • 受限玻尔兹曼机
    • 受限玻尔兹曼机的学习任务(填坑)

引言

上一节基于马尔可夫随机场介绍了玻尔兹曼分布,本节将介绍受限玻尔兹曼机的模型表示(Representation)与 学习任务(Laerning)。

回顾:玻尔兹曼分布

基于Hammersley-Clifford定理,可以将马尔可夫随机场 G \mathcal G G中关于随机变量集合的联合概率分布 P ( X ) \mathcal P(\mathcal X) P(X)表示为如下形式:
P ( X ) = 1 Z ∏ i = 1 K ψ i ( x C i ) \mathcal P(\mathcal X) = \frac{1}{\mathcal Z} \prod_{i=1}^{\mathcal K} \psi_i(x_{\mathcal C_i}) P(X)=Z1i=1Kψi(xCi)
其中 x C i ( i = 1 , 2 , ⋯   , K ) x_{\mathcal C_i}(i=1,2,\cdots,\mathcal K) xCi(i=1,2,,K)表示极大团 C i \mathcal C_i Ci中结点组成的随机变量集合 ψ i ( x C i ) \psi_i(x_{\mathcal C_i}) ψi(xCi)表示极大团 x C i x_{\mathcal C_i} xCi对应的势函数 Z \mathcal Z Z表示规范化因子
由于势函数的恒正属性,因此通常将势函数使用能量函数进行表示:
ψ i ( x C i ) = exp ⁡ { − E [ x C i ] } i = 1 , 2 , ⋯   , K \psi_i(x_{\mathcal C_i}) = \exp \left\{-\mathbb E[x_{\mathcal C_i}]\right \} \quad i=1,2,\cdots,\mathcal K ψi(xCi)=exp{E[xCi]}i=1,2,,K
那么 基于能量函数表示的联合概率分布 P ( X ) \mathcal P(\mathcal X) P(X)被称作吉布斯分布,也称玻尔兹曼分布
这里全部使用’玻尔兹曼分布‘进行描述。
P ( X ) = 1 Z ∏ i = 1 K exp ⁡ { − E [ x C i ] } = 1 Z exp ⁡ [ − ∑ i = 1 K E [ x C i ] ] \begin{aligned} \mathcal P(\mathcal X) & = \frac{1}{\mathcal Z} \prod_{i=1}^{\mathcal K} \exp \left\{- \mathbb E[x_{\mathcal C_i}]\right\} \\ & = \frac{1}{\mathcal Z} \exp \left[- \sum_{i=1}^{\mathcal K} \mathbb E[x_{\mathcal C_i}]\right] \end{aligned} P(X)=Z1i=1Kexp{E[xCi]}=Z1exp[i=1KE[xCi]]

此时的联合概率分布 P ( X ) \mathcal P(\mathcal X) P(X)明显是指数族分布的表示形式
可以将 − ∑ i = 1 K E [ x C i ] -\sum_{i=1}^{\mathcal K} \mathbb E[x_{\mathcal C_i}] i=1KE[xCi]看作是’某权重矩阵‘ W \mathcal W W与’极大团向量‘ x C = ( x C 1 , x C 2 , ⋯   , x C K ) T x_{\mathcal C} = (x_{\mathcal C_1},x_{\mathcal C_2},\cdots,x_{\mathcal C_{\mathcal K}})^T xC=(xC1,xC2,,xCK)T的线性组合。
1 Z exp ⁡ [ − ∑ i = 1 K E [ x C i ] ] ⇒ 1 Z exp ⁡ [ W T x C ] \frac{1}{\mathcal Z} \exp \left[- \sum_{i=1}^{\mathcal K} \mathbb E[x_{\mathcal C_i}]\right] \Rightarrow \frac{1}{\mathcal Z} \exp [\mathcal W^T x_{\mathcal C}] Z1exp[i=1KE[xCi]]Z1exp[WTxC]
如果给能量函数 E [ x C i ] ( i = 1 , 2 , ⋯   , K ) \mathbb E[x_{\mathcal C_i}](i=1,2,\cdots,\mathcal K) E[xCi](i=1,2,,K)一个准确描述的话,可以将 E [ x C i ] \mathbb E[x_{\mathcal C_i}] E[xCi]描述为如下形式:
E [ x C i ] = − { [ x C i ] T U x C i + b T x C i } i = 1 , 2 , ⋯   , K \mathbb E[x_{\mathcal C_i}] = - \left\{[x_{\mathcal C_i}]^T \mathcal U x_{\mathcal C_i} + b^T x_{\mathcal C_i}\right\} \quad i=1,2,\cdots,\mathcal K E[xCi]={[xCi]TUxCi+bTxCi}i=1,2,,K
其中 U \mathcal U U表示模型参数的权重矩阵 b b b表示偏置向量

个人理解:在花书(第20章)将随机变量集合 x x x描述为一个 d d d维的分布。为了简化运算,将每一维分布均设为’伯努利分布‘,从而将’能量函数‘描述为如下形式:
E ( x ) = − x T U x − b T x \mathbb E(x) = - x^T\mathcal U x - b^Tx E(x)=xTUxbTx
回归文章示例,将 p p p维随机变量 X \mathcal X X表示为’若干个结点‘(可能有的结点内部包含一个随机变量,有的包含多个),然后将这些结点归纳为 K \mathcal K K个极大团 x C i ( i = 1 , 2 , ⋯   , K ) x_{\mathcal C_i}(i=1,2,\cdots,\mathcal K) xCi(i=1,2,,K)。可以将每个极大团中的随机变量看作是 X \mathcal X X的一个子集,因而这里的表述没什么问题。欢迎小伙伴们交流讨论。

玻尔兹曼机

玻尔兹曼机(Boltzmann Machine,BM)示例表示如下:
蓝色结点表示观测变量,白色结点表示隐变量,下同。
机器学习笔记之受限玻尔兹曼机(二)模型表示_第1张图片

玻尔兹曼机本质上就是一个马尔可夫随机场,但是不同点在于玻尔兹曼机将随机变量集合 X \mathcal X X分成了两个子集
需要注意的是,这里的 m , n , p m,n,p m,n,p表示随机变量的维度,而不是极大团的编号。
X = ( x 1 , x 2 , ⋯ x p ) T ⇒ ( h v ) { h = ( h 1 , h 2 , ⋯   , h m ) T v = ( v 1 , v 2 , ⋯   , v n ) T m + n = p \begin{aligned} \mathcal X & = (x_1,x_2,\cdots x_p)^T \Rightarrow \begin{pmatrix}h \\ v \end{pmatrix}\\ & \begin{cases} h = (h_1,h_2,\cdots,h_m)^T \\ v = (v_1,v_2,\cdots,v_n)^T \quad m + n = p \end{cases} \end{aligned} X=(x1,x2,xp)T(hv){h=(h1,h2,,hm)Tv=(v1,v2,,vn)Tm+n=p
其中 v v v表示观测变量 h h h表示隐变量。它的能量函数不同于单个随机变量种类 x ∈ R p \mathcal x \in \mathbb R^p xRp,它的能量函数根据图中边两端结点种类 分为三种表示:
E ( v , h ) = − [ ( v T R v + b T v ) + v T W h + ( h T S h + c T h ) ] \mathbb E(v,h) = - \left[(v^T\mathcal Rv + b^Tv) + v^T \mathcal W h + (h^T\mathcal S h + c^T h)\right] E(v,h)=[(vTRv+bTv)+vTWh+(hTSh+cTh)]

  • 以观测变量 v v v内部的边为例。 v i , v j ∈ v v_i,v_j \in v vi,vjv表示观测变量的两个结点,它们之间的能量(边;关联关系)可表示为:
    E ( v i , v j ) = − v i ⋅ r i j ⋅ v j \mathbb E(v_i,v_j) = - v_i \cdot r_{ij} \cdot v_j E(vi,vj)=virijvj
    其中 r i j r_{ij} rij表示 v i , v j v_i,v_j vi,vj之间的权重系数。至此,观测变量 v v v内部的能量结果可表示为如下形式
    − ∑ i = 1 m ∑ j = 1 m v i ⋅ r i j ⋅ v j = − ( v 1 , v 2 , ⋯   , v m ) ( r 11 , r 12 , ⋯   , r 1 m r 21 , r 22 , ⋯   , r 2 m ⋮ r m 1 , r m 2 , ⋯   , r m m ) ( v 1 v 2 ⋮ v m ) = − v T R v \begin{aligned}- \sum_{i=1}^m\sum_{j=1}^m v_i \cdot r_{ij} \cdot v_j & = -(v_1,v_2,\cdots,v_m)\begin{pmatrix} r_{11},r_{12},\cdots,r_{1m} \\ r_{21},r_{22},\cdots,r_{2m} \\ \vdots \\ r_{m1},r_{m2},\cdots,r_{mm} \\ \end{pmatrix}\begin{pmatrix} v_1 \\ v_2 \\ \vdots \\ v_m \end{pmatrix} \\ & = -v^T\mathcal Rv \end{aligned} i=1mj=1mvirijvj=(v1,v2,,vm)r11,r12,,r1mr21,r22,,r2mrm1,rm2,,rmmv1v2vm=vTRv
  • 其他表示边的关系如 − v T W h , − h T S h - v^T\mathcal Wh,-h^T\mathcal Sh vTWh,hTSh同理。关于结点本身的能量也通过权重系数进行表达。如观测变量的能量表达: ∑ i = 1 m b i v i = b T v \sum_{i=1}^m b_iv_i = b^Tv i=1mbivi=bTv,隐变量同理。

其中 R , b \mathcal R,b R,b表示基于观测变量团的权重矩阵和偏置向量; S , c \mathcal S,c S,c表示基于隐变量团的权重矩阵和偏置向量; W \mathcal W W表示边两端分别是观测变量和隐变量的权重矩阵。
最终,玻尔兹曼机对应的 联合概率分布(概率质量函数) 表示如下:
在后续’玻尔兹曼机‘中将继续进行介绍。
P ( v , h ) = 1 Z exp ⁡ { − E [ v , h ] } = 1 Z exp ⁡ { [ ( v T R v + b T v ) + v T W h + ( h T S h + c T h ) ] } \begin{aligned} \mathcal P(v,h) & = \frac{1}{\mathcal Z} \exp \{- \mathbb E[v,h]\} \\ & = \frac{1}{\mathcal Z} \exp \left\{\left[(v^T\mathcal Rv + b^Tv) + v^T \mathcal W h + (h^T\mathcal S h + c^T h)\right] \right\} \end{aligned} P(v,h)=Z1exp{E[v,h]}=Z1exp{[(vTRv+bTv)+vTWh+(hTSh+cTh)]}

关于玻尔兹曼机的问题

如果并不是所有变量都能够被观测,如隐变量的存在。这种情况下,隐变量类似于神经网络中的隐藏层神经元,此时的波尔兹曼机就不再局限于变量之间的线性关系了。通过对模型的学习,类似于神经网络隐藏层的函数逼近定理,它可以对 离散型随机变量任意概率质量函数 P ( X ) \mathcal P(\mathcal X) P(X)进行逼近

当然,这种情况下,同样需要玻尔兹曼机内部结点之间存在丰富的关联关系。如下图:
机器学习笔记之受限玻尔兹曼机(二)模型表示_第2张图片
这种复杂结构引出玻尔兹曼机的缺陷由于结构过于复杂,没有办法对其进行精确推断
其次,如果使用近似推断,如马尔可夫链蒙特卡罗方法,由于分布过于复杂,需要采集足够量的样本对其进行近似。这种方式的计算量过于庞大

受限玻尔兹曼机

玻尔兹曼机的缺陷主要在于模型对应的概率图结构过于复杂。受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)是在玻尔兹曼机的基础上,对结点间的边进行约束。约束要求是:只有隐变量 h h h和观测变量 v v v之间存在连接, h , v h,v h,v变量内部无连接

上图关于优化后的受限玻尔兹曼机表示如下:
机器学习笔记之受限玻尔兹曼机(二)模型表示_第3张图片
同理,基于改进后的概率图表达,可以对波尔兹曼机联合概率分布进行优化:
P ( X ) = P ( v , h ) = 1 Z exp ⁡ { − E ( v , h ) } = 1 Z exp ⁡ ( v T W h + b T v + c T h ) \begin{aligned} \mathcal P(\mathcal X) = \mathcal P(v,h) & = \frac{1}{\mathcal Z} \exp \{- \mathbb E(v,h)\} \\ & = \frac{1}{\mathcal Z} \exp (v^T \mathcal W h + b^Tv + c^Th) \end{aligned} P(X)=P(v,h)=Z1exp{E(v,h)}=Z1exp(vTWh+bTv+cTh)
继续对上式进行展开:
P ( v , h ) = 1 Z exp ⁡ [ v T W h ] ⋅ exp ⁡ [ b T v ] ⋅ exp ⁡ [ c T h ] = 1 Z { exp ⁡ [ ∑ i = 1 m ∑ j = 1 n v i ⋅ w i j ⋅ h j ] ⋅ exp ⁡ [ ∑ i = 1 m b i v i ] ⋅ exp ⁡ [ ∑ j = 1 n c j h j ] } = 1 Z { ∏ i = 1 m ∏ j = 1 n exp ⁡ ( v i ⋅ w i j ⋅ h j ) ⋅ ∏ i = 1 m exp ⁡ ( b i v i ) ∏ j = 1 n exp ⁡ ( c j h j ) } \begin{aligned} \mathcal P(v,h) & = \frac{1}{\mathcal Z} \exp [v^T \mathcal W h] \cdot \exp[b^Tv] \cdot \exp[c^Th] \\ & = \frac{1}{\mathcal Z} \left\{\exp \left[\sum_{i=1}^m\sum_{j=1}^n v_i \cdot w_{ij}\cdot h_j \right] \cdot \exp \left[\sum_{i=1}^m b_iv_i\right] \cdot \exp \left[\sum_{j=1}^n c_jh_j\right]\right\} \\ & = \frac{1}{\mathcal Z} \left\{\prod_{i=1}^m\prod_{j=1}^n \exp (v_i \cdot w_{ij} \cdot h_j) \cdot \prod_{i=1}^m \exp (b_iv_i) \prod_{j=1}^n \exp(c_jh_j)\right\} \end{aligned} P(v,h)=Z1exp[vTWh]exp[bTv]exp[cTh]=Z1{exp[i=1mj=1nviwijhj]exp[i=1mbivi]exp[j=1ncjhj]}=Z1{i=1mj=1nexp(viwijhj)i=1mexp(bivi)j=1nexp(cjhj)}
上式展开后的结果就是各种各样的指数函数做乘法。因此可以从因子图(Factor Graph)的角度对受限玻尔兹曼机进行描述,对应因子图表示如下:
例如团(实际上就是极大团) v i ⇔ h j v_i \Leftrightarrow h_j vihj可以定义为 f i j ( v i , h j ) = exp ⁡ ( v i ⋅ w i j ⋅ h j ) f_{ij}(v_i,h_j) = \exp (v_i \cdot w_{ij} \cdot h_j) fij(vi,hj)=exp(viwijhj),其他同理。这里就不多描述了。
因受限玻尔兹曼机的性质,其概率图中任意三个结点之间均不能构成极大团。因此,每一条边对应的两个结点都是一个极大团。
机器学习笔记之受限玻尔兹曼机(二)模型表示_第4张图片
最终,受限玻尔兹曼机需要学习的参数包含以下三个:
W = ( w 11 , w 12 , ⋯   , w 1 n w 21 , w 22 , ⋯   , w 2 n ⋮ w m 1 , w m 2 , ⋯   , w m n ) m × n b = ( b 1 b 2 ⋮ b m ) m × 1 c = ( c 1 c 2 ⋮ c n ) n × 1 \mathcal W = \begin{pmatrix} w_{11},w_{12},\cdots,w_{1n} \\ w_{21},w_{22},\cdots,w_{2n} \\ \vdots \\ w_{m1},w_{m2},\cdots,w_{mn} \\ \end{pmatrix}_{m \times n} \quad b = \begin{pmatrix} b_1 \\ b_2 \\ \vdots \\ b_{m} \end{pmatrix}_{m \times 1} \quad c = \begin{pmatrix} c_1 \\ c_2 \\ \vdots \\ c_{n} \end{pmatrix}_{n \times 1} W=w11,w12,,w1nw21,w22,,w2nwm1,wm2,,wmnm×nb=b1b2bmm×1c=c1c2cnn×1

受限玻尔兹曼机的学习任务(填坑)

在介绍对比散度(Contrastive Divergence)介绍完毕后,再介绍受限玻尔兹曼机的学习任务

相关参考:
深度学习(花书)——第20章 深度生成模型
(系列二十八)玻尔兹曼机1-介绍
机器学习-受限玻尔兹曼机(3)-模型表示(Representation)

你可能感兴趣的:(机器学习,机器学习,受限玻尔兹曼机,玻尔兹曼机的缺陷,Learning问题,因子图)