深度学习 — 径向基神经网络RBF详解

深度学习 — 径向基神经网络RBF详解上一节我们基本上打开了深度学习的大门 其实下一步应该是卷积神经网络即 CNN 了 但是呢卷积神经网络的最后一层采用的是径向基神经网络 为了以后到 CNN 不用再费力气将 RBF 和保持 CNN 的整体性和连贯性 因此这里我们系统的学习一下 讲解之前我们还是先好好回顾我们的总体学习思路 首先我们从 BP 神经网络开始 介绍了 BP 的优缺点和改良思路 后面就开始介绍 Hopfield 神经网络 该网络是从动力能量角度进行建模的

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

径向基基础知识

径向基在机器学习中讲过了一点概念性的东西,不懂的请查看我的这篇博客的后半部分,这里就不细讲了,直接把哪里的结果拿过了。

                                   \large F(X) = d^p                \large p = 1,2,3,.....,P                         \large \left ( 1 \right )

                                 \large F(x) = \sum_{p=1}^{P}w_p\varphi (\left \| x-x^p \right \|)                                                       \large \left ( 3 \right )

将(1)式的插值条件代入上式,得到P个关于未知系数\large w^p,\large p = 1,2,....,P的线性方程组:

                                                    \large \sum_{p=1}^{P}w_p\varphi (\left \| \mathbf{x^1-x^p} \right \|)=d^1

                                                     \large \sum_{p=1}^{P}w_p\varphi (\left \| \mathbf{x^2-x^p} \right \|)=d^2

                                                                            \large \begin{matrix} \end{matrix}\large \wr

                                                     \large \sum_{p=1}^{P}w_p\varphi (\left \| \mathbf{x^P-x^p} \right \|)=d^P                                     \large \left ( 4 \right )

\large \varphi _{ip}=\varphi (\left \|\mathbf{ x^i-x^p} \right \|),i=1,2,...,P,p = 1,2,...,P,则上述方程组可改写为:

                                   \large \begin{bmatrix} \varphi _{11},\varphi _{12},...,\varphi _{1P} &\\ \varphi _{11},\varphi _{12},...,\varphi _{1P} &\\ ......,......,...,..... &\\ \varphi _{11},\varphi _{12},...,\varphi _{1P} &\\ \end{bmatrix}\begin{bmatrix} w_1 &\\ w_2 &\\ ....&\\ w_P &\\ \end{bmatrix} = \begin{bmatrix} d^1 &\\ d^2 &\\ ....&\\ d^P &\\ \end{bmatrix}                                 \large \left ( 5 \right )

\large \Phi表示元素\large \varphi _{ip}的PxP阶矩阵,\large w\large d分别表示系数向量和期望输出向量,(5)式还可以写成下面的向量形式:

                                                                 \large \Phi w =d                                                                 \large \left ( 6 \right )

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

                                                                   \large w = \Phi ^{-1}d                                                           \large \left ( 7 \right )

高斯径向基函数:

                                                        \large \varphi (r) = e^{-\frac{r^2}{2\delta ^2}}                                               \large \left ( 8 \right )

深度学习 --- 径向基神经网络RBF详解

 横轴就是到中心的距离用半径r表示,如上图,我们发现当距离等于0时,径向基函数等于1,距离越远衰减越快,其中高斯径向基的参数\large \delta在支持向量机中被称为到达率或者说函数跌落到零的速度。红色\large \delta=1,蓝色\large \delta=5,绿色\large \delta=0.5,我们发现到达率越小其越窄。 

正则化径向基神经网络

正则化RBF网络的结构如下图所示。其特点是:网络具有N个输人节点,P个隐节点,i个输出节点;网络的隐节点数等于输人样本数,隐节点的激活函数常高斯径向基函数,并将所有输人样本设为径向基函数的中心,各径向基函数取统一的扩展常数。

深度学习 --- 径向基神经网络RBF详解

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

         输入向量:

                                        \large \mathbf{x} = (x_1,x_2,...,x_N)^T

        任一隐节点的激活函数:

                                        \large \varphi _j(\mathbf{x}) , (j = 1,2,3,..,P) 

                                        称为基函数。一般使用高斯函数。

         输出权矩阵:         \large w      ,其中\large w_{ik} , (j=1,2,...,P,k=1,2,...,l)为隐层的第j个节点与输出层第k个节点间                                                         的 突触权值。

         输出向量:             \large Y = (y_1,y_2,...,y_l)

                                       输出层神经元采用线性激活函数。

