RBF神经网络--Matlab newrbe函数

newrbe

x->表示向量

1.这个形式的神经网络不需要训练,

2.net模型中会保存全部训练数据即矩阵 IW中,新输入的样本p-> 会跟IW矩阵中的每个样本计算距离, radbas(||dist||.* b->)后 形成a-> 所以向量a->的元素个数等于训练样本的个数

LW矩阵 的元素个数是 S2XS1,  S2是输出个数,如果是1的情况下,LW的列数 就是S1即 a-> 向量的元素个数 , 输出这里直接是做了线性回归。

所以根据这个模型可以看出 newrbe是不需要训练,直接用的,同时看车训练样本需要全面,当然会占用比较大空间

function [w1,b1,w2,b2] = designrbe(p,t,spread)

  [r,q] = size(p);
  [s2,q] = size(t);
  w1 = p';
  b1 = ones(q,1)*sqrt(-log(.5))/spread;
  a1 = radbas(dist(w1,p).*(b1*ones(1,q)));
  x = t/[a1; ones(1,q)];
  w2 = x(:,1:q);
  b2 = x(:,q+1);
  
end
View Code

创建代码,里面的a1是训练数据两两之间的距离矩阵--取radbas后的

然后x=t/[a1;ones(1,q)] 直接做矩阵除法(ones(1,q) 对应b参数),所以需要保证[a1;ones(1,q))是可逆的,

如果输入一个训练样本,结果必定是完全对上的,因为上面的是精确解---矩阵直接除

原文地址:https://www.cnblogs.com/wdfrog/p/12898722.html