RBM训练指导手册粗略(A Practical Guide to Training Restricted Boltzmann Machines)

引言

这是Geo rey Hinton的文章A Practical Guide to Training Restricted Boltzmann Machines的主要内容翻译,有大量省略

主要的目的是对于RBM训练中几个关键点参数设置的指导

原文在Geo rey Hinton的个人网站可以下载到PDF版本

主要内容以问答形式记录在这里

当使用对比散度(CD)时收集信息的技巧

Q:在吉布斯采样时,隐含节点的值如何取?

A:在单步吉布斯采样时,使用概率随机化的二值;在多步吉布斯采样时,最后一步直接使用计算概率,前面步骤使用概率随机化的二值

Q:在吉布斯采样时,可见节点的值如何取?

A:所有步骤,都直接使用计算概率

Q:是使用<pihj>data计算,还是使用<pipj>data计算?

A:使用hj更接近数学模型,使用pj能够减少采样噪声,加快学习速度

Q:在吉布斯采样时,权重和偏置的值如何取?

A:直接使用计算的概率,用随机值初始化打破对称性

mini-batch的大小确定方法

Q:为什么要使用mini-batch不是一个数据?

A;方便利用GPU资源,加快运算速度

Q:如何在改变mini-batch大小的时候,防止改变学习率?

A:将mini-batch计算的结果对mini-batch的大小取平均

Q:mini-batch是不是越大越好?

A:不是,太大使得学习效率很低

Q:mini-batch如何取?

A:在等概率类小数据集时,mini-batch通常和类数相同,并且每个类取一个点;对于其他数据集,首先随机化数据,然后取10左右

监控学习过程的方法

Q:重构与数据的方差会一直减小吗?

A:不会,因为是随机梯度下降,所以会有波动

Q:构与数据的方差做为监控学习的数据合适吗?

A:不是完全合适,小范围的变化不能表现出模型是变好还是变坏,但是大的变化还是有意义的

Q:那怎么办?

A:使用它,但是不能完全相信它!更好的方式是使用直方图。如果使用的是带标签的数据,使用验证集

监控过拟合

Q:通常适用的对验证集的测试是否可行?

A:不可行,因为部分函数不好计算

Q:应该采用什么方法?

A:比较训练集和验证集的自由能量如果没有过拟合,两者应该相似

有关学习率

Q:学习率大好吗?

A:不好!

Q:随着训练逐渐减少学习率呢?

A:也不好!

Q:怎样设置合适的学习率呢?

A:观察权重更新和权重的直方图,更新应是权重的千分之一左右。

Q:偏置的学习率呢?

A:这个可以大一些

权重和偏置初始值

Q:权重初始值如何确定?

A:0附近的小随机数,标准差0.01。确定在典型数据集中,隐含单元不会一直为0或者1

Q:可见单元偏置怎么而设置?

A:设为log[pi/(1-pi)],其中pi为此可见单元激活的比例

Q:那隐含单元的偏置呢?

A:若采用稀疏RBM则设为log[t/(1-t)],t为学习率,否则0即可。

冲量

Q:冲量初始值如何设置?

A:因为开始的时候梯度大概率的可能性会很大,所以应为小冲量,0.5比较合适

Q:冲量如何更新?

A:当重估误差的减少变少并且持续一段时间之后,冲量增长到0.9

Q:冲量增大后导致重构误差持续不稳定震荡,怎么办?

A:将1/(1-α)以2为间隔减小,直到稳定

权重衰减

Q:有几种常用的权重衰减函数?

A:两种L1和L2

Q:如何使用权重衰减?

A:第一种,乘以衰减系数然后加入cost函数;第二种和设定目标值比较,超过目标值则按比例重置权重

Q:当使用权重系数的时候,取多少合适?

A:0.01-0.00001之间

Q:权重衰减除了可以防止过拟合外还有什么作用?

A:可以使得学习更加接近最大似然

隐含节点稀疏激活

Q:稀疏会提高分类器最后的表现吗?

A:有可能!

Q:稀疏惩罚要同时应用于权重和偏置吗?

A:是的,而且必须!

Q:稀疏目标值如何设置?

A:0.01到0.000000001之间

Q:稀疏衰减λ如何设置?

A:0.9到0.99

Q:如何观察稀疏惩罚是否合理?

A:做隐含节点激活的直方图,如果所有节点都紧密围绕在稀疏目标周围,则说明惩罚过大

隐含节点数

Q:如何确定隐含节点数

A:首先估计表示数据向量所需要的比特数,然后与训练集内的样本数量相乘,最后减小一个数量级,这个就是参数的数量,再除以可见节点数,就是隐含节点数了

Q:除了训练数据,还有什么是制约隐含节点数的关键因素吗?

A:如果采用稀疏表示,那么隐含节点数可以多一些,如果数据集很大,冗余很高,那么隐含节点数应该少一些

你可能感兴趣的:(数据挖掘,机器学习)