当输人训练集中的某个样本\large \mathbf{x}^p时,对应的期望输出\large \mathbf{d}^p就是教师信号。为了确定网络隐层到输出层之间的P个权值,需要将训练集中的样本逐一输人一遍,从而可得到式(4)中的方程组。网络的权值确定后,对训练集的样本实现了完全内插,即对所有样本误差为0。而对非训练集的输人模式,网络的输出值相当于函数的内插,因此径向基函数网络可用作数逼近。
正则化RBF网络具有以下3个特点:
        ① 正则化网络是一种通用逼近器,只有要足够的节点,它可以以任意精度逼近紧集上的任意多元连续函数。
        ② 具有最佳逼近特性,即任给一个未知的非线性函数\large f,总可以找到一组权值使得正则化网络对于\large f的逼近优于所有其可                 能的选择。


         ③ 正则化网络得到的解是最佳的,所谓“最佳”体现在同时满足对样本的逼近误差和逼近曲线的平滑性。

正则化RBF网络的学习算法

                                              \large \delta = \frac{d_{max}}{\sqrt{2P}}                                                                              \large \left ( 9 \right )

 式中,\large d_{max}是样本之间的最大距离;P是样本的数目。

         输出层的权值采用最小均方误差算法LMS(不懂的请看这篇文章),LMS的输入向量即为隐节点的输出向量,权值调整公式为:

                                            \large \Delta\textb{W_K} = \eta (d_k - \mathbf{w_k^T\Phi })\Phi                                                \large \left ( 10 \right )   

       \large \Delta W_k的各分量为:

                                              \large \Delta\textb{W_{jk}} = \eta (d_k - \mathbf{w_k^T\Phi })\varphi _j         \large (j=1,2,...,P,k=1,2,...,l)      \large \left ( 11 \right )

          权值初始化任意值。

总结:

     正则化的RBF要求所有样本对应一个隐层神经元,所带来额问题是计算量很大,因为一旦样本成千上万则计算量急剧增加,样本量很大带来的另外一个问题是容易达到病态方程组问题,什么是病态方程组问题?当方程组很多时,如样本的不是很精确,稍微有点偏差都会引起权值的剧烈变化,因为样本很多,那么方程组就可能存在多重共线性问题,在岭回归详细探讨了多重共线性问题(有兴趣的可以参考我的这篇文章),因此需要改进RBF神经网络。因此广义的RBF神经网络

广义的RBF神经网络

由于正则化网络的训练样本与“基函数”是一一对应的。当样本数P很大时,实现网络的计算量将大得惊人,此外P很大则权值矩阵也很大,求解网络的权值时容易产生病态问题(illconditioning)。为解决这一问题,可减少隐节点的个数,即N
广义RBF网络的基本思想是:用径向基函数作为隐单元的“基”,构成隐含层空间。隐含层对输人向量进行变换,将低维空间的模式变换到高维空间内,使得在低维空间内的线性不可分问题在高维空间内线性可分。

深度学习 --- 径向基神经网络RBF详解

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

输入向量:

                               \large \mathbf{x} = (x_1,x_2,...,x_N)^T

激活函数:      

                                \large \varphi _j(\mathbf{x}) , (j = 1,2,3,..,P)  为任一节点的基函数

                               一般选用格林函数

输出权矩阵:          

                                 \large w      ,其中\large w_{ik} , (j=1,2,...,P,k=1,2,...,l)为隐层的第j个节点与输出层第k个节点间                                                         的 突触权值。

输出阈值向量:\large T = (\mathrm{T_1,T_2,...,T_l})

网络输出:     \large Y = (y_1,y_2,...,y_l)

广义RBF网络设计方法   

广义RBF网络数据中心的聚类算法

这里默认大家都知道一些简单的聚类思想了,例如最常见的K-means聚类算法原理大家应该理解,这里简单的解释一下K-means的原理,很简单,在数据中我随意选择k个中心点,然后这以这个k个中心数据为基础计算其他数据到此中心的距离,把新数据加入最近的那个中心点,没加入一个数据就计算平均距离然后以这个平均距离作为本类的新中心,继续计算下去,知道数据分类完成了。不懂的建议学习一下。

1989年,Moody和Darken提出一种由两个阶段组成的混合学习过程的思路。第一阶段常采用Duda和Hart1973年提出的K-means聚类算法,其任务是用自组织聚类方法为隐层节点的径向基函数确定合适的数据中心,并根据各中心之间的距离确定隐节点的扩展常数。第二阶段为监督学习阶段,其任务是用有监督学习算法训练输出层权值,一般采用梯度法进行训练。在聚类确定数据中心的位置之前,需要先估计中心的个数M(从而确定了隐节点数),一般需要通过试验来决定。

通过聚类得到径向基的中心后,后面就是确定径向基函数额扩展函数。扩展常数的确定是通过k个聚类中心点的距离决定的,一般去k个中心点彼此距离最小的那个值加入为d,\large \delta = \lambda d

