机器学习算法笔记:RBM受限玻尔兹曼机

文章目录

    • 玻尔兹曼机
    • 受限玻尔兹曼机
      • 推断
        • Binary RBM
    • 参考文献

玻尔兹曼机

玻尔兹曼机是一种存在隐节点的无向图模型。在图模型中最简单的是朴素贝叶斯模型(朴素贝叶斯假设),引入单个隐变量后,发展出了 GMM,如果单个隐变量变成序列的隐变量,就得到了状态空间模型(引入齐次马尔可夫假设和观测独立假设就有HMM,Kalman Filter,Particle Filter),为了引入观测变量之间的关联,引入了一种最大熵模型-MEMM,为了克服 MEMM 中的局域问题,又引入了 CRF,CRF 是一个无向图,其中,破坏了齐次马尔可夫假设,如果隐变量是一个链式结构,那么又叫线性链 CRF。

在无向图的基础上引入隐变量,即:把无向图的节点分为观测变量和隐变量两类,就是玻尔兹曼机,其实也就是含隐变量的马尔科夫随机场。这个图模型的概率密度函数是一个指数族分布。对隐变量和观测变量作出一定的限制,就得到了受限玻尔兹曼机(RBM)。

不同的概率图模型对下面几个特点作出假设:

  • 方向-边的性质
  • 离散/连续/混合-点的性质
  • 条件独立性-边的性质
  • 隐变量-节点的性质
  • 指数族-结构特点

将观测变量和隐变量记为 h = ( h 1 , ⋯   , h m ) T h={(h_1,\cdots,h_m)^T} h=(h1,,hm)T v = ( v 1 , ⋯   , v n ) T v={(v_1,\cdots,v_n)^T} v=(v1,,vn)T,其中 p = m + n p=m+n p=m+n,无向图根据最大团的分解,可以写为玻尔兹曼分布的形式(也是一个指数族分布):
p ( x ) = 1 Z ∏ i = 1 K ψ i ( x c i ) = 1 Z exp ⁡ ( − ∑ i = 1 K E ( x c i ) ) p(x)=\frac{1}{Z}\prod\limits_{i=1}^K\psi_i(x_{ci})=\frac{1}{Z}\exp(-\sum\limits_{i=1}^KE(x_{ci})) p(x)=Z1i=1Kψi(xci)=Z1exp(i=1KE(xci))

K K K 为最大团个数, c i c_i ci 为最大团的节点集合, x c i x_{ci} xci 为最大团对应的随机变量集合, ψ i ( x c i ) = exp ⁡ { − E ( x c i ) } \psi_i(x_{ci})=\exp\{-E(x_{c_i})\} ψi(xci)=exp{E(xci)} 为势函数(严格大于 0,所以一般取指数函数, E E E 表示能量函数), Z = ∑ X ∏ i = 1 K ψ i ( x c i ) = ∑ X 1 ⋯ ∑ X p ∏ i = 1 K ψ i ( x c i ) Z=\sum\limits_X\prod\limits_{i=1}^K\psi_i(x_{ci})=\sum\limits_{X_1}\cdots\sum\limits_{X_p}\prod\limits_{i=1}^K\psi_i(x_{ci}) Z=Xi=1Kψi(xci)=X1Xpi=1Kψi(xci) 为归一化因子(partition function也叫配分函数,这里假设有 p p p 个随机变量)。

受限玻尔兹曼机

玻尔兹曼机节点间关系过于复杂,计算难度和计算量都较高(即使是近似推断难度也很大),因此需要对其做一定程度的简化:假设所有隐变量内部以及观测变量内部没有连接,只在隐变量和观测变量之间有连接(类似神经网络的连接形式),则:
p ( x ) ↓ = 1 Z exp ⁡ ( − E ( X ) ) 指数部分进行了简化表示 p ( h , v ) = 1 Z exp ⁡ ( − E ( v , h ) ) \begin{aligned} &\mathop{p(x)}\limits_{\color{blue}\downarrow}=\frac{1}{Z}\exp(-E(X)) {\color{blue}\quad_\text{指数部分进行了简化表示}}\\ &p(h,v)=\frac{1}{Z}\exp(-E(v,h)) \end{aligned} p(x)=Z1exp(E(X))指数部分进行了简化表示p(h,v)=Z1exp(E(v,h))

其中能量函数 E ( v , h ) E(v,h) E(v,h) 可以写出三个部分,包括与节点集合相关的两项以及与边 w w w 相关的一项,记为:
E ( v , h ) = − ( h T w v ⏟ e d g e + α T v ⏟ n o d e + β T h ⏟ n o d e ) E(v,h)=-(\underbrace{h^Twv}_{\color{blue}edge}+\underbrace{\alpha^T v}_{\color{blue}node}+\underbrace{\beta^T h}_{\color{blue}node}) E(v,h)=(edge hTwv+node αTv+node βTh)

