上一节我们基本上打开了深度学习的大门,其实下一步应该是卷积神经网络即CNN了,但是呢卷积神经网络的最后一层采用的是径向基神经网络,为了以后到CNN不用再费力气将RBF和保持CNN的整体性和连贯性,因此这里我们系统的学习一下,讲解之前我们还是先好好回顾我们的总体学习思路,首先我们从BP神经网络开始,介绍了BP的优缺点和改良思路,后面就开始介绍Hopfield神经网络,该网络是从动力能量角度进行建模的神经网络,但是缺点是存在伪吸引子或者说容易陷入局部最优解,为了解决这个问题我们引入了玻尔兹曼分布和模拟退火算法构成新的神经网络即玻尔兹曼机解决了为伪吸引子的问题,但是带来的问题的是计算量太大,为了解决这个问题,hinton发明了受限玻尔兹曼机,通过吉布斯采样很好的解决了玻尔兹曼机的计算量大的问题,在此基础上,构造了深度置信网络DBN,后面又和BP结合构成DNN即深度学习网络,也因此我们算是打开了深度学习的大门了,后面就是CNN了,这就是我们学习的过程,为了后面的更系统的学习CNN,需要讲解一下径向基神经网络,因为CNN中用到了,好,废话不多说,下面就开始:
径向基基础知识
径向基在机器学习中讲过了一点概念性的东西,不懂的请查看我的这篇博客的后半部分,这里就不细讲了,直接把哪里的结果拿过了。


将(1)式的插值条件代入上式,得到P个关于未知系数
,
的线性方程组:





令
则上述方程组可改写为:

令
表示元素
的PxP阶矩阵,
和
分别表示系数向量和期望输出向量,(5)式还可以写成下面的向量形式:

式中,
称为插值矩阵,若
为可逆矩阵,就可以从(6)式中解出系数向量
,即:

高斯径向基函数:


横轴就是到中心的距离用半径r表示,如上图,我们发现当距离等于0时,径向基函数等于1,距离越远衰减越快,其中高斯径向基的参数
在支持向量机中被称为到达率或者说函数跌落到零的速度。红色
=1,蓝色
=5,绿色
=0.5,我们发现到达率越小其越窄。
正则化径向基神经网络
正则化RBF网络的结构如下图所示。其特点是:网络具有N个输人节点,P个隐节点,i个输出节点;网络的隐节点数等于输人样本数,隐节点的激活函数常高斯径向基函数,并将所有输人样本设为径向基函数的中心,各径向基函数取统一的扩展常数。

设输入层的任意节点你用i表示,隐节点任一节点用j表示,输出层的任一节点用k表示。对各层的数学描述如下:
输入向量:

任一隐节点的激活函数:
称为基函数。一般使用高斯函数。
输出权矩阵:
,其中
为隐层的第j个节点与输出层第k个节点间 的 突触权值。
输出向量: 
输出层神经元采用线性激活函数。
当输人训练集中的某个样本
时,对应的期望输出
就是教师信号。为了确定网络隐层到输出层之间的P个权值,需要将训练集中的样本逐一输人一遍,从而可得到式(4)中的方程组。网络的权值确定后,对训练集的样本实现了完全内插,即对所有样本误差为0。而对非训练集的输人模式,网络的输出值相当于函数的内插,因此径向基函数网络可用作数逼近。
正则化RBF网络具有以下3个特点:
① 正则化网络是一种通用逼近器,只有要足够的节点,它可以以任意精度逼近紧集上的任意多元连续函数。
② 具有最佳逼近特性,即任给一个未知的非线性函数
,总可以找到一组权值使得正则化网络对于
的逼近优于所有其可 能的选择。
③ 正则化网络得到的解是最佳的,所谓“最佳”体现在同时满足对样本的逼近误差和逼近曲线的平滑性。
正则化RBF网络的学习算法

