径向基网络是一种通用逼近器并可以用于函数逼近或模式识别。径向基网络是一种两层网络。径向基(RBF)网络和两层感知机网络有两个主要的区别。第一,在REF网络的第一层,我们计算了输入向量和权值矩阵的行向量之间的距离,而不是计算权值和输入的内积(矩阵相乘),这与LVQ网络相似。第二,RBF对偏置采用乘积而非加的方式。
径向基网络第一层中神经元i的净输入的计算如下:
权值矩阵的每一行作为一个中心点,在这个中心点处的净输入值为0.偏置值对传输(基)函数实时一种缩放操作,即放大或者缩小。
当使用高斯传输函数时,偏置值与标准差之间具有如下关系:
RBF网络中第一层所采用的的传输函数不同于多层感知机(MLP)中在隐层一般采用的S型函数。有几种不同类型的传输函数都可以采用,但是为了表述得更加清楚,这里只考虑在神经网络中经常使用的高斯函数。其定义如下:
局部性是高斯函数的关键特性,这意味着如果在任意方向非常远离中心点的话,输出将趋于零。与之相反,当净输入趋近于无穷时,全局S型函数的净输出依然接近于1.
RBF网络的第二层是一个标准线性层:
下图展示了一个完整的RBF网络。
1. 函数逼近
这里考虑一个隐层有两个神经元、一个输出神经元的网络,并且使用如下默认参数:
下图展示了该网络使用这些默认参数值时的响应。该图显示了输入P在[-2,2]之间变化时网络输出的值。
网络的响应有两个山丘,其代表了第一层中的每一个高斯神经元(偏置函数)。通过调整网络的参数值,可以改变每一个山丘的形状和位置,稍候我们会进一步讨论。
上图说明了参数改变对网络响应的影响。其中蓝色曲线是标称响应,其余的曲线对于一次只有一个参数在相应范围内变化时的网络响应:
上图a中显示了第一层中网络偏置是如何用于改变山丘宽度的:偏置越大,山丘越窄。上图b说明了第一层中的权值如何决定山丘的位置,以第一层的每一个权值为中心存在一个山丘,对于高维输入。对于高维输入,以权值矩阵每一行为中心都存在一个山丘。因此,第一层权值矩阵中的每一行常被称为相应神经元(基函数)的中心。
值得注意的是,RBF网络第一层的权值和偏置值的影响与MLP网络大不相同。在MLP网络中,S型函数产生了位移,权值改变位移的斜率,偏置值改变位移的位置。
上图c说明了第二层中的权值如何缩放山丘的高度。上图d说明了第二层中的偏置值让整个网络的响应上移或者下降。RBF网络中的第二层是与MLP网络一样的线性层,并且执行相似的函数,也就是得到第一层神经元输出的加权和。
这个例子描述了RBF网络用于函数逼近的灵活性。正如MLP一样,可以很清楚地看到如果RBF网络第一层拥有足够多的神经元,我们可以逼近任意感兴趣的函数。然而,尽管MLP和RBF网络都是通用逼近器,但是它们采用不同的方式进行逼近。对于RBF网络,每一个传输函数只在输入空间的一个小区域内激活——响应是局部的。如果输入移动到距离给定中心很远的地方,对应的神经元的输出将接近于0。这会影响RBF网络的设计。我们必须让中心充分地分布在网络输入范围中,并且必须选择可以使得所有的基函数充分重叠的偏置值。(不要忘记偏置值用来改变每一个基函数的宽度。)
2. 模式分类
举例为了说明RBF网络在模式分类上的能力,再次考虑经典的异或(XOR)问题。XOR门的类别是:
右图形象地描述了这个问题。由于这两类是线性不可分的,所以一个单层的神经网络无法完成分类。
RBF网络能够分类这些模式。事实上,有很多RBF方案都可以解决此问题。这里将介绍一种方案,它以一种简单的方式阐述如何使用RBF网络进行模式分类。该方法的思想是当网络输入接近样本P2和P3时,网络产生大于零的输出,其他情况下网络输出均小于零。(注意,我们设计这个网络的流程虽然不适用于复杂问题,但却能帮助我们说明RBF网络的分类能力。)
从问题的描述中,我们知道这个网络需要两个输入和一个输出。为了简单起见,我们在第一层只使用两个神经元(两个基函数),因为这已足以解决XOR问题。正如我们前面讨论的,第一层权值矩阵中的行会为两个基函数创建中心点。我们会选取与模式P2和P3相同的中心点。通过为每个模式设置一个基函数的中心,我们会在该模式处得到最大的网络输出。第一层权值矩阵为:
第一层中偏置值的选择取决于我们想让每个基函数有多大的宽度。对这个问题,我们希望网络函数在P2和P3这两处有两个明显的峰值。因此,两个基函数重叠不宜过多。每个基函数的中心与原点距离为 ,并且希望基函数能在个距离内从最高点开始有明显的减小。假设令偏置值为1,基函数在这个距离内的减小如下:
因此,每个基函数在中心点的峰值为1,而到原点时会下降至0.1353。这样的函数可以解决问题,因此,选择第一层偏置值为
原基函数响应范围是0到1(见图16.1)。我们希望当输入与样本p2和p3有较大差异时输16-7出为负,所以设第二层的偏置值为-1,并且为了让峰值重置为1,第二层的权值设置为2。第二层的权值和偏置值为:
下图展示了当网络具有上面给出的网络参数时的网络响应。该图也展示了曲面与平面 相交的位置,这也是决策边界的位置。曲面下方的轮廓线也表明了这点。这是在 处的函数轮廓线。它们几乎都是围绕向量P2和P3的圆。这意味着,只有当输入向量接近向量P2和P3时,网络输出才会大于零。
下图更清晰地说明了决策边界。只要输入落在蓝色区域内,网络输出就会大于零。而当输入落在蓝色区域外时,网络输出就会小于零。
因此,这个网络能正确分类这些模式。与MLP解决方案不同,该网络并不是最好的方
案,因为它不能总是将输入模式划分给最近的标准向量。你会发现不同于单层感知机的线性边界,这个RBF网络的决策区域是圆。MLP可以合并多个线性分界线构成任意决策区域。RBF网络可以组合多个圆形分界线构成任意决策区域。在这个问题上,线性分界线更有效。当然,当有更多的神经元且中心相互靠近时,RBF基础的分界线将不再是纯粹的圆形,同时MLP基础的分界线也不再是纯粹的线性。然而,将RBF的圆形分界和MLP的线性分界结合起来有助于理解它们作为模式分类器的运行机制。
现在,我们已经了解了RBF网络用作函数逼近和模式识别的能力,下面讨论这类网络的通用训练算法。
3. 全局与局部
在讨论训练算法之前,我们应该对MLP网络使用的全局传输函数和RBF网络使用的局
部传输函数的优缺点做一个总结。由于所有传输函数的输出均重叠,MLP会产生分布式表达。对于任意给定的输入值,第一层的许多S型函数会有明显的输出值。为了在每个点产生合适的响应,必须在第二层把这些输出值加起来或者抵消掉。在RBF网络中,每一个基函数只会在输入的一个小范围内激活。对于任意给定的输入,只有很少的基函数被激活。
每一种方法都有不同的优缺点。全局的方法倾向于在隐层需要较少的神经元,因为每一个神经元会对输入空间的很大一部分都做出响应。然而对于RBF网络来说,基的中心必须涵盖输入空间的整个范围,才能得到精确的逼近。这就会带来“维度灾难”的问题,我们将会在下一节中讨论这个问题。此外,如果使用更多的神经元,必然带来更多的参数,这样就会让网络更有可能在训练数据上过拟合,不能很好地泛化到新的数据上。
另一方面,局部的方法一般会带来更快的训练,尤其是在使用下一节讨论的两阶段算法时。并且,局部的方法在自适应训练中也会非常有用,其中网络一边被使用一边在连续进行增量式训练,正如自适应的滤波器(第10章中滤波器的非线性版本)或者控制器一样。如果在一段时间内训练数据只出现在输入空间的一些特定区域,全局的表达会倾向于提高在这些区域的准确度而牺牲在其他区域的表达。在同样的情况下,局部表达就不会出现这样的问题。因为每个神经元只会在输人空间的一个小区域内激活,如果输入落在这个区域外,它的权值将不会被调整。
不像MLP网络那样经常使用一些基于梯度的算法(最速下降、共轭梯度、 LevenbergMarquardt方法等)来进行训练,RBF网络可以用很多的方法来进行训练。
RBF网络可以使用基于梯度的方法来进行训练。然而,由于传输函数的局部特性以及第一层权值和偏置值运行的方式,在RBF网络的误差曲面上有比MLP网络多得多的令人不满意的局部极小点。因此,基于梯度的算法往往难以有效完成RBF网络的全部训练。然而,它们有时也会用于微调已使用其他方法预训练过的RBF网络。在本章稍后的部分中,我们会讨论如何修改第11章中的反向传播公式以计算RBF网络的梯度。
最常见的RBF训练算法包含两个阶段,分别用来训练RBF网络的两层。这些训练算法的主要区别在于如何选择第一层的权值和偏置值。一旦第一层的权值和偏置值选定,第二层的权值就可以使用线性最小二乘法一步计算得到。下一节,我们会讨论线性最小二乘法。
最简单的两阶段算法采用一种网格模式将中心(第一层的权值)遍布在整个输入空间,然后选择一个常数偏置值让基函数有一定程度的重叠。但是这种方法不是最好的,因为最有效的逼近是在输入空间内函数最复杂的区域放更多的基函数。并且,在许多实际应用中并不会用到整个输入空间,因此很多基函数都会被浪费掉。RBF网络的一个缺点是遭遇维度灾难,尤其是采用网格法选取中心点的时候。这就是说,随着输入空间维度的增加,需要的基函数的数量将会呈几何级数增加。比如,假定有1个输入变量,我们定义了10个基函数的网格均匀分布在输入变量的范围内。现在,增加输入变量到2个,为了维持在这2个输入变量上同样的网格覆盖,我们将需要102也就是100个基函数。
另外一种用来选择中心的方法是随机选取训练集中输人向量的子集。这样会确保基的中心被放在对网络有用的区域内。但是由于选择的随机性,这种方法也不是最优的。一种更有效的方法是使用类似第15章所描述的Kohonen竞争层或者特征图的方法来聚类输入空间。然后,聚类的中心就变成了基函数的中心。这样保证了基函数被放在显著激活的区域内,我们在稍后的小节中会讨论该方法。
最后,我们讨论关于训练RBF的方法:正交最小二乘法。它基于一种叫作子集选择的通用方法,用于构造线性模型。这种方法开始的时候会使用大量可能的中心,通常是训练数据中的全部输入向量。在每一步中,选择一个中心添加到第一层的权值中。这种选择取决于神经元将会降低多少误差平方和。添加神经元直到达到一定的标准。通常选择最大化网络的泛化能力作为标准。
1. 线性最小二乘
在这一节中,我们假定RBF网络第一层的权值和偏置值是固定的。这可以通过把中心固定在网格上或者随机地从训练数据集的输入量中选择中心(或者使用在之后小节中提到的聚类方法)来实现。当中心被随机地选中之后,所有的偏置值可以使用下式计算得到:
其中dmax是相邻中心之间的最大距离。这样设计是为了保证基函数之间有适当程度的重叠。使用这种方法,所有的偏置都有相同的值。也有其他的方法可为每个偏置产生不同的值,在之后聚类的小节中,我们会讨论这样的方法。
一旦第一层的参数被设置好,第二层的权值和偏置值的训练就等价于如第10章所提到的线性网络的训练。比如,考虑如下的训练数据点:
其中,P4是网络的一个输入,tq是对应的目标输出。训练集中的每一个输入pq所对应的第一层输出可以计算为:
因为第一层中的权值和偏置值不再调整,所以第二层的训练数据集变为:
第二层的响应是线性的:
我们想在该层上选择权值和偏置值来最小化训练集上的误差平方和性能指标:
我们对该线性最小二乘问题的解的推导遵从以LMS算法的线性网络的推导。为了简化讨论,假定目标是一个标量,并且将需要调整的所有参数(包括偏置值)整合到一个向量:
类似地,我们将偏置输入“1”作为输入向量的一部分:
通常写为如下形式的网络输出:
现在可以写为:
这使得我们可以方便地写出误差平方和的表达式:
为了将其以矩阵形式表示,定义如下矩阵:
现在,可将误差写为:
性能指标变为:
如果我们使用如第13章讨论的正则化方法防止过拟合,可以得到如下形式的性能指标:
其中,由式(13.4)可知ρ=a/β。将该式展开,可得:
仔细观察上式,并将其与二次函数的一般形式比较,如下:
性能函数是一个二次函数,其中:
从第8章可知,二次函数的性质主要取决于 Hessian, Hessian矩阵的特征值全为正,则函数将只有一个全局极小点。
在这个例子中, Hessian矩阵为
现在确定性能指标的驻点。从第8章中对二次函数的讨论可知,梯度为:
可通过将梯度置为0得到F(x)的驻点:
因此,最优权值x可以从如下表达式求得:
如果 Hessian矩阵是正定的,就会有唯一为强极小点的驻点:
下面通过一个简单的例子来说明这个过程。
举例为了说明最小二乘算法,我们选择一个网络并把它应用到一个具体的问题。我们将用一个第一层有3个神经元的RBF网络逼近如下函数:
为了得到训练集,我们将计算p取如下6个值时的函数值:
可得如下目标值:
我们在输入范围内选择等间距的三个基函数中心点:-2、0、2。简单起见,选择中心点间距的倒数为偏置值,则会有如下第一层权值和偏置值:
下一步就是使用下式计算第一层的输出:
可得如下的
可以生成矩阵U和t:
下一步是求解第二层的权值和偏置值。我们先从正则化参数设为0开始因此第二层的权值和偏置值为:
下图展示了RBF网络的运行。其中,蓝线表示RBF网络的逼近,圆圈代表6个数据点。上面坐标系中的虚线表示被第二层对应的权值缩放过的各个基函数(包括常数偏置项)。虚线的和就生成了蓝线。从下面的小坐标系中,我们可以看到未被缩放的基函数,即第一层的输出。
RBF网络的设计过程对中心点和偏置值的选择比较敏感。例如,如果选择6个基函数和6个数据点,且在第一层选择8而非0.5作为偏置值,那么网络的响应将会是下图所示的那样。基函数的跨度以偏置值的倒数方式递减。当偏置值这么大时,在基函数中没有足够的重叠以产生光滑的逼近。我们精确地匹配每一个数据点。然而,由于基函数的局部特质,在训练数据点之间对真实函数的逼近并不那么准确。
2. 正交最小二乘
在之前的小节,我们假定第一层的权值和偏置值是固定的。(例如,中心可能固定在一个网格上,或者从训练集的输入向量中随机选择)在本节中,我们考虑采用不同的方法选择中心点。假设存在一定数量的潜在中心点,这些中心可能包含训练集的全部输入向量、用某种基于网格的方式选择的向量,或者是采用任意其他可能想到的方法选择的向量。然后每次从这个潜在的中心点集合中选择一个向量,直到网络性能满足要求。我们将通过一次增加一个神经元来构建网络。
这种方法的基本思想来自于统计学中的子集选择。子集选择方法的一般目标是选择自变量的一个合适子集以提供对目标因变量最有效的预测如,假设有10个自变量,我们想利用它们预测目标因变量。为了尽可能建立最简单的预测器,我们需要使用最少数量的自变量来实现预测。问题是:我们应该使用10个自变量的哪个子集?最理想的方法称为穷举搜索,它通过遍历所有的子集组合寻找能提供满意性能的最小子集。(我们将在后面定义什么是所谓的满意性能。)
不幸的是,这种策略并不实用。如果原始集合中有Q个变量,下面的式子给出了不同子集的个数:
如果Q=10,这个数字是1023。如果Q=20,这个数字将超过100万。所以我们需要有比穷举搜索代价小的策略。有几种次优的选择方法。这些方法不能保证找到最优的子集,但计算代价却显著减小。其中一种选择方法叫作前向选择这种方法从一个空的模型开始,然后每次添加一个变量。在每一步,我们添加一个可以最大程度地减小均方误差的自变量。当性能满足要求时,就停止添加变量另一种方法叫作反向排除,这种方法从模型的完整自变量集合开始。在每一步,我们排除一个使均方误差增加最小的自变量。这个过程持续,直到性能不满足要求。也有一些其他的方法结合前向选择和反向排除的思想,使得在每一次迭代过程中可能添加或者排除独立变量。
任意的标准子集选择技术都可以用于选择RBF的中心。为了说明这个问题,我们考虑前向选择的一个具体形式,即正交最小二乘它的主要特征是可以高效地计算由于向RBF网络添加潜在中心点所造成的误差减小。
下面直接给出算法:
为了发展出正交最小二乘算法,我们从式 开始,并在这里重复展示一个稍微不同的形式:
我们将使用标准的矩阵行和列的记号来分别表示矩阵U中的行和列:
这里,矩阵U的每一行代表了训练集中一个输向量在RBF网络中第一层的输出。矩阵U中的每一列分别对应于第一层的每个神经元(基函数)加上偏置项(n=S+1)。注意,对于OLS算法来说,基函数可能的中心点经常被选为训练集中所有的输入向量。在这种情况下,如式 所示,因为用于表示偏置项的常量1也被包含到了z中,所以n等于Q+1。