Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【通俗理解】RBF网络

【通俗理解】RBF网络

作者头像
用户1594945
发布于 2019-07-31 04:34:20
发布于 2019-07-31 04:34:20
1.9K0
举报
文章被收录于专栏:AI启蒙研究院AI启蒙研究院

1 RBF Network Hypothesis

在SVM中引入Gaussian Kernel就能在无限多维的特征转换中得到一条“粗壮”的分界线(或者高维分界平面、分界超平面)。从结果来看,Gaussian SVM其实就是将一些Gaussian函数进行线性组合,而Gaussian函数的中心就位于Support Vectors上,最终得到预测模型gsvm(x)

Gaussian kernel的另一种叫法是Radial Basis Function(RBF) kernel,即径向基函数。这个名字从何而来?首先,radial表示Gaussian函数计算结果只跟新的点x与中心点xn的距离有关,与其它无关。basis function就是指Gaussian函数,最终的矩gsvm(x)就是由这些basis function线性组合而成。

从另外一个角度来看Gaussian SVM。首先,构造一个函数gn(x)

上式中,指数项表示新的点x与xn之间的距离大小。距离越近,即权重越大,相当于对yn投的票数更多;而距离越远,权重越小,相当于对yn投的票数更少。其物理意义是新的点与xn的距离远近决定了gn(x)yn的接近程度。如果距离越近,则yngn(x)的权重影响越大;如果距离越远,则yngn(x)的权重影响越小。那么整体来说,gsvm(x)就由所有的SV组成的gn(x)线性组合而成,不同gn(x)对应的系数是αn,最后由sign函数做最后的选择。这个过程很类型我们之前介绍的aggregation中将所有较好的hypothesis线性组合,不同的gn(x)有不同的权重αn。我们把gn(x)叫做radial hypotheses,Gaussian SVM就是将所有SV对应的radial hypotheses进行线性组合(linear aggregation)。

那么,Radial Basis Function(RBF) Network其实就是上面Gaussian SVM概念的延伸,目的就是找到所有radial hypotheses的linear aggregation,得到更好的网络模型。

之所以叫作RBF Network是因为它的模型结构类似于我们之前介绍的Neural Network。

Neural Network与RBF Network在输出层基本是类似的,都是上一层hypotheses的线性组合(linear aggregation)。但是对于隐藏层的各个神经元来说,Neural Network是使用内积(inner-product)加上tanh()函数的方法,而RBF Network是使用距离(distance)加上Gaussian函数的方法。总的来说,RBF Network是Neural Network的一个分支。

至此,RBF Network Hypothesis以及网络结构可以写成如下形式:

上式中,μm表示每个中心点的位置,隐藏层每个神经元对应一个中心点;βm表示每个RBF的权重,即投票所占比重。

对应到Gaussian SVM上,上式中的RBF就是Gaussian函数。由于是分类问题,上式中的Output就是sign函数。其中,RBF的个数M就等于支持向量的个数SV,μm就代表每个SV的坐标xm,而βm就是在Dual SVM中推导得到的αn*ym值。那我们学习的目标就是根据已知的RBF和Output,来决定最好的中心点位置μm和权重系数βm

在之前介绍SVM的时候,我们就讲过Mercer定理:一个矩阵是Kernel的充分必要条件是它是对称的且是半正定的,条件比较苛刻。除了Gaussian kernel还有Polynomial kernel等等。Kernel实际上描述了两个向量之间的相似性,通过转换到z空间计算内积的方式,来表征二者之间的相似性。而RBF实际上是直接使用x空间的距离来描述了一种相似性,距离越近,相似性越高。因此,kernel和RBF可以看成是两种衡量相似性(similarity)的方式。本文介绍的Gaussian RBF即为二者的交集。

除了kernel和RBF之外,还有其它衡量相似性的函数。例如神经网络中的神经元就是衡量输入和权重之间的相似性。

经过以上分析,我们知道了RBF Network中distance similarity是一个很好的定义特征转换的方法。除此之外,我们还可以使用其它相似性函数来表征特征转换,从而得到更好的机器学习模型。

