径向基函数神经网络(RBFNN)详解

径向基函数神经网络RBFNN

  • 前言
  • 1.基础知识
    • 1.1 径向基函数(RBF)
    • 1.2 非线性问题
    • 1.3 高级的径向基函数
    • 1.4 RBFNN的结构
  • 2.RBFNN的原理
    • 2.1基本原理
    • 2.2径向基函数的确定
    • 2.3训练

参考:
博客:深度学习之径向基函数神经网络RBFNN
人工神经网络——径向基函数(RBF)神经网络
youtube视频:RBF Networks

一篇推荐:RBF神经网络理论与实现

前言

RBFNN是20世纪80年代末提出的一种单隐层、以函数逼近为基础的前馈神经网络。随着研究日渐成熟,RBFNN以其结构简单、非线性逼近能力强以及良好的推广能力,受到各领域研究者的极大关注,被广泛应用于模式分类、函数逼近和数据挖掘等众多研究领域。

1.基础知识

RBFNN全称为:Radial Basis Function Neyral Network。中文名为径向基函数神经网络。那么什么是径向基函数呢?

1.1 径向基函数(RBF)

看一下百度百科的解释:

径向基函数是一个取值仅仅依赖于离原点距离的实值函数,也就是Φ(x)=Φ(‖x‖),或者还可以是到任意一点c的距离,c点称为中心点,也就是Φ(x,c)=Φ(‖x-c‖)。任意一个满足Φ(x)=Φ(‖x‖)特性的函数Φ都叫做径向基函数,标准的一般使用欧氏距离(也叫做欧式径向基函数),尽管其他距离函数也是可以的。在神经网络结构中,可以作为全连接层和ReLU层的主要函数。

简单地说,就是该点的函数值只与该店距离中心点的距离有关。

典型的径向基函数(RBF)有:
(1):Gaussian函数
径向基函数神经网络(RBFNN)详解_第1张图片
径向基函数神经网络(RBFNN)详解_第2张图片
(2):Multiquadric函数
径向基函数神经网络(RBFNN)详解_第3张图片
(3):Inverse Multiquadric函数
径向基函数神经网络(RBFNN)详解_第4张图片
形如Gaussian函数的RBF具有良好的局部特征,只在距离中心点附近的某一邻域内响应显著,而函数值随着与中心点的距离的增大而呈单调递减趋势,并逐渐趋近于0.因此这类RBF在实际应用中比较广泛。

1.2 非线性问题

我们知道,三层的神经网络就可以拟合任何一个函数。同样,RBFNN刚好三层且隐藏层使用径向基函数,所以,它完全可以拟合任何一个函数(只要隐藏层神经元足够多)。

1.3 高级的径向基函数

前面提到的几个径向基函数都是最简单形式的,在实际应用中,你可能使用高级的径向基函数。
径向基函数神经网络(RBFNN)详解_第5张图片

其中,μt为中心点,σt为径基宽度。径基宽度决定了径向基函数下降的快慢,也可以说是圆的大小。比如:
径向基函数神经网络(RBFNN)详解_第6张图片

图是视频中截取的,与上面的函数不对应。不过可以这样理解。

1.4 RBFNN的结构

RBFNN只有三层,第一层为输入层,第二层为隐藏层,第三层为输出层。输入层到隐藏层的神经元之间的权重全部为1。隐藏层是使用径向基函数作为激活函数的神经元。隐藏层与输出层之间就是普通的神经网络的连接关系,他们之间的权重可以训练而改变。
径向基函数神经网络(RBFNN)详解_第7张图片
RBFNN的结构很简单。主要是它的原理部分。

2.RBFNN的原理

2.1基本原理

假设我们要根据小球位置将下图中的小球分类,那么我们可以画两个圆,圆内的球全为红色,圆外的全为绿色。
径向基函数神经网络(RBFNN)详解_第8张图片
径向基函数神经网络(RBFNN)详解_第9张图片

输入一个点的位置信息(x,y)坐标,隐藏层的两个神经元由于有不同的中心点,下降速度也不一样,那么,就会得到不同的输出,当然,离中心点越近,输出越大。这样我们就知道了输入的点离哪个中心点比较近,就可以知道它的颜色了。

当然,实际中,数据分布可能不是那么理想,比如这样:
径向基函数神经网络(RBFNN)详解_第10张图片
此时,我们用多个圆来拟合就可以了。这些圆有不同的μt和σt。
径向基函数神经网络(RBFNN)详解_第11张图片
实际应用中,你可能用到几百几千个圆。而且,圆不再是理论上的这种断崖式的(圈内全为红球,圈外全为绿球),而是更加的平滑,毕竟径向基函数也是平滑的。
径向基函数神经网络(RBFNN)详解_第12张图片
不同的径向基函数,球也不一样,下面是几种:
径向基函数神经网络(RBFNN)详解_第13张图片
对应到神经网络里,也就是我们有两个径向基函数,它们中心点不同,在距离中心点一定距离内为红球,大于这个距离为绿球。当然,两个径向基函数可能还需要进一步加权求和。
径向基函数神经网络(RBFNN)详解_第14张图片
举一个手写数字识别的例子:
径向基函数神经网络(RBFNN)详解_第15张图片
通过隐藏层的输出,我们直接就可以得知输入与数字7的中心点最近,所以,输入就被认为是数字7。
但有时候,可能会得到这样不好的结果:
径向基函数神经网络(RBFNN)详解_第16张图片
因为9可能和7有比较多的像素相像,所以9反而输出更高。这怎么办呢,我们把两个7的输出加起来就好了。
径向基函数神经网络(RBFNN)详解_第17张图片
这也是为什么隐藏层与输出层之间的权重还要训练的原因。隐藏层的神经元数目实际上也更加多。比如30个隐藏层神经元的神经网络结构:
径向基函数神经网络(RBFNN)详解_第18张图片

2.2径向基函数的确定

RBFNN的关键就在于径向基函数的确定,中心点在哪,径基宽度多大,多少个径向基函数,都是会影响神经网络的效果的。

径向基函数中心的确定方法有以下几种:

  • 直接计算法(随机选取RBF中心)

    隐含层神经元的中心是随机地在输入样本中选取,且中心固定。一旦中心固定下来,隐含层神经元的输出便是已知的,这样的神经网络的连接权就可以通过求解线性方程组来确定。适用于样本数据的分布具有明显代表性。

  • 自组织学习选取RBF中心法

    RBF神经网络的中心可以变化,并通过自组织学习确定其位置。输出层的线性权重则是通过有监督的学习来确定的。这种方法是对神经网络资源的再分配,通过 学习,使RBF的隐含层神经元中心位于输入空间重要的区域。这种方法主要采用K-均值聚类法来选择RBF的中心,属于无监督(导师)的学习方法。

  • 有监督学习选取RBF中心

    通过训练样本集来获得满足监督要求的网络中心和其他权重参数。常用方法是梯度下降法。

  • 正交最小二乘法选取RBF中心法

    正交最小二乘法(Orthogoal least square)法的思想来源于线性回归模型。神经网络的输出实际上是隐含层神经元某种响应参数(回归因子)和隐含层至输出层间连接权重的线性组合。所有隐含层神经元上的回归因子构成回归向量。学习过程主要是回归向量正交化的过程。

2.3训练

其实,和普通的神经网络一样,只不过,普通的神经网络训练的只是神经网络之间的权重,而RBFNN训练的还有激活函数----RBF的相关参数。这样理解起来就简单多了。

你可能感兴趣的:(#,深度学习笔记-理论,径向基函数神经网络,深度学习,RBFNN,神经网络)