【深度学习】受限玻尔兹曼机原理推导

1、前言

受限玻尔兹曼机,一个基于概率图的模型。本文对受限玻尔兹曼机的原理进行简单推导,其中相关知识的某些原理也不会过多涉及,只着重于受限玻尔兹曼机。代码实现
数学基础:【概率论与数理统计知识复习-哔哩哔哩】

2、引入

2.1、无向图

在这里插入图片描述

在一张图中,我们存在一些节点和边,这些节点之间存在的某种关系,通过边来表示,节点和边共同组成了一张图,并且这些边是没有方向的(即互联),这种图被称为无向图。

在我们应用的过程中,里面的每一个节点,一般就是我们某个数据的一个维度。比如假设某个样本 x i ∈ ( x 1 , x 2 , x 3 , x 4 , x 5 ) x_i \in (x_1,x_2,x_3,x_4,x_5) xi(x1,x2,x3,x4,x5),那么图中的 a , b , c , d , e a,b,c,d,e a,b,c,d,e就分别对应 x 1 , x 2 , x 3 , x 4 , x 5 x_1,x_2,x_3,x_4,x_5 x1,x2,x3,x4,x5

性质: 成对马尔可夫性:当节点 i , j 没有边相连,则有 x i ⊥ x j ∣ x − i − j \boxed{成对马尔可夫性:当节点i,j没有边相连,则有x_i\perp x_j|x_{-i-j}} 成对马尔可夫性:当节点ij没有边相连,则有xixjxij。比如图中,对节点a和c,再给定d的情况下,两者独立 → a ⊥ c ∣ b \rightarrow a\perp c | b acb

2.2、受限玻尔兹曼机(RBM)

受限玻尔兹曼机(以下简称RBM),本质上就是一个无向概率图模型,但是它有一个特点,便是引入了隐变量h(无法观测到的数据,意为我们仅仅知道观测数据 x x x),其模型图可表示为

在这里插入图片描述

可以看到,对于观测变量 x x x,其两两之间是没有边相连。隐变量h也是同理。在实际应用中,一般就是求 P ( h ∣ x ) P(h|x) P(hx)或者 P ( x ∣ h ) P(x|h) P(xh)

这是一个概率图模型,既然是概率图,那就必须有三大问题—— 表示、推断、学习 \boxed{表示、推断、学习} 表示、推断、学习

表示——如何将模型表示成概率分布函数的形式 \boxed{表示——如何将模型表示成概率分布函数的形式} 表示——如何将模型表示成概率分布函数的形式

推断——如何求出边缘概率,条件概率等 ( 包含预测 ) \boxed{推断——如何求出边缘概率,条件概率等(包含预测)} 推断——如何求出边缘概率,条件概率等(包含预测)

学习——如何学习模型参数 \boxed{学习——如何学习模型参数} 学习——如何学习模型参数

3、三大问题

3.1、表示

3.1.1、无向图模型表示

在无向图中,一般情况下我们将里面所有的节点表示为
P ( x ) = 1 Z ∏ i = 1 k ϕ ( x c i ) P(x)=\frac{1}{Z}\prod\limits_{i=1}^k\phi(x_{ci}) P(x)=Z1i=1kϕ(xci)
其中, Z Z Z被称为配分函数(用于归一化,保证概率值在0~1), ϕ \phi ϕ被称为势函数, k k k就是图中 最大团 \boxed{最大团} 最大团的个数(不理解没关系,也可以直接看RBM的模型表示),其中
Z = ∑ x ∏ i = 1 k ϕ ( x c i ) Z=\sum\limits_{x}\prod\limits_{i=1}^k\phi (x_{ci}) Z=xi=1kϕ(xci)
对于势函数 ϕ \phi ϕ,我们一般定义为
ϕ ( x c i ) = exp ⁡ { − E ( x c i ) } \phi(x_{ci})=\exp\left\{-E(x_{ci})\right\} ϕ(xci)=exp{E(xci)}
E ( x c i ) E(x_{ci}) E(xci)为最大团对应的能量函数

所以,最终的模型可以表示为(将多个exp相乘转成相加)
P ( x ) = 1 Z exp ⁡ { − ∑ i = 1 k E ( x c i ) } (1) P(x)=\frac{1}{Z}\exp\left\{-\sum\limits_{i=1}^kE(x_{ci})\right\}\tag{1} P(x)=Z1exp{i=1kE(xci)}(1)
这只是一个大体形式的表达,具体到其他模型中,能量函数需要自行去设定。