2 RBF Network Learning

我们已经介绍了RBF Network的Hypothesis可表示为:

其中μm表示中心点的位置。μm的个数M是人为决定的,如果将每个样本点xm都作为一个中心点,即M=N,则我们把这种结构称为full RBF Network。也就是说,对于full RBF Network,每个样本点都对最终的预测都有影响(uniform influence),影响的程度由距离函数和权重βm决定。如果每个样本点的影响力都是相同的,设为1,βm=1⋅ym,那么相当于只根据距离的远近进行投票。最终将x与所有样本点的RBF距离线性组合,经过sign函数后,得到最终的预测分类结果。这实际上就是aggregation的过程,考虑并计入所有样本点的影响力,最后将x与所有样本点的distance similarity进行线性组合。

full RBF Network的矩可以表示为:

我们来看上式中的Gaussian函数项,当x与样本点xm越接近的时候,其高斯函数值越大。由于Gaussian函数曲线性质,越靠近中心点,值越大;偏离中心点,其值会下降得很快。也就是说,在所有N个中心样本点中,往往只有距离x最近的那个样本点起到关键作用,而其它距离x较远的样本点其值很小,基本可以忽略。因此,为了简化运算,我们可以找到距离x最近的中心样本点,只用这一个点来代替所有N个点,最后得到的矩gnbor(x)也只由该最近的中心点决定。这种模型叫做nearest neighbor model,只考虑距离x最近的那一个“邻居”。

当然可以对nearest neighbor model进行扩展,如果不是只选择一个“邻居”,而是选择距离x最近的k个“邻居”,进行uniformly aggregation,得到最终的矩gnbor(x)。这种方法通常叫做k近邻算法(k nearest neighbor)。

k nearest neighbor通常比nearest neighbor model效果更好,计算量上也比full RBF Network要简单一些。值得一提的是,k nearest neighbor与full RBF Network都是比较“偷懒”的方法。因为它们在训练模型的时候比较简单,没有太多的运算,但是在测试的时候却要花费更多的力气,找出最相近的中心点,计算相对复杂一些。

接下来,我们来看一下Full RBF Network有什么样的优点和好处。考虑一个squared error regression问题,且每个RBF的权重为βm而不是前面简化的ym。目的是计算最优化模型对应的βm值。该hypothesis可表示为:

很明显,这是一个简单的线性回归问题,每个RBF都可以看成是特征转换。特征转换后的向量zn可表示为:

那么,根据之前线性回归介绍过的最优化解公式,就能快速地得到β的最优解为:

矩阵Z的大小是NxN,是一个方阵。而且,由于Z中每个向量zn表示该点与其它所有点的RBF distance,所以从形式上来说,Z也是对称矩阵。如果所有的样本点xn都不一样,则Z一定是可逆的。

根据Z矩阵的这些性质,我们可以对β的解进行化简,得到:

β的解代入矩的计算中,以x1为例,得到:

结果非常有趣,模型的输出与原样本y1完全相同。同样,对任意的xn,都能得到gRBF(xn)=yn。因此,Ein(gRBF)=0。看起来,这个模型非常完美了,没有error。但是,我们之前就说过,机器学习中,Ein=0并非好事,很可能造成模型复杂度增加及过拟合。

当然,这种方法在某些领域还是很有用的。比如在函数拟合(function approximation)中,目标就是让Ein=0,使得原所有样本都尽可能地落在拟合的函数曲线上。

为了避免发生过拟合,我们可以引入正则项λ,得到β的最优解为:

我们再来看一下Z矩阵,Z矩阵是由一系列Gaussian函数组成,每个Gaussian函数计算的是两个样本之间的distance similarity。这里的Z与之前我们介绍的Gaussian SVM中的kernel K是一致的。当时我们得到kernel ridgeregression中线性系数β的解为:

