径向基函数是单变量的函数,直接用plot命令即可。画出来的图像应该是个尖顶的对称函数曲线。
plot(x,y):若y和x为同维向量,则以x为横坐标,y为纵坐标绘制连线图。若x是向量,y是行数或列数与x长度相等的矩阵,则绘制多条不同色彩的连线图,x被作为这些曲线的共同横坐标。若x和y为同型矩阵,则以x,y对应元素分别绘制曲线,曲线条数等于矩阵列数。
例子:
在0≤x≤2π区间内,绘制曲线
y=2e-05xcos(4πx)
程序如下:
x=0:pi/100:2pi;y=2exp(-05x)cos(4pix);
plot(x,y)
RBF网络本来就是这样的。
原始输入通过径向基函数转化后变得线性可分,隐含层的输出就是经转化后的数据,即“输入”。
另外你试试看这样:net=newrb(x',tt,err_goal,sc,200,1);
看看结果有啥不同。。
newrbe是设计精确的径向基神经网络的函数,用法如:
P = [1 2 3];%输入
T = [20 41 59];%目标
net = newrbe(P,T);%生成神经网络
其算法是:生成的网络有2层,第一层是radbas神经元,用dist计算加权输入,用netprod计算网络输入,第二层是purelin神经元,用 dotprod计算加权输入,用netsum计算网络输入。两层都有偏差b。
newrbe先设第一层权重为p',偏差为08326,第二层权重IW{2,1}从第一层的仿真输出 A{1}得到,偏差 b{2}从解线性方程 [W{2,1} b{2}] [A{1}; ones] = T 得到。
newrb设计了径向基网络,调用格式:
net = newrb
[net,tr] = newrb(P,T,goal,spread,MN,DF)
P-Q组输入向量组成的R×Q维矩阵;
T-Q组目标分类向量组成的S×Q维矩阵;
goal-均方误差,默认值为0;
spread-径向基函数的扩展速度,默认值为1;
MN-神经元的最大数目,默认是Q
DF-两次显示之间所添加的神经元数目,默认值为25;
net-返回值,一个径向基网络;
tr-返回值,训练纪录。
该函数设计的径向基网络net可用于函数逼近。径向基函数的扩展速度spread越大,函数的拟合就越平滑。但是,过大的spread意味着需要非常多的神经元以适应函数的快速变化。如果spread设定过小,则意味着需要许多神经元来适应函数的缓慢变化,这样一来,设计的网络性能就不会很好。
function [ rbf ] = RankBoost( X,Y,D,T )
%RankBoost implemetation of RankBoost algoritm
% Input:
% X - train set
% Y - train labels
% D - distribution function over X times X, it the form of 2D matrix
% T - number of iteration of the boosting
% Output:
% rbf - Ranking Function
rbf = RankBoostFunc(T);
% w - the current distribution in any iteration, initilize to D
w = D;
for t=1:T
tic;
fprintf('RankBoost: creating the function, iteration %d out of %d\n',t,T);
WL = getBestWeakLearner(X,Y,w);
rbfaddWeakLearner(WL,t);
rbfaddAlpha(WLalpha,t);
alpha=WLalpha;
%update the distribution
%eval the weak learnler on the set of X and Y
h=WLeval(X);
[hlen, ~] = size(h);
% tmph = (repmat(h,1,hlen) - repmat(h',hlen,1));
% w=wexp(tmphalpha);
[rows, cols] = size(w);
sumw = 0;
for r=1:rows
for c=1:cols
w(r,c) = w(r,c)exp((h(r)-h(c))alpha);
sumw = sumw + w(r,c);
end
end
%normalize w
% w = w/sum(w(:));
w = w/sumw;
toc;
end
end
我自己总结的:
1、神经网络算法隐含层的选取
11 构造法
首先运用三种确定隐含层层数的方法得到三个隐含层层数,找到最小值和最大值,然后从最小值开始逐个验证模型预测误差,直到达到最大值。最后选取模型误差最小的那个隐含层层数。该方法适用于双隐含层网络。
12 删除法
单隐含层网络非线性映射能力较弱,相同问题,为达到预定映射关系,隐层节点要多一些,以增加网络的可调参数,故适合运用删除法。
13黄金分割法
算法的主要思想:首先在[a,b]内寻找理想的隐含层节点数,这样就充分保证了网络的逼近能力和泛化能力。为满足高精度逼近的要求,再按照黄金分割原理拓展搜索区间,即得到区间[b,c](其中b=0619(c-a)+a),在区间[b,c]中搜索最优,则得到逼近能力更强的隐含层节点数,在实际应用根据要求,从中选取其一即可。
以上就是关于求画RBF神经网络核函数(即高斯核函数,多二次核函数,逆多二次核函数)图像的MATLAB代码全部的内容,包括:求画RBF神经网络核函数(即高斯核函数,多二次核函数,逆多二次核函数)图像的MATLAB代码、matlab 在径向基(rbf)神经网络中,为什么把隐含层输出当做输入p来使用还是我理解错了求真相。。。、请问matlab中RBF神经网络newrbe函数用的什么算法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)