《人工神经网络》 第5章 随机型神经网络
随机型神经网络为求全局解提供了有效算法。
Boltzmann 机( Boltzmann Machine )模型采用模拟退火算法,使网络能够摆脱能量局部极小的束缚,最终达到期望的能量全局最小状态,付出的代价是花费较长的时间。
Gaussian 机模型不但具备 HNN 模型的快速收敛特性,而且具有 Boltzmann 机的“爬山“能力。Gaussian 机模型采用模拟退火和锐化技术,使之能够有效的求解优化及满足约束问题。
5.1 模拟退火算法
模拟退火( Simulated Annealing,简称 SA )算法,也称 Metropolis 方法。模拟退火技术是随机神经网络解决能量局部极小问题的一个有效方法。
5.1.1 模拟退火算法原理
模拟退火算法在求解组合优化问题时,引入了统计热力学的一些思想和概念,模拟其达到最低能量状态为系统目标函数的解。基本思想源于物理学中固体物质(如金属)的退火过程。
退火:对固体或者固液混合物的一种加温后再冷却的处理过程,用来产生晶体结构的固体物质。慢冷却过程产生晶体物质。快冷却过程产生玻璃体。我们把晶体和玻璃体与组合优化问题中的全局最优解和局部最优解对应起来。快冷却过程类似于传统的贪婪法或爬山法,慢冷却对应模拟退火算法。
随机选取一个初始状态 Xi,一步一步的测试,找到使内能降低被接受的扰动 ΔXi,变更内能值 Xi = Xi + ΔXi,然后再去找使之降低的扰动,循环一定的次数,所得到的状态 Xi 出现的概率将会服从 Boltzmann 分布:式(5.2)
当 T 从一个足够高的温度下降,对于每一个温度都用上述抽样法计算,使系统逐渐达到平衡。当 T = 0 时,E(Xi)达到最小值,即是所谓退火的”地态“。
模拟退火法与传统的贪婪法或者爬山法的最大的区别在于它们对状态的接受上,这也是该算法的优点所在。爬山法只接受比当前状态好的状态,模拟退火法不但接受好的状态,而且以 Boltzmann 概率接受坏的状态,这在一定程度上避免了搜索停止在局部极小点。理论上说,模拟退火算法可以收敛于全局最优解。
模拟退火算法能否达到 E 的最小值,还取决于 T(0),T 的变化速度,对每个 T 的 Metropolis 抽样稳定性等。
参数的选取没有标准的规定,常用处理方法:
5.1.2 模拟退火算法的收敛性
假设组合优化问题中,求 f :X → R 的最小值。并设 X 中各态可表达为 1,2,... ,x;其中的顺序是按 f 值由大到小排列。
对于每一个状态 i,均有一伴随的邻态集 Ni ,它可由扰动矩阵隐含表示:
解序列是由一个带有传递矩阵 T 的马尔可夫过程产生的:
[ 定理 5.1 ] 如果矩阵 P 是不可约的,并且假设条件(1),(2)均满足,则对于 c > 0,T(c)的本征向量具有如下形式:
5.2 Boltzmann 机
Boltzmann 机模型实际上是将随机扰动机制运用在 Hopfield 模型上。Boltzmann 机引入了统计物理学中的 Boltzmann 分布概率,并采用模拟退火算法,使模型在寻优过程中跳出局部最小点,在全局范围内找到最优解。对于优化问题的求解,Boltzmann 机的工作过程实质上是能量优化的过程。解空间中的每一点代表一个解,不同的解有着不同的代价函数(能量函数)值。优化就是在解空间中寻找代价函数的最小(或最大)解。
5.2.1 Boltzmann 机模型
Boltzmann 机网络可由 n 个神经元组成。每个神经元服从二态规律(只取 0 和 1 两种状态),并假定神经元之间的连接权矩阵是对称的。与一般前向网络相比,Boltzmann 机的网络拓扑结构没有明显的层次,其特色是它的网络以概率方式工作。
5.2.1.1 Boltzmann 机网络的运行方式
Boltzmann 机是具有对称连接权的随机神经网络,每个神经元节点有两个状态,神经元输出 vi 为 vi = 0 或 vi = 1,称之为二值神经元。当神经元的激活函数发生变化时,将引起节点状态的更新,这种更新在各节点之间是异步的、随机的。任意节点 i 当被选择状态更新时,下一状态为 1 的概率为:
式 (5.11) 表示的 S 型函数为 Boltamann 概率函数。下一状态为 0 的概率为
pi(0) = 1 - pi(1)
下图为温度分别取 0.8,2.0,4.0 时的三条概率分布变化曲线
当激活函数 Ai > 0 时,下一状态为 1 的概率 pi(1),pi(1) > pi(0),且随着 Ai 值的增大,pi(1)也越大。同理,当 Ai < 0 时,pi(0) > pi(1),且随着 Ai 值的减小,状态为 0 的概率 pi(0) 越大。概率分布曲线的变曲程度与温度 T 的大小有关,温度越高,曲线越平缓,状态变化越容易;温度越低,曲线越陡峭,状态变化越难。特殊情况,当温度趋于 0(T→0) 时,概率分布曲线近似于单位阶跃函数。单位的激活函数性质就基本上被该概率函数没描述,因为 pi(T = 0) 基本上等价于一个阈值函数。在此情况下,Boltzmann 机与离散 Hopfield 网络是等价的,仅用来描述网络单元状态“思想”出发点不同。
注意稳态和热平衡的区别。对于确定性反馈神经网络,如 HNN 模型,一旦进入稳态,网络状态就不再变化。Boltzmann 机这类随机神经网络模型,在一定温度条件下,网络达到一种热平衡态,这是一种概率意义下的稳态,在此状态下网络状态仍可变化,而状态出现的概率分布不再变化。在一定温度下,从某个初始状态出发,网络可以达到某个平衡状态,但只是概率意义上的平衡,属于马尔可夫过程的平衡分布。
从 0→1 和从 1→0,都有 ΔEi < 0.
不管以上何种情况,随着系统状态的演变,从概率意义上,系统的能量总是朝小的方向变化,所以系统最后总能稳定到能量的极小点附近。由于是随机网络,在能量极小点附近系统也不会停止在某个固定的状态。
由于神经元状态按照概率取值,因此,以上分析只是从概率意义上的说明,网络的能量总的趋势是朝着减小的方向演化,但有些步,神经元的状态可能按小概率取值,从而使能量增加,这种情况对跳出局部极小点有好处。也是 Boltzmann 机与 HNN 的另一个不同之处。
为了有效的演化到网络能量函数的全局最小点,通常采用模拟退火算法来运行网络。开始的时候采用较高的温度 T,此时各状态出现概率的差异不大,比较容易跳出局部极小点进入到全局最小点附近。随后逐渐减小温度 T,各状态出现概率的差异逐渐拉大,从而较为准确地运动到能量的最小点,同时又阻止它跳出该最小点。
对于 Boltzmann 机,当达到热平衡时任意两个全局状态的出现概率之比服从 Boltzmann 分布。式中,pα,pβ 分别为热平衡状态下处于状态 α,β 的概率,Eα,Eβ 相应的能量,T 为温度。
5.2.1.2 Boltzmann 机网络的状态转移
状态转移概率可用一个统一的式子表达为:
状态保持不变的概率可按下式求得:
根据以上两个式子可以方便地确定在不同温度下,各状态转移到其他状态的概率。
从能量变化的角度来看,由高能态向低能态转移时,能量差越大,则转移概率越大;反之,由低能态向高能态转移时,能量差为负,差值越大,转移概率越小。
5.2.1.3 Boltzmann 机状态转移的马尔科夫链表示
用图示方法描述网络的状态转移关系时复杂的、不实用的,利用随机过程中马尔科夫链清晰表达这一关系。
假设在 t 时刻出现状态 Si 的概率为 Pi(t),那么在 t + 1 时刻状态为 Sj 的概率 Pj(t +1) 可以由所有进入该状态的概率求和得到,即
随着时间 t 的增加,在给定温度下,到达各状态的概率将趋近于一个平衡状态。这和网络运行的平衡状态是完全一致的,实际是网络运行的另一种表现形式。
利用马尔科夫链预测将来某一时刻的状态概率分布,是随机神经网络中非常有用的一个技术。
5.2.2 Boltzmann 机学习算法
Boltzmann 机不仅可以解决优化问题,还可以通过学习,模拟外界所给的概率分布,实现联想记忆。学习的实质是修正网络连接权值,使训练集能够在网络上再现。与确定性网络不同的是,Boltzmann 机的训练集通常是一组期望的状态概率分布。Boltzmann 机的学习是有导师的学习。
学习过程分为两个阶段:正相学习期和负相学习期。正相学习期:将输入部神经元状态固定在某个模式,输出部神经元同时定在期望输出模式。反相学习期:只将网络的输入都固定在某一输入模式,输出部单元是自由的,允许输出以任何状态表示。
Boltzmann 机的学习是根据网络状态的改变是按照某种概率的分布而进行的。如下定理是 Boltzmann 机的权值调节(学习)的算法。
当偏差 G 为零时,网络达到期望的训练模式概率分布,训练结束。第二,这种权值修正方法适用于可见单元,也适用于隐单元。这为实现复杂的 Boltzmann 机学习提供了可能。
5.2.3 Boltzmann 机在前向网络中联想记忆算法
当环境信息或样本输入 Boltzmann 机的可视单元后,Boltzmann 机就开始学习。Boltzmann 机中的隐单元用来形成网络的内部表达,用来描述输入样本的规律。Boltzmann 机的单元链接根据不同的实际情况可以有不同的连接方式,在理论上并没有硬性的统一规定。模式联想记忆时 Boltzmann 机的一个应用。
为方便下列算法描述,从逻辑上可以将 Boltzmann 机连接成图 5.7 的前向网络形式。
从上面学习算法的过程中可以看出:网络单元的变化量是根据网络能量按 Boltzmann 分布概率来改变其状态的。这是一种随机型的学习过程,有两个阶段:首先,固定住输入输出模式(钳住),让网络中间的隐单元状态随机变化,网络由此捕获输入输出之间的对应规律,这个规律由对称概率 Qhi 和 Rij 表征。这个阶段也被称为正学习期。其次,仅仅输入单元被“钳住”,让中间隐单元随机变化,此时得到的对称概率分布 Q'hi 和 R'ij,反应了网络在现有连接权下,对输入输出模式对应规律的估计值。这个阶段称为反学习期。
将输入输出之间实际对应规律与估计对应规律之间的差异作为 I/O 层与隐层之间连接权调整的参考误差。随着学习的不断进行,这种差别将越来越小。最终网络将完全捕获输入与输出之间的对应关系。
Boltzmann 机可以看作一种外界概率分布的模拟机,它从加在输入单元的输入模式中,推测外界的概率结构并加以学习和模拟。虽然 Boltzmann 机是一种功能很强的学习算法,并能找出全局最优点,但是由于采用了 Metropolis 算法,其学习的速度受该模拟退火算法的制约,因而一般说来系统的学习时间均较长。所以,当前对 Boltzmann 模拟机的研究主要集中在改进其收敛速度上。
5.3 Gaussian 机
Gaussian 机也称高斯机,是一个随机神经网络模型,它将服从 Gaussian 分布(正态分布)的噪声加到每个神经元的输入,神经元的输出具有分级响应特征和随机性。可以说 Gaussian 机是 HNN 和 Boltzmann 机的结合,但更具有一般性。MP 模型、HNN、Boltzmann 机都是 Gaussian 机的特例。
5.3.1 Gaussian 机模型
(1)神经元模型
Gaussian 机的神经元类似于连续型 HNN 模型的神经元,但也有不同之处,如图 5.8 所示。
任意一个神经元 i(1≤ i ≤ n)的输入由三个部分构成:来自其他神经元的输出 xj、输入偏置(阈值)θi 及由随机噪声引起的输入误差 ε。其中,噪声 ε 是 Gaussian 机中不可缺少的,正是因为这一项打破了神经元输出的确定性。每个神经元的总输入记为 neti:
式中,表示神经元的时间常数;Δt 表示离散时间步长,考虑到收敛性,一般地 Δt 取值在(0,1)区间。
神经元的输出由 S 型作用函数确定。输出值在(0,1)区间取值,受噪声 ε 影响,它是不确定的。若选双曲正切函数(sigmoid 函数),则输出 xi 可表示为:
式中,a0 为参数激活初值,它决定曲线的弯曲程度,即增益变化。如果 a0 趋于 0,那么输出作用函数变为单位阶跃函数。
(2)噪声
Gaussian 机最显著的特征是网络输入 neti 总是要受到随机噪声 ε 的影响。由噪声产生的误差传到激活值 ai,从而影响神经元的输出值 xi。
(3)能量函数
Gaussian 机的收敛性依赖于权值 wij 和输入置值 θi 。其网络结构类似于连续型 HNN,因此采用同样的形式,定义其能量函数为:
Hopfield 已经证明,在下列两个条件下,能量函数 E 随时间单调减小,即,权矩阵 wij 是对称的;所有主对角元素 wij 等于零。在 Gaussian 机中,神经元状态受噪声影响而随机变化,网络状态能量在总的减小趋势下会产生扰动。因此,当噪声充分大时,Gaussian 机模型能达到能量全局最小。
(4)系统参数
Gaussian 机有三个系统参数表明其特征,参数激活值 a0,温度 T,离散时间步长 Δt。通常用表达式 GM( a0, T, Δt ) 表示具有这些参数的 Gaussian 机模型。
当考虑物理模拟的一般情况时,这种粗略的系统动力学描述可能导致严重的错误。但是这种简化描述方法在某些场合仍然很有效。考虑到计算代价,当我们期望得到某一优化问题的实用解而不是理论证明时,具有较小 Δt 值的系统动力学的精确描述是没有太多意义的。
5.3.2 Gaussian 机的子类
由 Gaussian 机模型 GM( a0, T, Δt ),可以在特定条件下推导出 MP 模型、HNN 模型、Boltzmann 机模型。
(1)MP 模型
MP 模型神经元具有三个特征:二值输出;确定性决策;瞬间激活。
对于 Gaussian 机模型,若 a0 = 0,T = 0 同时成立,则输出函数变为单位阶跃函数,输出决策为完全确定性的。所以,GM( 0, 0, 1 ) 表示 MP 模型。
(2)HNN 模型
连续型 HNN 模型三个特征:分级输出,即神经元输出值可在一定范围内连续取值;确定性决策;连续激活。
当温度 T = 0 时,Gaussian 机具有受 a0 控制的 S 型输出作用函数。因此,连续型 HNN 模型可用 GM( a0, 0, Δt ) 表示。特别地,具有很高增益的 HNN 模拟电路可对应于 GM(0, 0, 0) 的情况。
(3)Boltzmann 机模型
Boltzmann 机模型可刻画为:二值输出;随即决策;瞬间激活。其激活函数与 Gaussian 机神经元的总输入相等,如 (5.29) 式。二值输出选择由概率描述,并受温度的影响,如 (5.11) 式,因此,Boltzmann 机模型可用 GM(0, T ,1) 表示。
函数,非常适合与 (5.11) 式定义的 Boltzmann 机模型的概率函数。
当使用的噪声服从对数分布,而不是 Gaussian 分布时,GM(0, T, 1) 表示的模型与 Boltzmann 机完全相同。
5.3.3 Gaussian 机模型锐化与退火
(1)锐化
用 Gaussian 机求解优化问题时,常使用一个有效技术称为输出增益曲线锐化。系统参考激活值 a0 的大小决定了增益曲线的弯曲程度,a0 越大,曲线越平缓,输出为(0,1)之间的中间变化值就越多,这种神经元分级响应特征对粗略寻找能量极小很有益。但是,较大的 a0 对优化问题的收敛性有损害。因此,求解过程中应控制好 a0 的逐渐减小而变得越来越陡峭,当结束时,a0 应充分小。
(2)退火
在 Gaussian 机求解优化问题时,模拟退火技术与锐化技术同样重要。可使用下列双曲调度: