深度学习之模拟退火算法
一、概述
如果将BP算法中的误差函数看作一种能量函数,则BP算法通过不断调整网络参数使 其能量函数按梯度单调下降,而反镄网络使通过动态演变过程使网络的能量函数沿着梯度单 调下降,在这一点上两类网络的指导思想是一致的。正因如此,常常导致网络落入局部极小 点而达不到全局最小点。对于BP网,局部极小点意味着训练可能不收敛,对于Hopfield 网,则得不到期望的最优解。导致这两类网络陷人局部极小点的原因是,网络的误差函数或 能量函数是具有多个极小点的非线性空间,而所用的算法却一味追求网络误差或能量函数的 单调下降。也就是说,算法賦予网络的是只会“下山”而不会“爬山”的能力。如果为具有 多个局部极小点的系统打一个形象的比喻,设想托盘上有一个凸凹不平的多维能量曲面,若 在该曲面上放置一个小球,它在重力作用下,将滚人最邻近的一个低谷(局部最小点)而不 能自拔•但该低谷不一定就是曲面上最低的那个低谷(全局最小点)。因此,局部极小问题 只能通过改进算法来解决。
本章要介绍的随机网络可陚予网络既能“下坡”也能“爬山”的本领,因而能有效地克 服上述缺陷。随机网络与其他神经网络相比有两个主要区别:①在学习阶段,随机网络不像 其他网络那样基于某种确定性算法调整权值,而是按某种概率分布进行修改②在运行阶 段,随机网络不是按某种确定性的网络方程进行状态演变,而是按某种概率分布决定其状态 的转移。神经元的净输人不能决定其状态取1还是取0,但能决定其状态取1还是取0的概率,这就是随机神经网络的基本概念。
二、模拟退火算法
A、模拟退火原理
模拟退火算法是随机网络中解决能置局部极小问题的一个有效方法,其基本思想是模拟 金属退火过程。金属退火过程大致是,先将物体加热至高温.使其原子处于高速运动状态, 此时物体具有较高的内能;然后,缓慢降温,随着温度的下降,原子运动速度减慢,内能下 降;最后,整个物体达到内能最低的状态。模拟退火过程相当于沿水平方向晃动托盘,温度 高则意味着晃动的幅度大,小球肯定会从任何低谷中跳出,而落人另一个低谷。这个低谷的 高度(网络能量)可能比小球原来所在低谷的高度低(网络能量下降),但也可能反而比原 来髙(能量上升)。后一种情况的出现,从局部和当前来看,这个运动方向似乎是错误的; 但从全局和发展的角度看,正是由于给小球陚予了“爬山”的本事,才使它有可能跳出局部 低谷而最终落人全局低谷。当然,晃动托盘的力度要合适,并且还要由强至弱(温度逐渐F 降),小球才不致因为有了“爬山”的本领而越爬越高。
在随机网络学习过程中,先令网络权值作随机变化,然后计算变化后的网络能量函数。 网络权值的修改应遵循以下准则:若权值变化后能量变小,则接受这种变化;否则也不应完 全拒绝这种变化,而是按预先选定的概率分布接受权值的这种变化。其目的在于陚予网络一 定的“爬山”能力。实现这一思想的一个有效方法就是Metropolis等提出的模拟退火算法„ 设X代表某一物质体系的微观状态(一组状态变量,如粒子的速度和位置等),E(X)表示该物质在某微观状态F的内能,对于给定温度T,如果体系处于热平衡状态,则在降温退火过程中,其处于某能量状态的概率与温度的关系遵循Boltzmann分布规律•分布函
数为: