正在加载图片...
·196 智能系统学报 第10卷 间与隐藏节点个数成指数关系。因此,Hinton等[2) 2.2RBM学习算法 提出了CD,(contrastive divergence)方法来模拟梯度 整个RBM的训练过程如下,这里用到了CD1。 的计算,整个算法过程如图3。 一层的RBM模型训练完毕后,固定其权值W 负例样本对和正例样本对 及偏置值b、c:,隐藏层的输出h:作为原输入信息 负例样本对和正例样本对 负例样本对 的第1个表达,将隐藏层的输出h,作为其上层RBM 负例样本对 的输入,同样训练RBM模型,就会得到第2层的参 ,:+■ 阈值theta 正例样本对 数及其输出,其输出就作为原输入信息的第2个表 正例样本对 红 达a]。如此不断往上叠加RBM,就得到了DBN的 相似性度量 预处理i 初步模型。 特征表示 正例样本对 以上在DBN模型的构建中统称为预训练阶段。 IFr18 工红幻 IEEEEEEE1E I,幻 预训练将网络参数训练到一组合适的初始值,从这 正例样本对 0上:0卫 组初始值出发会令代价函数达到一个更低的值2。 1 、”I8010 DBN模型 经过这种方式的训练后,再根据重构误差,使用传统 的全局学习算法,比如BP算法对整个模型进行微 预训练 BP微调 DBN 调,从而使模型收敛到局部最优点。 模型 RBM训练算法符号说明:可视节点j,可视节点 预处理 50张视屏图像+ 的偏置b,可视节点值为1的条件概率 1张二代证图像 P(x2=1h,),sign为S型函数,W为连接权值, 隐藏节点i,隐藏节点的偏置c:,隐藏节点值为1的 条件概率Q(h:=1x,)、Q(h2=1x2)。 图3系统框架 算法过程 Fig.3 System framework 输入:可视节点值x1, 实验证明,CD,是一种很好的求解对数似然函 输出:隐藏节点值h2o 数关于未知参数梯度的近似的方法。 for所有隐藏节点ido CDk算法 1)计算Q(h.=1x,)(若为二值单元,则Q值 输人:RBM(V1,2,…,VmH1,2,…,Hn), 输出:梯度估计△w,.△b,△c:。 即为sign(c:+∑,Wrxy) forj=1,2,…,m,i=1,2,…,n, 2)从Q(h:lx,)中采样h:∈{0,1 初始化△0g=Ab,=△c:=0forj=1,2,…,m, end for i=1,2,…,n。 for所有可视节点jdo for所有的vdo 3)计算P(xg=1h,)(若为二值单元,则Q值 (o)←U 即为sign(6,+∑,Wgh)) for t=0,...-1do 4)从P(x=1h)中采样x2∈{0,1} fori=1,2,…,ndo采样h(t) end for p(h:v) for所有隐藏节点ido forj=1,2,…,mdo采样“)~p(yh0) 5)计算Q(h2=1x2)(若为二值单元,则Q值 forj=1,2,…,m,i=1,2,…,ndo 即为sign(c:+∑W*)) △0g←-△wg+p(h:-1o)o-p(h,= end for 1) 6)W←-W+E(h1x1'-Q(h2=1x2)x2') 46,←46+@- 7)b←-b+ε(x1-x2) △c:←△c:+p(h=1vo)-p(h,=1v) 8)c←-c+e(h1-Q(h2=1x2))间与隐藏节点个数成指数关系。 因此,Hinton 等[22] 提出了 CDk (contrastive divergence)方法来模拟梯度 的计算,整个算法过程如图 3。 图 3 系统框架 Fig.3 System framework 实验证明, CDk 是一种很好的求解对数似然函 数关于未知参数梯度的近似的方法。 CDk 算法 输入: RBM (V1 ,2,…,Vm,H1 ,2,…,Hn ), 输出: 梯度估计 Δwij,Δbj,Δci 。 for j = 1,2,…,m,i = 1,2,…,n, 初始化 Δwij = Δbj = Δci = 0 for j = 1,2,…,m, i =1,2,…,n。 for 所有的 v do v (0) ← v for t = 0,...k - 1do for i = 1,2,…,n do 采 样 hi (t) ~ p(hi v (t) ) for j = 1,2,…,m do 采样 v (t+1) j ~ p(vj h (t) ) for j = 1,2,…,m , i = 1,2,…,n do Δwij ← Δwij + p(hi = 1 v (0) )v (0) j - p(hi = 1 v (k) )v (k) j Δbj ← Δbj + v (0) j - v (k) j Δci ←Δci + p(hi = 1 v (0) ) - p(hi = 1 v (k) ) 2.2 RBM 学习算法 整个 RBM 的训练过程如下,这里用到了 CD1 。 一层的 RBM 模型训练完毕后,固定其权值 Wij 及偏置值 bj 、 ci ,隐藏层的输出 hi 作为原输入信息 的第 1 个表达,将隐藏层的输出 hi 作为其上层 RBM 的输入,同样训练 RBM 模型,就会得到第 2 层的参 数及其输出,其输出就作为原输入信息的第 2 个表 达[23] 。 如此不断往上叠加 RBM,就得到了 DBN 的 初步模型。 以上在 DBN 模型的构建中统称为预训练阶段。 预训练将网络参数训练到一组合适的初始值,从这 组初始值出发会令代价函数达到一个更低的值[24] 。 经过这种方式的训练后,再根据重构误差,使用传统 的全局学习算法,比如 BP 算法对整个模型进行微 调,从而使模型收敛到局部最优点。 RBM 训练算法符号说明:可视节点 j ,可视节点 的 偏 置 bj , 可 视 节 点 值 为 1 的 条 件 概 率 P(x2j = 1 h1 ) , sign 为 S 型函数, Wij 为连接权值, 隐藏节点 i ,隐藏节点的偏置 ci ,隐藏节点值为 1 的 条件概率 Q(h1i = 1 x1 ) 、 Q(h2i = 1 x2 ) 。 算法过程 输入: 可视节点值 x1 , 输出: 隐藏节点值 h2 。 for 所有隐藏节点 i do 1)计算 Q(h1i = 1 x1 ) (若为二值单元,则 Q 值 即为 sign ( ci + ∑j Wij x1j )) 2)从 Q(h1i x1 ) 中采样 h1i ∈ {0,1} end for for 所有可视节点 j do 3)计算 P(x2j = 1 h1 ) (若为二值单元,则 Q 值 即为 sign (bj + ∑j Wijh1i) ) 4)从 P(x2j = 1 h1 ) 中采样 x2j ∈ {0,1} end for for 所有隐藏节点 i do 5)计算 Q(h2i = 1 x2 ) (若为二值单元,则 Q 值 即为 sign(ci + ∑j Wij x2j) ) end for 6) W ← W + ε(h1 x1 ′ - Q(h2 = 1 x2 )x2 ′) 7) b ← b + ε(x1 - x2 ) 8) c ← c + ε(h1 - Q(h2 = 1 x2 )) ·196· 智 能 系 统 学 报 第 10 卷
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有