3.1.2、RBM模型表示

对于(式1),exp里面的 x c i x_{ci} xci,加上连加号,可以用所有的x表示(去掉连加号)
P ( x ) = 1 Z exp ⁡ { − E ( x ) } P(x)=\frac{1}{Z}\exp\left\{-E(x)\right\} P(x)=Z1exp{E(x)}
又因为在RBM中,节点数包括隐变量 h h h和观测变量 x x x,所以,理应表达成
P ( x , h ) = 1 Z exp ⁡ { − E ( x , h ) } P(x,h)=\frac{1}{Z}\exp\left\{-E(x,h)\right\} P(x,h)=Z1exp{E(x,h)}
定义变量
x = ( x 1 x 2 ⋯ x n ) n × 1 ; h = ( h 1 h 2 ⋯ h m ) m × 1 ; w = [ w 11 w 12 ⋯ w 1 m w 21 w 22 ⋯ w 2 m ⋮ ⋮ ⋱ ⋮ w n 1 w n 2 ⋯ w n m ] n × m x=\begin{pmatrix} x_1 \\ x_2 \\ \cdots \\ x_n \end{pmatrix}_{n\times 1};h=\begin{pmatrix} h_1 \\ h_2 \\ \cdots \\ h_m \end{pmatrix}_{m\times 1};w=\begin{bmatrix} w_{11} & w_{12} & \cdots & w_{1m} \\ w_{21} & w_{22} & \cdots & w_{2m} \\ \vdots & \vdots & \ddots & \vdots \\ w_{n1} & w_{n2} & \cdots & w_{nm} \end{bmatrix}_{n \times m} x= x1x2xn n×1;h= h1h2hm m×1;w= w11w21wn1w12w22wn2w1mw2mwnm n×m
x为观测变量的维度,h为隐变量的维度,w为x和h节点相连的的边

所以,一般情况下,我们定义受限玻尔兹曼机
E ( x , h ) = − ( x T w h + α T h + β T x ) E(x,h)=-(x^Twh+\alpha^T{h}+\beta^T{x}) E(x,h)=(xTwh+αTh+βTx)
负号是为了抵消掉exp中的负号, α 维度是 m × 1 \boxed{\alpha维度是m\times 1} α维度是m×1 β 维度是 n × 1 \boxed{\beta维度是n\times 1} β维度是n×1,参数为 w , α , β w,\alpha,\beta w,α,β

可以看到,我们表示成了 观测变量与隐变量相连 + 隐变量节点 + 观测变量节点 \boxed{观测变量与隐变量相连+隐变量节点+观测变量节点} 观测变量与隐变量相连+隐变量节点+观测变量节点。这种表达是相当合理的。

所以我们的模型就表示为
P ( x , h ) = 1 Z exp ⁡ { x T w h + α T h + β T x } (2) P(x,h)=\frac{1}{Z}\exp\left\{x^Twh+\alpha^Th+\beta^Tx\right\}\tag{2} P(x,h)=Z1exp{xTwh+αTh+βTx}(2)

3.2、推断

在推断中,是假设我们的参数已经学习出来了。

在传统的RBM中,对于每一个 h i , x i ∈ 0 , 1 h_i,x_i \in {0,1} hi,xi0,1,也就是一般它们是取二值。

在后面学习问题中,我们仅仅会用到 P ( h l ∣ x ) 或者 P ( x l ∣ h ) ( l 代表某一个样本索引),所以推断我们仅仅讲这个 \boxed{在后面学习问题中,我们仅仅会用到P(h_l|x)或者P(x_l|h)(l代表某一个样本索引),所以推断我们仅仅讲这个} 在后面学习问题中,我们仅仅会用到P(hlx)或者P(xlh)l代表某一个样本索引),所以推断我们仅仅讲这个

因为这是一个二值问题,所以我们只需要求出 P ( h l = 1 ∣ x ) P(h_l=1|x) P(hl=1∣x) P ( h l = 0 ∣ x ) P(h_l=0|x) P(hl=0∣x)自然可以为 1 − P ( h l = 1 ∣ x ) 1-P(h_l=1|x) 1P(hl=1∣x)

