1、背景
1988年,Broomhead和Lowe用径向基函数(Radialbasis function, RBF)提出分层网络的设计方法,从而将神经网络的设计与数值分析和线性适应滤波相挂钩。
2、概念
RBF(Radial Basis Function,径向基函数)网络是一种单隐层前馈神经网络,即该网络只有3层,输入层、隐含层、输出层。
- 输入层:由一些感知单元组成,他们将网络与外界环境连接起来。
- 隐含层:只有一层,采用「径向基函数」作为激活函数,作用是从输入空间到隐含层空间之间进行「非线性」变换。大多情况下,隐含层空间具有较高的维度。
- 输出层:作用是给输入层的激活模式提供响应,是输入的径向基函数和神经元参数的线性组合。
径向基函数(RBF)的概念:
在神经网络背景下,隐藏单元提供一个「函数」集,该函数集在「输入模式向量扩展至隐含层空间」时,为其构建了一个任意的「基」,这个函数集中的函数就被称为「径向基函数」。
其实就是某种沿径向对称的标量函数。通常定义为空间中任意点X到某中心C之间欧氏距离的单调函数。
欧氏距离:
也称为欧几里得度量,是一个通常采用的距离定义。指m维空间中两个点之间的真实距离。或者向量的自然长度。
2维空间的表达式:中心点,任意点
3维空间表达式:中心点,任意点
同理:m维空间表达式:中心点,任意点
2、作用
径向基函数方法在某个程度上利用了多维空间中传统的「严格插值法」的研究成果。由于它模拟了人脑中局部调整、相互覆盖接受域(也称为感受域Receptive Field,RF),因此RBF网络是一种局部逼近网络,现已证明它能以任意精度逼近任意连续函数。
主要是为了解决「多变量插值」问题
3、推理
假定输入为d维向量,输出为实值,则RBF网络可以表示为:
其中:
:为隐藏层神经元个数
:为隐含层第h个神经元所对应的中心点,向量表示为
:为隐含层第h个神经元的权重
:为径向基函数,也就是样本X到数据中心之间欧氏距离的单调函数。本次我们采用常用的「高斯径向基函数」作为径向基函数使用。
高斯径向基函数:
(1)数据表达式:
其中:为输入向量与中心点之间的距离,是一个控制函数形状的参数
(2)特点:
①局部性:在距离中心较近的地方具有较大的值,在距离中心较远的地方迅速衰减为零。具有局部相应的特征能够很好的捕捉局部的特征,可见下图:
②光滑性:具有无限可微性,即在任何点处都是光滑的,具有较好的稳定、收敛。
③灵活性:通过调整参数,可以控制函数的宽度和形状。
(3)参数
①宽度控制:决定了高斯径向函数的宽度。当较大,函数曲线较宽,衰减较慢;当较小,函数曲线较窄,衰减较快。
②局部调节: 较小的使函数更加局部化(对远处的数据点影响很小),较大的使函数更加整体化(对远处的数据点影响增加);
(4)作用:
①作为相似性的度量:根据点与中心点之间的距离,计算不同点的相似性。距离中心点较近的点函数值较大,相似度更高。反之,相似度低。
②构建聚类中心:通过所有点的的加权求和得到软聚类中心,每个点可以看作对聚类中心的贡献。在数据密集的区域,聚类中心更加集中;在数据稀疏的区域,聚类中心更加分散。
③实现数据的平滑和降维:平滑处理可以减少噪声和异常值的干扰,平滑后的数据对后续的聚类分析更加有利,提高聚类的稳定性和可靠性。利用高斯径向基函数也可以将高维数据映射到低维空间实现数据的降维,降维后可以很好的保留数据的主要特征且降低计算复杂度。便于可视化和理解数据的结构信息。
④提高聚类的灵活性和适应性:该函数具有强大的非线性映射能力,能够将非线性问题转化为线性,提高聚类的通用性质。可以通过选择不同的值控制聚类的颗粒度,增加或减少基函数的数量来调整聚类的复杂度。
本次研究结合上文径向基函数的概念,我得到函数如下:
具有足够多隐含层神经元的RBF网络能以任意精度逼近任意连续函数。
将上述函数代入RBF网络表达式,可得:
4、训练过程
4.1、第一步:确定隐含层神经元中心,其基本方法如下
①随机采样选取:就是从数据中随机选择一些数据点作为隐含层神经元的中心点。适用于对数据的分布没有先验知识,且数据量较大。因为在大数据量的情况下,随机选择是有很大概率可以覆盖到数据的不同区域,为隐含层提供一个相对合理的初始中心点。
②基于数据聚类的方法:
K-means聚类方法:确定隐含层神经元数量之后使用K-means算法岁输入的数据进行聚类,聚类完成之后每个聚类的中心就可以作为每个隐藏层神经元的中心点。他的优势是可以根据数据的分布自动找到相对密集的区域作为中心点,这些中心点能够较好的反应数据的局部特征。局限是它的假设数据是球型分布数据,非球形的数据可能效果不佳。
案例说明:将以下10个一维向量点聚为3类
序号 点(key) 点(value) 1 A 11 2 B 15 3 C 3 4 D 9 5 E 9 6 F 5 7 G 3 8 H 0 9 I 2 10 J 2 ①选中心点初始值为center1=3,center2=5,center3=10:
②求出以上10个点距3个中心点center1=3,center2=5,center3=10的距离,并选出10个点距离最近的中心点,如下表所示:
序号 点(key) 点(value) 距center1=3的距离 距center2=5的距离 距center3=10的距离 最近中心点(距离最小) 1 A 11 |11-3|=8 |11-5|=6 |11-10|=1 center3=10 2 B 15 |15-3|&#