受限玻尔兹曼机

受限波尔兹曼机(Restricted Blotzmann Machine,RBM)是一种可用随机神经网络(stochastic neural network)来解释的概率图模型(probabilistic graphical model),由Smolensky在波尔兹曼机(Blotzmann Machine,BM)基础上提出,其输出只有激活与未激活两种状态,一般用1和0表示,具体取值依据概率统计法则决定。

基础知识

sigmoid函数

s i g m o i d ( x ) = 1 1 + e − x sigmoid(x)=\frac{1}{1+e^{-x}} sigmoid(x)=1+ex1

Bayes定理

P ( A ∣ B ) = P ( A ) P ( B ∣ A ) P ( B ) P(A|B)=P(A)\frac{P(B|A)}{P(B)} P(AB)=P(A)P(B)P(BA)
其中, P ( A ) P(A) P(A)称为先验概率(Prior probability), P ( A ∣ B ) P(A|B) P(AB)称为后验概率(Posterior probability)。

二分图

G = ( V , E ) G=(V,E) G=(V,E)为一个无向图,其中顶点集 V V V可以分为两个互不相交的子集 V 1 V_1 V1 V 2 V_2 V2,对于每条边上两个顶点分别属于这两个顶点集,则称为一个二分图。

MCMC方法

随机算法可分为Las Vegas算法与蒙特卡罗算法,其中Las Vegas算法总是精准返回一个正确答案或者返回无解,占用计算资源(CPU、内存等)随机,而蒙特卡罗算法具有随机大小的错误,可以通过花费更多计算资源来稳定减小这种误差。蒙特卡罗方法核心问题为如何从分布上随机采样,一般采用马尔可夫链蒙特卡罗方法(Markov Chain Monte Carlo, MCMC)产生指定分布下样本。

蒙特卡罗采样

有的时候需要通过采样的方式以较小的代价处理一些问题,比如采用小批量计算梯度,或者比如近似一个难以处理的求和或积分。
比如
s = ∑ p ( x ) f ( x ) = E p [ f ( x ) ] s=\sum p(x)f(x)=E_p[f(x)] s=p(x)f(x)=Ep[f(x)]
或者
s = ∫ p ( x ) f ( x ) d x = E p [ f ( x ) ] s=\int p(x)f(x)dx=E_p[f(x)] s=p(x)f(x)dx=Ep[f(x)]
此时,可通过计算
s ^ n = 1 n ∑ i = 1 n f ( x ( i ) ) \hat{s}_n=\frac{1}{n}\sum\limits_{i=1}\limits^nf(x^{(i)}) s^n=n1i=1nf(x(i))
依据大数定律,若 x ( i ) x^{(i)} x(i)独立同分布,则其均值收敛于其期望值,即
lim ⁡ n → ∞ s ^ n = s \lim\limits_{n\to \infty}\hat{s}_n=s nlims^n=s
其方差
V a r [ s ^ n ] = 1 n 2 ∑ i = 1 n V a r [ f ( x ) ] = V a r [ f ( x ) ] n Var[\hat{s}_n]=\frac{1}{n^2}\sum\limits_{i=1}\limits^{n}Var[f(x)]=\frac{Var[f(x)]}{n} Var[s^n]=n21i=1nVar[f(x)]=nVar[f(x)]
由中心极限定理, s ^ n \hat{s}_n s^n收敛到以 s s s为均值以 V a r [ f ( x ) ] n \frac{Var[f(x)]}{n} nVar[f(x)]为方差的正态分布,因此可用正态分布累积函数估计其置信区间。
补充:
[1]大数定律:样本量无穷大时,样本均值收敛于总体均值。(依概率收敛)
[2]中心极限定理:样本抽样分布接近于期望为u的正态分布。
[3]切比雪夫不等式:
P { ∣ X − μ ∣ ≥ ε } ≤ σ 2 ε 2 P\{|X-\mu|\geq \varepsilon\}\leq\frac{\sigma ^2}{\varepsilon ^2} P{Xμε}ε2σ2

马尔科夫链

