RBF神经网络
1.RBF径向基函数
本质上和RBF核函数的SVM很相似,使用径向基函数对数据重新构建,利用 Φ(||X- Xp||)来代替原始的数据向量表示,一共有P个中心,所以获得的新数据有P个维度,此时再对数据进行分类。输出等于W Φ(||X- Xp||),W为需要求解的权重。
数学上是可以对W求解求解的,但是Φ的选取有要求,同时还不包含正则,使求解的曲面可能有过拟合。
带正则的求解如上图,第一项是均方误差,第二项是对F求的微分算子,代表了对F的先验知识。
这个方程的解也是可以得到的。
当G函数为多元高斯函数的时候
,整个式子就满足了西瓜书上使用高斯径向基的函数式,形式上一模一样
西瓜书上对c求解是使用聚类或者随机采样的方式来获取c,对于另外两个参数W和偏扩展常数使用BP算法求取。
也可以可以用聚类的方式计算,然后找到两种聚类中心的形式:
1. d是数据中心间最大距离,M是数据个数,可以避免径向基函数过于集中或者分散
2. 但是不知道第二个参数如何选取。
此时如果只有一层的话可以使用 的方式去求,因为Φ不是方阵。
也有做法是可以对数据中三个变量都做成可训练参数,求取梯度,求梯度和句子操作可见https://www.cnblogs.com/zhangchaoyang/articles/2591663.html。这里不具体描述。
以下为转载内容
————————————————————————
1985年,Powell提出了多变量插值的径向基函数(Radical Basis Function,RBF)方法。1988年,Moody和Darken提出了一种神经网络结构,即RBF神经网络,属于前向神经网络类型,它能够以任意精度逼近任意连续函数,特别适合于解决分类问题。
RBF网络的结构与多层前向网络类似,它是一种三层前向网络。输入层由信号源节点组成;第二层为隐含层,隐单元数视所描述问题的需要而定,隐单元的变换函数RBF是对中心点径向对称且衰减的非负非线性函数;第三层为输出层,它对输入模式的作用做出响应。从输入空间到隐含层空间的变换是非线性的,而从隐含层空间的输出层空间变换是线性的。
RBF网络的基本思想是:用RBF作为隐单元的“基”构成隐含层空间,这样就可以将输入向量直接映射到隐空间。当RBF的中心点确定以后,这种映射关系也就确定了。而隐含层空间到输出空间的映射是线性的,即网络的输出是隐单元输出的线性加权和。此处的权即为网络可调参数。由此可见,从总体上看,网络由输入到输出的映射是非线性的,而网络的输出对可调参数而言却是线性的。这烟大哥网络的权就可由线性方程直接解出,从而大大加快学习速度并避免局部极小问题。
一、RBF神经元模型
径向基函数神经元的传递函数有各种各样的形式,但常用的形式是高斯函数(radbas)。与前面介绍的神经元不同,神经元radbas的输入为输入向量p和权值向量ω之间的距离乘以阈值b。径向基传递函数可以表示为如下形式:
![](https://ask.qcloudimg.com/http-save/yehe-1293593/36cxpxwu4e.png?imageView2/2/w/1620)
二、RBF网络模型
径向基神经网络的激活函数采用径向基函数,通常定义为空间任一点到某一中心之间欧氏距离的单调函数。径向基神经网络的激活函数是以输入向量和权值向量之间的距||dist||为自变量的。径向神经网络的激活函数一般表达式为
![](https://ask.qcloudimg.com/http-save/yehe-1293593/6coefusu0h.png?imageView2/2/w/1620)
随着权值和输入向量之间距离的减少,网络输出是递增的,当输入向量和权值向量一致时,神经元输出1。b为阈值,用于调整神经元的灵敏度。利用径向基神经元和线性神经元可以建立广义回归神经网络,该种神经网络适用于函数逼近方面的应用;径向基神经元和竞争神经元可以组件概率神经网络,此种神经网络适用于解决分类问题。输出层和隐含层所完成的任务是不同的,因而它们的学习策略也不相同。输出层是对线性权进行调整,采用的是线性优化策略,因而学习速度较快。而隐函数是对激活函数(格林函数或高斯函数,一般为高斯函数)的参数进行调整,采用的是非线性优化策略,因而学习速度较慢。
尽管RBF网络的输出是隐单元输出的线性加权和,学习速度加快,但并不等于径向基神经网络就可以取代其他前馈网络。这是因为径向神经网络很可能需要比BP网络多得多的隐含层神经元来完成工作。
可以从两方面理解径向基网络的工作原理:
1.从函数逼近的观点看,若把网络看成是对未知函数的逼近,则任何函数都可以表示成一组基函数的加权和。在径向基网络中,相当于选择各隐层神经元的传输函数,使之构成一组基函数逼近未知函数。
2.从模式识别的观点看,总可以将低维空间非线性可分的问题映射到高维空间,使其在高维空间线性可分。在径向基网络中,隐层的神经元数目一般比标准的BP网络要多,构成高维的隐单元空间。在径向基网络中,隐层的神经元传输函数为非线性函数,从而完成从输入空间到隐单元空间的非线性变换。只要隐层神经元的数目足够多,就可以使输入模式在隐层的高维输出空间可分。在径向基网络中,输出层为线性层,完成对隐层空间模式的线性分类,即提供从隐单元空间到输出空间的一种线性变换。
三、RBF网络学习算法
RBF神经网络学习算法需要求解的参数有3个:基函数的中心、方差以及隐含层到输出层的权值。根据径向基函数中心选取方法的不同,RBF网络有多种学习方法。下面介绍自组织选取中心的RBF神经网络学习法。此方法由两个阶段组成:
自组织学习阶段,此阶段为无监督学习过程,求解隐含层基函数的中心与方差;
监督学习阶段,此阶段求解隐含层到输出层之间的权值。
径向基神经网络中常用的径向基函数是高斯函数,因此径向基神经网络的激活函数可表示为:
![](https://ask.qcloudimg.com/http-save/yehe-1293593/up4zarn4e2.png?imageView2/2/w/1620)
由此可得,径向基神经网络的结构可得到网络的输出为:
![](https://ask.qcloudimg.com/http-save/yehe-1293593/uru091j21t.png?imageView2/2/w/1620)
其中xp为第p个输入样本。h为隐含层的结点数。
如果d是样本的期望输出值,那么基函数的方差可表示为:
![](https://ask.qcloudimg.com/http-save/yehe-1293593/cgafz04btm.png?imageView2/2/w/1620)
1.基于K-均值聚类方法求取基函数中心c
1)网络初始化,随机选取h个训练样本作为聚类中心ci
2)将输入的训练样本集合按最近邻规则分组,按照xp 与中心为 ci 之间的欧式距离将xp 分配到输入样本的各个聚类集合 ϑp 之中。
3)重新调整聚类中心 计算各个聚类集合 ϑp 中训练样本的平均值,即新的聚类中心 ci, 如果新的聚类中心不再发生变化,所得到的 ci 就是RBF神经网络最终的基函数中心,否则返回2进行下一轮求解
2.求解方差σi
该RBF神经网络的基函数为高斯函数,因此方差σi可由下式求解得出:
![](https://ask.qcloudimg.com/http-save/yehe-1293593/neeii872j.png?imageView2/2/w/1620)
其中 cmax 是所选取中心之间的最大距离
3.计算隐含层和输出层之间的权值
用最小二乘法直接计算得到:
![](https://ask.qcloudimg.com/http-save/yehe-1293593/9hou5vto8m.png?imageView2/2/w/1620)
四、RBF内插值
完全内插法要求插值函数经过每个样本点,即
![](https://ask.qcloudimg.com/http-save/yehe-1293593/kej6l6l3gi.png?imageView2/2/w/1620)
。样本点总共有P个。RBF的方法是要选择P个基函数,每个基函数对应一个训练数据,各基函数形式为
![](https://ask.qcloudimg.com/http-save/yehe-1293593/as1jawhp17.png?imageView2/2/w/1620)
,由于距离是径向同性的,因此称为径向基函数。||X-Xp||表示差向量的模,或者叫2范数。
基于为径向基函数的插值函数为:
![](https://ask.qcloudimg.com/http-save/yehe-1293593/y5xlxxgvok.png?imageView2/2/w/1620)
![](https://ask.qcloudimg.com/http-save/yehe-1293593/puq0m7knnw.png?imageView2/2/w/1620)
输入X是个m维的向量,样本容量为P,P>m。可以看到输入数据点Xp是径向基函数φp的中心。
隐藏层的作用是把向量从低维m映射到高维P,低维线性不可分的情况到高维就线性可分了。
将插值条件代入:
![](https://ask.qcloudimg.com/http-save/yehe-1293593/xt0d4vydfk.png?imageView2/2/w/1620)
写成向量的形式为
![](https://ask.qcloudimg.com/http-save/yehe-1293593/8wgj3bkz7j.png?imageView2/2/w/1620)
,显然Φ是个规模这P对称矩阵,且与X的维度无关,当Φ可逆时,有
![](https://ask.qcloudimg.com/http-save/yehe-1293593/wq987g1cjd.png?imageView2/2/w/1620)
。对于一大类函数,当输入的X各不相同时,Φ就是可逆的。下面的几个函数就属于这“一大类”函数:
1)Gauss(高斯)函数
![](https://ask.qcloudimg.com/http-save/yehe-1293593/vowp9se9a6.png?imageView2/2/w/1620)
2)Reflected Sigmoidal(反常S型)函数
![](https://ask.qcloudimg.com/http-save/yehe-1293593/78g4id4wry.png?imageView2/2/w/1620)
3)Inverse multiquadrics(拟多二次)函数
![](https://ask.qcloudimg.com/http-save/yehe-1293593/6m9bx5fuac.png?imageView2/2/w/1620)
σ称为径向基函数的扩展常数,它反应了函数图像的宽度,σ越小,宽度越窄,函数越具有选择性。
完全内插存在一些问题:
1)插值曲面必须经过所有样本点,当样本中包含噪声时,神经网络将拟合出一个错误的曲面,从而使泛化能力下降。
由于输入样本中包含噪声,所以我们可以设计隐藏层大小为K,K<P,从样本中选取K个(假设不包含噪声)作为Φ函数的中心。
![](https://ask.qcloudimg.com/http-save/yehe-1293593/jn9eyveku1.png?imageView2/2/w/1620)
2)基函数个数等于训练样本数目,当训练样本数远远大于物理过程中固有的自由度时,问题就称为超定的,插值矩阵求逆时可能导致不稳定。
拟合函数F的重建问题满足以下3个条件时,称问题为适定的:
1. 解的存在性
2. 解的唯一性
3. 解的连续性
不适定问题大量存在,为解决这个问题,就引入了正则化理论。
正则化理论
正则化的基本思想是通过加入一个含有解的先验知识的约束来控制映射函数的光滑性,这样相似的输入就对应着相似的输出。
寻找逼近函数F(x)通过最小化下面的目标函数来实现:
![](https://ask.qcloudimg.com/http-save/yehe-1293593/oipmlg70zg.png?imageView2/2/w/1620)
加式的第一项好理解,这是均方误差,寻找最优的逼近函数,自然要使均方误差最小。第二项是用来控制逼近函数光滑程度的,称为正则化项,λ是正则化参数,D是一个线性微分算子,代表了对F(x)的先验知识。曲率过大(光滑度过低)的F(x)通常具有较大的||DF||值,因此将受到较大的惩罚。
直接给出(1)式的解:
![](https://ask.qcloudimg.com/http-save/yehe-1293593/971p9stefi.png?imageView2/2/w/1620)
权向量
![](https://ask.qcloudimg.com/http-save/yehe-1293593/g4uocczzo0.png?imageView2/2/w/1620)
********************************(2)
G(X,Xp)称为Green函数,G称为Green矩阵。Green函数与算子D的形式有关,当D具有旋转不变性和平移不变性时,
![](https://ask.qcloudimg.com/http-save/yehe-1293593/7j07tpn7oe.png?imageView2/2/w/1620)
这类Green函数的一个重要例子是多元Gauss函数:
![](https://ask.qcloudimg.com/http-save/yehe-1293593/8iplm70e35.png?imageView2/2/w/1620)
正则化RBF网络
输入样本有P个时,隐藏层神经元数目为P,且第p个神经元采用的变换函数为G(X,Xp),它们相同的扩展常数σ。输出层神经元直接把净输入作为输出。输入层到隐藏层的权值全设为1,隐藏层到输出层的权值是需要训练得到的:逐一输入所有的样本,计算隐藏层上所有的Green函数,根据(2)式计算权值。
五、广义RBF网络
Cover定理指出:将复杂的模式分类问题非线性地映射到高维空间将比投影到低维空间更可能线性可分。
广义RBF网络:从输入层到隐藏层相当于是把低维空间的数据映射到高维空间,输入层细胞个数为样本的维度,所以隐藏层细胞个数一定要比输入层细胞个数多。从隐藏层到输出层是对高维空间的数据进行线性分类的过程,可以采用单层感知器常用的那些学习规则,参见神经网络基础和感知器。
注意广义RBF网络只要求隐藏层神经元个数大于输入层神经元个数,并没有要求等于输入样本个数,实际上它比样本数目要少得多。因为在标准RBF网络中,当样本数目很大时,就需要很多基函数,权值矩阵就会很大,计算复杂且容易产生病态问题。另外广RBF网与传统RBF网相比,还有以下不同:
1. 径向基函数的中心不再限制在输入数据点上,而由训练算法确定。
2. 各径向基函数的扩展常数不再统一,而由训练算法确定。
3. 输出函数的线性变换中包含阈值参数,用于补偿基函数在样本集上的平均值与目标值之间的差别。
因此广义RBF网络的设计包括:
结构设计--隐藏层含有几个节点合适
参数设计--各基函数的数据中心及扩展常数、输出节点的权值。
下面给出计算数据中心的两种方法:
1.数据中心从样本中选取。样本密集的地方多采集一些。各基函数采用统一的偏扩展常数:
![](https://ask.qcloudimg.com/http-save/yehe-1293593/wag3pb82zp.png?imageView2/2/w/1620)
dmax是所选数据中心之间的最大距离,M是数据中心的个数。扩展常数这么计算是为了避免径向基函数太尖或太平。
2.自组织选择法,比如对样本进行聚类、梯度训练法、资源分配网络等。各聚类中心确定以后,根据各中心之间的距离确定对应径向基函数的扩展常数。
![](https://ask.qcloudimg.com/http-save/yehe-1293593/n5lthhax1o.png?imageView2/2/w/1620)
λ是重叠系数。
接下来求权值W时就不能再用
![](https://ask.qcloudimg.com/http-save/yehe-1293593/wq987g1cjd.png?imageView2/2/w/1620)
了,因为对于广义RBF网络,其行数大于列数,此时可以求Φ伪逆。
![](https://ask.qcloudimg.com/http-save/yehe-1293593/8b333dl50p.png?imageView2/2/w/1620)
数据中心的监督学习算法
最一般的情况,RBF函数中心、扩展常数、输出权值都应该采用监督学习算法进行训练,经历一个误差修正学习的过程,与BP网络的学习原理一样。同样采用梯度下降法,定义目标函数为
![](https://ask.qcloudimg.com/http-save/yehe-1293593/oba13i2423.png?imageView2/2/w/1620)
ei为输入第i个样本时的误差信号。
![](https://ask.qcloudimg.com/http-save/yehe-1293593/dtok9qt5fl.png?imageView2/2/w/1620)
上式的输出函数中忽略了阈值。
为使目标函数最小化,各参数的修正量应与其负梯度成正比,即
![](https://ask.qcloudimg.com/http-save/yehe-1293593/4ipsk1htv0.png?imageView2/2/w/1620)
具体计算式为
![](https://ask.qcloudimg.com/http-save/yehe-1293593/xczs97uwak.png?imageView2/2/w/1620)
上述目标函数是所有训练样本引起的误差总和,导出的参数修正公式是一种批处理式调整,即所有样本输入一轮后调整一次。目标函数也可以为瞬时值形式,即当前输入引起的误差
![](https://ask.qcloudimg.com/http-save/yehe-1293593/lrz691g9dp.png?imageView2/2/w/1620)
此时参数的修正值为:
![](https://ask.qcloudimg.com/http-save/yehe-1293593/tzjuxexe4s.png?imageView2/2/w/1620)