在求解之前,我们将式( 2 )分解为和节点 l 相关与无关的两部分(后面用到) \boxed{在求解之前,我们将式(2)分解为和节点l相关与无关的两部分(后面用到)} 在求解之前,我们将式(2)分解为和节点l相关与无关的两部分(后面用到)
P ( x , h ) = 1 Z exp ⁡ { x T w h + α T h + β T x } = 1 Z exp ⁡ { ∑ i = 1 n ∑ j = 1 m x i w i j h j + ∑ j = 1 m α j h j + ∑ i = 1 n β i x i } = 1 Z exp ⁡ { ( ∑ i = 1 n ∑ j ≠ l m x i w i j h j + ∑ i = 1 n x i w i l h l ) + ( ∑ j ≠ l m α j h j + α l h l ) + ∑ i = 1 n β i x i } \begin{aligned} P(x,h)=&\frac{1}{Z}\exp\left\{x^Twh+\alpha^Th+\beta^Tx\right\} \\=&\frac{1}{Z}\exp\left\{\sum\limits_{i=1}^n\sum\limits_{j=1}^mx_iw_{ij}h_{j}+\sum\limits_{j=1}^m\alpha_jh_j+\sum\limits_{i=1}^n\beta_ix_i\right\} \\=&\frac{1}{Z}\exp\left\{\left(\sum\limits_{i=1 }^n\sum\limits_{j\neq l}^mx_iw_{ij}h_{j}+\sum\limits_{i=1}^nx_{i}w_{il}h_{l}\right)+\left(\sum\limits_{j\neq l}^m\alpha_jh_j+\alpha_lh_l\right)+\sum\limits_{i=1}^n\beta_ix_i\right\} \end{aligned} P(x,h)===Z1exp{xTwh+αTh+βTx}Z1exp{i=1nj=1mxiwijhj+j=1mαjhj+i=1nβixi}Z1exp i=1nj=lmxiwijhj+i=1nxiwilhl + j=lmαjhj+αlhl +i=1nβixi
将与 l l l相关的部分记作 H l H_{l} Hl,无关记作 H ˉ l \bar H_{l} Hˉl
H l = ∑ i = 1 n x i w i l h l + α l h l H ˉ l = ∑ i = 1 n ∑ j ≠ l m x i w i j h j + ∑ j ≠ l m α j h j + ∑ i = 1 n β i x i \begin{aligned} H_l=&\sum\limits_{i=1}^nx_iw_{il}h_l+\alpha_lh_l\\ \bar H_l=&\sum\limits_{i=1 }^n\sum\limits_{j\neq l}^mx_iw_{ij}h_{j}+\sum\limits_{j\neq l}^m\alpha_jh_j+\sum\limits_{i=1}^n\beta_ix_i \end{aligned} Hl=Hˉl=i=1nxiwilhl+αlhli=1nj=lmxiwijhj+j=lmαjhj+i=1nβixi
所以
P ( x , h ) = 1 Z exp ⁡ { H l + H ˉ l } P(x,h)=\frac{1}{Z}\exp\left\{H_l+\bar H_l\right\} P(x,h)=Z1exp{Hl+Hˉl}

3.2.1、求解 P ( h l = 1 ∣ x ) P(h_l=1|x) P(hl=1∣x)

P ( h l = 1 ∣ x ) = P ( h l = 1 ∣ h − l , x ) = P ( h l = 1 , h − l , x ) ∑ l P ( h l , h − l , x ) = P ( h l = 1 , h − l , x ) P ( h l = 1 , h − l , x ) + P ( h l = 0 , h − l , x ) \begin{align} P(h_l=1|x)=&P(h_l=1|h_{-l},x)\tag{a} \\=&\frac{P(h_l=1,h_{-l},x)}{\sum\limits_{l}P(h_l,h_{-l},x)}\tag{b} \\=&\frac{P(h_l=1,h_{-l},x)}{P(h_l=1,h_{-l},x)+P(h_l=0,h_{-l},x)}\nonumber \end{align} P(hl=1∣x)===P(hl=1∣hl,x)lP(hl,hl,x)P(hl=1,hl,x)P(hl=1,hl,x)+P(hl=0,hl,x)P(hl=1,hl,x)(a)(b)

− l -l l表示除了 l l l以外的其他样本。(式a)用到了前面提到的 成对马尔科夫性 \boxed{成对马尔科夫性} 成对马尔科夫性,(式b)用到了贝叶斯公式。

