深度学习--深度信念网络(Deep-Belief-Network)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

深度学习--深度信念网络(Deep Belief Network)

概述

深度信念网络(Deep Belief Network, DBN) 由Geoffrey Hinton 在2006 年提出。它是一种生成模型,通过训练其神经元间的权重,我们可以让整个神经网络按照最大概率来生成训练数据。我们不仅可以使用DBN 识别特征、分类数据,还可以用它来生成数据。下面的图片展示的是用DBN 识别手写数字:

图 1 用深度信念网络识别手写数字。图中右下角是待识别数字的黑白位图,它的上方有三层隐性神经元。每一个黑色矩形代表一层神经元,白点代表处于开启状态的神经元,黑色代表处于关闭状态的神经元。注意顶层神经元的左下方即使别结果,与画面左上角的对应表比对,得知这个DBN 正确地识别了该数字。

下面是展示了一个学习了大量英文维基百科文章的DBN 所生成的自然语言段落:

In 1974 Northern Denver had been overshadowed by CNL, and several Irish intelligence agencies in the Mediterranean region. However, on the Victoria, Kings Hebrew stated that Charles decided to escape during an

alliance. The mansion house was completed in 1882, the second in its bridge are omitted, while closing is the proton reticulum composed below it aims, such that it is the blurring of appearing on any well-paid type of box printer.

DBN 由多层神经元构成,这些神经元又分为显性神经元和隐性神经元(以下简称显元和隐元)。显元用于接受输入,隐元用于提取特征。因此隐元也有个别名,叫特征检测器 (feature detectors)。最顶上的两层间的连接是无向的,组成联合内存 (associative memory)。较低的其他层之间有连接上下的有向连接。最底层代表了数据向量 (data vectors),每一个神经元代表数据向量的一维。

DBN 的组成元件是受限玻尔兹曼机(Restricted Boltzmann Machines, RBM)。训练DBN 的过程是一层一层地进行的。在每一层中,用数据向量来推断隐层,再把这一隐层当作下一层(高一层) 的数据向量。

受限玻尔兹曼机

如前所述,RBM 是DBN 的组成元件。事实上,每一个RBM 都可以单独用作聚类器。

RBM 只有两层神经元,一层叫做显层(visible layer),由显元 (visible units) 组成,用于输入训练数据。另一层叫做隐层 (Hidden layer),相应地,由隐元 (hidden units) 组成,用作特征检测器 (feature detectors)。

图 2 受限玻尔兹曼机的结构。图中的较上一层神经元组成隐层,较下的神经元组成显元。每一层都可以用一个向量来表示,每一维表示每个神经元。注意这两

层间的对称(双向) 连接。

神经元之间的条件独立性

应注意到,显层和隐层内部的神经元都没有互连,只有层间的神经元有对称的连接线。这样的好处是,在给定所有显元的值的情况下,每一个隐元取什么值是互不相关的。也就是说,

同样,在给定隐层时,所有显元的取值也互不相关:

有了这个重要性质,我们在计算每个神经元的取值情况时就不必每次计算一个,而是同时并行地计算整层神经元。

使用RBM 的过程

假设我们现在已经得到一个训练好的RBM,每个隐元与显元间的权重用矩阵W表示,且:

其中Wij代表从第i个显元到第j个隐元的权重,M代表显元的个数,N代表

隐元的个数。那么,当我们把一条新来的数据附给(clamp to) 显层后,RBM 将会依照权值W来决定开启或关闭隐元。具体的操作如下:

首先,将每个隐元的激励值(activation) 计算出来:

注意,这里用到了前面提到的神经元之间的条件独立性。

然后,将每个隐元的激励值都用S 形函数进行标准化,变成它们处于开启

状 (用 1 表示) 的概率值:

此处的S 形函数我们采用的是Logistic 函数:

相关文档
最新文档