X t X_t Xt表示随机变量 X X X在离散时间 t t t时刻的取值,若满足
P ( X t + 1 = s j ∣ X 0 = s i 0 , X 1 = s i 1 , . . . , X t = s i ) = P ( X t + 1 = s j ∣ X t = s i ) P(X_{t+1}=s_j|X_0=s_{i0},X_1=s_{i1},...,X_t=s_i)=P(X_{t+1}=s_j|X_t=s_i) P(Xt+1=sjX0=si0,X1=si1,...,Xt=si)=P(Xt+1=sjXt=si)
则称该变量为马尔可夫变量,一段时间内变量 X X X的取值序列称为马尔可夫链。
P i , j = P ( X t + 1 = s j ∣ X t = s i ) P_{i,j}=P(X_{t+1}=s_j|X_t=s_i) Pi,j=P(Xt+1=sjXt=si)称为转移概率, π k ( t ) \pi ^{(t)}_k πk(t)表示该随机变量在时刻 t t t取值为 s k s_k sk的概率,则
π i ( t + 1 ) = ∑ k P k , i π k ( t ) \pi_i^{(t+1)}=\sum\limits_kP_{k,i}\pi_k^{(t)} πi(t+1)=kPk,iπk(t)
也可写为矩阵形式,则
π ( t + 1 ) = π ( t ) P \pi^{(t+1)}=\pi^{(t)}P π(t+1)=π(t)P
其中 P P P为转移概率矩阵。
若存在某取值,从其转移回本身所需次数总是整数 d d d的倍数,则称该马尔可夫过程具有周期性(Periodic)。若任意两个取值总能以非零概率互相转移,则称该马尔可夫过程不可约(Irreducible)。若一个马尔可夫过程既没有周期性,又不可约,则称其各态遍历(Ergodic)。
对于各态遍历的马尔可夫过程,无论 π ( 0 ) \pi^{(0)} π(0)如何取值,随机变量分布最终收敛于唯一的平稳分布 π ∗ \pi^* π,即
lim ⁡ t → ∞ π ( 0 ) P t = π ∗ \lim\limits_{t\to\infty}\pi^{(0)}P^t=\pi^* tlimπ(0)Pt=π
并且,满足
π ∗ P = π ∗ \pi^*P=\pi^* πP=π

正则分布

在统计力学中,当系统与外界达到热平衡时,系统所处状态 i i i的概率 p i p_i pi表示为 p i = 1 Z T e − E i T p_i=\frac{1}{Z_T}e^{-\frac{E_i}{T}} pi=ZT1eTEi,其中 Z T = ∑ i e − E i T Z_T=\sum\limits_ie^{-\frac{E_i}{T}} ZT=ieTEi称为归一化常数, T T T为正数,表示系统所处温度,该概率分布称为正则分布。
由分布可以看出,同一温度下,能量越小的状态具有越高的概率,并且随温度升高,逐渐趋于均匀分布。在机器学习领域,通常根据需求自定能量函数,并借鉴物理规律实现其功能。

Metropolis-Hastings采样

想从分布 π ( ) \pi() π()上采样,则引入另一组转移提议分布(proposal density) Q ( : , i ) Q(:,i) Q(:,i),作用为根据当前状态 i i i,提议转移后的状态。每次状态转移时,根据 Q Q Q题意下一步状态,假设 j j j,则以下面概率接受该状态
α ( i → j ) = min ⁡ { 1 , π ( j ) Q ( i , j ) π ( i ) Q ( j , i ) } \alpha(i\to j)=\min\{1,\frac{\pi(j)Q(i,j)}{\pi(i)Q(j,i)}\} α(ij)=min{1,π(i)Q(j,i)π(j)Q(i,j)}
称为接受概率。为模拟接受过程,生成从[0,1]之间均匀分布随机数 r r r,若 r r r小于接受概率,则采用新状态,否则维持不变。

Gibbs采样

