冰冰点灯,照亮我家门前~
欢迎进入nnetinfo
用户名:
密码:
深圳学习数据分析,数据挖掘,请联系yahushuxue@163.com~
nnetinfo : 本网发布神经网络相关的学习与研讨内容。
当前位置:教学区
神经网络初始化nguyen_Widrow法(上)
作者:xiaoH   日期:2015-11-12 17:20:09.0

                                                 本文由xiaoH翻译,有什么译的不对的地方,请联系本站.     

nguyen_Widrow法是研究神经网络初始化方法的重要文章,被多次引用,原文可在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],.我们使用一个通过选择网络的初

始权重来加速训练程序的方法,来说明这是怎么工作的.两层网络的输入与输出之间的关系可以由以下方程表达:

                                

        y是网络的输出,Xj是输入向量.H是隐节点个数,Wi是第i个隐节点的权重向量,

        wbi是第i个隐节点的阈值,vi是输出层与第i个隐节点的权重.

 

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

       为了说明隐节点的特性,现在训练一个单输入的双层网络拟合单变量函数d(x),即使用BP算法训练网络,使网络训练

为:当给定x作为输入时,网络能够输出d(x).网络的输出给出如下:

                                   

定义yi为上式求和的第i项明显很有好处:

                                                      

它是第i个隐节点的的输出乘以vi.这里使用的sigmoid函数是双曲正切函数

                                                           

        x在-1和1之间时,它近似斜率为1的线性,当x变得更大的时候,它会饱和于-1和1.所以在方程2中求和的每一项都纯

粹是x在一个小区间上的线性函数.区间的大小取决于wi,大的wi会得到一个小的区间.区间的位置取决于wbi,例如区间

的中点坐落于 x = - wbi /wi,  yi(x)在区间的斜率近似于 vi *wi。训练期间,网络学习如何用近似于逐段线性函数的yi(x)

来填满期望函数d(x). 区间.接下来这些片段叠加,组成完成的拟合.

       为了说明这点,训练一个4隐节点的网络去拟合函数d(x)( 图1),权重v1,w1和wbi以-0.5到0.5的均匀分布随机初始化.

训练前和训练后的yi(x)值在图2展示(along with the final output)

                          

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

 

       

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

 

提高学习速度

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

做的.然而,在例子中见到,权重需要移动到这样的形式:目标区间被分割为小区间.接下来理所当然考虑通过设置隐层的

初始权重,使每个隐节点在训练的开始就被赋上它自己的区间,来提高训练程序的速度.网络像之前一样训练,在训练期

间每个隐节点仍然有调整它自己的区间大小和区间位置的自由.然而,由于我们设置它们初始值的方法会消除主要的调

整,所以这些调整大多数会比较小.

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

个长度为2/H的区间.由于sigmoid(wix+wbi)近似于线性:

                                                    

这会使区间:

                                                    

其中长度为2/wi.所以

                                                                   

        然而,最好是让区间有些轻微的重叠,所以我们使用wi=0.7H.下一步,选择wbi,使区间随机坐落在区间-1 x<1上.一

个区间的中心坐落在:

                                                                  x= -wbi /w  =(-1,1)上的均匀分布值

这样,我们设置

                                                                    wbi = (-|wi|,|wi|)上的均匀分布值

          一个以这种方式初始化权重的网络用于训练拟合上一章节中的d(x),图3展示训练前与训练后的拟合y(x)的yi(x)。

图4展示两种方案(上面所说的权值初始化方案和在[-0.5,0.5]均匀分布上随机选择权值的方案)均方误差随着训练时间

的变化.运行时两种方案其他所有参数都一样.注意在训练之后x的取值区间是怎么被分为更小的区间,每个隐节点在它们

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

        

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

                    

                          图4:一个如上文所说,用于拟合d(x)的网络训练过程的学习曲线。 实线:用文中所说的方

                                      法初始化网络权重.虚线:在-0.5与0.5之间随机初始化权重.

 

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

 

                  

==============<原创文章,转载请说明来自神经网络之家www.nnetinfo.com>     =========