《受限玻尔兹曼机学习笔记(七)RBM 训练算法》由会员分享,可在线阅读,更多相关《受限玻尔兹曼机学习笔记(七)RBM 训练算法(2页珍藏版)》请在金锄头文库上搜索。
1、7 RDM训练算法上一节重点介绍了 CD-k算法,在此基础上本节我们再给出一个完整的RBM训练算 法描述.算法7.1 (RBM训练算法)Step 1 初始化 (Initialization)(1) 给定训练样本集合S (|S|=ns).(2) 给定训练周期 厶学习率以及CD-k算法参数k.(3) 指定可见层和隐藏层的单元数目nv, Uh.(4) 初始化偏置向量a; b和权值矩阵W.Step 2 训练(Training)FOR iter = 1,2, 、J DOJ7.调用 CDKk, S: RBM(TV, a, b); 【亿 Aa, Ab),生成 , Aa, Ab.2 刷新参数:W = W +a
2、 = a + 7?(Aa); b = b +. 接下来,我们讨论算法7.1中一些重要参数的选取及注意事项(3).1. 小批量数据算法7.1中Step 2的FOR循环中:我们利用训练样本集合S,通过对各样本偏导 数的累加一次性生成Aa, Ab.实际应用中,我们常用的做法是:事先将S分成包 含几十或几百个样本的小批量数据(mini-batches),然后逐个计算.这样效率更高,因为 它适合并行,尤其是可以充分利用图形处理器GPU或M&tlab中矩阵之间相乘运算的 优势.K具体来说,假定S = |J Si,其中各Si之间无交集:且|Si| =岡=|Sk| = nbiock (当然全部相等是理想情况,
3、一般情况下对最后一个子集规模会小一些),则算法7.1 中Step 2的循环体可以改写为FOR / = 12 ;K DO1. 调用 CDK他 Si, RBM(W, a, b力 MV, Aa; Ab;,生成巧 Aa5 Ab.2. 刷新参数:“ “ +耳(羅a = a +朮呛g, b = b +讯器小). 由此易见,算法7.1中Step 2对应的是K = 1 (亦即nblock = n)的情形.特别地: 当 g = 1时:参数更新则以在线学习的方式进行.注意,公式中的 器 表示累加的 是平均梯度,加入这个因子,还可以避免当小批量数据的容量发生改变时勒习率也要 做出相应修改的问题.2. 权重和偏置的初
4、始值一般地,权重矩阵W可初始化为来自正态分布N0O.O1)的随机数.隐藏层偏置b 初始化为零.可见层偏置a按如下公式初始化% = log Pl ,1 - Pi其中Pi表示训练样本中第i个特征处于激活状态(即取值为1)的样本所占的比例.3. 学习率和动量学习率学习率TJ较大时,收敛速度更快:但可能引起算法的不稳定,而T较小时,虽可避免 不稳定情况的出现,但收敛速度变慢.为克服这一矛盾,一种做法是在参数更新式中加入 动量项(momentum),使本次参数值修改的方向不完全由当前样本下似然函数的梯度方 向决定,而是采用上一次参数值修改方向与本次梯度方向的组合.在某些情况下,这可以 避免算法过早地收敛到局部最优点.具体格式可写为0 := p0 + Tdin sde(7.56)其中P为动量项学习率.4. CD-算法中的参数kCD-k算法中的参数k通常取得很小:Hinton发现,在实际应用中,甚至取鸟=1就 能保证良好的学习效果了.关于可见层和隐藏层的单元数目W的选取、以及在目标函数中如何加入正则化项等,这里不详细介绍,具体可参见文3和7.