RBF神经网络

【公式】RBF神经网络spread参数公式

作者 : 老饼 发表日期 : 2023-01-20 00:24:53 更新日期 : 2024-12-14 16:33:18
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com



spread参数决定了RBF的宽度,它是RBF神经网络建模时的重要参数之一,会影响模型的泛化能力

本文讲解一种spread的计算公式,它的主要原理是根据隐节点个数与输入区域大小来确定spread

通过本文,可以了解一种适用范围广的spread设置公式,为rbf神经网络的spread参数设置提供参考





    01. 一种spread的设置思路及公式推导    





本节介绍一种RBF神经网络的spread参数公式,以及它的推导





      理想状态下spread的设置思路     


spread就是径向基中心到腰间位置的距离,如下:
 spread参数的意义
在两个相邻径向基的腰部交叉时,合并得到的曲线可以相对较为平滑,如下
 两个相邻径向基的腰部交叉
此时,spread是两个径向基中心距离的一半
因此,我们对spread的设置思路为:将spread设为两个相邻径向基中心距离的一半
 在现实中,每两个相邻径向基的距离往往都是不一样的,
而由于所有径向基的spread是统一设定的,所以不管spread设为多少,都会有某一对径向基不满足上述要求
但这并不妨碍我们假设径向基的分布是理想的,因为这种理想情况下推导出的spread虽然不够严谨,但也极具参考意义






    理想状态下spread的设置公式    


RBF神经网络Spread设置公式
假设每个径向基在区域中均匀分布,要使相邻径向基腰部交叉,
 则spread的取值公式如下(推导过程见下文):
 
 
 其中
 
:径向基的个数            
 
:变量个数                
 
:第i个变量的输入范围长度
    OLS求解法中spread的设置公式    
在使用OLS求解法训练RBF神经网络(即matlab的newrb函数)时
径向基个数K是不确定的,它的最大值为样本个数
因此,在训练前需预估最终使用的径向基占比为,即
 , 其中
 则spread的设置公式如下:
                                     
  ,  
 其中
 
:样本的个数                  
 
:变量个数                    
 
:第i个变量的输入范围长度     
 
:径向基使用占比,需自行设置  
 
上述公式中的需要自行设置
如果比较保守,假定newrb使用了所有的径向基进行建模,那么  
如果比较激进,假定newrb只使用了1个径向基进行建模,那么
按笔者一般的经验,可以将
设为








    02. spead设置公式-推导过程    





本节讲解RBF神经网络Spread设置公式的推导过程





    spead设置公式-推导过程    


方形区间下spread的取值
现假设输入的维度为n,并且每个输入维度的区间长度相等,如下
  
现将区域每个维度都等量划分为份,则整个区间就有个小区域,如下
 
输入域的划分 
现在有K个径向基,
如果要使每个小区域都有一个径向基负责,则 ,也即   
 理想中的RBF分布与spread的关系
而我们希望相邻径向基之间的中心距离为2*spread
实际上就是要求每个小区域的长度为2*spread,因此有: 
  
由上可得
  
   非方形区间下spread的取值     
如果每个输入的区间长度不一样时,不妨记第i个输入的区间长度为
则整个输入空间大小为,换算成方形空间则有
 
即换算后的方形空间每维的长度为:
 

 利用方形空间的结果,从而有:
 







   编后语   


由于目前找到的一些关于spread设置公式都是针对"K-means求解RBF中心"而设定的
但这些公式只适用于"K-means求解RBF中心",而不适用于newrbe和newrb,
 因为后者的径向基数量相对前者要多很多,以致于公式无法计算
为了在newrb中也有可参考的公式,笔者因此设计出文中的方法先作为参考性使用
如果读者发现有什么好的spread设置公式,不妨推荐给笔者







好了,以上就是一种适用于OLS求解法的RB神经网络关于spread的设置公式了~









 End 




联系老饼