比较一下kernel ridgeregression与regularized full RBF Network的β解,形式上相似但不完全相同。这是因为regularization不一样,在kernel ridgeregression中,是对无限多维的特征转换做regularization,而在regularized full RBF Network中,是对有限维(N维度)的特征转换做regularization。因此,两者的公式解有细微差别。

除此之外,还有另外一种regularization的方法,就是不把所有N个样本点都拿来作中心点,而是只选择其中的M个样本点作为中心点。类似于SVM中的SV一样,只选择具有代表性的M个中心点。这样减少中心点数量的同时也就减少了权重的数量,能够起到regularization的效果,避免发生过拟合。

下一部分,我们将讨论如何选取M个中心点作为好的代表。

3 k-Means Algorithm

之所以要选择代表,是因为如果某些样本点很接近,那么就可以用一个中心点来代表它们。这就是聚类(cluster)的思想,从所有N个样本点中选择少数几个代表作为中心点。

聚类(clustering)问题是一种典型的非监督式学习(unsupervised learning)。它的优化问题有两个变量需要确定:一个是分类的分群值Sm,每一类可表示为S1,S2,⋯,SM;另外一个是每一类对应的中心点μ1,μ2,⋯,μM。那么对于该聚类问题的优化,其error function可使用squared error measure来衡量。

那么,我们的目标就是通过选择最合适的S1,S2,⋯,SMμ1,μ2,⋯,μM,使得Ein最小化。对应的公式可表示为:

从这个最小化公式,我们能够发现这是一个组合最佳化的问题,既要优化分群值Sm,又要求解每一类的中心点um。所以,这个最小化问题是比较复杂、难优化的。通常的办法是对Sμ分别进行最优化求解。

首先,如果μ1,μ2,⋯,μM是固定的,目标就是只要对所有的xn进行分群归类。这个求解过程很简单,因为每个样本点只能属于一个群S,不能同时属于两个或多个群。所以,只要根据距离公式,计算选择离xn最近的中心点μ即可。

然后,如果S1,S2,⋯,SM是固定的,目标就是只要找出每个类的中心点μ。显然,根据上式中的error function,所有的xn分群是已知的,那么该最小化问题就是一个典型的数值最优化问题。对于每个类群Sm,利用梯度下降算法,即可得到μm的解。

如上图所示,中心点μm就等于所有属于类群Sm的平均位置处。

经过以上的推导,我们得到了一个非常有名的一种unsupervised learning算法,叫做k-Means Algorithm。这里的k就是代表上面的M,表示类群的个数。

k-Means Algorithm的流程是这样的:首先,随机选择k个中心点μ1,μ2,⋯,μk;然后,再由确定的中心点得到不同的类群S1,S2,⋯,Sk;接着,再由确定的类群计算出新的不同的k个中心点;继续循环迭代计算,交互地对μS值进行最优化计算,不断更新μS值,直到程序收敛,实现Ein最小化。具体算法流程图如下所示:

有一个问题是,k-Means Algorithm的循环迭代一定会停止吗?或者说一定能得到最优解吗?答案是肯定的。因为每次迭代更新,μS值都会比上一次的值更接近最优解,也就是说Ein是不断减小的。而Ein的下界是0,所以,Ein最终会等于0,μS最终能得到最优解。

k-Means Algorithm已经介绍完毕。接下来,我们把k-Means Algorithm应用到RBF Network中去。首先,使用k-Means,得到原始样本的k个中心点。原始样本到k个中心点组成了RBF特征转换Φ(x)。然后,根据上面介绍过的线性模型,由最优化公式解计算得到权重β值。最后,将所有的Φ(x)β线性组合,即得到模型的表达式。具体的算法流程如下所示:

值得一提的是,这里我们使用了unsupervised learning(k-Means)与我们上节课介绍的autoencoder类似,同样都是特征转换(feature transform)的方法。

在最优化求解过程中,参数有k-Means类群个数M、Gaussian函数参数λ等。我们可以采用validation的方法来选取最佳的参数值。

4 k-means and RBF Network in Action

下面这部分,我们将举几个例子,看一下k-Means Algorithm是如何处理分类问题的。

