本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com
spread参数是matlab的RBF神经网络中的一个核心参数,
本文讲解spread参数的意义与及它与RBF神经网络隐层阈值的关系
本节讲解RBF神经网络的spread背后代表的意义
spread参数说明
在使用matlab的newrb和newrbe时,需要输入参数spread
那么spread的背景意义是什么呢?
spread主要用来控制RBF神经网络的径向基宽度,
它的意义是当径向基函数的值为0.5时,离中心的距离
spread的意义如下图所示:
更直接的来说,就是当X与径向基中心的距离为spread时,
径向基的值为峰值(峰值为1)的一半
本节讲解spread与隐层阈值之间的关系
spead与隐层阈值的关系
由径向基的数学表达式可知,
b(2)控制了径向基的宽度,所以spread实际就是用来间接设置b(2)的值
matlab的newrb和newrbe不让使用者直接设置b(2),
主要是考虑到b(2)没有spread这么形象
spread不仅具体地代表径向基的腰间位置,
而且spread与径向基的宽度成正比,spread越大,径向基越宽
spread与b(2)的关系为:
公式在这里不再推导,但可以简单用以下代码简单验证一下
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