机器学习之径向基神经网络(RBF NN)

本文基于台大机器学习技法系列课程进行的笔记总结。

主要内容如下图所示:

首先介绍一下径向基函数网络的Hypothesis和网络的结构,然后介绍径向基神经网络学习算法,以及利用K-means进行的学习,最后通过一个实例加深对RBF神经网络认识和理解。

RBF神经网络的Hypothesis和网络结构

我们从基于Gaussian kernel的support vector machine中在无限维度中进行特征转换来获取一个large margin的边界,这个Gaussian kernel就是一个Radio Basis Function Kernel。其意义呢有两个:一是radio,代表的是x和中心点xm之间的距离,可以是任意衡量距离的某种范数,比如L2范数等;二是Basis,表示要进行联合(combine);于是就可以得到了以下关于RBF神经网络的更加质朴的定义:如下图所示,RBF神经网络实际上就是一些选择出来的radial径向hypothesis的线性组合。

那么为何是神经网络呢?我们看如下图所示的结构对比,从中可以看出两者的隐含层(hidden layer)不同,即RBF神经网络采用的激发函数或者映射是径向基函数(距离+高斯)等,而输出层都一样,是特征转换后的线性融合。

这样就得到了RBF的神经网络的Hypothesis,如下图所示,如果还记得kernel svm的hypothesis的话(representation theory),我们得到的SVM的Hypothesis实际上就是support vector的线性组合,即影响我们最后得到的hypothesis只是与这些“代表”的点有关。类似的,RBF也是如此,我们需要找到一些能够代表数据的中心点( center )。所以我们在进行训练学习的时候要做的就是:给定的径向基函数(RBF)和输出,然后决定这些center和线性组合的系数β。另外一个值得提出的就是从另一个角度来看径向基函数神经网络与其他前馈神经网络的关系,可以参考我的另一篇博文中的总结:神经网络总结(初稿),关键点就是从BP神经网络到径向基函数神经网络,一个明显的特征就是我们不用在对所有全局的链接权重进行训练,而是只对一些重要的影响输出的权重进行调整,这样就能明显提升神经网络的训练速度。

另一个重要的内容就是Gaussian的径向基函数实际上做的就是一种相似度的测量,而且是在原始空间的相似度测量。而特征转换就是距离与中心点的相似度的转换。

Full RBF神经网络

full RBF神经网络实际上就是一个非常lazy的RBF神经网络。之所以lazy讲的它根本不做center,也就是它把所有观测到的数据都作为center,也就是输入size为N,那么center的size也是N。即一种uniform的形式,融合每一个输入数据到所有训练样本点的相似度。如下图所示:

最近邻模型(Nearest neighbor)

思想就是我们对所有经过hypothesis得到的输出进行投票(vote,aggregation),而是选择在相似度上与已知样本点最近的那个点的标签作为输出。这就是典型的最近邻模型。所以这样看上去训练就比较简单了,实际上只用把观测到的数据保存下来就好,但测试过程则比较复杂,因为要对所有的已知标签的样本点进行相似度的计算,然后选出最近邻的那个,并输出该样本的标签。稍微拓展一下,我们还是可以做融合的,我们选出最相似的k个邻居,然后由着k个邻居进行投票,或者线性融合,然后再输出,这样的模型就叫做k最近邻模型。

Regularization

那如果利用full RBF神经网络进行regression呢情况又变成怎样呢,如下图所示:

从中可以看出,经过以上设计进行训练我们将得到Ein=0,这在内插法逼近函数的时候是非常好的,可是我们知道这样好的Ein往往有可能出现overfitting,所以需要进行regularization的设计。常见的方法就是加约束项或惩罚函数。在不同的空间做regularization有着不同的结果。另一中regularization的方法就是限制center的数量,我们用few center进行,而不是full,这样就能在一定程度上降低模型复杂度。那么如何从一堆X中萃取中心点呢?萃取的标准又是什么呢?

于是问题就转向了聚类问题cluster problem。

聚类问题cluster problem(K-means)

聚类问题的数学描述如下图所示,通过优化聚类误差(采用了平方误差)进行。

于是就引出了非常著名的K-means聚类算法,具体内容参看我的另一篇博客K-means算法

把K-means 应用到RBF神经网络中

那么将K-means方法用到RBF神经网络中,就可以得到以下的流程

下面几个就是利用k-means算法流程进行的实验结果

对比了采用regularization的full RBF、采用了few center(K-means)的RBF以及基于nearest neighbor的Full RBF实验效果图,从图中可以看出,虽然full RBF效果可能要比k-means的效果要好,可是一般来讲由于计算复杂度和overfitting的风险等原因一般不常常使用。

*************************************************************************************************************************************

对于径向基函数神经网络,只要抓住它的hypothesis的质朴表示:一堆center的相似度(Gaussian RBF)的线性融合(vote,linear aggregation)就好了。完成的特征转换就是距离到相似度。输出就是相似度的线性组合。