第一个例子,平面上有4个类群,k=4。首先,我们随机选择4个中心点,如下图中四种颜色的方块所示:

第一次迭代,由初始中心点,得到4个类群点的分布:

4个类群点确定后,再更新4个中心点的位置:

第二次迭代,由上面得到的4个中心点,再计算4个类群点的分布:

4个类群点确定后,再更新4个中心点的位置:

第三次迭代,由上面得到的4个中心点,再计算4个类群点的分布:

4个类群点确定后,再更新4个中心点的位置:

第四次迭代,由上面得到的4个中心点,再计算4个类群点的分布:

4个类群点确定后,再更新4个中心点的位置:

第五次迭代,由上面得到的4个中心点,再计算4个类群点的分布:

4个类群点确定后,再更新4个中心点的位置:

第六次迭代,由上面得到的4个中心点,再计算4个类群点的分布:

4个类群点确定后,再更新4个中心点的位置:

从上图我们可以看到,经过六次迭代计算后,聚类的效果已经相当不错了。从另外一个角度来说,k值的选择很重要,下面我们来看看不同的k值对应什么样的分类效果。

如上图所示,初始时,我们分别设定k为2,4,7,随机选择中心点位置。在经过多次迭代后,得到的聚类结果如下:

通过上面这个例子可以得出,不同的k值会得到不同的聚类效果。还有一点值得注意的是,初始中心点位置也可能会影响最终的聚类。例如上图中k=7的例子,初始值选取的右边三个中心点比较靠近,最后得到的右边三个聚类中心点位置也跟初始位置比较相近。所以,k值大小和初始中心点位置都会影响聚类效果。

接下来,我们把k-Means应用到RBF Network中,同样分别设定k为2,4,7,不同模型得到的分类效果如下:

很明显,k=2时,分类效果不是太好;k=4时,分类效果好一些;而k=7时,分类效果更好,能够更细致地将样本准确分类。这说明了k-Means中k值设置得是否合理,对RBF Network的分类效果起到重要的作用。

再来看一个例子,如果使用full RBF Network进行分类,即k=N,如下图左边所示,设置正则化因子λ=0.001。下图右边表示只考虑full RBF Network中的nearest neighbor。下图中间表示的是k=4的RBF Network的分类效果。

从上图的比较中,我们可以发现full RBF Network得到的分类线比较弯曲复杂。由于full RBF Network的计算量比较大,所以一般情况下,实际应用得不太多。

5 Summary

