波尔兹曼机
是一种模拟的退火过程。
梯度下降法只能往下走,不能往上走。模拟退火算法中是可以跳动的,会根据状态改变接受的概率来判断要怎么走。假设前一状态为x(n),状态改变后为x(n+1),相应的,系统能力由E(n)变为E(n+1)。系统由x(n)变为x(n+1)的接受概率为p:
温度的初始值 T要选得足够高,使得所有可能的状态转移都能被接受。
退火速率:
1.指数下降方式: n=1,2,...
是一个小于1的正数
2.其他方式:
模拟退火算法过程
- 初始化。随机选择一定的值作为变量的数值x(0),并设置初始温度T(0),终止温度
和温度下降公式
- 以一定的规则(沿梯度下降的方向走一段距离,或在x点附近随机取一个点)在当前状态x(n)的附近产生新的状态x(n+1).如果能力减少则改变状态,如果能力变大则以一定的概率判断是否要改变状态。
- 在一定的温度T迭代一定的次数,或者判断代价函数是否趋于稳定。然后终止内循环(内循环中T不变,让状态自由改变)
- 调整T,判断T是否小于等于
。没有就返回第二步,是则推出终止算法。
神经元的转移概率函数
设单个神经元的净输入为
神经元输出状态为0的转移概率: 这里T为温度
状态为1的概率:
净输入越大,神经元状态取1的概率越大;净输入越小,取0的概率越大。
任意两个状态出现的概率与对应的能力之间的关系:
玻尔兹曼机的训练
正向学习阶段:
- 自联想型BM网络:向网络输入信号,钳制输入输出节点,让隐节点自由活动
- 异联想型BM网络:向网络输入信号,钳制输入输出节点,让隐节点自由活动
反向学习阶段:
- 自联想型BM网络:向网络输入信号,让输入输出节点和隐节点都自由活动
- 自联想型BM网络:向网络输入信号,钳制输入节点,让输出节点和隐节点自由活动