Gibbs采样是Metropolis-Hastings采样的特殊形式,其应用于系统具有多个变量,并且变量间的条件分布我们能够直接采样的情况下。Metropolis-Hastings采样缺点在于过于灵活,若 Q Q Q选择不当,则可能存在多次提议均被拒绝(接受概率总是很小),影响收敛过程。因此在Gibbs采样中,假设系统由 m m m个变量构成,定义 X = ( x 1 , x 2 , . . . x m ) X=(x_1,x_2,...x_m) X=(x1,x2,...xm),并且对于任一变量 x i x_i xi,能够直接从条件分布 P ( x i ∣ x 1 , x 2 , . . . , x i − 1 , x i + 1 , . . . , x m ) P(x_i|x_1,x_2,...,x_{i-1},x_{i+1},...,x_m) P(xix1,x2,...,xi1,xi+1,...,xm)中为其采样,算法流程为:
[1]初始化系统状态 X ( 0 ) X^{(0)} X(0)
[2]初始化时间 t = 0 t=0 t=0
[3]对于每个 x i ( t + 1 ) x_i^{(t+1)} xi(t+1),依以下概率采样 P ( x i ∣ x 1 ( t + 1 ) , x 2 ( t + 1 ) , . . . , x i − 1 ( t + 1 ) , x i + 1 ( t ) , . . . , x m ( t ) ) P(x_i|x_1^{(t+1)},x_2^{(t+1)},...,x_{i-1}^{(t+1)},x_{i+1}^{(t)},...,x_m^{(t)}) P(xix1(t+1),x2(t+1),...,xi1(t+1),xi+1(t),...,xm(t))
[4] t = t + 1 t=t+1 t=t+1
[5]若 t t t少于既定次数,返回[3]
[6]返回 X ( t ) X^{(t)} X(t)
相比于MH采样,Gibbs采样不存在接受概率,状态转移总是能够进行,比MH具有更快收敛速度。

网络结构

RBM包含两个层——可见层(visible layer)和隐藏层(hidden layer),层内无连接,层间全连接(BM层内允许有连接),因此是一个二分图。
给定v层神经元状态时,h层内神经元状态条件独立;反之亦然。为方便起见,假定RBM内所有神经元是二值的,即对任意 i , j i,j i,j,有 v i , h j ∈ { 0 , 1 } v_i,h_j\in \{0,1\} vi,hj{0,1}
定义 v = ( v 1 , v 2 , . . . , v n v ) T v=(v_1,v_2,...,v_{n_v})^T v=(v1,v2,...,vnv)T表示可见层状态向量, h = ( h 1 , h 2 , . . . , h n h ) T h=(h_1,h_2,...,h_{n_h})^T h=(h1,h2,...,hnh)T表示隐藏层状态向量, a = ( a 1 , a 2 , . . . , a n v ) T a=(a_1,a_2,...,a_{n_v})^T a=(a1,a2,...,anv)T表示可见层偏置向量, b = ( b 1 , b 2 , . . . , b n v ) T b=(b_1,b_2,...,b_{n_v})^T b=(b1,b2,...,bnv)T表示隐藏层偏置向量, W = ( w i , j ) ∈ R n h × n v W=(w_{i,j})\in R^{n_h\times n_v} W=(wi,j)Rnh×nv表示可见层与隐藏层之间权重矩阵,记 θ = ( W , a , b ) \theta=(W,a,b) θ=(W,a,b)表示RBM中的参数,将其视为将W,a,b中所有分量拼接而得的长向量。

能量函数与概率分布

RBM为一基于能量的模型(Energy Based Model, EBM),定义能量函数
E θ ( v , h ) = − ∑ i = 1 n v a i v i − ∑ j = 1 n h b j h j − ∑ i = 1 n v ∑ j = 1 n h h j w j , i v i E_\theta(v,h)=-\sum\limits_{i=1}\limits^{n_v}a_iv_i-\sum\limits_{j=1}\limits^{n_h}b_jh_j-\sum\limits_{i=1}\limits^{n_v}\sum\limits_{j=1}\limits^{n_h}h_jw_{j,i}v_i Eθ(v,h)=i=1nvaivij=1nhbjhji=1nvj=1nhhjwj,ivi
也可写作矩阵向量形式
E θ ( v , h ) = − a T v − b T h − h T W v E_\theta(v,h)=-a^Tv-b^Th-h_TWv Eθ(v,h)=aTvbThhTWv
由此,可以得到状态 ( v , h ) (v,h) (v,h)的联合概率分布
P θ ( v , h ) = 1 Z θ e E θ ( v , h ) P_{\theta}(v,h)=\frac{1}{Z_{\theta}}e^{E_{\theta}(v,h)} Pθ(v,h)=Zθ1eEθ(v,h)
其中
Z θ = ∑ v , h e E θ ( v , h ) Z_{\theta}=\sum\limits_{v,h}e^{E_{\theta}(v,h)} Zθ=v,heEθ(v,h)
为归一化因子,也称配分函数(partition function)。
对于一个实际问题,我们最关心的是关于观测数据 v v v的概率分布 P θ ( v ) P_{\theta}(v) Pθ(v),其对应 P θ ( v , h ) P_{\theta}(v,h) Pθ(v,h)的边缘分布,也称似然函数(likelihood function),具体为
P θ ( v ) = ∑ h P θ ( v , h ) = 1 Z θ ∑ h e − E θ ( v , h ) P_{\theta}(v)=\sum\limits_{h}P_{\theta}(v,h)=\frac{1}{Z_{\theta}}\sum\limits_he^{-E_{\theta}(v,h)} Pθ(v)=hPθ(v,h)=Zθ1heEθ(v,h)
对于隐藏层相似。
以下为 P ( h k = 1 ∣ v ) P(h_k=1|v) P(hk=1v)的推导过程,视情况阅读。