本文主要介绍了Radial Basis Function Network。RBF Network Hypothesis就是计算样本之间distance similarity的Gaussian函数,这类原型替代了神经网络中的神经元。RBF Network的训练学习过程,其实就是对所有的原型Hypotheses进行linear aggregation。然后,我们介绍了一个确定k个中心点的unsupervised learning算法,叫做k-Means Algorithm。这是一种典型的聚类算法,实现对原始样本数据的聚类分群。接着,将k-Means Algorithm应用到RBF Network中,选择合适数量的中心点,得到更好的分类模型。最后,我们列举了几个在实际中使用k-Means和RBF Network的例子,结果显示不同的类群k值对分类的效果影响很大。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-05-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI启蒙研究院 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
华三最新模拟器版本5.10.3,全新防火墙Web管理界面附带eNSP共存方法(新版HCL如何关联CRT)
安装建议: 1.建议使用Win10操作系统,使用自带virtual box 6.0.14; 2.须在BIOS中开启VT-x以启用虚拟化技术 3.Windows安全中心-设备安全性-内核隔离,内存完整性设置需保持关闭状态(一般默认关闭) 4.需要关闭Windows Hyper-v相关功能
ICT系统集成阿祥
2024/12/03
3730
华三最新模拟器版本5.10.3,全新防火墙Web管理界面附带eNSP共存方法(新版HCL如何关联CRT)
华三最新模拟器版本5.10.3,全新防火墙Web管理界面附带eNSP共存方法(附带5.5版本,支持M-LAG)
安装建议: 1.建议使用Win10操作系统,使用自带virtual box 6.0.14; 2.须在BIOS中开启VT-x以启用虚拟化技术 3.Windows安全中心-设备安全性-内核隔离,内存完整性设置需保持关闭状态(一般默认关闭) 4.需要关闭Windows Hyper-v相关功能
网络之路一天
2024/09/26
3900
华三最新模拟器版本5.10.3,全新防火墙Web管理界面附带eNSP共存方法(附带5.5版本,支持M-LAG)
华三最新模拟器版本5.10.3下载,附带eNSP共存方法(新增v5版本模拟器)
---------------------- 一、客户端UI功能部分 1.“一键修复”功能优化:新增“内核隔离”检查、优化Hyper-V异常检测内容
网络之路一天
2024/11/04
5430
华三最新模拟器版本5.10.3下载,附带eNSP共存方法(新增v5版本模拟器)
华为模拟器eNSP 1.3.00.100,很多朋友找不到!这里全都有~附带防火墙、CE全部镜像包以及与华三HCL共存方法
先安装5.2.XX版本的VirtualBox,再完成安装eNSP模拟器(博主用的5.2.30,也可以用5.2.44);
网络之路一天
2024/12/10
1.1K0
华为模拟器eNSP 1.3.00.100,很多朋友找不到!这里全都有~附带防火墙、CE全部镜像包以及与华三HCL共存方法
华为eNSP模拟器设备启动失败解决方案(全)
1.1 VirtualBox主机网卡是否存在、主机网卡的ip段是否为192.168.56.0/255.255.255.0
网络工程师笔记
2022/04/08
16.2K0
华为eNSP模拟器设备启动失败解决方案(全)
网络工程师生涯中必玩的六款网络模拟器,有没有你没玩过的?
作为网络工程师,大家一定用过各种各样的模拟器,开始入门的时候大家会选择一个厂商进行系统化学习,进入工作单位后,会由于项目的原因接触各种厂商的设备,这个时候想要快速熟悉其命令,最好的办法就是用相关厂商适应的模拟器去模拟实验,那么市面上常见的有哪些模拟器呢?今天瑞哥带着大家好好了解一下!
网络技术联盟站
2022/10/14
26.2K1
网络工程师生涯中必玩的六款网络模拟器,有没有你没玩过的?
华为模拟器ensp学习笔记
2.打开vbox中左上角菜单->管理虚拟介质管理,将里面的文件删除(如下图),如果删除不掉就先删除下拉箭头的类似:29a2d98c-4da0-4e86-8e4e-768cc7f81b61.vdi,另外出现任何报错都不要在意,确定即可。(如果虚拟介质管理是空的则跳过这一步)
MIKE笔记
2023/03/23
1.9K0
华为模拟器ensp学习笔记
华为模拟器ensp怎么安装_华为模拟器怎么安装
eNSP是一款由华为提供的免费的图形化网络仿真工具平台,它将完美呈现真实设备实景(包括华为最新的ARG3路由器和X7系列的交换机),支持大型网络模拟,让你有机会在没有真实设备的情况下也能够实验测试,学习网络技术。
全栈程序员站长
2022/09/20
4.5K0
华为模拟器ensp怎么安装_华为模拟器怎么安装
网工必须了解的华为华三设备基础命令行与WEB界面
上一篇学会了真机怎么登录了,这一篇来正式进入基础命令行的了解,了解下命令行的结构以及WEB界面。为了大家方便跟着学习,演示就使用模拟器,后续有不能实现的功能,则用真机。
网络之路一天
2024/01/08
8640
网工必须了解的华为华三设备基础命令行与WEB界面
华为模拟器eNSP下载与安装教程(面向小白)「建议收藏」
链接:https://pan.baidu.com/s/1XqSfHetChnmiaNtHpjS1oA 提取码:4455
全栈程序员站长
2022/11/04
40.6K0
Andriod模拟器网易腾讯那家强?
现在的模拟器总体上,基于两种工作模式运行,一种是基于虚拟化Hyper-V的,这个需要计算机硬件打开虚拟化,另一种是不依赖这个的,他们叫模拟引擎。
糖果
2021/08/12
2.4K0
Win10系统下基于Docker构建Appium容器连接Android模拟器Genymotion完成移动端Python自动化测试
    Python自动化,大概也许或者是今年最具热度的话题之一了。七月流火,招聘市场上对于Python自动化的追捧热度仍未消减,那么Python自动化到底能帮我们做些什么呢?