注意看,分子和分母实际上都是一个 P ( x , h ) P(x,h) P(x,h),只是第 l l l个节点确定了某一个值而已。记 H l ( 1 ) H_l(1) Hl(1)表示 h l = 1 h_l=1 hl=1的情况,所以分子,分母分别是
P ( h l = 1 , h − i , x ) = 1 Z exp ⁡ { H l ( 1 ) + H ˉ l } P ( h l = 1 , h − i , x ) + P ( h l = 0 , h − i , x ) = 1 Z exp ⁡ { H l ( 1 ) + H ˉ l } + 1 Z exp ⁡ { H l ( 0 ) + H ˉ l } \begin{aligned} P(h_l=1,h_{-i},x)=&\frac{1}{Z}\exp\left\{H_l(1)+\bar H_l\right\}\\ P(h_l=1,h_{-i},x)+P(h_l=0,h_{-i},x)=&\frac{1}{Z}\exp\left\{H_l(1)+\bar H_l\right\}+\frac{1}{Z}\exp\left\{H_l(0)+\bar H_l\right\} \end{aligned} P(hl=1,hi,x)=P(hl=1,hi,x)+P(hl=0,hi,x)=Z1exp{Hl(1)+Hˉl}Z1exp{Hl(1)+Hˉl}+Z1exp{Hl(0)+Hˉl}
所以
P ( h l = 1 ∣ x ) = 1 Z exp ⁡ { H l ( 1 ) + H ˉ l } 1 Z exp ⁡ { H l ( 1 ) + H ˉ l } + 1 Z exp ⁡ { H l ( 0 ) + H ˉ l } = 1 1 + exp ⁡ { H l ( 0 ) + H l ˉ − H l ( 1 ) − H ˉ l } = 1 1 + exp ⁡ { H l ( 0 ) − H l ( 1 ) } = 1 1 + exp ⁡ { − ∑ i = 1 n x i w i l − α l } \begin{align} P(h_l=1|x)=&\frac{\frac{1}{Z}\exp\left\{H_l(1)+\bar H_l\right\}}{\frac{1}{Z}\exp\left\{H_l(1)+\bar H_l\right\}+\frac{1}{Z}\exp\left\{H_l(0)+\bar H_l\right\}}\tag{a} \\=&\frac{1}{1+\exp\left\{H_l(0)+\bar{H_l}-H_l(1)-\bar H_l\right\}}\tag{b} \\=&\frac{1}{1+\exp\left\{H_l(0)-H_l(1)\right\}}\tag{c} \\=&\frac{1}{1+\exp\left\{-\sum\limits_{i=1}^nx_iw_{il}-\alpha_l\right\}}\tag{d} \end{align} P(hl=1∣x)====Z1exp{Hl(1)+Hˉl}+Z1exp{Hl(0)+Hˉl}Z1exp{Hl(1)+Hˉl}1+exp{Hl(0)+HlˉHl(1)Hˉl}11+exp{Hl(0)Hl(1)}11+exp{i=1nxiwilαl}1(a)(b)(c)(d)
(式a)到(式b)是分式上下同时除以分子。(式c)到(式d)是将 H l H_l Hl的值代入。·

3.2.2、求解 P ( x l = 1 ∣ h ) P(x_l=1|h) P(xl=1∣h)

由于推导过程与 P ( h l = 1 ∣ x ) P(h_l=1|x) P(hl=1∣x)一致,所以便不再重复推导,给出结论
P ( x l = 1 ∣ h ) = 1 1 + exp ⁡ { − ∑ j = 1 m w l j h j − β l } P(x_l=1|h)=\frac{1}{1+\exp\left\{-\sum\limits_{j=1}^mw_{lj}h_j-\beta_l\right\}} P(xl=1∣h)=1+exp{j=1mwljhjβl}1

3.3、学习

L e a n i n g 问题是学习出参数 θ ∈ { w , α , β } \boxed{Leaning问题是学习出参数\theta \in \{w,\alpha,\beta\}} Leaning问题是学习出参数θ{w,α,β}

3.3.1、目标函数

