1. 引言

径向基函数神经网络(Radial Basis Function Network, 简称 RBFN)是一种独特的前馈神经网络,它在处理分类和回归问题上展现出强大的能力。与我们更常见的多层感知器(MLP)不同,RBFN 采用了一种更为直观和“局部化”的学习机制。MLP 通常被视为一个“黑箱”,通过多层复杂的加权求和与非线性激活函数来逐步逼近目标函数,其学习过程是全局性的。而 RBFN 则更像是“寻找数据中的中心点”,并根据输入数据与这些中心点的距离来决定其输出,这种基于距离的判断方式使其结构和工作原理更加易于理解。

2. 核心思想:距离中心越近,影响越大

RBFN 的核心理念非常简洁而强大:“距离中心越近,影响越大”。想象一下,在数据空间中散布着一些“灯塔”,每个灯塔代表一个数据的“中心”。当一个新的数据点到来时,它会受到距离自己最近的灯塔的影响最大,而距离较远的灯塔对其影响则较小。RBFN 正是利用这种局部响应的特性来进行学习和预测。

这种局部响应机制通过径向基函数来实现。径向基函数是一种特殊的非线性函数,其输出值仅依赖于输入与某个“中心点”之间的距离。距离越小,函数的输出值通常越大,反之则越小。最常用的径向基函数是高斯函数,它能够很好地模拟这种“近大远小”的影响力。

3. 网络结构

RBFN 通常由三层组成,每一层都有其特定的功能:

3.1. 输入层 (Input Layer)

输入层负责接收外部数据。每个输入节点对应输入数据的一个特征。例如,如果我们要预测水果类型,输入特征可能是“颜色”和“大小”,那么输入层就会有两个节点,分别接收这两个特征的值。

3.2. 隐藏层(径向基函数层) (Hidden Layer / Radial Basis Function Layer)

这是 RBFN 的核心层。每个隐藏层节点都代表一个径向基函数,并拥有两个关键参数:

  • 中心点 ©:表示该径向基函数在输入空间中的位置。可以理解为数据的一个“代表点”或“聚类中心”。
  • 半径/宽度 (σ):控制该径向基函数的影响范围或“宽度”。它决定了距离中心多远的数据点会受到显著影响。σ 值越小,影响范围越窄,节点对输入的响应越局部化;σ 值越大,影响范围越广,节点对输入的响应越全局化。

当输入数据进入隐藏层时,每个隐藏层节点会计算输入数据与自身中心点之间的距离,然后将这个距离通过一个径向基函数(如高斯函数)转化为一个激活值。距离越近,激活值越高;距离越远,激活值越低。这就像在地图上放置了几个灯塔,靠近灯塔的地方光线明亮,远离灯塔的地方则逐渐变暗。

3.3. 输出层 (Output Layer)

输出层负责将隐藏层的激活值进行加权求和,并产生最终的输出结果。输出层的节点数量取决于任务类型:

  • 分类任务:输出节点可以表示不同类别的概率。例如,对于二分类问题(苹果或橘子),可能有一个输出节点,其输出值经过激活函数(如 Sigmoid)后表示属于某一类别的概率。
  • 回归任务:输出节点直接表示预测的连续数值。例如,预测房屋价格,输出层可能只有一个节点,直接输出预测的价格。

输出层通常是线性的,即它仅仅是隐藏层输出的线性组合。这种设计使得 RBFN 的训练过程相对简单,因为只有输出层的权重需要通过有监督学习进行调整,而隐藏层的参数(中心和宽度)可以通过无监督学习或启发式方法确定。

4. 径向基函数:高斯函数详解

在 RBFN 中,最常用的径向基函数是高斯函数。其数学表达式如下:

ϕ(x)=exp⁡(−∥x−c∥22σ2) \phi(x) = \exp\left(-\frac{\|x - c\|^2}{2\sigma^2}\right) ϕ(x)=exp(2σ2xc2)

其中:

  • xxx:表示输入数据向量。
  • ccc:表示当前隐藏层节点的中心点向量。
  • ∥x−c∥2\|x - c\|^2xc2:表示输入数据 xxx 与中心点 ccc 之间的欧氏距离的平方。这个距离度量了输入数据与中心点的相似程度。
  • σ\sigmaσ:表示径向基函数的宽度参数(也称为扩展常数或方差)。它控制了函数响应的“敏感度”或“局部性”。

高斯函数的特性:

  • 当输入 xxx 越接近中心 ccc 时,∥x−c∥2\|x - c\|^2xc2 越小,ϕ(x)\phi(x)ϕ(x) 的值越接近 1(最大值)。
  • 当输入 xxx 远离中心 ccc 时,∥x−c∥2\|x - c\|^2xc2 越大,ϕ(x)\phi(x)ϕ(x) 的值越接近 0。

