本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com
在使用newrb构建RBF神经网络时,goal参数决定了RBF网络的最终误差与及径向基个数
本文讲解使用newrb建模时,设置goal参数的三种方案,并解释每种goal设置的理由与出发点
通过本文,可以了解RBF神经网络建模时,如何设置goal参数,以及这样设置会有什么样的效果
本节讲解用newrb构建RBF神经网络时,应该如何设置goal参数
RBF神经网络-goal的设置方案
在使用newrb函数来构建RBF神经网络时,goal参数决定了最终模型的训练误差和隐节点个数
因为newrb的构建过程,就是以所有样本为中心生成隐节点,再逐个添加到RBF神经网络中,直到误差小于goal
goal的设置方案
goal应该如何设置呢?不同场景有不同的方案
如果我们只想简单地、尝试性看下newrb的模型效果时,此时只需要粗略设置一个性价比高的goal参数就可以了
这种场景goal的设置笔者有以下三种推荐:
👉方案1:
👉方案2:
👉方案3:
三种方案的使用场景如下:
如果y的数量级在1左右时,可以将goal设置为 进行简单尝试
如果y的数量级偏离1较多,可以将goal设置为
如果要更加细致、通用,可以将goal设置为
可以看到,它们是一个简单到细致的过程
备注:这里的0.01只是一个参考值,根据实际项目,可以适当调得更大或更小
各种goal设置方案的目的
方案1的意义
第一种设置是一种替代 goal =0 的简单方案
因为goal=0过于苛刻,会添加大量的隐节点,因此稍微放宽一点点误差,往往可以大大减少隐节点
总的来说,goal=0.01就是对goal=0的误差要求进行放宽,减少RBF神经网络的隐节点个数与增强泛化能力
方案2的意义
在y数量极相对较大的时候,例如y的范围为[-100,100],
那么,此时goal=0.01就过小了,它几乎与"要求误差为0"无异,
因此, 是方案1的简单修正,它加入了y的数据范围的考虑
在实际中,只需看下y的最大值,再乘以0.01就可以
例如,, 那么
方案3的意义
方案3主要是为了更细致化方案1,它完全考虑了数据的量级
假设我们希望最终每个样本的相对误差为0.01,
那么此时mse为
因此把goal设为该值,就相当于期望最后的相对误差为1%,因此方案3更加的严谨
笔者语
笔者之所以提供三种方案,是因为实际使用场景的多样性
方案3虽然更通用、合理,但往往在实际的使用习惯中,一般会先试探性建模
此时为了快速、简单,往往会直接使用方案1,而方案2则是方案1不适用时,进行的简单修正
因为在不同场景,有不同的目的,所以笔者在这里把三种方案都总结出来,只要用得多了,三种都会涉及
好了,以上就是RBF神经网络的goal参数的设置方法了~
End