原创不易,转载前请注明博主的链接地址:Blessy_Zhu https://blog.csdn.net/weixin_42555080
一、 从BP神经网络到RDF神经网络
在上一篇文章BP(Back Propagation)神经网络学习笔记介绍了BP神经网络是误差逆向传播的多层神经网络。在信号处理 、模式识别等系统中,多层前馈网络是应用较为广泛的模型 。但是大部分基于反向传播的多层前馈网络的学习算法必须基于某种非线性优化技术的缺点 ,计算量大、学习速度慢。径向基函数神经网络(Radial Basis Function Neural Network)理论为多层前馈网络的学习提供了一种新颖而有效的手段 。RBF 网络不仅具有良好的推广能力, 而且计算量少 ,学习速度一般也比其它算法快得多 。
径向基函数是一个取值仅仅依赖于离原点距离的实值函数,也就是Φ(x)=Φ(‖x‖),或者还可以是到任意一点c的距离,c点称为中心点,也就是Φ(x,c)=Φ(‖x-c‖)。任意一个满足Φ(x)=Φ(‖x‖)特性的函数Φ都叫做径向基函数,标准的一般使用欧氏距离(也叫做欧式径向基函数),尽管其他距离函数也是可以的。最常用的径向基函数是高斯核函数 ,形式为 k(||x- x c x_c xc||)=exp{- ||x- x c x_c xc||^2/ ( 2 ∗ σ ) 2 (2*σ)^2 (2∗σ)2) } 其中x_c为核函数中心,σ为函数的宽度参数 , 控制了函数的径向作用范围。
![]()
一般化之后,适用于全部数据,输入层到隐含层是非线性映射,基函数是高斯函数:
![]()
为什么RBF可以大大加快神经网络的学习速度同时避免局部极小问题呢?
用RBF作为隐单元的“基”构成隐含层空间,这样就可以将输入矢量直接映射到隐空间,而不需要通过权连接。当RBF的中心点确定以后,这种映射关系也就确定了。而隐含层空间到输出空间的映射是线性的,即网络的输出是隐单元输出的线性加权和,此处的权即为网络可调参数。其中,隐含层的作用是把向量从低维度的p映射到高维度的h,这样低维度线性不可分的情况到高维度就可以变得线性可分了,主要就是核函数的思想。这样,网络由输入到输出的映射是非线性的,而网络输出对可调参数而言却又是线性的。网络的权就可由线性方程组直接解出,从而大大加快学习速度并避免局部极小问题。
二、 RBF神经网络
如下图:
RBF神经网络的拓扑结构是一种三层前向网络:
➢输入层由信号源结点构成,仅起到数据信息的传递作用,对输入信息不进行任何变换;
➢第二层为隐含层,结点数视需要而定,隐含层神经元的核函数(作 用函数)为高斯函数,对输入信息进行空间映射变换;
➢第三层为输出层,它对输入模式做出响应,输出层神经元的作用函数为线性函数,对隐含层神经元输出的信息进行线性加权后输出,作为整个神经网络的输出结果。
这样,RBF求解的参数有3个:基函数的中心、方差以及隐含层到输出层的权值。
(1)自组织选取中心学习方法:
第一步:无监督学习过程,求解隐含层基函数的中心与方差
第二步:有监督学习过程,求解隐含层到输出层之间的权值
首先,选取h个中心做k-means聚类,对于高斯核函数的径向基,方差由公式求解:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/7a6be5af58a9b21420eaffdf03c5a88a.png)
Cmax为所选取中心点之间的最大距离。
隐含层至输出层之间的神经元的连接权值可以用最小二乘法直接计算得到,即对损失函数求解关于w的偏导数,使其等于0,可以化简得到计算公式为:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/9fa00966b03e5ef6940acd6a743a390a.png)
(2)直接计算法
隐含层神经元的中心是随机地在输入样本中选取,且中心固定。一旦中心固定下来,隐含层神经元的输出便是已知的,这样的神经网络的连接权就可以通过求解线性方程组来确定。适用于样本数据的分布具有明显代表性。
(3)有监督学习算法
通过训练样本集来获得满足监督要求的网络中心和其他权重参数,经历一个误差修正学习的过程,与BP网络的学习原理一样,同样采用梯度下降法。因此RBF同样可以被当作BP神经网络的一种。
这样,概括的来说RBF神经网络的隐层将输入空间映射到一个新空间 ,输出层在该新空间中实现线性组合器 ,可调节参数就是该线性组合器的权 。 RBF 网络的输出为 :
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e8568b14ff0ed471d89042b3dc329c4e.png)
其中,Wi是隐含层到输出层的权重,Ri(x)是从输入层到隐含层径向基函数。
RBF 网络中所用的非线性函数的形式对网络性能的影响并不是至关重要的 ,关键因素是基函数中心的选取, 中心选取不当构造出来的RBF 网络的性能一般不能令人满意。例如, 如果某些中心靠的太近 , 会产生近似线形相关,从而带来数值上的病变条件 。由于 RBF 网络中心选取是该网络能否成功用于实际的关键 ,因此下面我们主要研究径向高斯函数中心的选取算法 。文章《RBF 网络基函数中心选取算法的研究》
{ 百度网盘:链接:https://pan.baidu.com/s/1myqBkLRLS4ODQmd-ma_9Aw 密码:25wz}中介绍了:随机算法选取 RBF 中心、 自组织学习算法选取 RBF 基函数中心:HCM 算法和Konhonen 自组织映射算法、最近邻聚类学习算法选取 RBF 基函数中心等三种选取RBF中心的方法。它的结论是:
随机选取算法确定的方法虽然简单 ,但构造的 RBF 神经网络的性能较差 ,并且隐单元到输出层的权矢量还需经过 1000 次的迭代学习 ,网络的学习时间较长 ,计算量较大 。HCM 算法和Konhonen 算法确定基函数中心的方法较复杂 ,需要确定
聚类度量和聚类结束标准 ,聚类阶段要经过许多次的迭代学习。虽然构造的 RBF 神经网络的性能较优越 ,但隐单元到输出层的权矢量还需经过 1000 次的迭代学习 ,网络的学习时间更长, 计算量更大。最近邻聚类算法确定基函数中心而构造的 RBF 神经网络表现出学习时间短,计算量小和性能优良的特点。前三种算法只适用于静态模式的离线学习,而最近邻聚类算法用于动态输入模式的在线学习。
结果表明了最近邻聚类选取算法具有学习时间短 ,计算量小和网络性能优良的优点, 是一种实用的前馈网络的快速学习的有效算法,适用于系统辨识等实际应用场合。
三、 RBF神经网络与BP神经网络和SVM的区别
3.1 RBF神经网络与BP神经网络的区别
- 1、局部逼近与全局逼近:
- BP神经网络的隐节点采用输入模式与权向量的内积作为激活函数的自变量,而激活函数采用Sigmoid函数。各调参数对BP网络的输出具有同等地位的影响,因此BP神经网络是对非线性映射的全局逼近。
- RBF神经网络的隐节点采用输入模式与中心向量的距离(如欧式距离)作为函数的自变量,并使用径向基函数(如Gaussian函数)作为激活函数。神经元的输入离径向基函数中心越远,神经元的激活程度就越低(高斯函数)。RBF网络的输出与部分调参数有关,譬如,一个wij值只影响一个yi的输出(参考上面第二章网络输出),RBF神经网络因此具有“局部映射”特性。
所谓局部逼近是指目标函数的逼近仅仅根据查询点附近的数据。而事实上,对于径向基网络,通常使用的是高斯径向基函数,函数图象是两边衰减且径向对称的,当选取的中心与查询点(即输入数据)很接近的时候才对输入有真正的映射作用,若中心与查询点很远的时候,欧式距离太大的情况下,输出的结果趋于0,所以真正起作用的点还是与查询点很近的点,所以是局部逼近;而BP网络对目标函数的逼近跟所有数据都相关,而不仅仅来自查询点附近的数据。
- 2、中间层数的区别
BP神经网络可以有多个隐含层,但是RBF只有一个隐含层。 - 3、训练速度的区别
使用RBF的训练速度快,一方面是因为隐含层较少,另一方面,局部逼近可以简化计算量。对于一个输入x,只有部分神经元会有响应,其他的都近似为0,对应的w就不用调参了。 - 4、Poggio和Girosi已经证明,RBF网络是连续函数的最佳逼近,而BP网络不是。
3.2 RBF神经网络与SVM的区别
SVM等如果使用核函数的技巧的话,不太适应于大样本和大的特征数的情况,因此提出了RBF。
另外,SVM中的高斯核函数可以看作与每一个输入点的距离,而RBF神经网络对输入点做了一个聚类。RBF神经网络用高斯核函数时,其数据中心C可以是训练样本中的抽样,此时与svm的高斯核函数是完全等价的,也可以是训练样本集的多个聚类中心,所以他们都是需要选择数据中心的,只不过SVM使用高斯核函数时,这里的数据中心都是训练样本本身而已。
RBF神经网络的kernel核函数:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/061e83cc1b51ed481c3aef01d1c15965.png)
SVM的kernel核函数:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/3be15cac4f7e6152308bddd7b8a840d6.png)
3.3 为什么高斯核函数就是映射到高维空间
首先给出高斯核函数的定义公式:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c7582ef944d19948f614825f67ce7638.png)
实际上,可以化简为:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/f5f1f3c9d607797e91dee90dd34587c1.png)
通过幂级数展开:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8b148d0c78c621b28bd9dba9be3b38b1.png)
可以看到,其中X向量会生成类似多项式核展开的形式,譬如原来的参数有x1,x2。映射后,参数包含了x1x1 ,x1x2,x2*x2将原来2维映射到3维上了。
四、总结
RBF神经网络是为了解决大部分基于反向传播的多层前馈网络的学习算法必须基于某种非线性优化技术的缺点 ,计算量大、学习速度慢的问题。RBF通过使用高斯和函数的方法,使得,网络由输入到输出的映射是非线性的,而网络输出对可调参数而言却又是线性的。网络的权就可由线性方程组直接解出,从而大大加快学习速度并避免局部极小问题。
这篇文章就到这里了,欢迎大佬们多批评指正,也欢迎大家积极评论多多交流。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5c34ad1b66500faccdc26169454a0ae3.png)
参考文章:
1 RBF、GRNN和PNN神经网络的深入浅出
2 RBF(径向基)神经网络
3 RBF神经网络和BP神经网络的关系
4 RBF神经网络设计
5 RBF(径向基函数)神经网络
6 百度网盘:链接:https://pan.baidu.com/s/1myqBkLRLS4ODQmd-ma_9Aw 提取码:25wz
7 百度网盘:链接:https://pan.baidu.com/s/1mYqtYWeaxDfYCHFHYhvz7g 提取码:hksz