用户9127725
2022/08/08
1.6K0
Win10系统下基于Docker构建Appium容器连接Android模拟器Genymotion完成移动端Python自动化测试
内网渗透-活动目录利用方法
https://book.hacktricks.xyz/windows-hardening/active-directory-methodology/acl-persistence-abuse
亿人安全
2024/08/30
3800
内网渗透-活动目录利用方法
硬件资料和软件资料_电脑硬件检测工具哪个好
2. BIOS报警声意义 3. BIOS自检与开机故障相关问题 5. 计算机几个常见指标的意义 6. 显卡GPU参数 7. 显示卡常见故障全面解决 8. 集成声卡常见故障及解决 9. 显示器经典故障以及处理办法 10. AMI主板代码大全(BIOS-ID)
全栈程序员站长
2022/11/01
4.8K0
KVM详解,学习kvm系列文章
其中,KVM 全称是 基于内核的虚拟机(Kernel-based Virtual Machine),它是一个 Linux 的一个内核模块,该内核模块使得 Linux 变成了一个 Hypervisor:
菲宇
2019/06/12
9.5K1
KVM详解,学习kvm系列文章
微服务的终极杀器SpringCloudAlibaba组件精讲
    In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies. -----[摘自官网]    简而言之,微服务架构风格是一种将单个应用程序开发为“一套小型服务”的方法,每个服务“运行在自己的进程中”,并通过轻量级机制(通常是HTTP资源API)进行通信。这些服务“围绕业务功能构建”,并通过全自动部署机制“独立部署”。“这些服务只有最低限度的集中管理”,可能是用不同的编程语言编写的,并使用不同的数据存储技术。
上分如喝水
2021/08/16
1.7K0
微服务的终极杀器SpringCloudAlibaba组件精讲
【腾讯云Cloud Studio实战训练营】如何轻松实现一个Springboot+Vue学生管理系统及我的使用感受
在这个博客中,我将介绍如何使用Cloud Studio打造一个基于Spring Boot和Vue的学生管理系统。该系统旨在提供一个简单而功能丰富的平台,用于管理学生的信息和课程,并提供一系列功能来增强教育管理的效率和便捷性。
Maynor
2023/07/24
7230
【腾讯云Cloud Studio实战训练营】如何轻松实现一个Springboot+Vue学生管理系统及我的使用感受
MIT 6.858 计算机系统安全讲义 2014 秋季(二)
<embed name="nacl_module" id="hello_world" width=0 height=0 src="hello_world.nmf" type="application/x-nacl" />
ApacheCN_飞龙
2024/03/11
3050
100天学会python
目前我使用的Python 3.7.x的版本是在2018年发布的,Python的版本号分为三段,形如A.B.C。其中A表示大版本号,一般当整体重写,或出现不向后兼容的改变时,增加A;B表示功能更新,出现新功能时增加B;C表示小的改动(例如:修复了某个Bug),只要有修改就增加C。如果对Python的历史感兴趣,可以阅读名为《Python简史》的网络文章。
她的店里只卖樱花
2023/01/06
3.4K0
100天学会python
Python100Days
这可能是我目前发现最好最好的Python教程了,故整理至我的博客。 原项目GitHub地址https://github.com/jackfrued/Python-100-Days
一点儿也不潇洒
2018/08/07
10K0
推荐阅读
相关推荐
华三最新模拟器版本5.10.3,全新防火墙Web管理界面附带eNSP共存方法(新版HCL如何关联CRT)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档