老饼讲解-神经网络
自实现-BP神经网络
基本原理
附件:nguyen_Widrow法初始化BP网络译文(上)
作者 : 老饼 日期 : 2022-06-09 04:52:27 更新 : 2022-06-29 01:24:33
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》bp.bbbdata.com


《nguyen_Widrow法》是研究神经网络初始化方法的重要文章,被多次引用,下文由本网翻译,有不对之处,还请联系本站纠正。





 使用权重初始值自适应算法提高2层神经网络的学习速度

Improving the learning Speed of 2-Layer Neural Networks

by Choosing Initial Values of the Adaptive Weights                                

作者:Derrick Nguyen 和Bernard Widrow

信息系统实验室

斯坦福大学

斯坦福,CA 94305     



简介


已被证明,一个两层神经网络可以通过调整隐节点来拟合任何非线性函数.本文先分析一个输入的网络,接着分析多个输入的网络.
分析的结果是得到一个初始化网络权重的公式,该公式可以减少网络的训练时间. 最后给出训练例子和这些例子的学习曲线,来表明减少了必要的训练时间.




介绍

两层前向神经网络已被证明, 只要它们有足够的隐节点个数,就能够拟合任何函数[1],
我们使用一个通过选择网络的初始权重来加速训练程序的方法,来说明这是怎么工作的.

两层网络的输入与输出之间的关系可以由以下方程表达:
 
 
......(1)

y 是网络的输出,                            
X 是输入向量.                               
H 是隐节点个数,                           
Wi 是第 i 个隐节点的权重向量,     
 是第i个隐节点的阈值,            
 是输出层与第i个隐节点的权重. 




1个输入的两层网络中,隐节点的特性

为了说明隐节点的特性,现在训练一个单输入的双层网络拟合单变量函数,

即使用BP算法训练网络,使网络训练为:当给定作为输入时,网络能够输出.


网络的输出给出如下:


 .....(2)



为简化所乘的隐节点项的表达,定义为上式的第 i 个求和项:


 .....(3)



这里使用的 sigmoid 函数是双曲正切函数


 .....(4)


x 在 -1 和 1 之间时,它近似斜率为 1 的线性函数,当 x 变得更大的时候,它会饱和于-1和1.

所以在方程 2 中求和的每一项都纯粹是 x 在一个小区间上的线性函数.
区间的大小取决于 wi, 大的wi会得到一个小的区间.
区间的位置取决于wbi,

例如,
区间的中点坐落于 ,   在区间的斜率近似于 
训练期间,网络学习如何用近似于逐段线性函数的 来填满期望函数 d(x)  区间.接下来这些片段叠加,组成完整的拟合.


为了说明这点,训练一个4隐节点的网络去拟合函数d(x)( 图1)

权重,以-0.5到0.5的均匀分布随机初始化.
训练前和训练后的值与最终输出在图2展示



图1:第一个例子的期望输出


图2:权重随机初始化在[-0.5,0.5]时,训练前与训练后的网络的输出和隐节点





提高学习速度

在上面的例子中,我们选择小的随机值作为网络的初始权重.当用BP算法训练网络时,大多数的研究人员都是这样做的.

然而,在例子中见到,
权重需要移动到这样的形式:目标区间被分割为小区间.

接下来理所当然考虑通过设置隐层的初始权重,
使每个隐节点在训练的开始就被赋上它自己的区间,来提高训练程序的速度.

网络像之前一样训练,在训练期间每个隐节点仍然有调整它自己的区间大小和区间位置的自由.
然而,由于我们设置它们初始值的方法会消除主要的调整,所以这些调整大多数会比较小.

在上面的例子,神经网络在区间(-1,1)上拟合,区间长度是2.有H个隐单元节点.
所以每个隐节点会平均拟合一个长度为2/H的区间.

由于近似于线性:

这会使区间:其长度为.

所以


然而,最好是让区间有些轻微的重叠,所以我们使用
  
下一步,选择  ,  使区间随机坐落在区间  -1 x<1上.
一个区间的中心坐落在:
= ”-1 与1 之间的均匀随机值“
这样,我们设置=与 之间的均匀随机值




一个以这种方式初始化权重的网络用于训练拟合上一章节中的d(x), 


图3展示训练前与训练后的和 
图4展示两种方案(上面所说的权值初始化方案和在[-0.5,0.5]均匀分布上随机选择权值的方案)均方误差随着训练时间的变化.
运行时两种方案其他所有参数都一样.


图3:用文中方法初始化权重的网络训练前后的输出和隐节点


图4:一个如上文所说,用于拟合 d(x) 的网络训练过程的学习曲线。 
实线:用文中所说的方法初始化网络权重.虚线:在-0.5与0.5之间随机初始化权重.

注意在训练之后 x 的取值区间是怎么被分为更小的区间,

每个隐节点在它们自已的区间组成一个线性函数拟合d(x),我们节省了极多的训练时间.







 《nguyen_Widrow法初始化BP网络(上)》完结,下文待续。 



联系小饼