神经网络--非确定方法训练网络.

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

网络学习的非确定方法
在此之前已经讲述了感知器、 BP 网络、及 RBF 网络的训练算法,这些算法有一个共同特点:对应于某个样本的一次迭代, 算法都是根据相应样本、神经元状态及网络联接权当前值等计算出本次迭代后网络各联接权的调整量。

即:算法所执行的计算是确定的。

但人脑中有时神经元是按照概率工作的, 神经元在某时刻是处于激励状态还是处于抑制状态具有一定的随机性。

所以为增强神经元状态的随机性, 可使神经元按一定概率工作, 联接权的计算根据一定概率实现随机调整, 这种方法叫做非确定方法, 也称为统计方法 (Statistical Method 。

确定方法非确定方法
联接权修改方法确定按概率原则随机调整
激活原则由激励函数确定神经元的激励或抑制具有随机性
一.基本非确定训练算法
1.基本思想:
从所给网络中随机选取一个联接权,对该联接权提出一个“伪随机调整量” ,若此调整量能使网络性能得到“改善” ,则保留此调整,否则放弃。

这种网络性能的“改善” ,除了那些真正改善网络性能的调整外, 还应该包括一定概率下那些使网络性能暂时变差、但在总的趋势上有助于网络性能改善的调整。

如图 1所示的从 A 点到B 点的移动(跳出局部极小。

图 1 局部极小示意图
以下是有监督方式下对一个多层前馈网络的训练过程。

多层前馈网络结构如下:
(1(2 (M
图 2 多层前馈网络结构设网络样本集为:
}( ( {(2211s s D X D X D X S , , , , , , =
其中 , , , =(21n x x x X , (21m d d d D , , , =为网络输入向量和理想输出向量。

网络共 M
层,其联接权矩阵依次为:
( ( 2((1, , , , , M l W W W W
训练算法如下:
Step1:从样本集 S 中取一样本 (X,D ;
Step2:将 X 输入网络,计算网络实际输出 Y ( (l i
Y , M l , , 2, 1 = ;
Step3:求出网络关于 D 和 Y 的误差测度 E ;
Step4:随机从 ( 2((1, , , M W W W 中选择一个联接权(p ij ω; Step5:随机生成一
个小的随机数(Δp ij ω;
Step6:调整(p ij ω, ( ( (Δp ij p ij p ij
ωωω+=; Step7:用修改后的 ( 2((1, , , M W W W 重新计算 X 对应的 ' Y ;
Step8:求出网络关于 D 和 ' Y 的误差测度 ' E ;
Step9:若 E E <' ,则保留本次对权值矩阵的修改;否则根据概率判断本次修改是否有用,如果认为有用,则保留本次修改,否则放弃。

Step10:重复上述过程,直到网络满足要求。

2.算法说明:
(1训练目标:对样本集中的所有样本,网络能获得最小的误差测度。

常采用理想输出与网络实际输出的方差之和作为目标函数。

(2网络输入层神经元个数为 n ,输出层个数为 m ,设各隐层神经元个数用 k H 表示, 则上述算法 Step4中是从 m H H H H n M ⨯++⨯+⨯-1211 个联接权中随机选择其中一个联接权
(p ij ω,对此可供选择的方法较多。

(3 算法中的(Δp ij ω可采用伪随机数发生器得到, 也可根据网络当前状态按照“能量” 函数的分布去计算,这样虽计算量大些,但对提高算法的效率有好处。

(从理论上讲,联接权的大小应该和网络能量相关
(4算法中 Step9中 E E >' 的操作是为算法能跳出局部极小点而设计的,应用概率原则判断是否接受本次修改。

为使网络从局部极小点逃离,必须允许目标函数暂时变差。

(5用何种标准来判断网络满足要求。

(6 当一个样本输入网络后, 产生的随机修改量可能使网络性能变差, 即该修改无效, 此时能否可以随机抽取其他网络权值进行修改,直至修改有效?
(7对一个选定的样本,能否每次选取若干个联接权进行修改?若修改有效,可一次进行多个权值的更新。

3.局部极小问题:
从数学角度来说,上述问题是求一个 m H H H H n M ⨯++⨯+⨯-1211 元函数的极小点问题, 也就是说算法要在一个极其复杂的高维环境中寻找其全局极小点。

由图1可见, 若
采用基于负梯度的方法修改权值, 则网络一旦陷入局部极小, 就难以逃离出来。

而在上述算法中, 如果权值修改量较大, 就很有可能使网络远离已经陷入的某个极小点, 所以保留使网络性能变差的修改, 同时适当增加修改量将有助于网络逃离局部极小点的束缚。

同样, 权值修改量不宜过大,否则容易造成函数在相邻极值点之间的来回跳动。

一个较好的办法是:在算法初期选择较大的权值修改量, 这样有利于搜索整个输入空间; 然后逐渐减小这个修改量, 但应保证网络有能力从局部极小点跳出; 在算法后期, 进一步减小权值修改量, 当网络进入全局极小点区域时, 网络没有足够能量跳出。

所以权值修改量大小应该和网络的能量相关。

二.模拟退火算法(Annealing Algorithm
网络的目标函数统称定义为网络的某种误差测度。

当误差测度较大时, 表明网络距离全局极小点比较远,所以网络应该具有较大的“能量” ,以使其能逃离可能“路过”的局部极小点;当误差测度较小时,说明距离全局极小点较近,或已进入全局极小点区域,此时网络的“能量”较小,修改网络权值时不足以使其有足够的能量跳出全局极小点。

这一过程可用金属的退火过程形象地描述。

在金属热加工过程中, 金属的温度与其能量有一定关系。

当金属温度超过其熔点(Melting Point时,原子会激烈地随机运动,这种运动趋向于寻找其能量最小的状态。

温度越高, 原子具有的能量就越高。

随着温度的不断降低, 金属逐渐冷却,其原子的能量也越来越小,最后到达能量
最低点,这就是全局极小点。

即通过升高温度可提高金属原子的能量, 使其能摆脱原来的能量状态 (局部极小而最终到达一个更加稳定的状态(全局极小。

1.退火过程描述:
在金属的退火过程中,其能量的状态分布如下:
⎪⎭
⎫⎝⎛∝kT E -E P exp ( 其中: (E P 表示系统处于能量 E 的状态的概率; k 为Boltzmann 常数; T 为系统的绝对温度(开氏温度, Kelvin 。

注意到:
1exp lim =⎪⎪⎭⎫⎝
⎛⎪⎭⎫⎝⎛∞+→kT E - T 所以当温度足够高时, 系统温度 T 起主要作用, 此时对于所有的能量状态 E , 其概率趋于 1, 这表明系统处于高能量状态的概率与处于低能量状态的概率是一样的。

随着温度的降低, E 在决定 /ex p(kT E -的值时作用越来越明显:E 越大, (E P 就越小, 系统处于高能量状态的可能性就越小。

当温度降为 0时, 系统就很难处于一个高能量状态。

(1在高温情况下, T 足够大,对系统所能处的任意能量状态 E ,随 kT E /趋于 0, /ex p(kT E -将趋于 1。

(2在中温情况下, T 比较小,设 21E E >,则:
kT E kT E 21>, ⇒kT
E kT E 21-<-, ⇒ ( (12E P E P > 即:系统处于高能量状态的可能性小于处于低能量状态的可能性。

(3在低温情况下, T 非常小,设 21E E >,则:
⎪⎪⎭
⎫⎝⎛⎪⎭⎫⎝⎛--=⎪⎪⎭⎫⎝⎛--=→→→kT E E kT E kT E E P E P T T T 210210210exp lim /exp( /exp(lim ( (lim 0 exp(1lim 1210=⎪⎪⎪⎭
⎫⎝⎛⎪⎪⎭⎫⎝⎛-=→kT T E E 所以有: ( (12E P E P >>,即:温度趋近于 0时,系统处于低能量状态的概率远远大于系统处于高能量状态的概率。

2.模拟退火算法描述:
可将网络的训练过程看成是让网络寻找最低能量状态的过程, 此时可取网络目标函数为其能量函数, 再定义一个较大的人工温度 T , 并且在训练过程中依据网络的能量和温度来决定其联接权的调整量。

这种方法称为模拟退火组合优化法。

(1基本思想如下:
随机为系统选择一个初始状态}{ (p ij ω,在初始状态下给系统一个小的随机扰动(p ij ω∆, 计算系统的能量变化:
((}{}{ ( ( (p ij p ij p ij E E E ωωω-∆+=∆
若0<∆E ,则接受此扰动;若0≥∆E ,则根据以下概率判断是否接受:
⎪⎭
⎫⎝⎛∆-kT E exp 如果此扰动被接受,则系统从状态}{ (p ij ω变换到 }{ ( (p ij p ij
ωω∆+;否则系统状态保持不变。

逐渐降低温度 T ,并如此重复下去,直至温度最低。

上述过程也称为 Metropolis 抽样过程, 它满足 Boltzmann 分布, 即系统的状态序列}{ (p ij ω满足:
(
⎪⎪⎭
⎫⎝⎛-=kT E T c f p ij }{ex p ( (ω ∑⎪⎪⎭⎫⎝⎛-=kT E T c p ij }{exp 1 ( (ω 设(}{ (p ij E ω表示物质体系在状态}{ (p ij ω时的内能。

对于给定的温度 T ,若系统处于热平衡状态时(}{ (p ij E ω服从 Boltzmann 分布,当温度 T 下降时,内能 E 也随之下降。

若 T 下降的足够慢, 则系统总可以保持热平衡状态, 使其内能在该温度下最低。

当 T 下降至 0K 时, 系统内能达到最小值。

(2模拟退火算法如下:
Step1:初始化各层的权值联接矩阵 0W ,定义人工温度 T 的初值 0T ;
Step2:对每个温度 T 重复如下过程:(2.2)随机从ij } 中选取一个
ij ; ( p ( p (2.1)选取一个样本,计算其实际输出与目标函数;
(2.3)按一定算法产生的一个调整量; ( p ( p (2.4)按照
重新计算相应的输出和目标函数;(2.5)计算;(2.6)如
果,则:(2.6.1)按均匀分布在 [0,1] 区间取一随机数 r ;(2.6.2)按Boltzmann 分布计算接受本次调整的概率:
(2.6.3)如果
r ,则转(2.2);(2.7)用
代替ij };(2.8)如果样本集中还有未被选用的样本,则转
(2.1); Step3:判断在此温度下, Metropolis 抽样是否稳定。

若稳定则转Step4,否则转 Step2; Step4:降低温度 T ; Step5:如果 T 足够小,则结束,否则转 Step2。

三.模拟退火算法使用说明: 1.模拟退火算法是否能达到 E 的最小值,取决于 T0 足够高和 T 下降的足够慢,以及在每个温度下,Metropolis 抽样是
否稳定。

2.温度的初值 T ( 0 可按照如下方法确定:(1) T,即:取初始时系统目标函数的值。

(2),即:取初始时系统目标函数值的若干倍。

(3)依据经验而定,选取某个较大的值作为 T0 。

3.温度的下降原则。

理论上说温度 T 的下降应不快于,。

所以可选用如下的温度下降方法:(1),称为冷却率,取值范围为: [0.8,0.9] 。

(2)Geman 在 1984 年曾证明:温度的下降必须与时间的对数成反比,网络才能收敛到全局极小点。

此时温度的下降采用如下公式:
T0 , t 为人工时间,可采用迭代次数。

.Metropolis 抽样是否稳定的判断。

(1)检验目标函数 E 的均值是否稳定(记录迭代过程中各样本相应的目标函数值);(2)检验是否连续若干步 E 的变化值均小于某个值(为非常小的正数);(3)每个温度下按照固定的或预先设定的步数进行抽样。

5.调整量的确定: ( p (1)简单起见,为小的均匀分布的随机扰动; ( p (2)根据 Boltzmann 分布或 Gauss 分布来计算。

Gauss 分布如下所示:
上式说明:当增加时,其相应的概率将降低。

为求得可采用如下的 Monte Carlo 法:首先对用数值积分法从 0 到求积分,根据网络精度要求设定一个积分长度,构造出如下形式的表格:然后按照均匀分布在[c1 , c N ] 上随机选取一个值 c ,再从中选取 c k ,使 c k 满足:
,最后 c k 所对应的即为需求的权值修改量。

Boltzmann 分布可得到与 Gauss 分布类似的结论。

值得注意的是:值较大时,可能使网络产生振荡;而值较小时,又会影响 ( p ( p 到算法的收敛速度。

6.Cauchy 训练: Cauchy 分布的一般形式为:
用 Cauchy 分布取代上述 Monte Carlo 法中的 Gauss 分布,具有如下优点:(1)按照 Cauchy 分布得到的联接权调整量大于 Gauss 分布得到的调整量。

取得较大联接权调整量的机会越多,训练的速度就越快,算法的效率就高。

(2)用Cauchy 分布取代 Gauss 分布或 Boltzmann 分布,温度 T 可以下降得更快,从而提
高算法训练速度。

此时温度下降公式可为:(3)Cauchy 分布可以直接用常规积分方法计算:
即:
,加上学习率,有。

与Monte Carlo 法相对应,仅需在 [0,1] 区间内按均匀分布随机选取一个数作为,再取当前的温度值 T ,即可算出权值修改量。

7.算法的 Step2 是对每个样本调整一个权值,调整顺序是随机的,所以实际应用中可针对具体情况对算法流程加以适当改变。

四.BP 算法与 Cauchy 训练的结合 Cauchy 训练的速度比 Boltzmann 训练快,但与 BP 算法相比,速度较慢。

其原因在于 BP 算法是沿着能量函数极小化的方向调整联接权值,且每次的调整量是确定的;而 Cauchy 训练,权值的调整是随机的、试探性的,并且有些时候权值的调整是失败的。

但 BP 算法的收敛性由于局部极小值的问题而无法保证; Cauchy 训练的最大优点在于其有可能逃离局部极小点。

因此可将两种方法结合起来。

将联接权的修改量由两部分实现:由 BP 算法提供直接计算部分,由 Cauchy 算法提供随机部分,即:
其中:是根据 Cauchy 算法得到的权值修改量;为上一次的权值修改量;为学习率,在此对“直接计算部分”和“随机部分”起到权值分配作用;为冲量系数。

相关文档
最新文档