求画RBF神经网络核函数(即高斯核函数,多二次核函数,逆多二次核函数)图像的MATLAB代码

求画RBF神经网络核函数(即高斯核函数,多二次核函数,逆多二次核函数)图像的MATLAB代码,第1张

径向函数是单变量的函数,直接用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函数用的什么算法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9520841.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存