前两节我们详细讨论了退火算法和玻尔兹曼分布,本节将使用这两个算法和Hopfield神经网络结合构成新的神经网络即随机神经网络又叫玻尔兹曼机,这个神经网络是模拟能量的特性,从能量角度出发,构造和能量过程类似的神经网络,之所以这样构建和Hopfield神经网络有很大的关系,稍后我们会看到和Hopfield神经网络的异同点。另外这个神经网络不具有实用性,因为计算量太大了,但是我们为什么还要学习呢?一是在此基础上后面会引入改进型的受限玻尔兹曼机,二是我们应该好好体会这样设计的思想,我觉的思想很重要,去体会前人是如何思考问题的,个人觉得最重要的是他把其他领域的思想运用到了神经网络中,这一点很重要,就像现在的神经网络都是在以人脑的基础上进行研究 ,去模仿人脑的生理机制和思考机制,这一点就很重要,也是人工智能落地的重要基础性研究。好,这里就不多说了,和前面的一样,我们先整体的去理解随机神经网络,然后再给出定义,在深入研究,本篇大家只需要知道原理即可,知道和Hopfield神经网络的异同点,知道计算量大体现在哪里就可以了。下面我们开始系统的介绍玻尔兹曼机。

随机神经网络:

        如果将BP算法中的误差函数看作一种能量函数,则BP算法通过不断调整网络参数使其能量函数按梯度单调下降,而反馈网络(Hopfield神经网络)使通过动态演变过程使网络的能量函数沿着梯度单调下降,在这一点上两类网络的指导思想是一致的。正因如此,常常导致网络落人局部极小点而达不到全局最小点,对于BP网,局部极小点意味着训练可能不收敛;对于Hopfield网,则得不到期望的最优解。导致这两类网络陷人局部极小点的原因是,网络的误差函数或能量函数是具有多个极小点的非线性空间,而所用的算法却一味追求网络误差或能量函数的单调下降。也就是说,算法赋子网络的是只会“下山”而不会“爬山”的能力,如果为具有多个局部极小点的系统打一个形象的比喻,设想托盘上有一个凸凹不平的多维能量曲面,若在该曲面上放置一个小球,它在重力作用下.将滚入最邻近的一个低谷(局部最小点)而“不能自拔“但该低谷不一定就是曲面上最低的那个低谷(全局最小点)因此,局部极小问题只能通过改进算法来解决·,本节随机网络可赋予网络既能“下坡”也能“爬山”的本领,因而能有效地克服上述缺陷。机网络与其他神经网络相比有两个主要区别:(1)在学习阶段,随机网络不像其他网络那样基于某种确定性算法调整权值,而是按某种概率分布进行修改。(2)在运行阶段,随机网络不是按某种确定性的网络方程进行状态演变,而是按某种概率分布决定其状态的转移。神经元的净输人不能决定其状态取1还是取0,但能决定其状态取1还是取0的概率。这就是随机神经网络算法的基本概念,下图给出了随机网络算法与梯度下降算法区别的示意图:

模拟退火算法:

          模拟退火算法是随机网络中解决能量局部极小问题的一个有效方法,其基本思想是模拟金属退火过程,金属退火过程大致是,先将物体加热至高温,使其原子处于高速运动状态,此时物体具有较高的内能;然后,缓慢降温,随着温度的下降,原子运动速度减慢,内能下降;最后,整个物体达到内能最低的状态。模拟退火过程相当于沿水平方向晃动托盘,温度高则意味着晃动的幅度大,小球肯定会从任何低谷中跳出,而落人另一个低谷。这个低谷的高度(网络能量)可能比小球原来所在低谷的高度低(网络能量下降),但也可能反而比原来高(能量上升)“后一种情况的出现.从局部和当前来看,这个运动方向似乎是错误的;但从全局和发展的角度看,正是由于给小球赋予了“爬山”的本事,才使它有可能跳出局部低谷而最终落入全局低谷。当然,晃动托盘的力度要合适,并且还要由强至弱(温度逐渐下降),小球才不致因为有了“爬山”的本領而趣爬越高。
          在随机网络学习过程中,先令网络权值作随机变化,然后计算变化后的网络能量函数。网络权值的修改应遵循以下准则:若权值变化后能量变小,则接受这种变化;否则也不应完全拒绝这种变化,而是按预先选定的概率分布接受权值的这种变化。其目的在于赋予网络一定的“爬山”能力。实现这一思想的一个有效方法就是Metropol这等提出的模拟退火算法。
         设X代表某一物质体系的微观状态(一组状态变量,如粒子的速度和位置等),E(X)表示该物质在某微观状态下的内能,对于给定温度T,如果体系处于热平衡状态,则在降温退火过程中,其处于某能量状态的概率与温度的关系遵循Boltzmann分布规律。分布函数为:

                                                  \large P(E)\infty e^{[-\frac{E(X)}{KT}]}

           其中K为玻尔兹曼常数,下面讨论会把K合并到T中。和我们前面讨论是一样的,不同的是E(x)。