x ∈ X x \in X xX,其中 X X X是一个 N N N维向量,上标表示样本,下标表示维度
X = ( x 1 x 2 ⋮ x N ) N × n X=\begin{pmatrix} x^1 \\ x^2 \\ \vdots \\ x^N \end{pmatrix}_{N \times n} X= x1x2xN N×n
采用极大似然估计的思想,我们对log似然求最大
log ⁡ P ( X ) = log ⁡ ∏ i = 1 N P ( x i ) = ∑ i = 1 N log ⁡ P ( x i ) \begin{aligned} \log{P(X)}=&\log{\prod\limits_{i=1}^NP(x^i)} \\=&\sum\limits_{i=1}^N\log{P(x^i)} \end{aligned} logP(X)==logi=1NP(xi)i=1NlogP(xi)
所以目标函数就是
arg ⁡ max ⁡ θ log ⁡ P ( X ) = arg ⁡ max ⁡ θ 1 N ∑ i = 1 N log ⁡ P ( x i ) \arg\max_{\theta}\log P(X)=\arg\max_{\theta}\frac{1}{N}\sum\limits_{i=1}^N\log P(x^i) argθmaxlogP(X)=argθmaxN1i=1NlogP(xi)
1 N \frac{1}{N} N1是常数,不影响最终结果,加上仅是为了后面的 梯度下降 \boxed{梯度下降} 梯度下降

3.3.2、梯度上升

对目标函数关于 θ 求偏导得 \boxed{对目标函数关于\theta求偏导得} 对目标函数关于θ求偏导得
∂ ∂ θ 1 N ∑ i = 1 N log ⁡ P ( x i ) = 1 N ∑ i = 1 N ∂ ∂ θ log ⁡ P ( x i ) (3) \begin{aligned} &\frac{\partial}{\partial \theta}\frac{1}{N}\sum\limits_{i=1}^N\log P(x^i) \\=&\frac{1}{N}\sum\limits_{i=1}^N\frac{\partial}{\partial \theta}\log P(x^i) \end{aligned}\tag{3} =θN1i=1NlogP(xi)N1i=1NθlogP(xi)(3)
该问题并没有解析解,需要迭代式求解,将(式3)每一项单独看(为了简便,用x代表某一个样本)
log ⁡ P ( x ) = log ⁡ ∑ h P ( x , h ) = log ⁡ ∑ h 1 Z exp ⁡ { − E ( x , h ) } = log ⁡ 1 Z ∑ h exp ⁡ { − E ( x , h ) } = log ⁡ ∑ h exp ⁡ { − E ( x , h ) } − log ⁡ Z = log ⁡ ∑ h exp ⁡ { − E ( x , h ) } ⏟ ① − log ⁡ ∑ x , h exp ⁡ { − E ( x , h ) } ⏟ ② \begin{aligned} \log P(x)=&\log\sum\limits_{h} P(x,h) \\=&\log \sum\limits_{h}\frac{1}{Z}\exp\left\{-E(x,h)\right\} \\=&\log\frac{1}{Z}\sum\limits_{h}\exp\left\{-E(x,h)\right\} \\=&\log\sum\limits_{h}\exp\left\{-E(x,h)\right\}-\log Z \\=&\underbrace{\log\sum\limits_{h}\exp\left\{-E(x,h)\right\}}_{①}-\underbrace{\log\sum\limits_{{x,h}}\exp\left\{-E(x,h)\right\}}_{②} \end{aligned} logP(x)=====loghP(x,h)loghZ1exp{E(x,h)}logZ1hexp{E(x,h)}loghexp{E(x,h)}logZ loghexp{E(x,h)} logx,hexp{E(x,h)}
分别对里面两部分求偏导(链式求导法则)
① = ∂ ∂ θ log ⁡ ∑ h exp ⁡ { − E ( x , h ) } = − 1 ∑ h exp ⁡ { − E ( x , h ) } × ∑ h exp ⁡ { − E ( x , h ) } ∂ E ( x , h ) ∂ θ = − ∑ h exp ⁡ { − E ( x , h ) } ∂ E ( x , h ) ∂ θ ∑ h exp ⁡ { − E ( x , h ) } = − ∑ h P ( x , h ) ∂ E ( x , h ) ∂ θ P ( x ) = − ∑ h P ( h ∣ x ) ∂ E ( x , h ) ∂ θ \begin{align} ①=&\frac{\partial }{\partial \theta}\log\sum\limits_{h}\exp\left\{-E(x,h)\right\}\nonumber \\=&-\frac{1}{\sum\limits_{h}\exp\left\{-E(x,h)\right\}}\times\sum\limits_{h}\exp\left\{-E(x,h)\right\}\frac{\partial E(x,h)}{\partial \theta}\nonumber \\=&-\sum\limits_{h}\frac{\exp\left\{-E(x,h)\right\}\frac{\partial E(x,h)}{\partial \theta}}{\sum\limits_{h}\exp\left\{-E(x,h)\right\}}\tag{a} \\=&-\sum\limits_{h}\frac{P(x,h)\frac{\partial E(x,h)}{\partial \theta}}{P(x)}\tag{b} \\=&-\sum\limits_{h}P(h|x)\frac{\partial E(x,h)}{\partial \theta}\nonumber \end{align} =====θloghexp{E(x,h)}hexp{E(x,h)}1×hexp{E(x,h)}θE(x,h)hhexp{E(x,h)}exp{E(x,h)}θE(x,h)hP(x)P(x,h)θE(x,h)hP(hx)θE(x,h)(a)(b)
(式a)到(式b)为分子分母同时除以 1 Z \frac{1}{Z} Z1

