RBF神经网络:原理详解和MATLAB实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
RBF神经⽹络:原理详解和MATLAB实现
RBF神经⽹络:原理详解和MATLAB实现
——2020年2⽉2⽇⽬录
RBF神经⽹络:原理详解和MATLAB实现 (1)
⼀、径向基函数RBF (2)
定义(Radial basis function——⼀种距离) (2)
如何理解径向基函数与神经⽹络? (2)
应⽤ (3)
⼆、RBF神经⽹络的基本思想(从函数到函数的映射) (3)
三、RBF神经⽹络模型 (3)
(⼀)RBF神经⽹络神经元结构 (3)
(⼆)⾼斯核函数 (6)
四、基于⾼斯核的RBF神经⽹络拓扑结构 (7)
五、RBF⽹络的学习算法 (9)
(⼀)算法需要求解的参数 (9)
0.确定输⼊向量 (9)
1.径向基函数的中⼼(隐含层中⼼点) (9)
2.⽅差(sigma) (10)
3.初始化隐含层⾄输出层的连接权值 (10)
4.初始化宽度向量 (12)
(⼆)计算隐含层第j 个神经元的输出值zj (12)
(三)计算输出层神经元的输出 (13)
(四)权重参数的迭代计算 (13)
六、RBF神经⽹络算法的MATLAB实现 (14)
七、RBF神经⽹络学习算法的范例 (15)
(⼀)简例 (15)
(⼆)预测汽油⾟烷值 (15)
⼋、参考资料 (19)
⼀、径向基函数RBF
定义(Radial basis function——⼀种距离)
径向基函数是⼀个取值仅仅依赖于离原点距离的实值函数,也就是Φ(x)
=Φ(‖x‖),或者还可以是到任意⼀点c的距离,c点称为中⼼点,也就是Φ(x,c)=Φ(‖x-c‖)。
任意⼀个满⾜Φ(x)=Φ(‖x‖)特性的函数Φ都叫做径向基函数。
标准的⼀般使⽤欧⽒距离(也叫做欧式径向基函数),尽管其他距离函数也是可以的。
在神经⽹络结构中,可以作为全连接层和ReLU层的主要函数。
⼀些径向函数代表性的⽤到近似给定的函数,这种近似可以被解释成⼀个简单的神经⽹络。
径向基函数在⽀持向量机中也被⽤做核函数。
常见的径向基函数有:⾼斯函数,⼆次函数,逆⼆次函数等。
应⽤
构造神经⽹络的基本⽅法为假设某种过程是属于某种函数空间的函数,然后连
接成神经⽹格,运⾏⼀段时间该⽹络的电势趋于最⼩达到某种动态的平衡,从
⽽可以求出该函数,⽽选择径向基函数空间是⼀个⽐较简单的容易⽤神经⽹络
实现的⽅法。
⼆、RBF神经⽹络的基本思想(从函数到函数的映射)
1. ⽤RBF作为隐单元的“基”构成隐含层空间,将输⼊⽮量直接(不通过权映射)映射到隐空间。
2.当RBF的中⼼点确定后,映射关系也就确定。
(中⼼点通常通过K-MEANS
聚类获得)
3.隐含层空间到输出空间的映射是线性的。
(其中的权值通过最⼩⼆乘法获得)
4.将低维度映射到⾼维度,使得线性不可分转化为线性可分。
三、RBF神经⽹络模型
(⼀)RBF神经⽹络神经元结构
RBF是具有单隐层的三层前向⽹络。
第⼀层为输⼊层,由信号源节点组成。
第⼆层为隐藏层,隐藏层节点数视所描述问题的需要⽽定,隐藏层中神经
元的变换函数即径向基函数是对中⼼点径向对称且衰减的⾮负线性函数,该函
数是局部响应函数,具体的局部响应体现在其可见层到隐藏层的变换跟其它的
⽹络不同。
以前的前向⽹络变换函数都是全局响应的函数。
第三层为输出层,是对输⼊模式做出的响应。
输⼊层仅仅起到传输信号作⽤,输⼊层和隐含层之间之间可以看做连接权值为1的连接,输出层与隐含层
所完成的任务是不同的,因⽽他们的学习策略也不同。
输出层是对线性权进⾏调整,采⽤的是线性优化策略,因⽽学习速度较快;⽽隐含层是对激活函数(格林函数,⾼斯函数,⼀般取后者)的参数进⾏调整,采⽤的是⾮线性优化策略,因⽽学习速度较慢。
也就是说,RBF实际上是⼀个两层的神经⽹络。
隐层是使⽤RBF作为激活函数的神经元,输出层采⽤线性函数的神经元,做⼀个线性分类。
隐含层使⽤径向基函数对数据重新构建,利⽤Φ(||X- Xp||)来代替原始的数据向量表⽰,⼀共有P个中⼼,所以获得的新数据有P个维度,此时再对数据进⾏分类。
输出层等于W Φ(||X- Xp||),W为需要求解的权重。
RBF神经元模型
说明:
1.输⼊层为向量,维度为m,样本个数为n,传输函数为线性函数。
2.隐藏层与输⼊层全连接,层内⽆连接,隐藏层神经元个数与样本个数相等,也就是n,传输函数为径向基函数。
输⼊的X1-Xm为离散点,我们要得到平滑函数,即通过基函数对样本点附近的点做插值。
通常我们将基函数设为⾼斯核函数。
RBF⽹络的优点:
①它具有唯⼀最佳逼近的特性,且⽆局部极⼩问题存在。
② RBF神经⽹络具有较强的输⼊和输出映射功能,并且理论证明在前向⽹络中RBF⽹络是完成映射功能的最优⽹络。
③⽹络连接权值与输出呈线性关系。
④分类能⼒好。
⑤学习过程收敛速度快。
(⼆)⾼斯核函数
⾼斯函数: exp(-d^2/(2*sigma^2));
sigma:平滑因⼦,⼜称为基函数的拓展函数或者宽度。
平滑因⼦控制⾼斯函数的平滑度。
当平滑因⼦较低时,⾼斯函数就会尖锐,也就是边缘点的权值会很⼩,导致过拟合。
距离d:距离d就是向量离每⼀个隐含层中⼼的距离,通常隐含层的中⼼对应每个节点,所以每个距离就是节点矩阵⾃⾝相对⾃⾝每个点的距离。
距离表⽰着离节点越近,所受该节点的输出影响就越⼤。
四、基于⾼斯核的RBF神经⽹络拓扑结构
第⼀层输⼊层:由信号源节点构成,仅起到数据信息的传递作⽤,对输⼊信息不做任何变换
第⼆层隐含层:节点数视需要⽽定。
当隐含层神经元核函数(作⽤函数)是⾼斯函数时,对输⼊信息进⾏空间映射的变换。
第三层输出层,对输⼊模式做出响应。
输出层神经元的作⽤函数为线性函数,对隐含层神经元输出的信息进⾏线性加权后输
出,作为整个神经⽹络的输出结果。
径向基⽹络传递函数是以输⼊向量与阈值向量之间的距离|| X-Cj ||作为⾃变
量的。
其中|| X-Cj ||是通过输⼊向量和加权矩阵C的⾏向量的乘积得到的。
径向基神经⽹络传递函数采⽤Gaussian函数:
当输⼊⾃变量为0时,传递函数取得最⼤值1,。
随着权值和输⼊向量间的距离不断减⼩,⽹络输出是递增的。
也就是说,径向基函数对输⼊信号在局部产⽣响应。
函数的输⼊信号X靠近函数的中央范围时,隐含层节点将产⽣较⼤的输出。
由此可以看出
这种⽹络具有局部逼近能⼒。
当输⼊向量加到⽹络输⼊端时,径向基层每个神经元都会输出⼀个值,代表输⼊向量与神经元权值向量之间的接近程度。
如果输⼊向量关于权值向量相差很多,则径向基层输出接近于0,;如果输⼊向量与权值向量很接近,则径向基层的输出接近于1,经过第⼆层(隐含层)的线性神经元,输出值就靠近第⼆层权值。
在这个过程中,如果只有⼀个径向基神经元的输出为1,⽽其他神经元输出均为0或者接近0,那么线性神经元的输出就相当于输出为1的神经元对应的第⼆层(隐含层)权值的值。
五、RBF⽹络的学习算法
(⼀)算法需要求解的参数
0.确定输⼊向量
初始化隐含层各神经元的中⼼参数
不同隐含层神经元的中⼼应有不同的取值,并且与中⼼的对应宽度能够调节,使得不同的输⼊信息特征能被不同的隐含层神经元最⼤的反映出来。
在实际应⽤中,⼀个输⼊信息总是包含在⼀定的取值范围内。
不失⼀般性,将隐含层各神经元的中⼼分量的初值,按从⼩到⼤等间距变化,使较弱的输⼊信息在较⼩的中⼼附近产⽣较强的响应。
间距的⼤⼩可由隐藏层神经元的个数来调节。
好处是能够通过试凑的⽅法找到较为合理的隐含层神经元数,并使中⼼的初始化尽量合理,不同的输⼊特征更为明显地在不同的中⼼处反映出来,体现⾼斯核的特点。
中⼼的选取主要有三个⽅法
(1) 固定中⼼法
(2)⾃组织选取中⼼法
(3)有监督选取中⼼法
常⽤K-means聚类⽅法求取基函数中⼼
原理:算法⾸先随机选择K个对象,每个对象初始地代表了⼀族的平均值或中⼼。
对剩余的每个对象根据其余各个族中⼼的距离,将它赋给最近的族,然后重新计算每个族的平均值。
这个过程不断重复,知道准则函数收敛。
K-means算法过程图
2.⽅差(sigma)
上⽂已介绍。
3.初始化隐含层⾄输出层的连接权值
(1)
其中p是隐藏层单元数,q是输出层单元数。
参考中⼼初始化的⽅法给出隐藏层到输出层的权值初始化⽅法:
其中mink是训练集中第k个输出神经元中所有期望输出的最⼩值;maxk是训练集中第k个输出神经元中所有期望输出的最⼤值。
下⾯从MATLAB实例中给出最⼩⼆乘法求权值的运⽤。
%给出变量
%实际数据
data=-9:1:8;
%测试数据
x=-9:.2:8;
%⽬标输出
label=[129,-32,-118,-138,-125,-97,-55,-23,-4,2,1,-31,-72,-121,-142,-174,-155,-77];
%sigma值
spread=2;
plot(data, label,'o');
%拟合这条曲线的权值
dis=dist(data',data);
gdis=exp(-dis.^2/spread);%gauss
G=[gdis,ones(length(data(1,:)),1)];%⼴义rbf⽹络(加⼊⼀个恒为1的隐含层节点)
w=G\label';%最⼩⼆乘的矩阵求解
%测试所拟合的权值
chdis=dist(x',data);
chgdis=exp(-chdis.^2/spread);
chG=[chgdis,ones(length(x(1,:)),1)];
chy=chG*w;
plot(x,chy);
基于以上:
可以得出RBF神经⽹络中⼼参数的初始值为:
(p为隐含层神经元总个数,j=1,2,...,p)mini是训练集中第i个特征所有输⼊信息的最⼩值,maxi为训练集中第i 个特征所有输⼊信息的最⼤值。
4.初始化宽度向量
宽度向量影响着神经元对输⼊信息的作⽤范围:宽度越⼩,相应隐含层神经元作⽤函数的形状越窄,那么处于其他神经元中⼼附近的信息在该神经元出的响应就越⼩。
计算⽅法:
df为宽度调节系数,取值⼩于1,作⽤是使每个隐含层神经元更容易实现对局部信息的感受能⼒,有利于提⾼RBF神经⽹络的局部响应能⼒。
(⼆)计算隐含层第j 个神经元的输出值zj
Cj是隐含层第 j 个神经元的中⼼向量,由隐含层第j个神经元对应于输⼊层所有神经元的中⼼分量构成,
Dj为隐含层第j个神经元的宽度向量,与Cj相对应,
Dj越⼤,隐含层对输⼊向量的影响范围就越⼤,且神经元间的平滑度也⽐较好;||.||为欧式范数。
(三)计算输出层神经元的输出
其中:
为输出层第k个神经元与隐含层第 j 个神经元间的调节权重。
(四)权重参数的迭代计算
RBF神经⽹络权重参数的训练⽅法在这⾥取为梯度下降法。
中⼼、宽度和调节
权重参数均通过学习来⾃适应调节到最佳值,迭代计算如下:
为第k个输出神经元与第j个隐含层神经元之间在第t 次迭代计算时的调节权重。
为第j 个隐含层神经元对于第i个输⼊神经元在第t 次迭代计算时的中⼼分量;
为与中⼼
对应的宽度
E为RBF神经⽹络评价函数:
其中,Olk为第k 个输出神经元在第l个输⼊样本时的期望输出值;ylk为第k 个输出神经元在第l个输⼊样本时的⽹络输出值。
综上所述,给出RBF神经⽹络的学习算法:
①按(⼀)确定参数的五个步骤对神经⽹络参数进⾏初始化,并给定η和α的取值及迭代终⽌精度ε的值。
②按下式计算⽹络输出的均⽅根误差RMS 的值,若RMS≤ε,则训练结束,否则转到第③步
③按照(四)权重迭代计算,对调节权重,中⼼和宽度参数进⾏迭代计算。
④返回步骤②
六、RBF神经⽹络算法的MATLAB实现
通过matlab⾃带的函数做RBF⽹络学习
1. newrb() 新建⼀个径向基神经⽹络
2.newrbe() 新建⼀个严格的径向基神经⽹络
3.newrnn() 新建⼀个⼴义回归径向基神经⽹络
4.newpnn() 新建⼀个概率径向神经⽹络
格式:net=newrb(P,T,GOAL,SPREAD,MN,DF)
P:输⼊向量
T:⽬标向量
SPREAD:径向基函数的分布密度,默认为1
MN:神经元的最⼤数⽬
DF:两次显⽰之间所添加的神经元数⽬
七、RBF神经⽹络学习算法的范例
(⼀)简例
建⽴⼀个径向基神经⽹络,对⾮线性函数y=sqrt(x)进⾏逼近,并作出⽹络的逼近误差曲线。
代码:
%输⼊从0开始变化到5,每次变化幅度为0.1
x=0:0.1:5;
y=sqrt(x);
%建⽴⼀个⽬标误差为0,径向基函数的分布密度为0.5
%隐含层神经元个数的最⼤值为20,每增加5个神经元显⽰⼀次结构
net=newrb(x,y,0,0.5,20,5)
t=sim(net,x)
plot(x,y-t,'*-')
(⼆)预测汽油⾟烷值
源码:
⼀些重要函数:
1.MATLAB命令⾏窗⼝键⼊ doc newrbe 查看 newrbe⽂档介绍:
2. 关于RBF的介绍
3.MATLAB命令⾏窗⼝键⼊ edit newrbe 查看其主函数
4.参数spread
net = newrbe(P,T,spread)
只有⼀个参数spread需要调整
The larger the spread is, the smoother the function approximation will be. Too large a spread can cause numerical problems.
也就是说,spread这个参数越⼤,b减⼩,在下图中可以看出,激活函数的输⼊变⼩。
若欧式距离相同,激活函数的输⼊变⼩,RBF图像越平滑,RBF的输出差距不⼤,则所有输⼊的作⽤都会被减弱。
⼋、参考资料
https:///doc/da4dbdd99cc3d5bbfd0a79563c1ec5da50e2d636.html /lyxleft/article/details/82846407 https:///doc/da4dbdd99cc3d5bbfd0a79563c1ec5da50e2d636.html
/weixin_41806692/article/details/81452149
https:///doc/da4dbdd99cc3d5bbfd0a79563c1ec5da50e2d636.html
/zb1165048017/article/details/49385359仅供学习。