RBF神经网络-入门教程

【参数】RBF神经网络的spread参数是什么

作者 : 老饼 发表日期 : 2023-10-18 11:11:22 更新日期 : 2025-04-09 04:36:18
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com



RBF神经网络的spread参数称为径向基宽度系数,它用于直接控制RBF径向基的宽度

本文介绍RBF神经网络中的spread参数是什么、有什么用,以及它与隐节点阈值之间的关系

通过本文,可以了解RBF神经网络的spread参数的意义是什么,以及它的公式是如何推导出来的





     01. RBF神经网络中的spread是什么    




本节讲解RBF神经网络的spread背后代表的意义




      spread参数说明       


在使用matlab的newrb和newrbe时,需要输入参数spread
 那么spread的背景意义是什么呢?
spread主要用来控制RBF神经网络的径向基宽度,
它的意义是当径向基函数的值为0.5时,离中心的距离
 spread的意义如下图所示:
 
RBF神经网络Spread的意义
    更直接的来说,就是当X与径向基中心的距离为spread时, 
径向基的值为峰值(峰值为1)的一半








  02. spread与隐层阈值b的关系  




本节讲解spread与隐层阈值之间的关系





      spead与隐层阈值的关系     


spead与隐层阈值b2的关系
由径向基的数学表达式可知,
b(2)控制了径向基的宽度,所以spread实际就是用来间接设置b(2)的值
 matlab的newrb和newrbe不让使用者直接设置b(2)
主要是考虑到b
(2)没有spread这么形象,
spread不仅具体地代表径向基的腰间位置,
而且spread与径向基的宽度成正比,spread越大,径向基越宽

spread与b(2)的关系为:
     
  spread与b2的关系公式推导过程
 
 推导过程如下
由于 时,

则可得:

 
 使用spread的好处是,能让我们更形象地控制径向基的肥瘦,
另一方面,spread与径向基的肥瘦成正比,spread越大,径向基越肥






      spead与隐层阈值的关系-代码验证      


不妨在matlab中验证一下spread与b2的关系
实验代码如下:
x      = [1,2,3];                        % 生成数据点x
y      = [4,5,6];                        % 生成数据点y
spread = 2;                              % 设置spread
net    = newrb(x, y,0,spread);           % 构建RBF网络
b2     = sqrt(-log(0.5))/spread;         % 用公式计算b2
disp(['用spread计算 b2:',num2str(b2)])   % 打印公式计算的b2
disp('工具箱计算的b2:')                  % 打印工具箱的b2
disp(net.b{1})
运行结果:
  
可以看到,用公式计算的b2与从matlab工具箱中提取出的隐层阈值b2是一致的






好了,上述入是matlab中newrb和newrbe中spread参数的意义了~










 End 




内容纠正