式中,
是样本之间的最大距离;P是样本的数目。
输出层的权值采用最小均方误差算法LMS(不懂的请看这篇文章),LMS的输入向量即为隐节点的输出向量,权值调整公式为:
的各分量为:

权值初始化任意值。
总结:
正则化的RBF要求所有样本对应一个隐层神经元,所带来额问题是计算量很大,因为一旦样本成千上万则计算量急剧增加,样本量很大带来的另外一个问题是容易达到病态方程组问题,什么是病态方程组问题?当方程组很多时,如样本的不是很精确,稍微有点偏差都会引起权值的剧烈变化,因为样本很多,那么方程组就可能存在多重共线性问题,在岭回归详细探讨了多重共线性问题(有兴趣的可以参考我的这篇文章),因此需要改进RBF神经网络。因此广义的RBF神经网络
广义的RBF神经网络
由于正则化网络的训练样本与“基函数”是一一对应的。当样本数P很大时,实现网络的计算量将大得惊人,此外P很大则权值矩阵也很大,求解网络的权值时容易产生病态问题(illconditioning)。为解决这一问题,可减少隐节点的个数,即N

如上图N-M-L结构的广义RBF神经网络结构图,即网络具有N个输入节点,M个隐节点,l个输出节点,且M
输入向量:

激活函数:
为任一节点的基函数
一般选用格林函数
输出权矩阵:
,其中
为隐层的第j个节点与输出层第k个节点间 的 突触权值。
输出阈值向量:
网络输出: 
广义RBF网络设计方法
广义RBF网络数据中心的聚类算法
这里默认大家都知道一些简单的聚类思想了,例如最常见的K-means聚类算法原理大家应该理解,这里简单的解释一下K-means的原理,很简单,在数据中我随意选择k个中心点,然后这以这个k个中心数据为基础计算其他数据到此中心的距离,把新数据加入最近的那个中心点,没加入一个数据就计算平均距离然后以这个平均距离作为本类的新中心,继续计算下去,知道数据分类完成了。不懂的建议学习一下。
1989年,Moody和Darken提出一种由两个阶段组成的混合学习过程的思路。第一阶段常采用Duda和Hart1973年提出的K-means聚类算法,其任务是用自组织聚类方法为隐层节点的径向基函数确定合适的数据中心,并根据各中心之间的距离确定隐节点的扩展常数。第二阶段为监督学习阶段,其任务是用有监督学习算法训练输出层权值,一般采用梯度法进行训练。在聚类确定数据中心的位置之前,需要先估计中心的个数M(从而确定了隐节点数),一般需要通过试验来决定。
通过聚类得到径向基的中心后,后面就是确定径向基函数额扩展函数。扩展常数的确定是通过k个聚类中心点的距离决定的,一般去k个中心点彼此距离最小的那个值加入为d,
。
利用K-means聚类算法得到各径向基函数的中心和扩展常数后,混合学习过程的第2步是用有监督学习算法得到输出层的权值,常采用LMS法。更简捷的方法是用伪逆法直接计算。以单输出RBF网络为例,设输人为时,第j个隐节点的输出为:
, 
则隐层输出矩阵为:
![\large \hat{\Phi } = [\varphi _{pj}]_{P\times M}](https://javaforall.net/wp-content/uploads/2020/11/2020110817443450.jpg)
若RBF网络的待定输出权值为:
,则网络输出向量为:

令网络输出向量等于期望信号
。则
可以用
的伪逆
求出:

以上就是权值更新思想。下面对比一下RBF和BP的差别:
RBF网络与BP网络都是非线性多层前向网络,它们都是通用逼近器。对于任一个BP网络,总存在一个RBF网络可以代替它,反之亦然。但是,这两个网络也存在着很多不同点:
以上就是径向基的基本内容了,好本节结束,下一节进入很火的神经网络CNN即卷积神经网络。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/218382.html原文链接:https://javaforall.net
