目录
1 导论
受限玻尔兹曼机能作为生成模型,被用于有标签或无标签的图片数据(Hinton et al., 2006a),代表语音的梅尔频率倒谱系数窗口(Mohamed et al., 2009),表示文档的词袋(Salakhutdinov and Hinton, 2009),和电影评分(Salakhutdinov et al., 2007)。在特定条件下,它能处理像视频,运动中的数据(Taylor et al., 2006),或者语音之类的高维序列数据。它最成功的应用便是在深度信念网络中作为学习的模块(Hinton et al., 2006a)。
一般地,我们会使用对比散度学习程序来训练受限玻尔兹曼机(Hinton, 2002)。这就要求较为稳定的操作经验来设置诸如学习率,动力系数,权值损失,稀疏目标,权值初始值,隐藏节点数量,每一批量的大小等超参数。同时,还要决定使用什么类型的节点,是随机更新他们的状态还是确定的更新他们的状态?对每个训练样例要更新多少次隐藏节点的状态?是用数据向量来启动每个序列的状态还是用其他的呢?此外,如何检测学习的进程以及何时停止训练也是非常有用的。
对于任何的实际应用,代码必须要给出这些超参数的详尽规范。但它并不能解释为什么要这么选择,或者微小的改变如何影响模型训练的?更为糟糕的是,在新的应用场景下如何选择超参数?它也没有为新手提供任何指导。这就要求有敏感的启发思考和觉察导致学习失败相关联的超参数。
在过去的几年里,多伦多大学的机器学习小组在训练受限玻尔兹曼机上已经取得了相当多经验,这个指南就是分享他们以及其他机器学习研究者的经验的一次尝试。我们仍然处于学习曲线的陡峭上升期,所以这个指南是一个动态的文档,我们会时不时地更新它,所以它的版本会越来越多。
2 受限玻尔兹曼机与对比散度概览
如果你已经了解了受限玻尔兹曼机,你就可以跳过这一部分了。
考虑一个二维向量的训练集,出于目的的考虑,我们假设它是二维图片。训练集能被用到只有两层神经网络的受限玻尔兹曼机模型(Smolensky, 1986; Freund and Haussler, 1992; Hinton, 2002),在模型中,二维像素是随机的,二维特征检测器则对称加权连接。像素对应受限玻尔兹曼机的可见节点,因为它是可以被观测到的;特征检测器对应隐藏节点。一次重构,可见层与隐藏层 (v,h) ( v , h ) 的能量定义为: