前言
为了解决模型局部最小问题,只能通过改进搜索算法解决,一种方法是让搜索过程具有爬山的能力,同时不会爬出全局最小的山谷。本文介绍的模拟退火(Simulated Annealing)和波尔兹曼机(Boltzmannn Machine)就是在模型陷入局部最优时,将模型最优搜索过程赋予爬山的能力。
模拟退火算法
当系统从一个状态转移到另一个状态时,它的能量(模型优化过程中为损失)由转化为,metropolis规则为:当小于时,直接接受;当 大于或等于 时,以一定的概率接受。p的定义如下:
具体决策过程:首先在区间[0, 1]产生一个均匀分布随机数,如果 < p,则变化被接受,反之被拒绝,进入下一步,如此循环。
T的计算:
退火算法为优化过程赋予了爬山的能力,但这会带来模型不收敛的问题,为了克服这个问题,必须控制退火算法的参数T,T很大时 变化被接受的概率减小,退火太慢可能在局部最优结束迭代;T很小时,变化被接受的概率增大,退火太快优化时间过长,可能导致不收敛。实际应用中应该采用退火温度表,初期用较大T,逐步降低。退火温度表如下:
- 温度初始值T(0)
- 退火速率下降方式:
- 终止温度
退火算法用于优化过程
来源
网友评论