所以RBM的 pdf
p ( x ) = 1 Z exp ⁡ ( h T w v ) exp ⁡ ( α T v ) exp ⁡ ( β T h ) = 1 Z ∏ i = 1 m ∏ j = 1 n exp ⁡ ( h i w i j v j ) ∏ j = 1 n exp ⁡ ( α j v j ) ∏ i = 1 m exp ⁡ ( β i h i ) \begin{aligned} p(x)&=\frac{1}{Z}\exp(h^Twv)\exp(\alpha^T v)\exp(\beta^T h)\\ &=\frac{1}{Z}\prod_{i=1}^m\prod_{j=1}^n\exp(h_iw_{ij}v_j)\prod_{j=1}^n\exp(\alpha_jv_j)\prod_{i=1}^m\exp(\beta_ih_i) \end{aligned} p(x)=Z1exp(hTwv)exp(αTv)exp(βTh)=Z1i=1mj=1nexp(hiwijvj)j=1nexp(αjvj)i=1mexp(βihi)

上式和 RBM 的因子图一一对应。

推断

推断任务包括求后验概率 p ( v ∣ h ) , p ( h ∣ v ) \color{blue}\boxed{p(v|h)},\boxed{p(h|v)} p(vh),p(hv) 以及边缘概率 p ( v ) \color{blue}\boxed{p(v)} p(v)

对于一个无向图,满足局域的 Markov 性质,即内部无连接
p ( h 1 ∣ h − h 1 , v ) = p ( h 1 ∣ N e i g h b o u r ( h 1 ) ) = p ( h 1 ∣ v ) p(h_1|h-{h_1},v)=p(h_1|Neighbour(h_1))=p(h_1|v) p(h1hh1,v)=p(h1Neighbour(h1))=p(h1v)

所以可以得到:
p ( h ∣ v ) = ∏ i = 1 m p ( h i ∣ v ) p(h|v)=\prod_{i=1}^mp(h_i|v) p(hv)=i=1mp(hiv)

Binary RBM

考虑 Binary RBM,所有的隐变量只有两个取值 h i ∈ { 0 , 1 } \color{blue}h_i\in\{0,1\} hi{0,1} p ( h l = 1 ∣ v ) = p ( h l = 1 , h − l , v ) p ( h − l , v ) = p ( h l = 1 , h − l , v ) p ( h l = 1 , h − l , v ) + p ( h l = 0 , h − l , v ) {\color{blue}p(h_l=1|v)}=\frac{p(h_l=1,h_{-l},v)}{p(h_{-l},v)}=\frac{p(h_l=1,h_{-l},v)}{p(h_l=1,h_{-l},v)+p(h_l=0,h_{-l},v)} p(hl=1v)=p(hl,v)p(hl=1,hl,v)=p(hl=1,hl,v)+p(hl=0,hl,v)p(hl=1,hl,v)

将能量函数写成和 l l l 相关或不相关的两项:
E ( v , h ) = − ( ∑ i = 1 , i ≠ l m ∑ j = 1 n h i w i j v j + h l ∑ j = 1 n w l j v j + ∑ j = 1 n α j v j + ∑ i = 1 , i ≠ l m β i h i + β l h l ) \begin{aligned} &E(v,h)=-\left(\sum\limits_{i=1,i\ne l}^m\sum\limits_{j=1}^nh_iw_{ij}v_j+{\color{blue}h_l}\sum\limits_{j=1}^nw_{lj}v_j+\sum\limits_{j=1}^n\alpha_j v_j+\sum\limits_{i=1,i\ne l}^m\beta_ih_i+\beta_l{\color{blue}h_l}\right) \end{aligned} E(v,h)=i=1,i=lmj=1nhiwijvj+hlj=1nwljvj+j=1nαjvj+i=1,i=lmβihi+βlhl

