基于惩罚函数泛化的神经网络剪枝算法研究
正则化网络
熊俊;王士同;潘永惠;包芳
【摘 要】神经网络的隐层数和隐层节点数决定了网络规模,并对网络性能造成较大影响。在满足网络所需最少隐层节点数的前提下,利用剪枝算法删除某些冗余节点,减少隐层节点数,得到更加精简的网络结构。基于惩罚函数的剪枝算法是在目标函数后加入一个惩罚函数项,该惩罚函数项是一个变量为网络权值的函数。由于惩罚函数中的网络权值变量可以附加一个可调参数,将单一惩罚函数项泛化为一类随参数规律变化的新的惩罚函数,初始惩罚函数可看作泛化后惩罚函数的参数取定值的特殊情况。实验利用基于标准BP神经网络的XOR数据进行测试,得到隐层节点剪枝效果和网络权值随惩罚函数的泛化而发生变化,并从数据分析中得出具有更好剪枝效果及更优网络结构的惩罚函数泛化参数。%The number of hidden layer and hidden layer node in neural network determines the size of the network and has a great influence on the performance of the network. Therefore,when the network contains the least hidden layer node number,pruning algorithm can be used to delete some redundant node, then the network is more simple. The pruning algorithm adds a penalty function to the target f
unction, and the penalty function regards the weights of network as variable. It adds a variable parameter to the weights of network,so the simple penalty function can be generalized to a kind of new penalty function that changes as the parameter. The initial function can be treated as a special condition after the generalization of penalty function. Experiment tests the XOR data based on the BP neural network and sums up the effect of the generalization of penalty function on the pruning of the hidden layer node with neural network and the structure of the neural network. Then the parameters which can lead to better pruning effect and more optimal network structure are obtained from data in experiment.
【期刊名称】《计算机工程》
【年(卷),期】2014(000)011
【总页数】6页(P149-154)
【关键词】隐层节点;神经网络;剪枝算法;惩罚函数;泛化;XOR数据
【作 者】熊俊;王士同;潘永惠;包芳
【作者单位】江南大学数字媒体学院,江苏 无锡214122;江南大学数字媒体学院,江苏 无锡214122;江阴职业技术学院计算机科学系,江苏 江阴214405;江阴职业技术学院计算机科学系,江苏 江阴214405
【正文语种】中 文
【中图分类】TP183
人工神经网络[1](Artificial Neural Network, ANN)是由大量的、简单的处理单元(称为神经元)广泛地互相连接而形成的复杂网络系统。实践表明,神经网络的性能与神经网络的结构有很大的关系,而隐层节点的选择和调整是神经网络结构优化研究中的一项重要内容[2],若隐层节点数太少,则网络可能根本不能训练或网络性能很差;若隐层节点数太多,虽然可使网络系统误差减小,但一方面使网络训练时间延长,另一方面训练容易陷入局部极小点而得不到最优点。在隐节点调节过程中,经常利用剪枝算法[3]来调节网络权值,进而删除冗余节点,达到精简网络结构、改进泛化的目的。
目前常用的神经网络模型包括径向基函数(Radial Basis Function,RBF)神经网络[4]、误差反向传播(Error Back-propagation Algorithm,EBP)网络[5]、Hopfield网络[6]等。其中,BP神经网络是最常用的神经网络模型。常用的剪枝算法有惩罚函数法[7]、灵敏度计算法[8]、相关性剪枝算法[9]等。 其中,惩罚函数法是使用最普遍的剪枝算法之一,只需在最小化目标函数后添加一个变量为网络权值的惩罚函数。常见的惩罚函数有权消除惩罚项[7]、权衰减惩罚项[7]、拉普拉斯惩罚项[10]等。
上述惩罚函数均可针对其中的网络权值变量添加参数进行泛化,本文通过调整参数值得到基于传统惩罚函数的新的惩罚函数,从而对比分析泛化的惩罚函数构造的剪枝算法对网络隐节点的剪枝效果和网络结构的影响。
2.1 基础神经网络结构
在人工神经网络模型中,具有误差反向传播学习功能的多层前馈神经网络即BP神经网络[1],是目前应用最广泛且研究最深入的神经网络。BP神经网络一般由输入层、输出层和隐层三部分构成。这里重点考虑隐层的神经元个数,实验中利用具有单隐层的网络,并使用分类问题的XOR数据作为实验数据。
对于属于2个不同类的N维向量x,假设有一个训练数据集{xk,yd(k)},并且每个xk都对应一个已知的yd(k)∈{0,1}。对于二分类问题[10],只需1个输出神经元,输入神经元个数与输入向量维数相同为2。根据要求构造的网络结构如图1所示。
该网络的输入输出函数可表示为:
其中,x是神经网络的输入向量;y是神经网络对应的输出值;W1是连接输入神经元与隐层神经元的权值向量;b1为初始偏移向量;W2是连接隐层和输出层神经元的权值向量;b2为输出神经元的权值初始偏移;C为一个用于调节隐层输出值的系数,选取C=10。神经网络隐层和输出层的转移函数f(·)和g(·)均采用标准Sigmoid激活函数。
2.2 神经网络学习算法
神经网络学习方式[10]有2种:有导学习和无导学习。有导学习又称为监督学习[10]。一般情况下,有导学习的训练样本是输入输出对:{xk,yd(k)},k=1,2,…,L,其中,xk为样本输入;yd(k)为期望的样本输出(教师信号)。神经网络训练的目的是:根据一定的学习规则,通过调节各神经元的自由参数,使网络输出产生期望的值,即当输入样本为xk时,网络输出尽可能接近yd(k)。本
文采用有导学习方式。无导学习称为无监督学习或自组织学习。无导学习不提供教师信号,而只规定学习规则,具体的学习内容随系统所处环境而定。
有导学习和无导学习都要通过调整神经元的自由参数(权值和偏移)实现,假设单个神经元当前的权值为w(t),神经元学习算法的内容是确定神经元的权值调整量Δw(t),并得到权值调节公式,即:
梯度下降法[10]是最常用的神经网络学习算法。假定神经元权值修正的目标是极小化目标函数F(w(t)),根据梯度法基本原理,若g(t)=▽F(w(t))|w=w(t)表示F(w(t))在w=w(t)时的梯度,则Δw(t)=-ηg(t),η取较小的正数(称为学习率),即权值修正量沿负梯度方向取较小值。
2.3 BP神经网络
BP算法也称误差反向传播算法[1],通过误差反向传播校正来不断调整网络的权值和阈值,使网络的误差平方和最小。当一个样本输入网络,并产生输出时,通过最小化所有网络输出的均方误差来训练网络[11],均方误差为各输出单元误差平方和,即:
其中,L是训练数据集中向量x的个数。
由梯度下降法得到:
输入层到隐层的权值为w1(t),权值调整公式为:
隐层到输出层的权值为w2(t),权值调整公式为:
剪枝算法通过在训练时删除或合并某些节点或权值[4]以达到精简网络结构、改进网络性能的目的。在各种神经网络剪枝算法中,惩罚函数是其中最普遍使用的一种算法,使用惩罚函数剪枝算法对网络进行一定次数的训练,网络中的某些权值将减小到零附近,如果一个隐节点的输出权值接近0或小于某个阈值,就可以删除该隐节点。
通过在网络目标函数中引入表示结构复杂性的正则化项来达到降低网络复杂性的目的[10]。对于神经网络中的分类问题,目标函数为:
其中,E(w)代表该网络的误差平方和;C(w)是惩罚函数,代表网络的复杂性;λ是正则化参数,代表模型复杂性的相对重要性。
3.1 常用的惩罚函数
常用的几种惩罚函数具体如下:
(1)权衰减
其中,wi表示网络中的每个权值。
(2)拉普拉斯正则项
其中,wi表示网络中的每个权值。
(3)权消除
其中,wi表示网络中的每个权值;w0为固定值,实验中w0=0.1。
3.2 正则化参数的动态修改方法
剪枝算法中的正则化参数λ对神经网络的泛化能力有很大影响,且比较难以确定,一般采用动态修改策略[10]寻正则化参数,较大地改进了网络的泛化能力。
具体方法如下:学习过程中随时检测以下误差量之间的关系:
(1)E(t-1):前一次权值调节时的误差。
(2)A(t):当前时刻的加权平均误差,定义为:
其中,μ为接近1的滤波系数。
(3)D:期望误差值。如果没有先验知识,可设定D=0,此时算法也能较好地进行,但计算时间由计算次数限制,因此计算时间可能较长。
在每次权值调节后,计算当前时刻的学习误差E(t)和加权平均误差A(t),并根据它们之间的关系对λ进行调节,具体规则如下:
(1)如果E(t)<E(t-1)或E(t)<D,则:
此时存在以下2种情况:1)神经网络的训练误差正在下降;2)该误差已经小于目标函数值。这2种情况都是人们期待的,此时应略微增加正则化的作用。
(2)如果E(t)≥E(t-1),E(t)<A(t),且E(t)≥D,则:
此时当前误差有所上升(E(t)≥E(t-1)),但从长远来说,训练误差仍在下降(E(t)<A(t))。此时应该略微减少正则化的作用。
(3)如果E(t)≥E(t-1),E(t)≥A(t),且E(t)≥D,则:
其中,ρ为接近1的系数。
此时不仅当前误差在上升,而且从长远来说,训练误差也在上升,所以,应该较大幅度地减少正则化的作用。λ初始可以取0,随后按上述规则动态调节。
权衰减惩罚函数式(8)和拉普拉斯正则化项式(9)可泛化为:
综合以上2种惩罚函数的泛化情况和权消除惩罚函数的变化曲线,可以看出当r取不同参数时,C(w)中的某一项随着权值wi的变化有各种变化趋势,函数值范围也有很大差异,而C(w)是惩罚函数剪枝算法的重点,所以,可以推测r取不同参数时,泛化的惩罚函数剪枝算法的性能也有所不同。
实验采用XOR数据,XOR数据的输入样本x为4组二维向量:[0;1],[0;0],[1;1],[1;0];
对应的4组输出y分别为1,0,0,1;已知对于XOR数据,隐层至少需要2个神经元才能很好地完成分类工作[12],设定初始隐层具有4个神经元,所以,可以通过观察随着参数r的变化,泛化的惩罚函数剪枝算法将原始隐层4个神经元剪除的情况,并通过分析剪枝后的网络权值来评价泛化的惩罚函数剪枝算法对网络结构的影响。实验运行环境为:CPU Inter双核,2.1 GHz,2 GB内存,Matlab2009a。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。