美文网首页
2019-05-30(让搜索过程具有一定的爬山能力)

2019-05-30(让搜索过程具有一定的爬山能力)

作者: 雨住多一横 | 来源:发表于2019-05-30 20:12 被阅读0次

    前言

    为了解决模型局部最小问题,只能通过改进搜索算法解决,一种方法是让搜索过程具有爬山的能力,同时不会爬出全局最小的山谷。本文介绍的模拟退火(Simulated Annealing)波尔兹曼机(Boltzmannn Machine)就是在模型陷入局部最优时,将模型最优搜索过程赋予爬山的能力。

    模拟退火算法

    当系统从一个状态x(n)转移到另一个状态x(n + 1)时,它的能量(模型优化过程中为损失)由E(n)转化为E(n + 1),metropolis规则为:当E(n + 1)小于E(n)时,直接接受;当E(n + 1) 大于或等于 E(n)时,以一定的概率接受。p的定义如下:
    p = \left\{\begin{matrix} 1 & E\left (n + 1 \right ) < E\left (n \right )\\ e^{\left ( \frac{E\left (n + 1 \right ) - E\left (n \right )}{T} \right )} & E\left (n + 1 \right ) \geq E\left (n \right ) \end{matrix}\right.
    具体决策过程:首先在区间[0, 1]产生一个均匀分布随机数\xi,如果\xi < p,则变化被接受,反之被拒绝,进入下一步,如此循环。
    T的计算
    退火算法为优化过程赋予了爬山的能力,但这会带来模型不收敛的问题,为了克服这个问题,必须控制退火算法的参数T,T很大时 变化被接受的概率减小,退火太慢可能在局部最优结束迭代;T很小时,变化被接受的概率增大,退火太快优化时间过长,可能导致不收敛。实际应用中应该采用退火温度表,初期用较大T,逐步降低。退火温度表如下:

    • 温度初始值T(0)
    • 退火速率下降方式:
      T\left ( n \right ) = \lambda T\left ( n - 1 \right )\\ T\left ( n \right ) = \frac{T\left ( 0 \right )}{log\left ( n + 1 \right )}\\ T\left ( n \right ) = \frac {T\left ( 0 \right )}{1 + n}
    • 终止温度

    退火算法用于优化过程
    来源

    波尔兹曼机(Boltzmann Machine)

    相关文章

      网友评论

          本文标题:2019-05-30(让搜索过程具有一定的爬山能力)

          本文链接:https://www.haomeiwen.com/subject/pfvvtctx.html