然后中间涉及到的三个比较重要的内容就是:1. 最近邻思想;2. K-means算法;3. alternating optimization的思想。能够掌握上面三个重要内容就非常好了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-19 08:49:32

机器学习之径向基神经网络(RBF NN)的相关文章

径向基神经网络初学

[径向基神经网络训练算法及其性能研究 2.1]-RBF定义:假设x,x0属于Rn,以x0为中心,x到x0的径向距离为半径形成的||x-x0||构成的函数系φ(||x-x0||)称为径向基函数.

径向基神经网络

预备知识: cover定理: 在复杂的模式分类问题中,将数据映射到高维空间比映射到低维空间更可能线性可分 径向基函数: 空间中的任意点到某一中心之间的欧式距离(也可以是其他的距离函数)的单调函数 径向基神经网络是由一个三层的结构组成,包括输入层,隐含层,输出层,隐含层的激活函数一般是非线性的径向基函数,输出层是线性函数或hardlim函数 普通径向基神经网络中,隐含层神经元的个数是样本的数量,径向基函数的中心是对应的样本,所求插值函数要求通过所有的样本点,即 F(Xp)=dp p表示样本个数,F

径向基(RBF)神经网络python实现

1 from numpy import array, append, vstack, transpose, reshape, 2 dot, true_divide, mean, exp, sqrt, log, 3 loadtxt, savetxt, zeros, frombuffer 4 from numpy.linalg import norm, lstsq 5 from multiprocessing import Process, Array 6 from random import sa

径向基(RBF)神经网络

RBF网络能够逼近任意非线性的函数.可以处理系统内难以解析的规律性,具有很好的泛化能力,并且具有较快的学 习速度.当网络的一个或多个可调参数(权值或阈值)对任何一个输出都有影响时,这样的网络称为全局逼近网络. 由于对于每次输入,网络上的每一个权值都要调整,从而导致全局逼近网络的学习速度很慢,比如BP网络.如果对于 输入空间的某个局部区域只有少数几个连接权值影响输出,则该网络称为局部逼近网络,比如RBF网络.接下来重点 先介绍RBF网络的原理,然后给出其实现.先看如下图 正则化的RBF网络参考这里

RBF高斯径向基核函数【转】

XVec表示X向量.||XVec||表示向量长度.r表示两点距离.r^2表示r的平方.k(XVec,YVec) = exp(-1/(2*sigma^2)*(r^2))= exp(-gamma*r^2)...... 公式-1这里, gamma=1/(2*sigma^2)是参数, r=||XVec-YVec||实际上,可看作是计算2个点X与Y的相似性.很多参考书上,把YVec写作XVec',即 k(XVec, XVec'),也是一样的含义:两点相似性.由于Matlab上面XVec'代表XVec的转置

径向基网络(RBF network)之BP监督训练

径向基网络(RBF network)之BP监督训练 转载:http://blog.csdn.net/zouxy09/article/details/13297881 分类: 机器学习 神经网络 C/C++编程2013-10-28 18:17 3083人阅读 评论(1) 收藏 举报 神经网络机器学习RBF 径向基网络(RBF network)之BP监督训练 [email protected] http://blog.csdn.net/zouxy09 之前看了流行学习的时候,感觉它很神奇,可以将一个

径向基网络(RBF network)

来源:http://blog.csdn.net/zouxy09/article/details/13297881 1.径向基函数 径向基函数(Radical Basis Function,RBF)方法是Powell在1985年提出的.所谓径向基函数,其实就是某种沿径向对称的标量函数.通常定义为空间中任一点x到某一中心c之间欧氏距离的单调函数,可记作k(||x-c||),其作用往往是局部的,即当x远离c时函数取值很小.例如高斯径向基函数: 当年径向基函数的诞生主要是为了解决多变量插值的问题.可以看

转:径向基核函数

转:径向基核函数 (2011-05-20 16:53:54) 转载▼   分类: AboutResearch 所谓径向基函数 (Radial Basis Function 简称 RBF), 就是某种沿径向对称的标量函数. 通常定义为空间中任一点x到某一中心xc之间欧氏距离的单调函数 , 可记作 k(||x-xc||), 其作用往往是局部的 , 即当x远离xc时函数取值很小. 最常用的径向基函数是高斯核函数 ,形式为 k(||x-xc||)=exp{- ||x-xc||^2/(2*σ)^2) }

漫谈机器学习经典算法—人工神经网络

更新:文章迁移到了这里.http://lanbing510.info/2014/11/07/Neural-Network.html,有对应的PPT链接. 注:整理自向世明老师的PPT 看不到图片的同学能够直接打开链接:https://app.yinxiang.com/shard/s31/sh/61392246-7de4-40da-b2fb-ccfd4f087242/259205da4220fae3 内容提要 1 发展历史 2 前馈网络(单层感知器,多层感知器.径向基函数网络RBF) 3 反馈网络