zoukankan      html  css  js  c++  java
  • 随机神经网络之模拟退火

    一、引言

        在机器学习以及优化组合问题中,最常用的方法就是梯度下降法。比如BP神经网络,多层感知器的神经元(units)越多,对应的权矩阵也就越大,每个权可视为一个自由度或者变量。我们知道自由度越高,变量越多,模型越复杂,模型的能力越强。但是模型能力越强,模型就越容易过拟合,对噪声太敏感。另一方面,使用梯度下降进行最优解搜寻时,多变量的误差曲面很像是连绵起伏的山峰一样,变量越多,山峰和山谷也越多,这就导致梯度下降法极容易陷入到局部的一个小山谷,而停止搜索。这就是常规的梯度下降法在解决多维度的优化问题中最常见的局部最优问题。究其原因是梯度下降法的搜索准则所致,按照梯度的负方向搜索,一味追求网络误差或能量函数的降低,使得搜索只具有“下山”的能力,而不具备“爬山”的能力。所谓“爬山”的能力,就是当搜索陷入局部最优时,还能具备一定的“翻山越岭”的能力,能够从局部最优中逃出来,继续搜索全局最优。如果为具有多个局部极小点的系统打一个形象的比喻。设想托盘上有一个凸凹不平的多维能量曲面,若在该曲面上放置一个小球,它在重力作用下,将滚入最邻近的一个低谷(局部最小点)而不能自拔。但该低谷不一定就是曲面上最低的那个低谷(全局最小点)。因此, 局部极小问题只能通过改进算法来解决 。一种可行的办法就是刚才所提到的让算法具有“爬山”的能力,同时还要保证当搜索进入全局最优时不会因为“爬山”而跑出全局最优的“山谷”。本文要讲解的随机神经网络:模拟退火(Simulated Annealing)与玻尔兹曼机(Boltzmann Machine)就是通过一定的概率保证搜索陷入局部最优时能够具有一定的“爬山”能力。这个形象的对比可参看下图:


        随机神经网络与其他神经网络相比有两个主要区别 :① 在学习阶段 , 随机网络不像其他网络那样基于某种确定性算法调整权值,而是按某种概率分布进行修改;② 在运行阶段,随机网络不是按某种确定性的网络方程进行状态演变,而是按某种概率分布决定其状态的转移。神经元的净输入不能决定其状态取1还是取0,但能决定其状态取1还是取0的概率。这就是随机神经网络算法的基本概念。

        本篇博文将主要介绍模拟退火。后续博文将陆续介绍玻尔兹曼机,以及基于模拟退火玻尔兹曼机解决优化组合典型问题:旅行商(TSP)问题的算法实现。

    二、模拟退火

        模拟退火算法是随机网络中解决能量局部极小问题的一个有效方法,其基本思想是模拟金属退火过程。金属退火过程大致是,先将物体加热至高温,使其原子处于高速运动状态, 此时物体具有较高的内能;然后,缓慢降温,随着温度的下降,原子运动速度减慢,内能下降;最后,整个物体达到内能最低的状态。模拟退火过程相当于沿水平方向晃动托盘,温度高则意味着晃动的幅度大,小球肯定会从任何低谷中跳出,而落入另一个低谷。这个低谷的高度(网络能量)可能比小球原来所在低谷的高度低(网络能量下降) ,但也可能反而比原来高(能量上升)。后一种情况的出现,从局部和当前来看,这个运动方向似乎是错误的;但从全局和发展的角度看,正是由于给小球赋予了“爬山”的本事,才使它有可能跳出局部低谷而最终落入全局低谷。当然,晃动托盘的力度要合适,并且还要由强至弱(温度逐渐下降),小球才不致于因为有了“爬山”的本领而越爬越高 。

        在随机网络学习过程中,先令网络权值作随机变化,然后计算变化后的网络能量函数。网络权值的修改应遵循以下准则:若权值变化后能量变小,则接受这种变化;否则也不应完全拒绝这种变化,而是按预先选定的概率分布接受权值的这种变化。其目的在于赋予网络一定的“爬山”能力。 实现这一思想的一个有效方法就是Metropolis 等人提出的模拟退火算法。

        设 X 代表某一物质体系的微观状态(一组状态变量,如粒子的速度和位置等),E(X)表示该物质在某微观状态下的内能,对于给定温度 T,如果体系处于热平衡状态,则在降温退火过程中,其处于某能量状态的概率与温度的关系遵循 Boltzmann 分布规律。分布函数为:

    P(E)∝ exp(-E(X)/KT)

      K为波耳兹曼常数,为了讨论方便,将K直接融入到T中进行讨论。当温度一定时,物质体系的能量越高,其处于该状态的概率就越低,因此物质体系的内能趋向于向能量降低的方向演变。如给定不同的温度,上式表示的曲线变化如下图所示:


      当物体温度T较高时,P(E)对能量E的大小不敏感,因此物体处于高能或低能状态的概率相差不大;随着温度T的下降,物质处于高能状态的概率随之减小而处于低能状态的概率增加;当温度接近0时,物体处于低能状态的概率接近1。由此可见,温度参数T越高,状态越容易变化。为了使物质体系最终收敛到低温下的平衡态,应在退火开始时设置较高的温度,然后逐渐降温,最后物质体系将以相当高的概率收敛到最低能量状态。

      用随机神经网络解决优化问题时,通过数学算法模拟了以上退火过程。模拟方法是,定义一个网络温度以模仿物质的退火温度,取网络能量为欲优化的目标函数。网络运行开始时温度较高,调整权值时允许目标函数偶尔向增大的方向变化,以使网络能跳出那些能量的局部极小点。随着网络温度不断下降至0,最终以概率1稳定在其能量函数的全局最小点,从而获得最优解。

    ******************************

     2015-8-8

    ******************************

  • 相关阅读:
    中文分词学习整理
    机器学习
    TimSort学习资料
    小段子
    Load和CPU利用率是如何算出来的
    sql server xml 截断
    System.Security.Cryptography.CryptographicException: 系统找不到指定的文件
    优化笔记: jxrsfxrxx_D_20140916.gz
    优化笔记: 此两个产品每天8点30分开始,要跑一个小时,看看是否有提升空间
    优化笔记:pfyhparopenfundinfotest_D_20140916.gz
  • 原文地址:https://www.cnblogs.com/huty/p/8519260.html
Copyright © 2011-2022 走看看