此时在Tm下所求得的网络稳定状态,即为网络的输出。
对于上述的Boltzmann机的运行步骤需要注意以下几点:
(1)初始温度T0的选择方法。
初始温度T0的选取主要有以下方法:
随机选取网络中k个神经元,选取这k个神经元能量的方差作为T0;在初始网络中选取使ΔE最大的两个神经元,取T0为ΔEmax的若干倍;按经验值给出T0等。
(2)确定终止温度阈值Tfinal的方法。
主要根据经验选取,若在连续若干温度下网络状态保持不变,也可认为已达到终止温度。
(3)概率阈值ξ的确定方法。
ξ的选取方法主要有:
在网络初始化时按照经验确定或在网络每次运行过程中选取一个[0,0.5]之间均匀分布的随机数。
(4)网络权值wij的确定方法。
在Boltzmann机运行之前先按照外界环境的概率分布设计好网络权值wij,详细请见6.2.4节的讨论。
(5)在每一温度下达到热平衡的条件。
通常在每一温度下,实验足够多的次数,直至网络状态在此温度下不再发生变化为止。
(6)降温的方法。
通常采用指数的方法进行降温,即:
(6.11)
为加快网络收敛速度也可采用倍乘一个小于1的降温系数的方法进行快速降温。
前面6.2.3所讨论的Boltzmann机的运行步骤涉及到网络权值wij的确定,下面讨论网络权值wij的确定,即Boltzmann机的学习规则。
6.1.4Boltzmann机的学习规则
Boltzmann机是一种随机神经网络,可使用概率中的似然函数量度其模拟外界环境概率分布的性能。
因此,Boltzmann机的学习规则就是根据最大似然规则,通过调整权值wij,最小化似然函数或其对数。
假设给定需要网络模拟其概率分布的样本集合
,Vx是样本集合中的一个状态向量,Vx即可代表网络中显见神经元的一个状态,假设向量Vy表示网络中隐见神经元的一个可能状态,则V=[VxVy]即可表示整个网络所处的状态。
由于网络学习的最终目的是模拟外界给定样本集合的概率分布,而Boltzmann机含有显见神经元和隐见神经元,因此Boltzmann机的学习过程包括以下两个阶段:
(1)主动阶段:
网络在外界环境约束下运行,即由样本集合中的状态向量Vx控制显见神经元的状态。
定义神经元i和j的状态在主动阶段的平均关联为:
(6.12)
其中概率P(Vy|Vx)表示网络的显见神经元约束在Vx下隐见神经元处于Vy的条件概率,它与网络在主动阶段的运行过程有关。
(2)被动阶段:
网络不受外界环境约束,显见神经元和隐见神经元自由运行,不受约束。
定义神经元i和j的状态在被动阶段的平均关联为:
(6.13)
P(V)为网络处于V状态时的概率,vi和vj分别是神经元i和j的输出状态。
由于网络在自由运行阶段服从Boltzmann分布,因此:
E(V)为网络处于V状态时的能量。
为最小化似然函数或其对数,网络的权值wij需遵循下面的调整规则:
(6.14)
wij(t)为在第t步时神经元i,j之间的连接权值,η为学习速率,T是网络温度。
网络在学习过程中,将样本集合
的所有样本状态Vx送入网络运行,在主动阶段达到热平衡状态时,统计出
;从被动阶段运行的热平衡状态中统计出
,在温度T下根据式(6.14)对网络权值进行调整,如此反复,直至网络的状态能够模拟样本集合的概率分布为止。
这就是Boltzmann机学习的整个过程。
通过前面对Boltzmann机的结构、运行规则以及学习算法的讨论,可见Boltzmann机具有以下优点:
(1)通过训练,神经元体现了与周围环境相匹配的概率分布;
(2)网络提供了一种可用于寻找、表示和训练的普遍方法;
(3)若保证学习过程中温度降低的足够慢,根据状态的演化,可以使网络状态的能量达到全局最小点。
另外,从学习的角度观察,上面的权值调整规则具有两层相反的含义:
首先,在主动阶段(外界环境约束条件下),这种学习规则本质上就是Hebb学习规则,其次在被动阶段(自由运行条件下),网络并没有学习到外界的概率分布或会遗忘外界的概率分布。
使用被动阶段的主要原因在于:
由于能量空间最速下降的方向和概率空间最速下降的方向不同,因此需要运行被动阶段来消除两者之间的不同。
但是在Boltzmann机的学习过程中被动阶段的存在具有两个很大的缺点:
(1)增加计算时间。
在外界环境约束条件下,一些神经元由外部环境约束,而在自由运行条件下,所有的神经元自由运行,这样增加了Boltzmann机的随机仿真时间。
(2)对于统计错误的敏感。
Boltzmann机的学习规则包含了主动阶段关联和被动阶段关联的差值。
当这两种关联相类似时,取样噪声的存在使得这个差值更加不准确。
从6.1.3所讨论的Boltzmann机的运行步骤中可以看到,Boltzmann机的运行主要包括两个过程:
在一个确定温度T下的随机取样过程(第一步至第四步)和温度下降即退火的过程(第五步)。
这就是目前在组合优化问题中应用非常广泛的模拟退火算法。
模拟退火算法将在6.3节中详细讨论,下面先介绍对Boltzmann机的改进。
6.2Boltzmann机的改进
为解决Boltzmann机学习过程中存在的缺点,可从两个方面入手:
一是针对Boltzmann机学习时间太长的问题,采用确定性Boltzmann机加以解决;二是针对Boltzmann机学习存在着被动阶段的问题,采用Sigmoid置信度网络加以解决。
6.2.1确定性Boltzmann机
由于Boltzmann机在学习过程中需要计算网络中每对神经元的平均关联,当网络所含神经元的数目过大时,需要的计算时间也非常大。
可以证明Boltzmann机的学习时间同网络神经元的数目呈指数关系。
Boltzmann机在学习过程中存在的运算时间过长的问题使其很难在实际问题中加以应用。
目前,还没有一种数学方法可以精确评价Boltzmann机的行为,但是可以使用平均场逼近的方法来逼近Boltzmann机的行为。
在实际中,为解决大部分网络随机运行的问题,我们只需知道网络状态的平均值或网络中神经元状态的平均值,即可逼近Boltzmann机的行为。
因此可以将统计物理学中著名的平均场理论(MeanFieldTheory)引入随机神经网络的讨论中。
1987年Peterson和Anderson使用平均场理论提出了一种加速Boltzmann学习过程的方法,为与具有随机特性的Boltzmann机相区别,该方法被称为确定性Boltzmann机(DeterministicBoltzmannMachine)。
该方法将式(6.14)中Boltzmann学习规则中的平均关联替换为平均场逼近,即:
(6.15)
由平均场理论可以得到式(6.15)平均场方程中的。
1.平均场理论
为研究物理学中的Ising或者Sherrington-Kirkpatrick模型,Landau于1937年提出了平均场理论,这是研究连续相变的普遍理论。
1985年D.J.Amit采用平均场理论研究联想记忆问题。
1987年Peterson和Anderson使用平均场理论来研究确定性Boltzmann机。
根据平均场理论,首先需要知道网络中每个神经元状态的平均值,令表示网络中神经元i状态的平均值。
神经元i的输出状态以概率规则描述如下:
(6.16)
此处
(6.17)
T为温度参数。
因此,可以用神经元i的输入表达:
(6.18)
这就是Boltzmann机神经元的平均场逼近。
平均场逼近的基本概念在于:
将每个神经元i的真实输入替换为其平均值,即:
(6.19)
因此,需要计算由n个神经元组成的Boltzmann机中神经元i的平均输出。
与式(6.18)随机神经元的平均场逼近类似,得到下式:
(6.20)
式(6.20)表明:
一个随机变量函数的平均值可以由此随机变量平均值的函数逼近。
2.确定性Boltzmann机
通过上面部分对于平均场理论的讨论可知,可以通过平均场逼近需要计算平均关联的Boltzmann学习形式。
式(6.14)所确定的标准Boltzmann学习规则可近似为:
(6.21)
此处
和
分别是显见神经元i在约束条件和自由运行条件下的平均输出,η为学习速率参数。
这种方法称作“确定性Boltzmann学习规则”,而这种神经网络则称作确定性Boltzmann机。
确定性Boltzmann机可将标准Boltzmann机的学习速度提高一至两个数量级,但在实际应用中需注意以下两点:
(1)确定性Boltzmann学习规则只在有监督条件下起作用。
无监督学习不能在所有的平均场框架中起作用,因为平均状态不能很好的表示自由运行状态的概率分布。
(2)在有监督学习中,确定性Boltzmann学习要求神经网络只有一个单隐层(Galland,1993)。
在理论中可使用多个隐层,但在实际中,使用超过一个隐层会导致
(1)中所提到的无监督学习的相同问题。
6.2.2Sigmoid置信度网络
针对Boltzmann机学习过程中被动阶段存在增加计算时间和对统计错误敏感的缺点,Neal在1992年提出了Sigmoid置信度网络,也称为逻辑推理网络。
提出此网络的目的在于寻找一种随机神经网络,使其可以具有Boltzmann机从二值向量中学习任意概率分布的能力,而又没有Boltzmann机学习过程中需要被动阶段的缺点。
Sigmoid置信度网络通过控制学习过程而不是使用被动阶段,来避免上述的缺点。
1.Sigmoid置信度网络的结构
Sigmoid置信度网络将Boltzmann机中的对称连接转变为无反馈直接连接的形式,无反馈的连接特性可简化概率计算。
Sigmoid置信度网络由多层结构的二值随机神经元构成,并使用Sigmoid函数计算每个神经元的条件概率。
Sigmoid置信度网络的结构如图6.5:
图6.5Sigmoid置信度网络的结构
从图6.5中可见,Sigmoid置信度网络结构为典型的前向网络,其输入、输出为二值变量。
设Sigmoid置信度网络由n个神经元组成,每个神经元的状态由二值随机变量V1,V2,…,Vn表示,则向量V={V1,V2,…,Vn}即可表示网络的状态。
定义pa(Vi)为网络中前i-1个神经元状态的一个子集,表示如下:
(6.22)
pa(Vi)是随机向量V的子集。
因此:
(6.23)
第i个神经元的激活概率由Sigmoid函数定义为:
(6.24)
此处wij为从神经元j到神经元i的连接权值,f(﹒)为Sigmoid函数。
从(6.24)式中可以看出,条件概率P(Vi=vi|pa(Vi))只与pa(Vi)有关。
式(6.24)所定义的第i个神经元的激活概率是在网络中传播推理的基础。
在Sigmoid置信度网络中计算概率,需注意以下两点:
(1)对于不属于pa(Vi)的所有Vj,wij=0
(2)对于所有的
,wij=0
第一点由pa(Vi)的定义所决定。
第二点是由于Sigmoid置信度网络神经元的直接无反馈连接。
Sigmoid置信度网络的随机操作比Boltzmann机要复杂。
这种随机神经网络在概率空间中使用梯度下降的学习算法。
2.Sigmoid置信度网络学习算法
令
表示训练样本集,代表需要网络学习的某种概率分布。
假设每个样本都是二值的。
由状态向量V决定网络神经元数量。
定义状态向量的子集Vx代表训练数据的特征,即Vx是表示显见神经元的状态向量。
剩下的状态向量表示为Vy,即,隐见神经元的状态向量。
从上面的讨论中可知,对于给定状态向量V,Sigmoid置信度网络的设计高度依赖于显见神经元和隐见神经元的排列方式。
因此,显见神经元与隐含神经元不同的排列方式会导致不同的结构。
按照梯度下降的思路,将Sigmoid置信度网络神经元的阈值归并至连接权值wij中。
则Sigmoid置信度网络第t+1步的权值调整规则如下:
(6.25)
其中:
(6.26)
――神经元i和j的平均关联
wij(t)为第t步时神经元i,j的连接权值,η为学习速率,T是网络温度。
从式(6.25)和(6.26)的表述中可知,Sigmoid置信度网络在学习过程中摈弃了自由运行的过程,即网络只需在训练样本约束条件下进行学习,从而达到去除被动阶段的目的。
网络连接权值的变化以整个训练样本集合为基础。
如同Boltzmann机一样,将模拟退火加入Sigmoid置信度