同理有
② = ∂ ∂ θ log ⁡ ∑ x , h exp ⁡ { − E ( x , h ) } = − 1 ∑ x , h exp ⁡ { − E ( x , h ) } × ∑ x , h exp ⁡ { − E ( x , h ) } ∂ E ( x , h ) ∂ θ = − ∑ x , h exp ⁡ { − E ( x , h ) } ∂ E ( x , h ) ∂ θ ∑ x , h exp ⁡ { − E ( x , h ) } = − ∑ x , h P ( x , h ) ∂ E ( x , h ) ∂ θ \begin{aligned} ②=&\frac{\partial }{\partial \theta}\log\sum\limits_{{x,h}}\exp\left\{-E(x,h)\right\} \\=&-\frac{1}{\sum\limits_{x,h}\exp\left\{-E(x,h)\right\}}\times\sum\limits_{x,h}\exp\left\{-E(x,h)\right\}\frac{\partial E(x,h)}{\partial \theta} \\=&-\sum\limits_{x,h}\frac{\exp\left\{-E(x,h)\right\}\frac{\partial E(x,h)}{\partial \theta}}{\sum\limits_{x,h}\exp\left\{-E(x,h)\right\}} \\=&-\sum\limits_{x,h}P(x,h)\frac{\partial E(x,h)}{\partial \theta} \end{aligned} ====θlogx,hexp{E(x,h)}x,hexp{E(x,h)}1×x,hexp{E(x,h)}θE(x,h)x,hx,hexp{E(x,h)}exp{E(x,h)}θE(x,h)x,hP(x,h)θE(x,h)
所以
∂ log ⁡ P ( x ) ∂ θ = ∑ x , h P ( x , h ) ∂ E ( x , h ) ∂ θ − ∑ h P ( h ∣ x ) ∂ E ( x , h ) ∂ θ (4) \begin{aligned} \frac{\partial \log P(x)}{\partial \theta}=\sum\limits_{x,h}P(x,h)\frac{\partial E(x,h)}{\partial \theta}-\sum\limits_{h}P(h|x)\frac{\partial E(x,h)}{\partial \theta} \end{aligned}\tag{4} θlogP(x)=x,hP(x,h)θE(x,h)hP(hx)θE(x,h)(4)
w , α , β w,\alpha,\beta w,α,β分别求导

3.3.2.1、w