定义: E ( v , h ) = h l H l ( v ) + H ‾ ( h − l , v ) E(v,h)={\color{blue}h_l}H_l(v)+\overline{H}(h_{-l},v) E(v,h)=hlHl(v)+H(hl,v)
{ h l H l ( v ) = h l ∑ j = 1 n w l j v j + β l h l     h l 相关项 H ‾ ( h − l , v ) = ∑ i = 1 , i ≠ l m ∑ j = 1 n h i w i j v j + ∑ j = 1 n α j v j + ∑ i = 1 , i ≠ l m β i h i h l 无关项 \left\{\begin{aligned} &{\color{blue}h_l}H_l(v)={\color{blue}h_l}\sum\limits_{j=1}^nw_{lj}v_j+\beta_l{\color{blue}h_l}{\color{blue}\qquad\qquad\qquad\qquad\qquad\qquad\ \ _\text{$h_l$相关项}}\\ &\overline{H}(h_{-l},v)=\sum\limits_{i=1,i\ne l}^m\sum\limits_{j=1}^nh_iw_{ij}v_j+\sum\limits_{j=1}^n\alpha_j v_j+\sum\limits_{i=1,i\ne l}^m\beta_ih_i{\color{blue}\qquad_\text{$h_l$无关项}} \end{aligned}\right. hlHl(v)=hlj=1nwljvj+βlhl  hl相关项H(hl,v)=i=1,i=lmj=1nhiwijvj+j=1nαjvj+i=1,i=lmβihihl无关项

则有:
p ( h l = 1 ∣ v ) = 1 Z exp ⁡ { 1 H l ( v ) + H ‾ ( h − l , v ) } 1 Z exp ⁡ { 1 H l ( v ) + H ‾ ( h − l , v ) } + exp ⁡ { H ‾ ( h − l , v ) } = 1 1 + exp ⁡ { − H l ( v ) } = σ ( H l ( v ) ) \begin{aligned} {\color{blue}p(h_l=1|v)}&=\frac{\frac1Z\exp\{{\color{blue}1}H_l(v)+\overline{H}(h_{-l},v)\}}{\frac1Z\exp\{{\color{blue}1} H_l(v)+\overline{H}(h_{-l},v)\}+\exp\{\overline{H}(h_{-l},v)\}}\\ &=\frac{1}{1+\exp\{-H_l(v)\}}\\ &=\color{blue}\sigma(H_l(v)) \end{aligned} p(hl=1v)=Z1exp{1Hl(v)+H(hl,v)}+exp{H(hl,v)}Z1exp{1Hl(v)+H(hl,v)}=1+exp{Hl(v)}1=σ(Hl(v))

于是就得到了后验概率 p ( h ∣ v ) \color{blue}\boxed{p(h|v)} p(hv), 而后验概率 p ( v ∣ h ) \color{blue}\boxed{p(v|h)} p(vh) 与其是对称的,可直接写出

求边缘概率 p ( v ) \color{blue}\boxed{p(v)} p(v) 要消除 h \color{blue}h h
p ( v ) = ∑ h p ( h , v ) = ∑ h 1 Z exp ⁡ ( h T w v + α T v + β T h ) = exp ⁡ ( α T v ) 1 Z ∑ h 1 exp ⁡ ( h 1 w 1 v + β 1 h 1 ) ⋯ ∑ h m exp ⁡ ( h m w m v + β m h m ) 展开 h = exp ⁡ ( α T v ) 1 Z ( 1 + exp ⁡ ( w 1 v + β 1 ) ) ⋯ ( 1 + exp ⁡ ( w m v + β m ) ) h 取0和1 = 1 Z exp ⁡ { α T v + ∑ i = 1 m log ⁡ ( 1 + exp ⁡ ( w i v + β i ) ) ⏟ s o f t p l u s :   log ⁡ ( 1 + exp ⁡ ( x ) ) } \begin{aligned} \color{blue}p(v)&=\sum\limits_hp(h,v)=\sum\limits_h\frac{1}{Z}\exp(h^Twv+\alpha^Tv+\beta^Th)\\ &=\exp(\alpha^Tv)\frac{1}{Z}\sum\limits_{h_1}\exp(h_1w_1v+\beta_1h_1)\cdots\sum\limits_{h_m}\exp(h_mw_mv+\beta_mh_m)\color{blue}\quad_\text{展开$h$}\\ &=\exp(\alpha^Tv)\frac{1}{Z}(1+\exp(w_1v+\beta_1))\cdots(1+\exp(w_mv+\beta_m))\color{blue}\quad_\text{$h$取0和1}\\ &=\frac{1}{Z}\exp\left\{\alpha^Tv+\sum\limits_{i=1}^m\underbrace{\log(1+\exp(w_iv+\beta_i))}_{\color{blue}softplus:\ \log(1+\exp(x))}\right\} \end{aligned} p(v)=hp(h,v)=hZ1exp(hTwv+αTv+βTh)=exp(αTv)Z1h1exp(h1w1v+β1h1)hmexp(hmwmv+βmhm)展开h=exp(αTv)Z1(1+exp(w1v+β1))(1+exp(wmv+βm))h01=Z1expαTv+i=1msoftplus: log(1+exp(x)) log(1+exp(wiv+βi))

其中 w i w_i wi w w w 的行向量

参考文献

【1】受限玻尔兹曼机
【2】深度学习 — 受限玻尔兹曼机详解(RBM)

你可能感兴趣的:(机器学习)