本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com
在RBF神经网络建模时,spread参数不仅影响RBF神经网络的泛化能力,还影响了径向基的使用个数
本文讲解RBF神经网络中,spread参数设置的理论指导、公式,以及一些设置的经验与方法
通过本文,可以了解在RBF神经网络建模时,应该如何设置、调整spread参数,以及spread参数常见的取值
本节讲述RBF神经网络中spread的指导性设置方法
spread设置的理论指导
spread 控制着径向基的宽度,是RBF神经网络拟合效果的关键参数
在设置spread时,没有十分明确的参数设定方法,但是有一些指导性方法
spread设置的理论指导
由于spread代表径向基的主要覆盖范围,
在RBF个数固定的情况下,输入范围越大,则每个RBF需要覆盖的范围就越大
因此,spread大小的量级可以参考输入范围来确定,如下:
1. 输入范围的量级越大,spread就越大
2. 输入范围的量级越小,spread就越小
同时,当RBF的宽度越小时,它对曲线的处理越就"局部"、越细节
不管RBF有多少个,当要拟合很局部的细节时,就需要使用宽度较小的RBF
因此,spread的大小需要参考拟合目标是否复杂,如下:
1. 越复杂的拟合目标使用越小的spread
2. 越平滑的拟合目标使用越大的spread
spread设置的公式指导
目前没有找到适用于newrb的spread公式
以下是笔者自用的公式:
其中, :样本的个数
:变量个数
:第i个变量的输入范围长度
公式的推导详见《RBF神经网络-spread参数公式》
spread设置的经验指导
spread设置的经验指导
matlab中spread的默认值是1,这是一个通常较为合适的值
此外,还可以适应地尝试0.1,0.25,0.5,0.75,1,2,100
这些值都是比较有代表性的
需要注意的是,上述经验值比较适用的以下两种场景:
1. 输入数据范围在[-1,1]之间
2. 样本之间的间隔在[-1,1]之间
如果样本的输入范围(或间隔范围)远远偏离[-1,1],则需要对应比例地缩放spread
如果不注意输入范围,而直接采用matlab的默认值1,往往会吃大亏
极大spread的意义
在上述经验推荐中,除了尝试0.5左右的值,还加入了一个极大值100
这是为什么呢?这主要是为了尝试极大spread的效果
在一些案例中,使用极大的spread往往能取得不错的效果
spread极大的时候,RBF神经网络会被迫变得非常平滑,
使用极大spread就相当于告诉RBF神经网络,一定要让网络非常平滑
在一些案例中往往左调右调spread都比不过一个极大spread,所以,记得一定要加入极大值的尝试
好了,以上就是RBF神经网络中spread参数设置的一些方法了~
End