E ( x , h ) E(x,h) E(x,h)代入(式4),并对 w i j w_{ij} wij求导
∂ log ⁡ P ( x ) ∂ w i j = − ∑ x , h P ( x , h ) x i h j ⏟ ① + ∑ h P ( h ∣ x ) x i h j ⏟ ② \begin{aligned} \frac{\partial \log P(x)}{\partial w_{ij}}=-\underbrace{\sum\limits_{x,h}P(x,h)x_ih_j}_{①}+\underbrace{\sum\limits_{h}P(h|x)x_ih_j}_{②} \end{aligned} wijlogP(x)= x,hP(x,h)xihj+ hP(hx)xihj
对于①
∑ x , h P ( x , h ) x i h j = ∑ x ∑ h j x i h j ∑ h 1 , ⋯   , h j − 1 , h j + 1 , h m P ( x , h ) = ∑ x ∑ h j P ( h j ∣ x ) P ( x ) x i h j = ∑ x P ( h j = 1 ∣ x ) P ( x ) x i \begin{align} \sum\limits_{x,h}P(x,h)x_ih_j=&\sum\limits_{x}\sum\limits_{h_j}x_ih_j\sum\limits_{h_1,\cdots,h_{j-1},h_{j+1},h_{m}}P(x,h)\nonumber \\=&\sum\limits_{x}\sum\limits_{h_j}P(h_j|x)P(x)x_ih_j\tag{a} \\=&\sum\limits_{x}P(h_j=1|x)P(x)x_i\tag{b} \end{align} x,hP(x,h)xihj===xhjxihjh1,,hj1,hj+1,hmP(x,h)xhjP(hjx)P(x)xihjxP(hj=1∣x)P(x)xi(a)(b)
(式a)到(式b)是将 h j ∈ ( 0 , 1 ) h_j \in (0,1) hj(0,1)分别代入
第②项同理
∑ h P ( h ∣ x ) x i h j = ∑ h j x i h j ∑ h 1 , ⋯   , h j − 1 , h j + 1 , h m P ( h ∣ x ) = ∑ h j P ( h j ∣ x ) x i h j = P ( h j = 1 ∣ x ) x i \begin{aligned} \sum\limits_{h}P(h|x)x_ih_j=&\sum\limits_{h_j}x_ih_j\sum\limits_{h_1,\cdots,h_{j-1},h_{j+1},h_{m}}P(h|x) \\=&\sum\limits_{h_j}P(h_j|x)x_ih_j \\=&P(h_j=1|x)x_i \end{aligned} hP(hx)xihj===hjxihjh1,,hj1,hj+1,hmP(hx)hjP(hjx)xihjP(hj=1∣x)xi
所以
∂ log ⁡ P ( x ) ∂ w i j = P ( h j = 1 ∣ x ) x i − ∑ x P ( h j = 1 ∣ x ) P ( x ) x i \frac{\partial \log P(x)}{\partial w_{ij}}=P(h_j=1|x)x_i-\sum\limits_{x}P(h_j=1|x)P(x)x_i wijlogP(x)=P(hj=1∣x)xixP(hj=1∣x)P(x)xi

3.3.2.2、 α \alpha α

∂ log ⁡ P ( x ) ∂ α j = ∑ h P ( h ∣ x ) h j − ∑ x , h P ( x , h ) h j \begin{aligned} \frac{\partial \log P(x)}{\partial \alpha_j}=\sum\limits_{h}P(h|x)h_j-\sum\limits_{x,h}P(x,h)h_j \end{aligned} αjlogP(x)=hP(hx)hjx,hP(x,h)hj

采用与 w 一样的方法,得到 \boxed{采用与w一样的方法,得到} 采用与w一样的方法,得到
∂ log ⁡ P ( x ) ∂ α j = P ( h j = 1 ∣ x ) − ∑ x P ( h j = 1 ∣ x ) P ( x ) \frac{\partial \log P(x)}{\partial \alpha_j}=P(h_j=1|x)-\sum\limits_{x}P(h_j=1|x)P(x) αjlogP(x)=P(hj=1∣x)xP(hj=1∣x)P(x)

3.3.2.3、 β \beta β

∂ log ⁡ P ( x ) ∂ β i = ∑ h P ( h ∣ x ) x i − ∑ x , h P ( x , h ) x i \begin{aligned} \frac{\partial \log P(x)}{\partial \beta_i}=\sum\limits_{h}P(h|x)x_i-\sum\limits_{x,h}P(x,h)x_i \end{aligned} βilogP(x)=hP(hx)xix,hP(x,h)xi

这个有点特殊 \boxed{这个有点特殊} 这个有点特殊
∂ log ⁡ P ( x ) ∂ β i = ∑ h P ( h ∣ x ) x i − ∑ x , h P ( x , h ) x i = x i ∑ h P ( h ∣ x ) − ∑ x , h P ( h ∣ x ) P ( x ) x i = x i − ∑ x P ( x ) x i \begin{align} \frac{\partial \log P(x)}{\partial \beta_i}=&\sum\limits_{h}P(h|x)x_i-\sum\limits_{x,h}P(x,h)x_i\nonumber \\=&x_i\sum\limits_{h}P(h|x)-\sum\limits_{x,h}P(h|x)P(x)x_i\tag{a} \\=&x_i-\sum\limits_{x}P(x)x_i\tag{b} \end{align} βilogP(x)===hP(hx)xix,hP(x,h)xixihP(hx)x,hP(hx)P(x)xixixP(x)xi(a)(b)
(式a)到(式b)是因为概率求和为1。

