受限波尔兹曼(Boltzmann)机简介

时间:2022-08-26 17:04:06

DBN(Deep Belief Network)是深度学习中的一个重要模型,受限波尔兹曼机(RBM: Restricted Boltzmann Machine)则是DBN的主要组成部件。而RBM的含义和训练比较难以理解。这里试图以直观明白的方式来解释RBM的模型及学习算法。

RBM模型

RBM是一个由神经元组成的两层模型,分别为显式层和隐藏层,层次之间全链接,层次之内无链接,“受限”的限制就是层次之间的神经元之间无链接。如图1所示。

受限波尔兹曼(Boltzmann)机简介
图1 RBM模型

v h 来代表显式层和隐藏层,它们之间的链接上都有权重,可以使用一个矩阵 W 来表示。 Wij 表示从显式层神经元 vi 到隐藏层神经元 hi 之间的边上的权重。两个层次都有一个对应的偏移向量,用 a b 来表示。
当权重和偏移都给定的时候,以显式层为输入,隐藏层为输出,就可以建立一个输入与输出之间的关系。RBM是深度学习领域中的一个简单的生成式(Generative)训练模型。训练的目的是,把训练样本从输入层输入,可以在输出层获得维度不同的输出向量,而这些输出向量可以被视为从输入样本中提取的特征,反映了样本集中某些更“本质”的东西。
我们用 vi hj 代表显式层上第 i 个神经元和隐藏层上第 j 个神经元的取值。按照模型的描述,给定一个输入向量 v ,输出层神经元 j 的值为1 的概率由以下式子给出。
P(hj=1|v)=σ(bj+Σmi=1Wijvi) 其中, σ 是一个取值区间为 [0,1] 的函数。
同样,在输出层给定的情况下。
P(vi=1|h)=σ(ai+Σnj=1Wijhj) 把条件概率从神经元的取值提升到层次对应的向量的取值,可以有以下式子。 P(h|v)=Πnj=1P(hj|v) P(v|h)=Πmi=1P(vi|h) 根据概率论中的原理,在条件概率计算方法已知的情况下,可以计算 v h 的联合概率。为此,需要定义一个能量函数。
E(v,h)=ΣiaiviΣjbjhjΣiΣjviWijhj 输入层向量 v 和输出层向量 h 之间的联合概率分布为 P(v,h)=1ZeE(v,h) Z 是所有格局的概率之和,也即 Z=ΣvΣheE(v,h) 而对于输入层而言,在模型的参数都给定的情况下,输入层中向量的分布也是确定的,由下面式子给出。
P(v)=1ZΣheE(v,h)
RBM学习算法的目的就是,给定一个训练样本集合,在学习的过程中不断调整模型中的参数,从而使得从模型中计算出的输入层向量的分布与训练样本集合中的尽量一致,而此时输出层向量的分布,就是从输入样本集中提取的特征。

RBM学习算法

针对一个训练样本集合 V ,学习算法需要调整模型中的参数,使得参数所决定的输入向量的分布与训练集合 V 最接近,使用数学式子描述如下。 arg(W,a,b) max(ΠvVP(v)) 也就是选取适当的 W,a,b ,使得训练样本集中的样本具有最大的概率。
学习过程采用了CD(Contrastive Divergence)学习算法,每次只取一个学习样本的叫做CD-1算法,描述如下。

  • 从训练样本集 V 中取出一个样本 v ,按照公式,计算出各个隐藏神经元的取值概率,然后按照这个概率分布,采样出一个输出向量 h
  • 计算出 v h 的点乘积,称之为正梯度。
  • h 出发,计算输入向量的分布情况。然后从输入向量分布中采样出 v 。再次计算输出向量的分布,从中采样出 h
  • 计算出 v h 的点乘积,称之为负梯度。
  • 更新权重, ΔW=ϵ(vhTvhT)
  • 更新偏移 a b Δa=ϵ(vv),Δb=ϵ(hh)