h − k = ( h 1 , h 2 , . . . , h k − 1 , h k + 1 , . . . , h n h ) T h_{-k}=(h_1,h_2,...,h_{k-1},h_{k+1},...,h_{n_h})^T hk=(h1,h2,...,hk1,hk+1,...,hnh)T
表示 h h h在挖掉分量 h k h_k hk后得到的向量,并引入
α k ( v ) = b k + ∑ i = 1 n v w k , i v i \alpha_k(v)=b_k+\sum\limits_{i=1}\limits^{n_v}w_{k,i}v_i αk(v)=bk+i=1nvwk,ivi
以及
β ( v , h − k ) = ∑ i = 1 n v a i v i + ∑ j = 1 , j ≠ k n h b j h j + ∑ i = 1 n v ∑ j = 1 , j ≠ k n h h j w j , i v i \beta(v,h_{-k})=\sum\limits_{i=1}\limits^{n_v}a_iv_i+\sum\limits_{j=1,j\neq k}\limits^{n_h}b_jh_j+\sum\limits_{i=1}\limits^{n_v}\sum\limits_{j=1,j\neq k}\limits^{n_h}h_jw_{j,i}v_i β(v,hk)=i=1nvaivi+j=1,j̸=knhbjhj+i=1nvj=1,j̸=knhhjwj,ivi
则满足
E ( v , h ) = − β ( v , h − k ) − h k α k ( v ) E(v,h)=-\beta(v,h_{-k})-h_k\alpha_k(v) E(v,h)=β(v,hk)hkαk(v)
KaTeX parse error: No such environment: align* at position 8: \begin{̲a̲l̲i̲g̲n̲*̲}̲ P(h_k=1|v) & =…

对数似然函数

假设给定样本集合为
S = { v 1 , v 2 , . . . , v n s } S=\{v^1,v^2,...,v^{n_s}\} S={v1,v2,...,vns}
不同样本之间独立同分布,则RBM目标为最大化似然
L θ , S = ∏ i = 1 n s P ( v i ) L_{\theta,S}=\prod\limits_{i=1}\limits^{n_s}P(v^i) Lθ,S=i=1nsP(vi)
连乘式处理相对麻烦,因此通过对数处理后,最大化
L θ , S = ∑ i = 1 n s l n P ( v i ) L_{\theta,S}=\sum\limits_{i=1}\limits^{n_s}lnP(v^i) Lθ,S=i=1nslnP(vi)

梯度计算

最大化 L S L_S LS常用数值方法为梯度上升法,迭代公式为
θ = θ + η ∂ l n L S ∂ θ \theta=\theta+\eta \frac{\partial lnL_S}{\partial \theta} θ=θ+ηθlnLS
关键是计算对各个参数的偏导数,通常采用MCMC采样来估计,但常规的MCMC需要经过许多步状态转移才能保证采集到的样本符合目标分布,若以训练样本为起点,仅需很少步状态转移就可以抵达RBM的分布。Hinton于2002年在此想法基础上发明了对比散度(Contrastive Divergence, CD)算法,目前为训练RBM的标准算法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值