3.3.2.4、总梯度

所以单个样本的梯度为: \boxed{\mathbf{所以单个样本的梯度为:}} 所以单个样本的梯度为:
∂ log ⁡ P ( x ) ∂ w i j = P ( h j = 1 ∣ x ) x i − ∑ x P ( h j = 1 ∣ x ) P ( x ) x i ∂ log ⁡ P ( x ) ∂ α j = P ( h j = 1 ∣ x ) − ∑ x P ( h j = 1 ∣ x ) P ( x ) ∂ log ⁡ P ( x ) ∂ β i = x i − ∑ x P ( x ) x i \boxed{\begin{aligned} \frac{\partial \log P(x)}{\partial w_{ij}}=&P(h_j=1|x)x_i-\sum\limits_{x}P(h_j=1|x)P(x)x_i\\ \frac{\partial \log P(x)}{\partial \alpha_j}=&P(h_j=1|x)-\sum\limits_{x}P(h_j=1|x)P(x)\\ \frac{\partial \log P(x)}{\partial \beta_i}=&x_i-\sum\limits_{x}P(x)x_i \end{aligned}} wijlogP(x)=αjlogP(x)=βilogP(x)=P(hj=1∣x)xixP(hj=1∣x)P(x)xiP(hj=1∣x)xP(hj=1∣x)P(x)xixP(x)xi
依据 1 N ∑ i = 1 N ∂ ∂ θ log ⁡ P ( x i ) \boxed{依据\frac{1}{N}\sum\limits_{i=1}^N\frac{\partial}{\partial \theta}\log P(x^i)} 依据N1i=1NθlogP(xi),可得只需要对于每一个样本都求出梯度累加,然后除以N即可。然后利用梯度上升。

3.3.3、存在问题

很容易看到,求梯度的时候用到了 ∑ x \sum\limits_{x} x,如果 x x x维度很大,计算的复杂度往往是非常高的,加上 P ( x ) P(x) P(x)是含有配分函数。所以一般用采样的方法进行近似求解。 在 R B M 中,一般使用 C D − K ( 类似于吉布斯采样 ) \boxed{在RBM中,一般使用CD-K(类似于吉布斯采样)} RBM中,一般使用CDK(类似于吉布斯采样)

4、CD-K采样

对每一项
∑ x P ( h j = 1 ∣ x ) P ( x ) x i ≈ 1 n ∑ i = 1 n P ( h j = 1 ∣ x ) x i \sum\limits_{x}P(h_j=1|x)P(x)x_i \approx \frac{1}{n}\sum\limits_{i=1}^nP(h_j=1|x)x_i xP(hj=1∣x)P(x)xin1i=1nP(hj=1∣x)xi
其中 x ∼ P ( x ) x \sim P(x) xP(x),采n个样本,但是对于 P ( x ) P(x) P(x),其概率分布相对复杂。并且,传统的采样方法何时达到平稳分布是一个极大的问题。所以,我们的采样步骤是这样的
F o r i i n X : x 0 = x F o r 1 , 2 , ⋯   , k : F o r l i n h : h l ∼ P ( h l ∣ x 0 ) F o r l i n x : x l ∼ P ( x l ∣ h l ) \boxed{\begin{aligned}For &\hspace{0.5cm}i \hspace{0.5cm} in \hspace{0.5cm} X: \\&x_0=x \\&For \hspace{0.5cm} 1,2,\cdots,k: \\&\hspace{0.5cm} For \hspace{0.5cm} l \hspace{0.5cm} in \hspace{0.5cm} h: h_l\sim P(h_l|x_0) \\&\hspace{0.5cm} For \hspace{0.5cm} l \hspace{0.5cm} in \hspace{0.5cm} x:x_l \sim P(x_l|h_l) \end{aligned}} ForiinX:x0=xFor1,2,,k:Forlinh:hlP(hlx0)Forlinx:xlP(xlhl)
即对每一个样本,以 x 0 = x i x_0=x^i x0=xi,从 x 0 x_0 x0开始,采样出h,再从h采样出x,最后的x就是我们需要的。其中k就是执行k步吉布斯采样,最终每个样本得到的梯度累加除以N即可

5、结束

以上,就是RBM的原理推导了,推导并不严谨,如有问题,还望指出,阿里嘎多。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值