Loading [MathJax]/jax/input/TeX/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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
中国台湾大学林轩田机器学习技法课程学习笔记14 -- Radial Basis Function Network
红色石头
2017/12/28
9550
中国台湾大学林轩田机器学习技法课程学习笔记14 -- Radial Basis Function Network
Radial Basis Function Network
使用高斯核函数方式把数据维度扩展到无限维度进而得到一条粗壮的分界线。仔细看一下这个分割函数,其实就是一些Gaussian函数的线性组合,y就是增长的方向。 Gaussian函数还有另外一个叫法——径向基函数,这是因为这个base function的结果只和计算这个x和中心点xn的距离有关,与其他的无关。 从其他方面来看SVM,先构造一个函数: g(x) = y_nexp(-γ|x - x_n|^2)指数求出来的其实就是x点和中心点的相似度,相似度越高,那么=晚y这个方向投票的票数就会越多。不同的g(x)有不同的权重,他们的线性组合就成了SVM,g(x)函数称为是radial function。所以Gaussian SVM就是把一些radial function联合起来做linear aggregation。
西红柿炒鸡蛋
2018/09/07
7830
机器学习十大经典算法入门[通俗易懂]
一,SVM(Support Vector Machine)支持向量机 a. SVM算法是介于简单算法和神经网络之间的最好的算法。 b. 只通过几个支持向量就确定了超平面,说明它不在乎细枝末节,所以不容易过拟合,但不能确保一定不会过拟合。可以处理复杂的非线性问题。 c. 高斯核函数 d. 缺点:计算量大
全栈程序员站长
2022/09/07
9700
机器学习十大经典算法入门[通俗易懂]
【完结】林轩田机器学习技法终章
我们在本系列课程中介绍的第一个特征提取的方法就是kernel。Kernel运算将特征转换和计算内积这两个步骤合二为一,提高了计算效率。我们介绍过的kernel有:Polynormial Kernel、Gaussian Kernel、Stump Kernel等。另外,我们可以将不同的kernels相加(transform union)或者相乘(transform combination),得到不同的kernels的结合形式,让模型更加复杂。值得一提的是,要成为kernel,必须满足Mercer Condition。不同的kernel可以搭配不同的kernel模型,比如:SVM、SVR和probabilistic SVM等,还包括一些不太常用的模型:kernel ridge regression、kernel logistic regression。使用这些kernel模型就可以将线性模型扩展到非线性模型,kernel就是实现一种特征转换,从而能够处理非常复杂的非线性模型。顺便提一下,因为PCA、k-Means等算法都包含了内积运算,所以它们都对应有相应的kernel版本。
红色石头
2022/01/12
2780
【完结】林轩田机器学习技法终章
各种聚类算法的介绍和比较「建议收藏」
聚类就是按照某个特定标准(如距离准则)把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大。即聚类后同一类的数据尽可能聚集到一起,不同数据尽量分离。
全栈程序员站长
2022/07/31
6.9K0
各种聚类算法的介绍和比较「建议收藏」
RBF(径向基)神经网络
只要模型是一层一层的,并使用AD/BP算法,就能称作 BP神经网络。RBF 神经网络是其中一个特例。本文主要包括以下内容:
狼啸风云
2019/11/12
3K0
系统总结!机器学习的模型!
大家好,我是花哥,前面的文章我们介绍了人工智能、机器学习、深度学习的区别与联系,指出了如今的人工智能技术基本上就是指机器学习。
算法进阶
2024/02/18
1.3K0
系统总结!机器学习的模型!
机器学习十大经典算法之K-Means聚类算法
聚类在机器学习,数据挖掘,模式识别,图像分析以及生物信息等领域有广泛的应用。聚类是把相似的对象通过静态分类的方法分成不同的组别或者更多的子集(subset),这样让在同一个子集中的成员对象都有相似的一些属性,常见的包括在坐标系中更加短的空间距离(一般是欧式距离)等。
墨明棋妙27
2022/09/23
5050
MADlib——基于SQL的数据挖掘解决方案(26)——聚类之k-means方法
聚类算法大都是几种最基本的方法,如k-means、层次聚类、SOM等,以及它们的许多改进变种。MADlib提供了一种k-means算法的实现。本篇主要介绍MADlib的k-means算法相关函数和应用案例。
用户1148526
2019/05/25
8540
常用机器学习算法汇总(中)
上一篇文章介绍了线性回归、逻辑回归、决策树和随机森林四种算法,本文会继续介绍四种算法--SVM、朴素贝叶斯、KNN 以及 kmean 算法,其中最后一种是无监督学习的聚类算法,前面三种也是非常常见的算法,特别是 SVM,在 2012 年 AlexNet 网络的成功之前,一直都是图像分类中非常常用的分类算法。
kbsc13
2019/08/16
6130
中国台湾大学林轩田机器学习技法课程学习笔记15 -- Matrix Factorization
上节课我们主要介绍了Radial Basis Function Network。它的原理就是基于距离相似性(distance-based similarities)的线性组合(linear aggr
红色石头
2017/12/28
6250
中国台湾大学林轩田机器学习技法课程学习笔记15 -- Matrix Factorization
图解机器学习 | 聚类算法详解
教程地址:http://www.showmeai.tech/tutorials/34
ShowMeAI
2022/03/10
2.5K2
图解机器学习 | 聚类算法详解
【数据挖掘】详细解释数据挖掘中的 10 大算法(上)
在一份调查问卷中,三个独立专家小组投票选出的十大最有影响力的数据挖掘算法,今天我打算用简单的语言来解释一下。 一旦你知道了这些算法是什么、怎么工作、能做什么、在哪里能找到,我希望你能把这篇博文当做一个
陆勤_数据人网
2018/02/27
1.3K0
【数据挖掘】详细解释数据挖掘中的 10 大算法(上)
机器学习之深入理解K-means、与KNN算法区别及其代码实现
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/article/details/55051306
大黄大黄大黄
2018/09/14
2.3K0
机器学习之深入理解K-means、与KNN算法区别及其代码实现
HAWQ + MADlib 玩转数据挖掘之(八)——聚类方法之k-means
本文介绍了聚类算法在数据分析中的应用,详细阐述了k-means算法的原理、应用场景和实现过程。同时,通过一个具体的实例,展示了如何通过聚类算法对用户数据进行分析和分类,并基于聚类结果进行营销策略的设计。
用户1148526
2018/01/03
1.3K0
HAWQ + MADlib 玩转数据挖掘之(八)——聚类方法之k-means
『数据挖掘十大算法 』笔记三:K-means
C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART
百川AI
2021/10/19
5780
《Scikit-Learn与TensorFlow机器学习实用指南》第5章 支持向量机
第5章 支持向量机 来源:ApacheCN《Sklearn 与 TensorFlow 机器学习实用指南》翻译项目 译者:@QiaoXie 校对:@飞龙 支持向量机(SVM)是个非常强大并且有多种功能的机器学习模型,能够做线性或者非线性的分类,回归,甚至异常值检测。机器学习领域中最为流行的模型之一,是任何学习机器学习的人必备的工具。SVM 特别适合复杂的分类,而中小型的数据集分类中很少用到。 本章节将阐述支持向量机的核心概念,怎么使用这个强大的模型,以及它是如何工作的。 线性支持向量机分类 SV
ApacheCN_飞龙
2018/05/16
1.4K2
嘿,敢不敢来聚个类!
A 某和 B 某青梅竹马,A 某通过 B 某认识了 C 某,发现兴趣爱好出奇一致,这三人就搞到了一起,成为了一个形影不离的小团体。这个小团体的形成,是自下而上的迭代过程。
Jack_Cui
2021/04/27
9790
嘿,敢不敢来聚个类!
K-Means(K均值)、GMM(高斯混合模型),通俗易懂,先收藏了!
什么是聚类算法?聚类是一种机器学习技术,它涉及到数据点的分组。给定一组数据点,我们可以使用聚类算法将每个数据点划分为一个特定的组。理论上,同一组中的数据点应该具有相似的属性和/或特征,而不同组中的数据点应该具有高度不同的属性和/或特征。聚类是一种无监督学习的方法,是许多领域中常用的统计数据分析技术。
mantch
2019/07/30
6.7K0
K-Means(K均值)、GMM(高斯混合模型),通俗易懂,先收藏了!
从小白视角理解『数据挖掘十大算法』
https://www.cnblogs.com/chenqionghe/p/12301905.html
派大星的数据屋
2022/04/03
6410
从小白视角理解『数据挖掘十大算法』
推荐阅读
相关推荐
中国台湾大学林轩田机器学习技法课程学习笔记14 -- Radial Basis Function Network
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档