根据上式和上图可以看出,当温度一定时,物质体系的能量越高,其处于该状态的概率就越低,因此物质体系的内能趋向于向能量降低的方向演变。如给定不同的温度,上式表示的曲线变化:当物体温度T较高时,P(E)对能量E的大小不敏感,因此物体处于高能或低能状态的概率相差不大;随着温度T的下降,物质处于高能状态的概率随之减小,而处于低能状态的概率增加;当温度度接近0时,物体处于低能状态的概率接近1。由此可见,温度参数T越高,状态越容易变化“为了使物质体系最终收敛到低温下的平衡态,应在退火开始时设置较高的温度,然后逐渐降温,最后物质体系将以相当高的概率收敛到最低能量状态。用随机神经网络解决优化问题时,通过数学算法模拟了以上退火过程.模拟方法是,定义一个网络温度以模仿物质的退火温度,取网络能量为欲优化的目标函数。网络运行开始时温度较高·调整权值时允许目标数偶尔向增大的方向变化,以使网络能跳出那些能量的局
部极小点。随着网络温度不断下降至0,最终以概率1稳定在其能量数的全局最小点,从而获得最优解。

玻尔兹曼机

G.E.Hinton等于1983~1986年提出一种称为Boltzmann机的随机神经网络。在这种网络中神经元只有两种输出状态,即单极性二进制的0或1。状态的取值根据概率统计法则决定,由于这种概率统计法则的表达形式与著名统计力学家Boltzmann提出的Boltzmann分布类似,故将这种网络取名BoltzmannMachine(BM).

BM网络运行原理

(1)BM网络的拓扑结构

       BM网络的拓扑结构比较特殊,介于DHNN网的全互连结构与BP网的层次结构之间。从形式上看,BM网络与单层反馈网络DHNN网相似,具有对称权值,即\large w_{ij}=w_{ji},且\large w_{ii}=0。但从神经元的功能上看,BM网络与三层BP网相似,具 有输人节点、隐节点和输节点称为可见节点,而将隐节点称为不可见节点。训练时输人输出节点接收训练集样本,而隐节点主要起辅助作用,用来实现输人与输出之间的联系,使训练集能在可见单元再现。BM网络的三类节点之间没有明显的层次,连接形式可用上图的有向图表示。
(2)神经元的转移概率函数

       设BM网络中单个神经元的净输人为:

                                                   \large net_j = \sum_{i}^{n}(w_{ij}x_i - T_j)

         与DHNN网不同的是,以上净输入并不能通过符号转移函数直接获得确定的输出转态,实际输出状态按某种概率发生,神经元的净输入可通过sigmod函数获得输出某种状态的转移概率:

                                                   \large P_j(1) = \frac{1}{1+e^{-net_j/T}}                                                            (1)

式中,\large p_j(1)表示神经元j输出状态为1的概率,状态0的概率为:

                                                    \large P_j(0) = 1-P_j(1)

其中概率转移函数的图形为:

 从上图可以看出,如果净输入为0.则\large P_j(1)=P_j(0)=0.5,净输入越大,神经元取1的概率越大;净输入越小,神经元取0的概率越大。而温度T的变化可改变概率曲线的形状,对于同一净输入\large p_j(1)\large p_j(0)的差别小;而温度T低时概率曲线变陡峭,对于同一净输入\large p_j(1)\large p_j(0)的差别很大,当T=0,根据(1)式中的概率退化为符号函数,神经元的输出将无随机性。

  (3)网络能量函数与运行的搜索机制

          BM网络采用了与DHNN网络相同的能量函数描述网络的状态:

                                               \large E(t) = -\frac{1}{2}x^T(t)wx(t) + x^T(t)T

                                                             \large =-\frac{1}{2}\sum_{j=1}^{n}\sum_{i=1}^{n}w_{ij}x_ix_j+\sum_{i=1}^{n}T_ix_i                                            (2)

           设BM网络按异步方式工作,每次第j个神经元改变状态,根据深度学习 --- Hopfield神经网络详解中的(5)式:

                                                \large \Delta E(t) = -\Delta x_j(t)net_j(t)                                                                           (3)

我们再次分析一下可能出现的情况:

 情况a:当\large net_j> 0时,由(1)式或者上图可知,此时\large p_j(1)> 0.5,即神经元j有较大的概率取\large x_j=1,若原来\large x_j=1,则\large \Delta x_j = 0,从而\large \Delta E=0;若原来\large x_j=0,则\large \Delta x_j = 1,从而\large \Delta E< 0

情况b:当\large net_j< 0时,根据(1)式或者上图,此时\large p_j(1)< 0.5,即神经元j有较大的概率取\large x_j=0,若原来\large x_j=1,则\large \Delta x_j = -1,从而\large \Delta E< 0;若原来\large x_j=0,则\large \Delta x_j = 0,从而\large \Delta E= 0