利用K-means聚类算法得到各径向基函数的中心和扩展常数后,混合学习过程的第2步是用有监督学习算法得到输出层的权值,常采用LMS法。更简捷的方法是用伪逆法直接计算。以单输出RBF网络为例,设输人为时,第j个隐节点的输出为:

                                                              \large \varphi _{pj} = \varphi (\left \| \mathbf{x^p-c_j} \right \|),      \large p = 1,2,3...,P, j=1,2,3,...,M
则隐层输出矩阵为:

                                                              \large \hat{\Phi } = [\varphi _{pj}]_{P\times M}

若RBF网络的待定输出权值为:\large \mathbf{W} = [w_1,w_2,....,w_M],则网络输出向量为:

                                                                 \large F(X) = \hat{\Phi }w

令网络输出向量等于期望信号\large d。则\large w可以用\large \hat{\Phi }的伪逆\large \hat{\Phi }^+求出:

                                                                \large w = \hat{\Phi }^+d

                                                                 \large \hat{\Phi }^+ = (\hat{\Phi }^T\hat{\Phi })^{-1}\hat{\Phi }^T 

 以上就是权值更新思想。下面对比一下RBF和BP的差别:

RBF网络与BP网络都是非线性多层前向网络,它们都是通用逼近器。对于任一个BP网络,总存在一个RBF网络可以代替它,反之亦然。但是,这两个网络也存在着很多不同点:

以上就是径向基的基本内容了,好本节结束,下一节进入很火的神经网络CNN即卷积神经网络。

                                                     

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/218382.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午7:23
下一篇 2026年3月18日 上午7:24


相关推荐

  • HTML5期末考核大作业 基于HTML+CSS+JavaScript仿王者荣耀首页 游戏网站开发 游戏官网设计与实现

    HTML5期末考核大作业 基于HTML+CSS+JavaScript仿王者荣耀首页 游戏网站开发 游戏官网设计与实现游戏官网 游戏网站 电竞游戏 游戏介绍 等网站的设计与制作 网页中包含 Div CSS 鼠标滑过特效 Table 导航栏效果 banner 表单 二级三级页面等 视频音频元素 同时设计了 logo 源文件 基本期末作业所需的知识点全覆盖 一套 A 的网页应该包含 具体可根据个人要求而定 网站布局方面 计划采用目前主流的 能兼容各大主流浏览器 显示效果稳定的浮动网页布局结构 网站程序方面 计划采用最新的网页编程语言 HTML5 CSS3 JS 程序语言完成网站的功能设计 并确保

    2026年3月19日
    2
  • 因果图案例_生活中的因果例子

    因果图案例_生活中的因果例子案例:交通一卡通自动充值软件系统要求:系统只接收50或100元纸币,一次只能使用一张纸币,一次充值金额只能为50元或100元。 若输入50元纸币,并选择充值50元,完成充值后退卡,提示充值成功; 若输入50元纸币,并选择充值100元,提示输入金额不足,并退回50元; 若输入100元纸币,并选择充值50元,完成充值后退卡,提示充值成功,找零50元; 若输入100元纸币,并选择充值10…

    2022年8月14日
    6
  • 英伟达也要“烹龙虾”?将推智能体开源平台NemoClaw 预计下周亮相

    英伟达也要“烹龙虾”?将推智能体开源平台NemoClaw 预计下周亮相

    2026年3月15日
    2
  • Hook技术【移动端&&PC端详解】「建议收藏」

    Hook技术【移动端&&PC端详解】「建议收藏」最近面试说到了这个hook技术,其实就是钩子函数,但是具体如何应用需要一探究竟,私下总结一下。文章目录移动端的hook技术应用1.whatisHook技术(移动端)2.Hook技术实现的步骤3.在移动开发中的应用:3.1使用hook技术实现免注册式跳转Windows端应用1.whatishook(钩子)2.Hook分类3.Hook工作原理Hook简介微软的MSDN中,…

    2022年5月26日
    55
  • Java 二维数组转换成List<List<String>>[通俗易懂]

    Java 二维数组转换成List<List<String>>[通俗易懂]在拿到二维数组的数据时,需要将它转换成嵌套的list,如下工具类:importjava.util.ArrayList;importjava.util.List;/***将二维数组转换成List>形式工具**@authorqiulinhe**2017年3月1日下午3:09:52*/publicclassArrayToListTe

    2022年6月20日
    195
  • 信息系统项目管理师之二决策树分析

    信息系统项目管理师之二决策树分析名称 决策树分析 EMV 期望货币值 定义 迫使考虑各种可能的情况 常结合 EMV 使用适用过程 风险定量分析示例 下面以南方医院供应公司为例 看一看如何利用决策树作出合适的生产能力计划 nbsp 南方医院供应公司是一家制造医护人员的工装大褂的公司 该公司正在考虑扩大生产能力 它可以有以下几个选择 1 什么也不做 2 建一个小厂 3 建一个中型厂 4 建一个大厂 新增加的设备将生产一种

    2026年2月6日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号