RBF神经网络和BP神经网络的关系

作者:李瞬生
链接:https://www.zhihu.com/question/44328472/answer/128973724
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

BP Neural Network - 使用 Automatic Differentiation (Backpropagation) 进行导数计算的层级图模型 (layer-by-layer graphical model)

只要模型是一层一层的,并使用AD/BP算法,就能称作 BP Network。RBF Network 是其中一个特例

关于 AD 与 BP 算法的介绍
1. 请问自动微分法(Automatic differentiation)是如何用C++实现的? - 李瞬生的回答
2. Backwards differentiation in AD and neural nets: Past links and new opportunities

接下来简单介绍 RBF Network 相比一般 Neural Network 具有的特点。
机器学习的模型通常存在各种解读。相对正统的是统计上的解读。但这里只谈直观上的解读,以求易读。

RBF Network 通常只有三层。输入层、中间层计算输入 x 矢量与样本矢量 c 欧式距离的 Radial Basis Function (RBF) 的值,输出层算它们的线性组合。
<img src="//pic.ikafan.com/imgp/L3Byb3h5L2h0dHBzL3BpYzIuemhpbWcuY29tL3YyLTZjYTMzOWFmNzExYzNlMWY0YmMwZmFlYzY3MTgzNzY1X2IucG5n.jpg" data-rawwidth="652" data-rawheight="413" class="origin_image zh-lightbox-thumb" width="652" data-original="https://pic2.zhimg.com/v2-6ca339af711c3e1f4bc0faec67183765_r.png">

图一

如此可见,和普通的三层神经网络,RBF 神经网络的区别在中间层。中间层采用 RBF Kernel 对输入作非线性变换,以便输出层训练线性分类器。

那么RBF Kernel 有什么特点呢?
<img src="//pic.ikafan.com/imgp/L3Byb3h5L2h0dHBzL3BpYzQuemhpbWcuY29tL3YyLWVlZTM3NTczNDBkYTI5MmFhMzdlNzA0MWU0MzFhOGQzX2IucG5n.jpg" data-rawwidth="410" data-rawheight="69" class="content_image" width="410">

图二 Radial Basis Function

<img src="//pic.ikafan.com/imgp/L3Byb3h5L2h0dHBzL3BpYzQuemhpbWcuY29tL3YyLTI0N2UyMTM1NGEyYTI3ODQxNTU3ZjBhZTYzMTMzZmJiX2IucG5n.jpg" data-rawwidth="432" data-rawheight="277" class="origin_image zh-lightbox-thumb" width="432" data-original="https://pic4.zhimg.com/v2-247e21354a2a27841557f0ae63133fbb_r.png">

图三 Plot of Radial Basis Function with 2D input

RBF 拥有较小的支集。针对选定的样本点,它只对样本附近的输入有反应,如下图。
<img src="//pic.ikafan.com/imgp/L3Byb3h5L2h0dHBzL3BpYzIuemhpbWcuY29tL3YyLTQxNDA3NjAxOGUxOTFkM2VkN2NmNTBiYzFmNDliMGMxX2IucG5n.jpg" data-rawwidth="466" data-rawheight="347" class="origin_image zh-lightbox-thumb" width="466" data-original="https://pic2.zhimg.com/v2-414076018e191d3ed7cf50bc1f49b0c1_r.png">

图四 RBF 使样本点只被附近(圈内)的输入激活

T. Poggio 将 RBF 比作记忆点。与记忆样本越近,该记忆就越被激活。

有的同学看到这,也许会说:这不就是 SVM with RBF Kernel 么。
这些同学对了一半。光看模型,RBF Network 确实与 SVM with RBF kernel 无异。区别在于训练方式。

其实在深度学习出现之前,RBF神经网络就已经提出了 2-stage training。
第一阶段为非监督学习,从数据中选取记忆样本(图四中的紫色中心)。例如聚类算法可在该阶段使用。
第二阶段为监督学习,训练记忆样本与样本输出的联系。该阶段根据需要可使用 AD/BP。

小结:
1. RBF神经网络的训练过程可以使用BP,因此应纳入BP神经网络的范畴。
2. RBF神经网络的训练分两阶段,这一点类似深度学习,且使RBF神经网络不同于SVM with RBF kernel。

#简单来说,1)BP_NN是使用BP算法的神经网络,RBF_NN是激活函数是RBF的神经网络;2)层数、结构不同;

3)NN一般使用BP算法,RBF_NN使用改进的BP算法(2-stage training)

4)BP_NN是全局逼近,有局部极小值;RBF_NN是“局部感知域”,不存在局部极小,对非线性连续函数有一致逼近性

更理论化的解释:

作者:Zach
链接:https://www.zhihu.com/question/44328472/answer/155506678
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