因此,σ\sigmaσ 的大小直接影响了高斯函数的“钟形”曲线的宽度。σ\sigmaσ 越小,曲线越窄,表示该节点只对非常接近其中心点的数据有强烈响应;σ\sigmaσ 越大,曲线越宽,表示该节点对更广泛范围的数据都有响应。

5. 举个例子:水果分类

为了更好地理解 RBFN 的工作原理,我们以一个简单的水果分类任务为例:区分苹果和橘子。

  1. 数据准备:假设我们有许多苹果和橘子的数据,每个水果都有“颜色”和“大小”两个特征。我们可以在一个二维平面上表示这些数据点,其中一个轴代表颜色,另一个轴代表大小。

  2. 选择中心点:在 RBFN 的隐藏层中,我们会设置一些径向基函数节点。我们可以通过聚类算法(如 K-Means)在训练数据中找到一些代表性的“中心点”。例如,我们可能会在“苹果群”中找到一个中心点,在“橘子群”中找到另一个中心点。

  3. 输入新水果:现在,假设我们有一个未知类型的新水果。我们将它的“颜色”和“大小”作为输入,送入 RBFN 的输入层。

  4. 隐藏层计算

    • 这个新水果的特征向量 xxx 会被送入隐藏层。
    • 每个隐藏层节点(对应一个中心点 cic_ici 和宽度 σi\sigma_iσi)会计算 xxx 与其中心点 cic_ici 的距离,并通过高斯函数 ϕ(x)\phi(x)ϕ(x) 产生一个激活值。
    • 如果新水果的特征与“苹果中心点”非常接近,那么对应“苹果中心点”的隐藏层节点会产生一个较高的激活值。
    • 如果新水果的特征与“橘子中心点”非常接近,那么对应“橘子中心点”的隐藏层节点会产生一个较高的激活值。
  5. 输出层决策

    • 输出层接收所有隐藏层节点的激活值,并根据预先训练好的权重对它们进行加权求和。
    • 如果“苹果中心点”的激活值高,并且其连接到输出层的权重也较大,那么输出层会倾向于判断这个新水果是苹果。
    • 反之,如果“橘子中心点”的激活值高,输出层则倾向于判断它是橘子。

简单来说,RBFN 的决策过程就是:“靠近哪类中心,就归哪类”。它通过测量输入与各个“原型”或“模板”的相似度来进行分类或回归。

6. RBFN 的优缺点

6.1. 优点

  • 学习速度快:RBFN 的训练通常比 MLP 快得多。这是因为隐藏层的参数(中心和宽度)可以通过无监督学习(如 K-Means 聚类)预先确定,或者只进行少量调整。而输出层的权重可以通过简单的线性方法(如最小二乘法或伪逆法)直接计算得到,无需复杂的迭代优化过程 。
  • 对非线性数据拟合能力强:RBFN 能够以任意精度逼近任意连续函数,使其在处理复杂的非线性问题时表现出色。
  • 结构直观,易于理解:其“局部响应”和“距离判断”的核心思想与人类的认知方式更为接近,使得网络结构和工作原理相对容易解释。
  • 避免局部最优:由于输出层是线性的,并且隐藏层参数可以预先确定,RBFN 在训练过程中较少陷入局部最优解。

6.2. 缺点

  • 隐藏层节点数容易爆炸:在某些情况下,为了准确地覆盖整个输入空间,可能需要大量的径向基函数节点(每个中心一个节点),这会导致网络规模过大,增加计算复杂度和存储需求。
  • 高维数据效果可能下降(维度灾难):当输入数据的维度非常高时,数据点之间的距离变得难以有效衡量,所有点可能看起来都“很远”,导致径向基函数失去其局部响应的优势。这被称为“维度灾难”,是许多基于距离的算法面临的共同挑战。
  • 选择中心和宽度比较依赖经验:径向基函数的中心点和宽度参数的选择对 RBFN 的性能至关重要。目前,这些参数的确定往往依赖于经验、试错或启发式算法(如 K-Means 聚类),缺乏统一的理论指导。
  • 泛化能力受限:如果训练数据不能很好地代表整个输入空间,或者中心点和宽度选择不当,RBFN 的泛化能力可能会受到影响。

7. RBFN 与 MLP 的区别

虽然 RBFN 和 MLP 都是前馈神经网络,但它们在结构和工作原理上存在显著差异:

特性RBFNMLP
隐藏层数量通常只有一个隐藏层可以有多个隐藏层
激活函数隐藏层使用径向基函数(局部响应)隐藏层使用 Sigmoid、ReLU 等非线性函数(全局响应)
学习方式局部逼近,隐藏层参数常通过无监督学习确定,输出层线性学习全局逼近,所有层权重通过反向传播进行有监督学习
训练速度通常较快通常较慢,可能需要更多迭代
可解释性结构直观,易于理解“黑箱”模型,难以解释
局部最优较少陷入局部最优容易陷入局部最优
参数选择中心和宽度选择依赖经验隐藏层数量和神经元数量选择依赖经验
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