RBF神经网络
2016-08-05 16:40
323 查看
RBF网络的基本思想是:
用RBF作为隐单元的“基”构成隐含层空间,这样就可将输入矢量直接(即不需要通过权连接)映射到隐空间。根据Cover定理,低维空间不可分的数据到了高维空间会更有可能变得可分。换句话来说,RBF网络的隐层的功能就是将低维空间的输入通过非线性函数映射到一个高维空间。然后再在这个高维空间进行曲线的拟合。它等价于在一个隐含的高维空间寻找一个能最佳拟合训练数据的表面。这点与普通的多层感知机MLP是不同的。
当RBF的中心点确定以后,这种映射关系也就确定了。而隐含层空间到输出空间的映射是线性的,即网络的输出是隐单元输出的线性加权和,此处的权即为网络可调参数。由此可见,从总体上看,网络由输人到输出的映射是非线性的,而网络输出对可调参数而言却又是线性的。这样网络的权就可由线性方程组直接解出,从而大大加快学习速度并避免局部极小问题。
从另一个方面也可以这样理解,多层感知器(包括BP神经网络)的隐节点基函数采用线性函数,激活函数则采用Sigmoid函数或硬极限函数。而RBF网络的隐节点的基函数采用距离函数(如欧氏距离),并使用径向基函数(如Gaussian函数)作为激活函数。径向基函数关于n维空间的一个中心点具有径向对称性,而且神经元的输入离该中心点越远,神经元的激活程度就越低。隐节点的这一特性常被称为“局部特性”。
非线性变换的基本理论(Cover, 1965):
1.一个模式分类问题如果映射到一个高维空间将会比映射到一个低维空间更可能实现线性可分;
2. 隐空间的维数越高,逼近就越精确。
网络结构:
![](https://img-blog.csdn.net/20160808170448294)
可以看出RBF神经网络是一种三层的神经网络:输出层、RBF隐含层、线性输出层
输入层:就是输入数据
RBF隐含层:确定数据类中心后,根据RBF函数对原始数据进行转换
如何确定类中心?
聚类方式
最简单的就是kmeans聚类,确定k个类中心,k就是隐含层的神经元个数
输出层:对经过RBF隐含层转换后的数据利用线性函数,确定其输出值
线性输出的评价函数可以选取:最小二乘法等
在初始中心确定后,最后输出层的线性函数的参数如何设置?
可以通过梯度下降法、最小二乘法进行解决
在进行梯度下降法更新的参数有:输出层线性函数的权值,RBF层的类中心参数
很好推导,不想这这里敲公式,草稿纸上推到下就好了。
径向基函数
![](http://images.cnitblog.com/blog/329939/201305/30125140-274ce06532b9433e915b1a72aa04d578.png)
整理了一个RBFJava源码
参考:
1.http://www.cnblogs.com/zhangchaoyang/articles/2591663.html
2.http://www.cnblogs.com/yangxi/archive/2013/05/30/3107921.html
3.http://blog.csdn.net/zouxy09/article/details/13297881
用RBF作为隐单元的“基”构成隐含层空间,这样就可将输入矢量直接(即不需要通过权连接)映射到隐空间。根据Cover定理,低维空间不可分的数据到了高维空间会更有可能变得可分。换句话来说,RBF网络的隐层的功能就是将低维空间的输入通过非线性函数映射到一个高维空间。然后再在这个高维空间进行曲线的拟合。它等价于在一个隐含的高维空间寻找一个能最佳拟合训练数据的表面。这点与普通的多层感知机MLP是不同的。
当RBF的中心点确定以后,这种映射关系也就确定了。而隐含层空间到输出空间的映射是线性的,即网络的输出是隐单元输出的线性加权和,此处的权即为网络可调参数。由此可见,从总体上看,网络由输人到输出的映射是非线性的,而网络输出对可调参数而言却又是线性的。这样网络的权就可由线性方程组直接解出,从而大大加快学习速度并避免局部极小问题。
从另一个方面也可以这样理解,多层感知器(包括BP神经网络)的隐节点基函数采用线性函数,激活函数则采用Sigmoid函数或硬极限函数。而RBF网络的隐节点的基函数采用距离函数(如欧氏距离),并使用径向基函数(如Gaussian函数)作为激活函数。径向基函数关于n维空间的一个中心点具有径向对称性,而且神经元的输入离该中心点越远,神经元的激活程度就越低。隐节点的这一特性常被称为“局部特性”。
非线性变换的基本理论(Cover, 1965):
1.一个模式分类问题如果映射到一个高维空间将会比映射到一个低维空间更可能实现线性可分;
2. 隐空间的维数越高,逼近就越精确。
网络结构:
可以看出RBF神经网络是一种三层的神经网络:输出层、RBF隐含层、线性输出层
输入层:就是输入数据
RBF隐含层:确定数据类中心后,根据RBF函数对原始数据进行转换
如何确定类中心?
聚类方式
最简单的就是kmeans聚类,确定k个类中心,k就是隐含层的神经元个数
输出层:对经过RBF隐含层转换后的数据利用线性函数,确定其输出值
线性输出的评价函数可以选取:最小二乘法等
在初始中心确定后,最后输出层的线性函数的参数如何设置?
可以通过梯度下降法、最小二乘法进行解决
在进行梯度下降法更新的参数有:输出层线性函数的权值,RBF层的类中心参数
很好推导,不想这这里敲公式,草稿纸上推到下就好了。
径向基函数
![](http://images.cnitblog.com/blog/329939/201305/30125140-274ce06532b9433e915b1a72aa04d578.png)
整理了一个RBFJava源码
参考:
1.http://www.cnblogs.com/zhangchaoyang/articles/2591663.html
2.http://www.cnblogs.com/yangxi/archive/2013/05/30/3107921.html
3.http://blog.csdn.net/zouxy09/article/details/13297881
相关文章推荐
- 径向基函数(RBF)神经网络
- [深度学习]神经网络的理解(MLP RBF RBM DBN DBM CNN 整理学习)
- 径向基(RBF)函数神经网络使用解说
- RBF神经网络
- BP和RBF神经网络比较
- 径向基函数(RBF)神经网络
- 基于RBF的概率神经网络框架
- BP神经网络与RBF神经网络讲得好的博客链接
- RBF神经网络与BP神经网络优缺点比较
- 简洁的BP及RBF神经网络代码
- RBF神经网络
- 简洁的BP及RBF神经网络代码
- 径向基函数(RBF)神经网络
- 径向基(RBF)神经网络
- RBF(径向基)神经网络 非线性函数回归的实现
- BP神经网络&&RBF神经网络预测
- 径向基函数(RBF)神经网络
- RBF神经网络与BP神经网络的比较
- 径向基(RBF)神经网络
- 径向基(RBF)神经网络