RBF神经网络与BP神经网络都是非线性多层前向网络,它们都是通用逼近器。对于任一个BP神经网络,总存在一个RBF神经网络可以代替它,反之亦然。但是这两个网络也存在着很多不同点,这里从网络结构、训练算法、网络资源的利用及逼近性能等方面对RBF神经网络和BP神经网络进行比较研究。

  1. 从网络结构上看。 BP神经网络实行权连接,而RBF神经网络输入层到隐层单元之间为直接连接,隐层到输出层实行权连接。BP神经网络隐层单元的转移函数一般选择非线性函数(如反正切函数),RBF神经网络隐层单元的转移函数是关于中心对称的RBF(如高斯函数)。BP神经网络是三层或三层以上的静态前馈神经网络,其隐层和隐层节点数不容易确定,没有普遍适用的规律可循,一旦网络的结构确定下来,在训练阶段网络结构将不再变化;RBF神经网络是三层静态前馈神经网络,隐层单元数也就是网络的结构可以根据研究的具体问题,在训练阶段自适应地调整,这样网络的适用性就更好了。
  2. 从训练算法上看。 BP神经网络需要确定的参数是连接权值和阈值,主要的训练算法为BP算法和改进的BP算法。但BP算法存在许多不足之处,主要表现为易限于局部极小值,学习过程收敛速度慢,隐层和隐层节点数难以确定;更为重要的是,一个新的BP神经网络能否经过训练达到收敛还与训练样本的容量、选择的算法及事先确定的网络结构(输入节点、隐层节点、输出节点及输出节点的传递函数)、期望误差和训练步数有很大的关系。RBF神经网络的训练算法在前面已做了论述,目前,很多RBF神经网络的训练算法支持在线和离线训练,可以动态确定网络结构和隐层单元的数据中心和扩展常数,学习速度快,比BP算法表现出更好的性能。
  3. 从网络资源的利用上看。 RBF神经网络原理、结构和学习算法的特殊性决定了其隐层单元的分配可以根据训练样本的容量、类别和分布来决定。如采用最近邻聚类方式训练网络,网络隐层单元的分配就仅与训练样本的分布及隐层单元的宽度有关,与执行的任务无关。在隐层单元分配的基础上,输入与输出之间的映射关系,通过调整隐层单元和输出单元之间的权值来实现,这样,不同的任务之间的影响就比较小,网络的资源就可以得到充分的利用。这一点和BP神经网络完全不同,BP神经网络权值和阈值的确定由每个任务(输出节点)均方差的总和直接决定,这样,训练的网络只能是不同任务的折中,对于某个任务来说,就无法达到最佳的效果。而RBF神经网络则可以使每个任务之间的影响降到较低的水平,从而每个任务都能达到较好的效果,这种并行的多任务系统会使RBF神经网络的应用越来越广泛。
  4. 局部逼近与全局逼近

BP神经网络的隐节点采用输入模式与权向量的内积作为激活函数的自变量,而激活函数采用Sigmoid函数。各隐节点对BP网络的输出具有同等地位的影响,因此BP神经网络是对非线性映射的全局逼近

RBF神经网络的隐节点采用输入模式与中心向量的距离(如欧式距离)作为函数的自变量,并使用径向基函数(如Gaussian函数)作为激活函数。神经元的输入离径向基函数中心越远,神经元的激活程度就越低。RBF网络的输出与数据中心离输入模式较劲的“局部”隐节点关系较大,RBF神经网络因此具有“局部映射”特性。

总之,RBF神经网络可以根据具体问题确定相应的网络拓扑结构,具有自学习、自组织、自适应功能,它对非线性连续函数具有一致逼近性,学习速度快,可以进行大范围的数据融合,可以并行高速地处理数据。RBF神经网络的优良特性使得其显示出比BP神经网络更强的生命力,正在越来越多的领域内替代BP神经网络。目前,RBF神经网络已经成功地用于非线性函数逼近、时间序列分析、数据分类、模式识别、信息处理、图像处理、系统建模、控制和故障诊断等。

[1] MATLAB中文论坛. MATLAB神经网络30个案例分析[M]. 北京航空航天大学出版社, 2010.

[2] letsgoaway. 神经网络及BP与RBF比较[EB/OL]. https://wenku.baidu.com/view/fdcb2ba7195f312b3069a54c.html.

时间: 2024-07-30 13:53:04

RBF神经网络和BP神经网络的关系的相关文章

机器学习(一):梯度下降、神经网络、BP神经网络

这几天围绕论文A Neural Probability Language Model 看了一些周边资料,如神经网络.梯度下降算法,然后顺便又延伸温习了一下线性代数.概率论以及求导.总的来说,学到不少知识.下面是一些笔记概要. 一. 神经网络 神经网络我之前听过无数次,但是没有正儿八经研究过.形象一点来说,神经网络就是人们模仿生物神经元去搭建的一个系统.人们创建它也是为了能解决一些其他方法难以解决的问题. 对于单一的神经元而言,当生物刺激强度达到一定程度,其就会被激发,然后做出一系列的反应.模仿这

