玻尔兹曼机训练算法
玻尔兹曼机训练算法
玻尔兹曼机训练算法
玻尔兹曼机训练算法
置输入层与隐蔽层之间的权值W1及隐蔽层与输出层之间的权值W2为[-1, +1]间的任意值。
置时间计数t = :
把Ak加到输入层,Ck加到输出层()。
随机选择隐蔽层结点i,,令其状态bi翻转:
计算由此而引起的网络总体能量变化
若,则确认这种状态变化。若,则计算概率:
其中T(t) > 0为当前温度。设λ为随机产生的正数,0 〈λ〈 >λ,则接受这次状态的改变,否则不接受本次状态的改变,并将bi复位至原有状态。
若隐蔽层结点未全部考察,则挑选一新的隐蔽层结点,返回(2)。
置时间计数t = t + 1,并更新温度:
其中T0为初始温度。
返回(2),直至对于,全局能量最低()为止。此时认为网络达到平衡状态。
对于输入Ak,记录隐蔽层状态,存入向量Dk,为后续统计使用:
玻尔兹曼机训练算法
玻尔兹曼机训练算法
玻尔兹曼机训练算法
对每次输入Ak及输出Ck,隐蔽层结点的稳态为Dk。统计第h个输入结点与第i个隐蔽层结点状态相同的概率Qhi,以及第i个隐蔽层结点与第j个输出结点状态相同的概率Rij:
,
其中Φ(x,y)为关联函数:
重置t = 1,将Ak,置于网络的输入端,而使输出端自由活动。重复步骤2和3,此时由bi翻转引起的全局能量变化:
并相应计算概率分布和
调整网络权结构:
重复步骤2—5,直至对于所有的,,,和都充分小为止。
玻尔兹曼机训练算法 来自淘豆网www.taodocs.com转载请标明出处.