以上对各种可能情况讨论的结果与深度学习 --- Hopfield神经网络详解讨论结果一致·但需要注意的是,对于BM网络,随着网络状态的演变,从概率的意义上网络的能量总是朝着减小的方向变化,这就意味着尽管网络能量的总趋势是向着减小的方向演变,但不排除在有些神经元状态可能会按小概率取值,从而使网络能量暂时增加。正是因为有了这种可能性,BM网络才具有了从局部极小的低谷中跳出的“爬山”能力,这一点是BM网络与DHNN网能量变化的根本区别。由于采用了神经元状态按概率随机取值的工作方式,BM网络的能量具有不断跳出位置较高的低谷去搜索位置较低的新低谷的能力,“这种运行方式称为搜索机制,即网络在运行过程中不断地搜索更低的能量极小值,直到达到能量的全局最小。从模拟退火法的原理可以看出,温度T不断下降可使网络能量的“爬山”能力由强减弱,这正是保证BM网络能成功搜索到能量全局最小的有效措施。

(4) BM网络的玻尔兹曼分布

          设x_j=1时对应的网络能量为E_1\large x_j=0时网络能量为E_0,根据前面的分析结果,当x_j由1变变为0时,有\large \Delta x_j = -1,于是有:

                                                         E_0 - E_1 = \Delta E = -(-1)net_j = net_j

           则(1)式变为;

                                                         \large P_j(1) = \frac{1}{1+e^{-\frac{net_j}{T}}} = \frac{1}{1+e^{-\frac{\Delta E}{T}}}

                                                         \large P_j(0) = 1-P_j(1) = \frac{e^{-\frac{\Delta E}{T}}}{1+e^{-\frac{\Delta E}{T}}}

           两式相除,得到:

                                                         \large \frac{P_j(0)}{P_j(1)} = e^{-\frac{\Delta E}{T}} = e^{-\frac{E_0-E_1}{T}}=\frac{e^{-\frac{E_0}{T}}}{e^{-\frac{E_1}{T}}}  

            当x_j由0变为1时,有\large \Delta x_j = -1,于是有:

                                                           \large E_1-E_0 = \Delta E=-net_j

             则(1)式变为:

                                                              \large P_j(1) = \frac{1}{1+e^{\frac{net_j}{T}}} = \frac{1}{1+e^{\frac{\Delta E}{T}}}

                                                               \large P_j(0) = 1-P_j(1) = \frac{e^{\frac{\Delta E}{T}}}{1+e^{\frac{\Delta E}{T}}}

             两式相除,得到:

                                                               \large \frac{P_j(0)}{P_j(1)} = e^{\frac{\Delta E}{T}} = e^{\frac{E_1-E_0}{T}}=\frac{e^{-\frac{E_0}{T}}}{e^{-\frac{E_1}{T}}}

将上式推广到网络中任意两个状态出现的概率与对应能量之间的关系,有:

                                                              \large \frac{P(\alpha )}{P(\beta )} = \frac{e^{-\frac{E_\alpha }{T}}}{e^{-\frac{E_\beta }{T}}}

 

上式就是著名的Boltzmann分布“从式中可以得出两点结论:

   (1)BM网络处于某一状态的概率主要取决于此状态下的能量E,能量越低,概率越大;

   (2)BM网络处于某一状态的概率还取决于温度参数T,温度越高,不同状态出现的概率越接近,网络能量较易跳出局部极小而搜索全局最小;温度低则情况相反。这正是采用模拟退火方法搜索全局最小的原因所在。
       用BM网络进行优化计算时,可构造一个类似于式(2)的的目标函数作为网络的能量函数。为防止目标函数陷人局部极小,采用上述模拟退火算法进行最优解的搜索。即搜索开始时将温度设置得很高,此时神经元为1状态或0状态的机会几乎相等,因此网络能量可以达到任意可能的状态,包括局部极小或全局最小。当温度下降时,不同状态的概率发生变化,能量低的状态出现的概率大,而能量高的状态出现的概率小。当温度逐渐降至0时,每个神经元要么只能取1要么只能取0,此时网络的状态就“凝固”在目标函数的全局最小附近。对应的网络状态就是优化问题的最优解。
       用BM网络进行联想时,可通过学习用网络稳定状态的概率来模拟训练集样本的出现概率。根据学习类型,BM网络可分为自联想和异联想两种情况。自联想型BM网络中的可见节点V与DHNN网中的节点相似,既是输人节点又是输出节点,隐节点H的数目由学习的需要而定,最少可以为0。异联想BM网络中的可见节点V需按功能分为输人节点组I和出节点组O。

 

本节主要从原理上进行讲解,下一节将从学习算法和使用算法讲,希望大家能理解玻尔兹曼机的学习原理,简单来说,随机神经网络他是模拟热力学的能量进行训练的,也因此可以完全消除伪吸引子,这是大家需要深入理解的,本节结束。 

 

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