简单易学的机器学习算法——神经网络之BP神经网络

一.BP神经网络的概念 BP神经网络是一种多层的前馈神经网络,其基本的特点是:信号是前向传播的,而误差是反向传播的.详细来说.对于例如以下的仅仅含一个隐层的神经网络模型: (三层BP神经网络模型) BP神经网络的过程主要分为两个阶段.第一阶段是信号的前向传播,从输入层经过隐含层.最后到达输出层:第二阶段是误差的反向传播,从输出层到隐含层.最后到输入层,依次调节隐含层到输出层的权重和偏置,输入层到隐含层的权重和偏置. 二.BP神经网络的流程 在知道了BP神经网络的特点后,我们须要根据信号的前向传播

深度学习之BP神经网络案例

1.知识点: A.BP神经网络:信号是前向传播,误差是反向传播,BP是算法,它不代表神经网络的结构: B.BP神经网络是有导师学习的神经网络,在训练的时候,需要指定输入和输出,让它知道这个输入对应这个输出,让它清楚每次训练的过程,然后他的神经元的输出和理想值目标有多大的误差,这样才会有误差反向传播这个过程: C.MATLAB里怎么创建神经网络包括设置他的参数:包括训练,包括仿真预测,这个过程需要了解: D.在训练之前有必要对数据进行归一化处理,为什么要归一化,归一化的方法有哪些,需要掌握的知识点

BP神经网络

BP 神经网络中的 BP 为 Back  Propagation 的简写,最早它是由Rumelhart.McCelland等科学家于 1986 年提出来的,Rumelhart 并在Nature 上发表了一篇非常著名的文章 <Learning representations by back-propagating errors> .随着时代的迁移,BP神经网络理论不断的得到改进.更新,现在无疑已成为了应用最为广泛的神经网络模型之一.让我们一起来探索下 BP神经网络最初的 基本模型和概念! 从神经

通俗讲解BP神经网络

BP(backward propogation)神经网络是广泛使用的一种神经网络.要我说,神经网络就是一种高端的插值技术.相应比较好的实现教程有: Matlab工具箱版本(使用简便,但是不适用于理解原理):漫谈ANN(2):BP神经网络: Matlab原理实现(根据原理实现的版本,未使用神经网络工具箱):简单易学的机器学习算法--神经网络之BP神经网络: C++原理实现(根据原理实现):BP神经网络原理及C++实战 三篇文章,第2.3篇适用于理解原理.详细的数学推导已经在里面了,就不赘述了.下面

BP神经网络-- 基本模型

转载:http://www.cnblogs.com/jzhlin/archive/2012/07/28/bp.html BP 神经网络中的 BP 为 Back  Propagation 的简写,最早它是由Rumelhart.McCelland等科学家于 1986 年提出来的,Rumelhart 并在Nature 上发表了一篇非常著名的文章 <Learning representations by back-propagating errors> .随着时代的迁移,BP神经网络理论不断的得到改进

BP神经网络及其在教学质量评价中 的应用

本文学习笔记是自己的理解,如有错误的地方,请大家指正批评,共同进步,谢谢! 之前的教学质量评价,只是通过对教学指标的简单处理,如求平均值或人为的给出各指标的权值来加权求和,其评价结果带有很大主观性.利用BP神经网络建立教学质量评价系统的模型,通过调查分析得到教学评价指标,将其标量化成确定的数据作为其输入,用BP神经网络训练后作为实际输出,将之前得到的教学效果作为期望输出.比较期望输出与实际输出的误差.当误差达到期望的最小值时,认为训练成功.训练成功后可以得到比较准确的权值和阈值,用训练成功后的网

BP神经网络在双色球彩票上的预测实验及实现

人工智能和人工神经网络,提到这些可能有很多人都觉得很高深,很高级.但其实也有简单的,比如BP神经网络,就目前的人工神经网络发展看,除了深度学习算法的人工神经网络以外,应用最广泛的就是BP神经网络,BP神经网络能够快速发现并学习具备线性回归特征的问题.相信也有很多人想把它用在彩票分析上,处于爱好和玩的原因,我就来做一个实现. BP神经网络的关键参数一般有3个,输入节点个数,隐藏节点个数,输出节点个数.双色球,自然输入输出都是7了.基本想法是,根据前一期的号码,推算下一期的号码.这样训练样本也很丰富

Javascript实现BP神经网络

BP神经网络是一种按照误差逆向传播算法训练的多层前馈神经网络,是目前应用最广泛的神经网络.BP神经网络误差反向传播神经网络: 置各权和阈值的初始化 给定P个训练样本Xp(p=1,2,...,p) 和对应的理想输出Dp(p=1,2,...p) 信息前向传递:计算网络各层的输出 4.误差反向传播5.修改权和阈值6.重复2~5步,直至P个样本都训练一边7.判断是否满足精度要求.若满足,则停止训练,否则重复第2步. 根据上述流程,编写代码: class BPNet{ constructor(layern