受限玻尔兹曼机定型实用指南-大桥之墩译

来源:互联网 发布:妲己 女娲 知乎 编辑:程序博客网 时间:2024/04/27 19:11

GefffreyHinton

多伦多大学计算机系

内容:

译序

1.      介绍

2.      受限玻尔兹曼机和散度对比(Contrastive Divergence)概述

3.      使用散度对比(CD)时如何收集统计信息

3.1  更新隐含状态

3.2  更新可见状态

3.3  收集学习需要的统计信息

3.4  一种获取CD1学习信号的方法

4.      小批量的大小

4.1  一种将训练集分解为小批量的方法

5.      监控学习过程

5.1  一种使用重构误差的方法

6.      监控过度拟合

6.1  一种监控过度拟合的方法

7.      学习率

7.1  一种设置权重和偏置学习率的方法

8.      权重和偏置的初始化值

8.1  一种设置权重和偏置初始化值的方法

9.      动量

9.1  一种使用动量的方法

10.  权重衰减(Weight-decay

10.1   一种使用权重衰减的方法

11.  支持稀疏隐含活动

11.1   一种稀疏方法

12.  隐含单元的数量

12.1   一种选择隐含单元的方法

13.  单元的不同类型

13.1   Softmax和多项单元(multinomialunits

13.2   高斯可见单元

13.3   高斯可见和隐含单元

13.4   二项单元(Binomial units

13.5   修正线性单元(Rectified linear units

14.  多种对比散度

15.  显示学习过程中发生了什么

16.  RBM进行识别(discrimination

16.1   计算可见向量的自由能量

17.  处理缺失值

译序

在学习用DeepLearning4J预测金融时间序列时,在DeepLearning4J的官网上看到了这篇大牛论文,读起来相当费劲,搜索了一下没找到比较完整的中文翻译。就请了百度和必应的在线翻译帮忙,一起完成了翻译工作。有些地方用【】做了批注,个别拿不准的语句都给出了原文。希望能对英文不太好的同学有所帮助。

本文主要是讲解如何设置受限玻尔兹曼机的各种参数的,需要有一定的深度学习知识背景。原文地址:https://www.cs.toronto.edu/~hinton/absps/guideTR.pdf

对金融时间序列预测有兴趣的可以一起探讨,共同进步。联系邮箱:cqiao0@sina.com

 

                                                                                                                                                                                      大桥之墩

                                                                                                                                                                                      2017.8.16

1.   介绍

受限玻尔兹曼机已用于很多种类型数据的建模,包括标记和非标记图像(Hintonation et al.2006a),表示语音的时分同步的码分多址系数的窗口(windows of mel-cepstral coefficientsMohamed et al.2009),表示文档的词集(Salakhutdinovand Hinton2009),和电影用户评级(Salakhutdinov et al.2007)。在这些传统公司里,它们可用于建模视频、运动捕获数据(Taylor et al.2006)或者语音(Mohamed and Hinton2010)之类的高维时间序列。它们最重要的用途是作为学习模块构建深度置信网络(deep belief netsHinton et al.,2006a)。

通常使用对比散度学习过程训练【注:本文中train被译为训练或者定型】RBMs(Hinton2002)。这需要一定的实际经验来决定如何设置数值元参数的值,如学习率、动量、权重、稀疏目标、权重的初始值、隐含单元的个数和每个 mini-batch 的大小。还有决定使用哪种类型的单位,随机还是确定性地更新它们的状态,每个训练用例更新多少次隐含单元的状态,以及是否在数据向量上启动每个状态更新序列。此外,了解如何监控学习进度以及何时终止训练是很有用的。

对于任何特定的应用程序,所用的代码都给出了所有这些决策的完整说明,但它不能解释为什么做出这些决策,也不能说明小的更改将如何影响性能。更重要的是,它不会为新用户提供任何关于如何为新应用程序做出正确决策的指导。这需要一些明智的试探,以及将学习失败与导致这些失败的策系起来的能力。

在过去的几年里,多伦多大学的机器学习小组在训练RBMs方面获得了相当多的专业知识,本指南试图与其他机器学习研究人员分享这方面的专业知识。我们仍然处于学习曲线相当陡峭的部分,所以指南是一个活动文档,将不时更新,引用它时应该注意版本号。

2.   受限玻尔兹曼机和散度对比(Contrastive Divergence)概述

考虑一组二进制向量的训练集,我们将假定它们是二进制图像。训练集可以使用两层网络,称为受限玻尔兹曼机进行建模 (Smolensky1986;Freund Haussler1992;Hinton2002),其中随机的、二进制的像素使用对称加权连接,连接到随机的、二进制的特征检测器。这些像素对应于RBM的“可见单元,因为它们的状态能被观察;特征检测器对应于隐含单元。可见和隐含单元的联合配置 (v,h) 有下式给出的能量 (Hopfield1982) :

这里的vihj分别是可见单元 i 和隐含单元j的二进制状态,aibj是它们的偏置, wij是它们之间的权重。网络根据能量函数给每个可能的可见和隐含向量对分配一个概率,能量函数:

这里的“配分函数”Z,由可见和隐含向量的所有可能对的和给出:

 

网络分配给可见向量V的似然率由所有可能隐含向量的总和给出:

通过调整权重和偏差来提高网络分配给训练图像的似然率,以降低该图像的能量,并提高其他图像的能量,特别是低能量图像的能量,从而对配分函数做出很大贡献。训练向量相对于权重的对数概率的导数是令人惊讶的简单:

这里的<>用于表示在后面脚本指定的分布下的期望。这就有了一个很简单的学习规则,用于执行在训练数据的对数概率中随机的最快上升:

这里ε是学习率。

因为RBM中的隐含单元之间是无向连接,很容易获得<vihj>data的无偏样本。对于随机选择的正在训练的图像V,任意隐含单元j的二进制状态hj,设置为1的概率:

其中,(x)logisticsigmoid函数1/(1 + exp(-x))vihj是无偏样本。

因为RBM中的可见单元之间是无向连接,也很容易获得一个可见单元状态的无偏样本,对于一个给定的隐含向量:

然而获得<vihj>model的无偏样本是相当困难的。可以从任何可见状态的随机状态开始,并在相当长的时间内交替进行吉布斯采样(Gibbs sampling)。交替吉布斯采样的一个迭代包括用等式7并行更新所有隐含单元,然后用等式8并行更新所有可见单元。

Hinton (2002)提出了一种更快的学习过程。先将可见单元的状态设置为一个正在训练的向量。然后,用公式7并行计算所有隐含单元的二进制状态。一旦选择了隐含状态的二进制状态,则通过将每个VI设置为1,并用公式8给出的概率生成一个重构。权重的变化由下式给出:

同样学习规则的一个简化版是用个别单元的状态替代用于偏差的pairwise products

学习效果很好,尽管它只是粗略的近似训练数据的对数概率梯度(Hinton2002)。学习规则更接近另一个目标函数梯度称为对比散度(Contrastive DivergenceHinton2002)这两个Kullback Liebler divergences的差别,但它忽略了一个棘手的术语在这个目标函数,它甚至不是跟踪梯度。事实上,Sutskever和铁乐满已经表明,它不跟踪任何函数的梯度(2010 sutskeverTieleman)。然而,它表现很好,足以实现在许多重要领域的成功应用。

如果在学习规则的第二阶段收集统计信息之前使用更多步的交替Gibbs采样,RBMs能学到更好的模型,这称为消极统计(negative statistics)。CDn用于表示学习使用了n个交替Gibbs采样的全步骤。

3.   使用散度对比(CD)时如何收集统计信息

假定可见和隐含单元全是二元的。别的类型的单元将在第13节讨论。同时假定学习目的是创建一个训练向量集的好的生成模型。当RBMs用于学习深度置信网络(参见www.scholarpedia.org上的深度置信网络论文,深度置信网络随后会用BP进行细粒度挖掘)时,这个产生模型不是最终目标,而且它可能会通过欠拟合来节省时间,但是这里忽略不考虑。

3.1 更新隐含状态

假定隐含单元是二元的,并且使用的是CD1,隐含单元被一个数据向量驱动时,应该有随机二元状态。启动一个隐含单元j的概率可将logistic函数σ(x) = 1/(1 + exp(-x)) 作用于整个输入来计算:

如果这个概率大于一个(01)间均匀分布的随机数,则启动这个隐含单元。

使这些隐含状态二元化,比概率化它们更重要。如果使用概率,则每个隐含单元都可以在重构过程中与可见单元进行实值通信。这严重违反了一个隐含单元(平均)最多只能传递1位的事实所创建的信息瓶颈。这种信息瓶颈用作一种强大的正则化器。

对于最后更新的隐含单元,简单地使用随机二元状态,因为没有可依赖的状态选择。因此使用它自己的概率,以避免引入不必要的采样噪音。当使用CDn时,只有隐含单元最终更新应该使用概率。

3.2更新可见状态

假定可见单元是二元的,当产生一个重构时正确更新可见状态的方法是用通过整个自顶向下的输入确定的概率随机选择1或者0

然而,通常使用这个概率pi代替采样一个二进制值。这对于数据驱动的隐含状态而言几乎没有问题,它减少了采样噪音,因而加快了学习。有些证据表明它导致稍差的密度模型(Tijmen Tielemanpersonal communication2008)。在用RBM预定型一层用于深度置信网络的隐含特征时,这不是问题。

3.3    收集学习需要的统计量

假定可见单元使用实数值概率替代随机二进制值,有两种方法收集可见单元i和隐含单元j间连接的positive statistics

其中,pj是一个概率,hj是一个二元状态依概率pj取值为1。使用hj更接近RBM的数学模型。但是用pj通常采样噪音少,学习快。

3.4    一种获取CD1学习信号的方法

当隐含单元被数据驱动时,通常使用随机二元状态。当它们被重构驱动时,总是使用概率而不采样。

假定可见单元使用logistic函数,数据和重构驱动都用实数值概率。

在收集学习权重的成对统计量或学习偏差的个体统计量时,使用概率,而不是二进制状态,并确保权值具有随机初始值以打破对称性。

4.   小批量的大小

评估单个训练用例(case)后更新权重是可能的,但是更有效的是把训练集分成10-100用例的小批次。这允许使用矩阵-矩阵乘,在GPUMatlab中是很有利的。

为了避免小批量的大小改变时改变学习率,将在小批量上算好的梯度除以小批量的大小是有用的,因此当谈及学习率时,我们假定它们乘以这个平均的、在小批量上算好的每案例梯度,而不是小批量的总梯度。

当使用随机梯度下降算法时,小批量过大是个严重的错误。用过因子N增大小批量大小导致更稳定的梯度估算,但不能增加稳定学习率的最大值,因此净效果是每次梯度估算权重更新比较小。

4.1 一种将训练集分解为小批量的方法

对于包含小数量等概率分类的数据集,理想的小批量大小等于分类的数量,并且每个小批量应该包含每一个分类的一个实例,以减小根据单个小批量评估整个训练集的梯度时的采样误差。对于其它数据集,先随机训练实例的顺序,然后小批量大小取10左右。

5.   监控学习过程

数据和重构之间的平方误差很容易计算,这个数值也常常会在学习过程中打印出来。在整个训练集上的重构误差应该是在学习开始时快速、持续地下降,然后逐渐变慢。由于梯度估算中存在噪音,在单个小批量上的重构误差在起初快速下降后会有轻微震荡。当使用高动量时,它也可能在一些小批量期间轻微震荡。

尽管重构误差很方便,但它实际上是衡量学习进度的一个很差的指标。它不是CDn学习近似优化的功能,尤其是当N>>1的情况下,它系统地混淆了学习过程中改变的两个数量。第一种是训练数据的经验分布和RBM的均衡分布之间的差异。第二种是交替Gibbs Markov链的混合速率。如果混合速率很低,即使数据和模型的分布非常不同,重构误差也很小。随着权重的增加,混合率下降,因此重构误差的减少并不一定意味着模型正在改进,反之,小的增加并不一定意味着模型变差。然而,大幅度增加是一个坏的征兆,除非它们是暂时的,并由学习速率、动量、权重代价或稀疏元参数的变化所引起。

5.1一种使用重构误差的方法

    使用它,但不要相信它。如果你真的想知道在学习过程中发生了什么,请使用第15节所述的多个直方图和图形显示。也可考虑使用退火的重要性采样(Annealed Importance Sampling,Salakhutdinov Murray2008)来估算样本外的密度。如果您正在学习标记数据的联合密度模型(请参阅第16节),请考虑监控训练数据上和样本外验证集上有判别能力的性能指标。

6.   监控过度拟合

在学习生成模型时,一个明显的监控指标是当前模型分配给数据点的概率。当这个概率在样本外验证数据上开始降低时,就该停止训练了。不幸的是,对于大的RBMs来说,计算这个概率是很难的,因为它需要分配函数的知识。然而通过对比训练数据和样本外验证数据的自由能量来直接监控过度拟合是可能的。在这个比较过程中,分配函数取消了。一个数据向量的自由能量可在隐含单元数量的线性时间内算得(参见第16.1节)。如果模型一点都没过度拟合,训练数据和测试数据上的自由能量均值应该大致相同。开始有过度拟合时,模型在验证数据上的自由能量均值相对训练数据的将增加,而且这个缺口表示过度拟合的程度。

6.1 一种监控过度拟合的方法

    每隔几代(epochs),计算训练数据有代表性的子集的自由能量的均值,并用它跟训练集的自由能量均值比较。总是使用训练数据相同的子集。如果缺口开始增加,模型开始过度拟合,不过训练数据的概率增加得比缺口更快,因此验证数据的概率也可能还会增加。在计算要比较的两个均值时,确保使用的是相同的权重。

7.   学习率

如果学习率太大,重构误差常常会灾难性增长,权重也会激增。

在正常学习时,如果学习率减小,重构误差通常会显著降低。这不一定是好事。部分原因在于随机权重更新过程中噪音级别较小,而且从长期来看,它伴随着学习比较慢。然而,到了学习的末期,通常会降低学习率。在多个更新中平均权重是消除最终权重中一些噪声的另一种方法。

7.1一种设置权重和偏置学习率的方法

设置学习速率的一个很好的经验法则(Max Wellingpersonal communication2002)是查看权重更新的直方图和权重的直方图。更新应该是权重的10-3倍(大约在一个数量级内)。当一个单元有一个很大的扇入时,更新应该更小,因为同一方向上的许多小变化可以很容易地改变梯度的符号。相反,对于偏差,更新可能更大。

8.   权重和偏置的初始化值

权重典型的初始化是从0-均值标准方差约0.01的高斯分布中选取一个小随机数。使用大的随机数可以加速初始的学习,但是可能导致较差的最终模型。应该注意确保初始权重值不允许典型的可见向量驱动隐含单元的概率很接近1或者0,这会导致学习显著减慢。如果用于学习的统计量是随机的,初始权重可以全为0,因为统计量中的噪音可以使隐含单元变得不同,即便它们有相同的连通性。

通常将可见单元i的偏置初始化为log[pi/(1-pi)]是有帮助的,其中pi是训练向量在单元i上的比例。如果没这么做,学习的早期阶段将使用隐含单元以接近pi的概率启动单元i

当使用t的稀疏目标概率时(参见第11节),将隐含偏置初始化为log[t/(1-t)]是有意义的。否则,通常将隐含偏置初始化为0。也可以将隐含单元初始化为一个相当大的负偏置,约为-4,这是一种鼓励稀疏的粗糙方法。

8.1 一种设置权重和偏置初始化值的方法

    权重使用从0-均值标准方差约0.01的高斯分布中选取的小随机值。隐含偏置设置为0。可见偏置设置为log[pi/(1-pi)],其中pi是训练向量在单元i上的比例。间歇地查看隐含单元的活动,确保它们不总是启动或关闭。

9.   动量

当目标函数包含长、狭窄且很直的山沟,山沟的底部梯度平缓、一致,山沟两侧的梯度很陡峭的时候,动量是一种加速学习的简单方法。动量模拟重球在表面滚下。球沿山沟底部加速,但是不穿过山沟,因为峡谷两侧的对立梯度随着时间的推移相互抵消。动量法不使用估算的梯度时间来增加参数的值,而是用这个量来增加参数的速度v,然后用当前速度作为参数增量。

球速随时间衰减,“动量”元参数α是计算新的小批量梯度后保持的前速度的部分(fraction):

如果梯度保留常数,最终的速度将随因子1/(1-α)超过上式中最后一项。动量为0.9时,这个因子为10,这是这个元参数的经典设置。动量法中的时间平滑避免了横跨峡谷的发散振荡,这是由于简单地使用1/(1-α)提高了学习速率。

动量法使参数朝着不是最速下降方向的方向运动,所以它与共轭梯度法有一些相似之处,但这种使用以前梯度的方法要简单得多。不同于其它方法为每个参数使用不同的学习率,动量当山沟与参数的轴不一致时仍然能很好地工作。

另一种方式观察动量的方法(TijmenTielemanpersonal communication2008)如下:它相当于用因子1/1-α)增加学习率,但通过将全部增量划分为一系列指数衰减的分期付款,来延迟每个梯度估计的全部效果。这样,系统就可以通过移动到具有相反渐变的参数空间区域来响应早期的部分,然后才感觉到增量的全部效果。这反过来,使学习率更大,而不会造成不稳定的振荡。

在学习开始时,随机初始化参数值可以创建很大的梯度,而且系统不可能处于山沟的底部,因此通常最好在开始时取小的动量0.5。这个很保守的动量因在山沟中阻尼振荡而比完全没有动量学习更稳定(Hinton,1978)

9.1一种使用动量的方法

开始时动量取0.5。一旦降低重构误差取得大的初步进展,进入到温和阶段,应该将动量增大到0.9。这个震动可能会导致重构误差暂时增加。如果导致持续的不稳定,则通过因素2持续降低学习率【keep reducing the learning rate by factors of 2】,直到不稳定消失。

10. 权重衰减(Weight-decay

权重衰减是在正常的梯度中添加一个额外的项来起作用。该项是一个导数函数,惩罚大的权重。最简单的惩罚函数称为“L2”,是平方权重的总和乘以一个系数的一半,这个系数称为权重成本(weight-cost)。

用学习率乘以惩罚项的导数是很重要的。否则,学习速率的变化会改变正在优化的函数,而不是仅仅改变优化过程。

RBM中使用权重衰减有四种不同的原因。第一是通过减小对训练数据的过度拟合提高对新数据的泛化能力。第二是通过收缩无用的权重使隐含单元的可接受域更光滑、更容易判断。第三是“分开”在训练时早已形成了很大的权重,总是启动或者总是关闭的隐含单元。一个更好的方法是使用第11节所述的“稀疏”目标让这些单元变得重新有用。

第四个原因是改进交替Gibbs马尔科夫链的混合率。使用小权重,马尔科夫链混合更快。CD学习过程是基于忽略来自马尔可夫链 (HintonOsindero Teh 2006) 的后续步骤中的导数,因此当混合速度快时,它往往能更好地逼近最大似然学习。被忽略的导数是很小的,原因如下:当马尔科夫链很接近它的稳定分布时,从链上建模样本的最佳参数很接近它当前的参数。

另一种权重衰减称为“L1”,使用权重绝对值之和的导数。这常常导致许多权重变成0,同时允许一些权重变得相当大。这能更容易解释权重。例如,当学习权重是图像时,L1常常会导致强烈的局部化接受域。

控制权重大小的另一种方法是在每个单元的输入权重的平方或绝对值之和上施加一个允许的最大值。每个权重更新后,如果超过这个最大值,则重新缩放权重。这有助于避免隐含单元陷入极小权重,但稀疏目标可能是避免这个问题的更好方法。

10.1一种使用权重衰减的方法

对于RBM而言,L2权重衰减的权重成本系数典型的范围是0.01-0.00001。权重成本一般不用于隐含和可见偏置,因为它们很少,不太可能导致过度拟合。此外,有时候它们需要相当大的偏置。

尝试初始权重成本为0.0001。如果使用AnnealedImportance Sampling (Salakhutdinov and Murray2008)评估样本外验证集的密度,尝试用因子2来调整权重成本以优化密度。权重成本的细微差异不可能导致性能大变。如果是在训练一个联合密度模型,允许在验证集上测试性能,这可以用来代替密度来优化权重成本。然而,在这两种情况下,权重衰减不仅仅是为了防止过度拟合,它也增加混合率,使CD学习更好地近似最大似然。因此,及时过度拟合不是问题,由于训练数据供应是有限的【原文是infinite,应该是笔误】,权重衰减仍然是有用的。

11.鼓励稀疏隐含活动

很少活跃的隐含单元比一半时间都在活跃的更容易解释。另外,有时候用只是很少活跃的特征就能提高鉴别性能(Nair and Hinton2009)

二元隐含单元的稀疏活动可以通过指定“稀疏目标”来实现,它是活跃的期望概率,p<<1。然后使用一个额外的惩罚项来促进活跃的实际概率q接近p。用每个小批量里单元活跃的概率均值的平均值的指数衰减评估q

其中,qcurrent是当前小批量里隐含单元的激活概率均值。

期望和实际分布之间的交叉熵是天然的惩罚度量指标:

对于逻辑单元,它有一个简单的q-p相对于单元整个输入的导数(this has a simple derivative of q - p with respect to the totalinput to a unit.)。这个导数用一个称为“稀疏成本”sparsity-cost)的元参数进行调整,用于调整每个隐含单元的偏置和输入权重。对二者应用相同的导数是很重要的。例如,如果这个导数只用于偏置,偏置通常会保持更消极,以确保隐含单元很少启动,但是权重将继续变得更积极,使单元更有用。

11.1一种稀疏方法

设置稀疏目标:0.01-0.1。设置衰减率λ,一个评估q的值,范围:0.9-0.99。用直方图显示隐含单元的激活均值,并设置稀疏成本,使隐含单元的概率均值在目标附近。如果概率紧紧围绕目标值聚集,则减少稀疏成本,使其不干扰学习的主要目标。

12. 隐含单元的数量

来自有辨别能力的机器学习的直觉对确定合理的隐含单元数量是错误的。在有识别能力的学习中,对于区分性学习,训练用例对参数施加的约束量等于指定标签所需的位数。标签通常包含的信息很少,所以使用比训练用例更多的参数通常会导致严重的过度拟合。然而,学习高维数据的生成模型时,它是用来指定数据向量的位数,它决定每个训练用例对模型参数施加多少约束。这可能是几个数量级大于指定标签所需的位数。因此,如果每个图像包含1000像素,那么将100万参数与1万训练图像相匹配可能是相当合理的。这将允许1000全局连接的隐含单元。如果隐含单元是本地连接的,或者它们使用的是权重共享,则可以使用的更多。

一种选择隐含单元的方法

假定主要问题是过度拟合,而不是训练或者测试的计算量,估算使用一个好模型(i.e. estimate the typical negative log2 probability of a datavectorunder a good model)需要多少bits来描述每个数据向量。然后用训练用例的数量乘以这个估计值,并使用数量级较小的参数数量。如果使用的稀疏目标非常小,则可以使用更多的隐含单元。如果训练用例高度冗余,它们通常用于很大的训练集,则需要使用更少的参数。

13. 单元的不同类型

RBM被开发用于二元可见和隐含单元,但是其它类型的单元也可以用。指数族单元的通用处理方案由(Welling et al.2005)给出。其它类型的单元主要用于处理不能被二元(或者逻辑)可见单元建模的数据。

13.1 Softmax和多项单元(multinomial units

对于二元单元来说,启动概率由它的总输入xlogisticsigmoid函数给出:

单元分配的能量为-x,如果启动为1,如果关闭为0。公式15清楚地表明,两种可能状态的概率于它的能量的负指数成比例。这可以推广到K种可选状态。

这通常称为“softmax”单元。它适合处理有K个不以任何方式排序的可选状态的量。Softmax可以看作是一组二元单元,它们的状态互相制约,以至于K个状态中有1个为1,其它的值都为0。这样看的话,用于softmax中的这些二元单元的学习规则与用在标准二元单元的是相同的。唯一不同的是这些状态概率的计算和采样。

Softmax单元的进一步推广是从概率分布中进行N次采样(有放回),而不是仅采样1次。K个不同的状态可以有大于1的整数值,但是这些值加起来必须是N。这称为多元单元,同样,学习规则不变。

13.2高斯可见单元

对于诸如自然图像的小块或者用于表示语音的Mel-Cepstrum系数,逻辑单元就不适合了。一种解决方案是用带有高斯随机噪音的线性单元代替二元单元。能量函数则为:

其中,σi是可见单元i的带高斯噪音的标准方差。

学习每个可见单元噪音的方差是可能的,但是这很难用于CD1。在许多应用中,先将数据的各部分标准化为0均值和单位方差,然后用无噪音重构,用公式17给出的方差设置为1。高斯可见单元的重构值等于从二元隐含单元自顶向下的输入加上它的偏置。

学习率需要比使用二元可见单元小1-2个数量级,而一些文献中报告的失败可能是因为学习率太大造成的。要求学习率比较小,是因为重构中的组件大小没有上限,如果一个组件变得很大,则由它产生的权重将得到一个很大的学习信号。对于二元隐含单元和可见单元,每个训练用例的学习信号必须位于-11之间,所以二元-二元网络要稳定得多。

13.3 高斯可见和隐含单元

如果可见和隐含单元都是高斯的,不稳定问题会变得更糟。单个活动接近由假定噪音级别的标准方差决定的系数的二次项:(The individual activities are held close to their means by quadratic"containment" terms with coeffcients determined by the standarddeviations of the assumed noise levels:

如果任何权重矩阵的特征值变得相当大,二次交互项成为主导项,这样通过放大特征向量相关方向的活动可以达到的能量就没有下界了。用足够小的学习率,CD1识别和修正它们的方向,因此使用高斯单元学习一个无向版的因子分析模型(Marks and Movellan2001)是可能的,但是比用EM (Ghahramani and Hinton1996)学习有向模型要难。

13.4二项单元(Binomial units

获得0-N范围内的有噪音整数值的一个简单方法是,构建一个二元单元的N份独立拷贝,给它们相同的权重和偏置(Teh and Hinton,2001)。因为所有拷贝接收相同的总输入,它们由相同的概率p启动,而只需计算一次。这个期望数值是Np,这个数的方差是Np(1-p)。对于小p,这就象个泊松单元,但是当p接近1时,方差再次变小,这可能不是令人满意的。另外,对于小的p值,p随总输入指数增长。这使得学习比第13.5节描述的修正线性单元更不稳定。

用权重共享合成一个不同于二元单元的新类型单元的一个好处是,RBM的二元-二元数学基础保持不变。

13.4 修正线性单元(Rectified linear units

对二项的单元的小修改使它作为实际神经元的模型更令人关注,对于实际应用也更有用。所有拷贝有相同的已学习的权重向量w和相同的已学习的偏置b,但是每个拷贝相对于偏置有不同的、固定的偏移量。如果偏移量是-0.5-1.5-2.5…-(N-0.5),这些拷贝的概率的总和非常接近一个有闭合的形式:

其中,。因此所有拷贝的总的活动行为像是一个足够大的输入而包含的平滑版的修正线性单元。尽管不是指数族的,可以用一组带共享权重和固定偏置偏移量的二元单元对它精确建模。这组跟普通二元单元相比没有更多的参数,但是它提供了一个更富有表现力的变量。这个变量是σ(x),所以固定偏移的单元没有引入噪音,噪音也不会随x的增大而增大。

每个拷贝的偏置有固定的偏移量有个缺点是,为了得到正确采样一个整数值所需的概率,需要多次计算逻辑函数。然而,可以使用一个快速近似,在该近似中,修正线性单元的采样值不被限制为整数。相反,它用max(0,X+ N(0,1))近似,其中N(0,1)是高斯噪声,零均值和单位方差。这种类型的修正线性单元在用CD1(Nair and Hinton,2010)训练时,无论是可见的或隐含的单元似乎都工作得很好。

如果可见和隐含单元都是修正线性单元,可能需要更小的学习率,以避免活动或权重更新时的动态不稳定。如果两个修正线性单元之间的权重大于1,那么通过给两个单元非常高的活动来实现能量没有下限,因此没有适当的概率分布。然而,对比发散学习可能仍然有效,只要学习率足够低,以提供学习时间来检测和纠正马尔可夫链可能炸毁的方向,如果允许多次迭代的话。修正线性单元组成的RBM比高斯单元组成的RBM更稳定,因为修正防止权重变动时的双向震荡(单元交替出现在一个小批量中有很高的正活动,而下一个小批量有很高的负活动)。

14. 各种对比散度

尽管CD1不是一种很好的近似最大似然的学习方法,这并不影响RBM为更高层的RBM训练提供隐含特征的学习。CD1确保隐含特征保持数据向量中最多的信息,使用更近似最大似然但在保持数据向量信息方面比较差的CD算法不一定是好主意。然而,如果学习目的是让RBM成为一个好的密度或联合密度模型,CD1远非最好。

在学习开始时,权重小且混合快,因此CD1提供了一个最大似然的良好近似。当权重增加时,混合变差,逐渐增加CDn中的n是有道理的(Carreira-Perpignan and Hinton2005; Salakhutdinovet al.2007)。当n增加时,用于学习的成对统计量差异将增加,因此减小学习率是必要的。

一个偏离CD1更激进的算法称为“持久对比散度”(”persistent contrastive divergence"Tieleman2008)。不是在数据向量上初始化每个交替Gibbs马尔科夫链,这本是CD学习的根本。它保持跟踪许多持久化链或者“幻想粒子”(fantasy particles)的状态。每个持久化链有它的隐含和可见状态,在每次权重更新后更新。学习信号是在小批量数据和持久化链上度量的成对统计量的差异。通常,持久化链的数量与小批量的大小相同,但这没有充分的理由。持久化链混合出奇地快,权重更新通过提高当前状态的能量排斥每个链。(Tieleman and Hinton2009)

使用持久化CD时,学习率通常需要很小,学习的早期阶段在减少重构误差方面要慢得多。学习早期阶段持久化链常有相互关联性很强的状态,但这随时间的推移而消失。最终的重构误差也常会比CD1大,因为持久化CD是渐进地执行最大似然学习,而不是试图使每一步重构的分布类似于数据分布。如果目标是建立数据的最佳密度模型,持久化CD学习比CD1甚至CD10(Tieleman,2008)更好。

通过在标准参数上覆盖“快速权重”改进,这样学习速度很快,但衰变也很快(Tieleman and Hinton2009)。这些快速权重提高了持久化链的混合。然而,使用快速权重也引入了更多的超参数,这里不做进一步讨论。

15. 显示学习过程中发生了什么

许多因素会导致学习变差,大多数常见问题可以用正确的图形显示进行诊断。下面描述三类显示揭示发生了什么问题,而不是简单地监控重构误差。

权重、可见偏置和隐含偏置的直方图很有用。另外,更新这些参数更新时直方图的增量也是有用的,尽管每次更新都画直方图很浪费。

对于可见单元域有空间或时间结构(如图像或语音),显示每个隐含单元连接到可见单元的权重是很有帮助的。这些“接受”领域(fields)是一种显示隐含单元已学到什么特征的好方式。在显示许多隐含单元的这些接受领域时,不同的隐含单元使用不同的刻度可能会误导我们。接受领域的灰度显示不好看,但比假彩色显示更有用。

对于单个小批量,用[0,1]范围的二维灰度显示表示每个二元隐含单元在小批量内每个训练用例上的概率,是很有用的。这直观地显示了是否有隐含单元从未用过,或者是否有一些训练用例激活了过多或者过少的隐含单元。也可以显示如何确定隐含单元。如果学习工作正常,显示看起来是完全随机的,没有明显的垂直或水平线。可以用直方图代替这种显示,但是表达相同的信息需要多个直方图。

16. RBM进行识别(discrimination

RBM用于识别有三种主要方式:第一,通过RBM学习隐含特征,作为一些标准识别方法的输入。在此不做进一步讨论,尽管这是最重要的用法,特别是在识别训练开始前通过无监督学习多层的隐含特征。

第二种方法是在每个分类上训练一个单独的RBM。定型后,可计算每个特定分类(第16.1小节)在测试向量上的自由能量t,分类c训练的RBM的分配给测试向量的log概率为:

其中,ZcRBM的配分函数。因此每个特定分类RBM将有一个不同的未知配分函数,自由能量不可能直接用于识别。然而,如果分类的数量很少,通过简单地训练一个“softmax”模型(在一个单独的训练集上)来从所有特定分类RBM的自由能量预测分类,这是一种处理未知log配分函数的简单方法:

其中,Z^是通过softmax的最大似然训练学习的参数。当然公式21也用于学习每个RBM的权重和偏置,但这需要很多数据来避免过度拟合。组合公式21算出的权重和偏置的有判别力的梯度和来自对比散度的近似梯度通常优于单独使用这两种方法。对比散度产生的近似梯度用作强规则化器来防止过度拟合,有判别力的梯度确保使用权重和偏置时保持一定压力以帮助识别。

第三种方法是用有两组可见单元的单个RBM训练联合密度模型。除了表示数据向量的单元外,还有表示分类的“softmax”标记单元。定型后,每种可能的标记都由测试集轮流尝试,选出给出最低自由能量的作为最可能的分类。配分函数在这里不是问题,因为它对所有分类是相同的。Againit is possible to combine discriminiative and generative training ofthe joint RBM by using discriminative gradients that are the derivatives of thelog probability of the correct class (Hinton2007):

16.1计算可见向量的自由能量

可见向量V的自由能是一个配置所需的能量,以便与包含V的所有配置具有相同的概率:

也可以由期望能量减去交叉熵给出:

其中,是隐含单元j的总输入,是给定Vhj=1时的概率。一种计算F(V)的好方法是使用别的自由能量公式:

17. 处理缺失值

在有向信任网络里处理可见变量的缺失值很容易。在执行推理时,有向连接接受末端的缺失值对发生连接给它的其它单元没有影响。而在用于RBM的无向连接则不同。为了以正常方式执行推理,必须先填充缺失值,有至少两种方法完成这项工作。

在从每个训练用例由一个向量V(如一个图片)加上一个单一的离散标记组成的数据中学习联合密度时,可能会有一类特别简单的缺失值。如果标记缺失,可以从条件分布中Gibbs取样。做法是:通过计算标签每种可能值的自由能量(参见第16.1节),然后根据正比于exp(-F(l,V)的概率拾取标记l。之后,这个训练用例就可以跟正常的一样用了。

对于实数值可见单元,计算缺失值有不同的方法,即使同一训练用例缺失几个值也能很好的工作(Hinton et al.2006b)。如果训练周期多次通过训练集,则缺失值可用其它参数相同的方法处理。从合理的猜测开始,每次更新权重的时候更新缺失值,但可能使用不同的学习率。训练用例c上的可见单元i的缺失值更新是:

其中,是填补值,是填补的重构值。动量可以用于输入值,用法与用在其它参数的相同。

当缺失值的数量很大的时候,可以用一种更激进的方法处理。这种情况发生时,例如,用户偏好数据,大多数用户并不表达他们对多少对象的偏好(Salakhutdinov et al.2007)。不试图填补它,而是假装它们不存在,用不同数量的可见单元处理不同的训练用例。不同的RBM形成一个共享权重的不同模型的族。在族中的每个RBM可正确推理它的隐含状态,但是捆绑权重意味着他们对于任何一个特定的RBM都不是理想的。为缺失值添加可见单元,然后进行正确地推理,这样缺失值不会给隐含单元相同的分布,而是简单地忽略这个可见单元,这是为什么用模型族优于仅用一个模型。使用模型族处理缺省值时,用该RBM中可见单元的数量缩放隐含偏置是有好处的(Salakhutdinov and Hinton2009)

致谢

这项研究得到了 NSERC和加拿大高级研究所的支持。我的许多过去和现在的研究生和博士后为本技术报告中所描述的实用知识的主体做出了宝贵的贡献。我曾试图感谢报告中特别有价值的贡献,但我不能总是记得是谁提出了什么建议。

参考文献

Carreira-Perpignan,M. A. andHinton,G. E. (2005). On contrastive divergence learning. In Artificial Intelligence and Statistics,2005.

Freund,Y. andHaussler,D. (1992). Unsupervised learning of distributions onbinary vectors using two layer networks. In Advances in Neural Information Processing Systems 4,pages 912-919,San Mateo,CA. MorganKaufmann.

Ghahramani,Z. andHinton,G. (1996). The EM algorithm for mixtures of factoranalyzers. Technical Report CRG-TR-96-1,Universityof Toronto.

Hinton,G. E.(1978). Relaxation and its role in vision. In PhD Thesis.

Hinton,G. E.(2002). Training products of experts by minimizing contrastive divergence. Neural Computation,14(8):1711-1800.

Hinton,G. E.(2007). To recognize shapes,first learnto generate images. ComputationalNeuroscience: Theoretical Insights into Brain Function.

Hinton,G. E.,Osindero,S.,and Teh,Y. W.(2006a). A fast learning algorithm for deep belief nets. Neural Computation,18(7):1527-1554.

Hinton,G. E.,Osindero,S.,Welling,M.,and Teh,Y. (2006b).Unsupervised discovery of non-linear structure using contrastivebackpropagation. Cognitive Science,30:725-731.

Hop_eld,J. J.(1982). Neural networks and physical systems with emergent collectivecomputational abilities. Proceedingsof the National Academy of Sciences,79:2554-2558.

Marks,T. K. andMovellan,J. R. (2001). Di_usion networks,product of experts,and factoranalysis.In Proc. Int. Conf. onIndependent Component Analysis,pages 481-485.

Mohamed,A. R.,Dahl,G.,and Hinton,G. E.(2009). Deep belief networks for phone recognition.In NIPS 22 workshop on deep learning for speech recognition.

Mohamed,A. R. andHinton,G. E. (2010). Phone recognition using restrictedboltzmann machines. In ICASSP-2010.

Nair,V. andHinton,G. E. (2009). 3-d object recognition with deep beliefnets. In Advances in NeuralInformation Processing Systems,volume 22,pages 1339-1347.

Nair,V. andHinton,G. E. (2010). Rectified linear units improve restrictedboltzmann machines. In Proc. 27thInternational Conference on Machine Learning.

Salakhutdinov,R. R. andHinton,G. E. (2009). Replicated softmax: An undirected topicmodel. In Advances in NeuralInformation Processing Systems,volume 22.

Salakhutdinov,R. R.,Mnih,A.,and Hinton,G. E.(2007). Restricted Boltzmann machines for

collaborative filtering.In Ghahramani,Z.,editor,Proceedingsof the International Conference on Machine Learning,volume 24,pages 791-798.ACM.

Salakhutdinov,R. R. andMurray,I. (2008). On the quantitative analysis of deep beliefnetworks. In Proceedings of theInternational Conference on Machine Learning,volume 25,pages 872 -879.

Smolensky,P. (1986).Information processing in dynamical systems: Foundations of harmony theory. InRumelhart,D. E. and McClelland,J. L.,editors,ParallelDistributed Processing,volume 1,chapter 6,pages 194-281.MIT Press,Cambridge.

Sutskever,I. andTieleman (2010). On the convergence properties of contrastive divergence. In Proceedings of the 13th International Conferenceon Arti_cial Intelligence and Statistics (AISTATS),Sardinia,Italy.

Taylor,G.,Hinton,G. E.,and Roweis,S. T.(2006). Modeling human motion using binary latent variables. In Advances in Neural Information Processing Systems. MIT Press.

Teh,Y. andHinton,G. E. (2001). Rate-coded restricted Boltzmann machinesfor face recognition. In Advancesin Neural Information Processing Systems,volume 13,pages 908-914.

Tieleman,T. (2008). Trainingrestricted Boltzmann machines using approximations to the likelihood gradient.In Machine Learning,Proceedings of the Twenty-_rst International Conference(ICML2008). ACM.

Tieleman,T. andHinton,G. (2009). Using fast weights to improve persistent contrastivedivergence.In Proceedings of the 26thinternational conference on Machine learning,pages 1033-1040.ACM New York,NY,USA.

Welling,M.,Rosen-Zvi,M.,and Hinton,G. E.(2005). Exponential family harmoniums with an application to informationretrieval. In Advances in NeuralInformation Processing Systems,pages 1481-1488,Cambridge,MA. MITPress.


原创粉丝点击