1第8章 神经网络的参数优化设计在神经网络的泛化方法中,研究最多的是前馈神经网络的结构优化设计方法(剪枝算法、构造算法及进化算法等,我们将在以后各章讨论)。
除了结构设计,其余前馈神经网络的泛化方法还有主动学习、最优停止法、在数据中插入噪声、神经网络集成及提示学习方法等,由于这些方法中神经网络的结构是固定的,因此神经网络性能是通过参数优化改善的,我们称这些方法为神经网络的参数优化设计方法。
本章介绍最主要的参数优化设计方法,并给出了每种方法的算法实现和仿真例子。
8.1 主动学习8.1.1 原理按照学习机器对训练样本的处理方式,可将学习方式分为两类:被动学习方式和主动学习方式。
被动学习是常用的学习方式,常被称为“从样本中学习” (Learning from samples ),该方式被动地接受训练样本,并通过学习从这些样本中提取尽可能多的信息。
与被动学习相反,主动学习属于更高层次的、具有潜意识的学习。
主动学习对训练样本的选择是主动的,通常通过对输入区域加以限制,有目的地在冗余信息较少的输入区域进行采样,并选择最有利于提高学习机器性能的样本来训练分类器,从而提高了整个训练样本集的质量。
由上一章的讨论,训练样本质量对神经网络的泛化能力有极大影响,甚至超过网络结构对泛化能力的影响。
因此采用主动学习方法,是改进神经网络泛化能力的一个重要方法。
主动学习机制大部分用于分类或概念学习[Baum1991,HwCh1990,SeOp1992]。
在单概念学习中,Mitchell[Mitch1982]关于版本空间(Version Space)的论述有着较大的影响。
下面,我们先简要介绍一下这一理论。
如果X 为一线性空间,概念c 定义为X 中点的集合。
对目标概念t ,训练样本可写为()()x x t ,,其中X ∈x 为样本输入,()x t 为对x 的分类。
如果t ∈x ,则()1=x t ,称()()x x t ,为t 的正样本;如果t ∉x ,则()0=x t ,此时称()()x x t ,为t 的负样本。
显然,对线性空间内的任何两个可分概念1c 和2c ,如果()()x x 1,c 是1c 的正样本(负样本),则()()x x 11,c −必然是2c 的负样本(正样本),即任意两个可分概念的正负样本之间可以互相转换。
如果某概念c 对x 的分类与目标概念对其的分类()x t 相等,即()()x x t c =,2称概念c 与目标概念的样本()()x x t ,是一致的(Consistent)。
给定目标概念的一个训练样本集(包括正样本和负样本),在其限制下进行概念学习后,将得到一个学习后的概念,该概念应尽可能接近目标概念。
这个学习后的概念被称为归纳。
学习的过程也就是从目标概念的样本集得到归纳的过程。
于是,每个归纳都代表一个点集,且该归纳与训练样本集一致,即该点集中包含了所有的正样本输入,而不包括任何一个负样本输入。
显然,与同一个训练样本集一致的归纳可能有多个,而所谓版本空间,即是与给定训练样本集一致的所有可能归纳的空间。
版本空间的概念也可描述如下:对概念类C 和给定训练样本集T ,版本空间定义为集合C 的一个子集T C ,其中{}中所有样本一致与且T c C c C T ,∈=。
Mitchell[Mitch1982]假定T C 是一个偏序结构,并把单个概念的学习过程看成是T C 中的搜索过程。
在版本空间理论中,称归纳1c 比归纳2c 更一般(more general),当且仅当12c c ⊂。
对两个不相等的归纳1c 和2c ,如果12c c ⊄且21c c ⊄,则称1c 和2c 是不可比的。
T C 中最小(most general )元素G 定义为:{}c c C c C c G T T ′⊂∈′∈=有且对所有,。
类似地,定义最大(most specific )元素S 为:{}c c C c C c S T T ⊂′∈′∈=有且对所有,。
在Cohn[Cohn1994]的基于版本空间理论的神经网络选择采样方法中,需用两个BP 网分别实现归纳S 和G ,称为S-net 和G-net ,然后进行以下操作:在空间按一定概率产生一个输入x ,并通过检查x 是否落入S 和G 的差集G S −(被称为不确定区域)中,我们便可以判断x 点处的样本是否能提供新的信息。
若G S −∉x ,则抛弃x ;否则进行一次采样,即询问x 的分类()x c 。
如果()1=x c (正样本),则推广(Generalize )G ,结果使G ∈x ;否则如()0=x c (负样本),则特化(Specialize )S ,结果使S ∉x 。
可见,由于每次采样都在较好的位置进行,故每个样本都能得到新的信息,从而改进了整个训练样本集的质量,使最终的神经网络有较好的泛化能力。
主动学习机制一般通过“询问”(Query )的方式实现,步骤如下:(1) 在输入定义域内按某种概率取一点x ;(2) 判断该点是否位于不确定区,如果不位于不确定区,则抛弃该点;否则“询问”该点输出y (进行一次采样);(3) 把),(y x 加入样本集进行训练,直至采到足够的样本。
主动学习也可用于函数逼近,Mackay[Mack1992c ]讨论了贝叶斯框架下候选样本输入点信息的几个测度,可用于函数逼近问题的选择采样。
8.1.2 仿真例子:三角形概念学习在本例中,我们用神经网络实现三角形概念的主动学习,Cohn[Cohn1994]曾用两个3BP 网(分别实现归纳S 和G ,称为S-net 和G-net )学习该例子。
但是,由于Sigmoidal 神经元具有全局特性,给定位不确定区域带来了困难,因此Cohn 使用了背景样本(Background Samples ),但同时也带来了参数不易整定的问题;使用BP 网的另一个问题是神经网络规模无法确定。
事实上,如果采用RBF 网进行概念的主动学习,则利用RBF 网的局部特性和采用在线学习方式,上述问题均可得到解决。
在本例子中,我们也用两个RBF 网实现选择采样,这两个子网分别实现归纳S 和G ,沿用Cohn 的叫法,我们也称之为S-net 和G-net 。
为测试了学习系统的泛化能力,我们选择采样和随机采样策略进行了比较。
随机采样时,我们在)2,2()2,2(−×−范围内随机产生200个均匀分布的样本输入,对每个样本输入都“询问”该点输出;选择采样时,我们也在)2,2()2,2(−×−范围内随机产生样本输入,但只对那些位于不确定区域的样本输入才“询问”该点输出。
两种采样策略都产生200个训练样本。
每次采到一个新样本后,我们都先为该样本分配一个新隐节点,新隐节点的节点中心为新样本输入,输出权值为网络对该样本的偏差,扩展常数取固定值;然后进一步优化网络结构,即用梯度法调整网络各隐节点中心和输出权值,并合并网络中重叠的隐节点(如果有的话)。
随机采样和选择采样系统的学习参数设置如下:梯度法训练时学习率0.05,每个新增隐节点的扩展常数为0.4,两个隐节点中心之间的距离小于0.01时合并这两个隐节点。
图8.1 随机采样得到的200个样本为测试学习系统的泛化误差,我们还在区间)2,2()2,2(−×−内产生16814141=×个等间隔分布的测试样本。
图8.1和8.2所示分别为某次试验中随机采样和选择采样得到的200个样本。
由图可见,与随机采样相比,由于每个样本都位于不确定区域,因此选择采样得到的样本更多地集中在两类样本地交界处,即三角形概念地边界附近,这也与我们的期望是一致的。
另外,在该次试验中,采用选择采样策略时两个子网的最终隐节点数为84和23,对所有测试样本的测试误差(泛化误差)为1.90%;而采用随机采样策略时,两个子网的最终隐节点数为171和28,测试误差则为4.52%。
图8.2 选择采样得到的200个样本图8.3 两种学习方式的测试误差曲线为进一步对比两种学习系统的泛化能力,我们记录了两种学习方式下,随着训练样本的增加,学习系统对所有测试样本的测试误差的变化曲线,如图8.3所示。
可见,随着训练样本的增加,两个学习系统的泛化性能都在改善,但相比之下选择采样系统的泛化误差显然更小(图8.3中曲线2),说明选择采样对泛化能力的改善是很明显的,同时也说明了训练样本对神经网络泛化能力的影响。
8.2 在样本输入中添加随机噪声8.2.1 噪声添加方法由上一章结论可知,在样本输入中添加随机噪声,也可以改善神经网络的泛化能力,而且噪声方差较小时,样本输入加噪声方法类似于神经网络结构设计的正则化方法,而正则化系数则与噪声方差有关。
样本输入加噪声方法既可以用于在线学习,也可以用于批处理方式离线学习;网络45类型可以是BP 网,也可以是RBF 网;参数学习算法可以是BP 算法,也可以是RBF 的梯度训练算法。
假定有N 个训练样本,分别为()µµµy z,x =,N ,...,2,1=µ,则在线BP 学习算法中样本输入插入噪声的算法如下:(1)从N 个训练样本随机选择一个样本()µµµy x z,=; (2)根据密度函数()µρζ得到样本输入噪声矢量; (3)令()µµµµζy z ,+=x 。
此后即可按在线梯度法进行权值修正。
对于批处理方式,则每一轮次训练时所有样本输入均应同时按上述方式加入噪声。
输入噪声密度函数()µζρ通常选均值为零的高斯分布或均匀分布,噪声方差则由具体问题决定。
8.2.2 仿真例子神经网络训练的目标函数为[An1996]:()2)8.0(3sin )(+=x x y (8.1) 训练样本和测试样本产生方式如下:训练样本数15个,其输入i x 为区间[]1,1−内的等间隔点,输出由上式计算,并添加噪声i e 。
噪声i e 服从均值为0,方差为0.4的正态分布;测试样本数201个,其输入i x 也为区间[]1,1−内的等间隔点,输出由上式计算。
泛化误差定义为训练后的神经网络对所有测试样本的误差平方和。
我们用RBF 网进行训练,采用梯度法进行批处理方式学习(见第4章)。
另外,RBF网的隐节点数取25,初始输出权值取]1.0,1.0[−内随机值,初始数据中心取]0.1,0.1[−内随机值,初始扩展常数取]3.0,1.0[内随机值,最大训练次数1000。
数据中心、扩展常数和输出权值均用梯度法求解,它们的学习率均为006.0。
训练时插入样本输入的噪声服从均值为0,方差为0.1的高斯分布。
图8.2为某次训练的结果。
图中虚线为目标函数曲线,“+”为输出加噪声的15个训练样本,点划线为输入未加噪声训练得到的神经网络函数曲线,实现则为输入添加高斯噪声训练后得到的神经网络函数曲线。