DBN(Deep Belief Network)是深度学习中的一个重要模型,受限波尔兹曼机(RBM: Restricted Boltzmann Machine)则是DBN的主要组成部件。而RBM的含义和训练比较难以理解。这里试图以直观明白的方式来解释RBM的模型及学习算法。
RBM模型
RBM是一个由神经元组成的两层模型,分别为显式层和隐藏层,层次之间全链接,层次之内无链接,“受限”的限制就是层次之间的神经元之间无链接。如图1所示。
图1 RBM模型
用
当权重和偏移都给定的时候,以显式层为输入,隐藏层为输出,就可以建立一个输入与输出之间的关系。RBM是深度学习领域中的一个简单的生成式(Generative)训练模型。训练的目的是,把训练样本从输入层输入,可以在输出层获得维度不同的输出向量,而这些输出向量可以被视为从输入样本中提取的特征,反映了样本集中某些更“本质”的东西。
我们用
同样,在输出层给定的情况下。
RBM学习算法的目的就是,给定一个训练样本集合,在学习的过程中不断调整模型中的参数,从而使得从模型中计算出的输入层向量的分布与训练样本集合中的尽量一致,而此时输出层向量的分布,就是从输入样本集中提取的特征。
RBM学习算法
针对一个训练样本集合
学习过程采用了CD(Contrastive Divergence)学习算法,每次只取一个学习样本的叫做CD-1算法,描述如下。
- 从训练样本集
V 中取出一个样本v ,按照公式,计算出各个隐藏神经元的取值概率,然后按照这个概率分布,采样出一个输出向量h 。 - 计算出
v 和h 的点乘积,称之为正梯度。 - 从
h 出发,计算输入向量的分布情况。然后从输入向量分布中采样出v′ 。再次计算输出向量的分布,从中采样出h′ 。 - 计算出
v′ 和h′ 的点乘积,称之为负梯度。 - 更新权重,
ΔW=ϵ(vhT−v′h′T) 。 - 更新偏移
a 和b 。Δa=ϵ(v−v′),Δb=ϵ(h−h′)。