老饼讲解:一步一步上手学习
插值法是RBF神经网络最基础的求解算法,它可以让模型的训练误差为0,本文讲解插值法求解RBF神经网络的原理,以及求解时的相关具体公式,通过本文就可以知道RBF插值法到底是怎么一回事了。
RBF神经网络需要求解的参数共有四个:隐层权重阈值和输出层权重阈值。
先来看隐层阈值b,它一般是通过设置spread参数来间接设定的,因此它不用求解。
spread参数与b的关系如下:
公式的意义可以参考:《RBF神经网络-spread参数》
好了,接下来是隐层的权重W,对于插值法很简单,它直接以每个样本点作为RBF中心,有多少个样本点就生成多少个RBF,因此,实际W就是我们的输入样本,即:
为什么要将X转置呢?因为X每列代表一个样本,而W则是每行代表一个中心,所以要将X转置,才是W。
所以,在用插值法求解RBF模型时,其实只有输出层权重、阈值是真正需要求解的。
注意到,隐层的是已知的,因此隐层的输出值也是已知的:
如上,直接把W和b代进去,就能计算出H的值了。值得注意的是,这里的H最后是的矩阵,这是因为每个样本就有n个隐节点,所以n个样本就是了。
所以,剩下的问题是,求一组,使得模型输出与y一致,即:
更一般地,可以写为如下形式:
可以看到,它就只是一个线性方程组,直接求解出就可以了。
为了照顾一些同学,我们不妨把它展开为如下形式:
注意到待解参数个数大于方程个数,因此上述方程必有解,且是精确解,也就是说,RBF神经网络在训练数据上的预测误差会为0,这就是插值法求解RBF神经网络的特点了,而newrbe函数就是new-rb-exact的意思,代表精确求解。
总的来说,RBF神经网络算法在用插值法求解时,只需要按如下流程即可:
一、生成输出层权重、阈值W,b
,
二、计算隐层输出值H
三、求解输出层权重、阈值
四、输出模型:
总的来说,插值法以每个样本为中心生成RBF,有多少个样本就生成多少个隐层RBF,最后再用线性方程求解出输出层的权重和阈值就可以了,就这么简单,它的最大优点是模型的训练误差为0,但缺点是隐节点比较多。
评论