A. elman神经网络能够解决的问题,还有其他什么网络能够更好的解决
还可以使用GRNN神经网络,效果非常好,并且训练速度非常快。广义回归神经网络GRNN:径向基神经元和线性神经元可以建立广义回归神经网络,它是径RBF网络的一种变化形式,经常用于函数逼近。在某些方面比RBF网络更具优势。
在MATLAB中,直接使用net=newgrnn(P,T,spread)就能以非常快的速度设计出一个GRNN网络,其进行训练及预测时,效果非常好,不会比elman神经网络差。扩展常数SPREAD不能太小,才能使部分径向基神经元能够对输入向量所覆盖的区间产生相应,但也不能太大,否则计算困难。可以通过试凑来获得最佳扩展常数。
B. elman神经网络和rnn有什么关系
深度学习是多层的神经网络。RNN和elman神经网络是深度学习的主要内容之一。深度学习绝不仅仅是多层的神经网络。网络必须拥有一定的”记忆能力”。为了赋予网络这样的记忆力,一种特殊结构的神经网络——递归神经网络(Recurrent Neural Network)便应运而生了。Elman神经网络是 J. L. Elman于1990年首先针对语音处理问题而提出来的,是一种典型的局部回归网络( global feed forward local recurrent)。
C. PNN神经网络,BP神经网络,Elman神经网络,ANN神经网络,几种神经网络中哪个容错能力最强
多层前向BP网络是目前应用最多的一种神经网络形式, 它具备神经网络的普遍优点!
D. bp神经网络函数中哪个预测性能好
traingdm是带动量的梯度下降法,trainlm是指L-M优化算法,trainscg是指量化共轭梯度法,除此之外还有traingdx、traingda等,都是权值的训练算法。看MATLAB结合神经网络的基础书上都有介绍。tansig和logsig 统称Sigmoid函数,logsig是单极性S函数,tansig是双极性S函数,也叫双曲正切函数,purelin是线性函数,是节点的传输函数。
学习函数和训练函数的区别:学习函数的输出是权值和阈值的增量,训练函数的输出是训练好的网络和训练记录,在训练过程中训练函数不断调用学习函数修正权值和阈值,通过检测设定的训练步数或性能函数计算出的误差小于设定误差,来结束训练。
下面是几个仿真实验,用了不同的训练函数:
1.创建BP网络的学习函数,训练函数和性能函数都采用default值,分别为learngdm,trainlm和mse时的逼近结果:
由此可见,进过200次训练后,虽然网络的性能还没有为0,但是输出均方误差已经很小了,MSE=6.72804e-0.06,显示的结果也证明P和T之间非线性映射关系的拟合是非常精确的;
2.建立一个学习函数为learnd,训练函数为traingd,和性能函数为msereg的BP网络,来完成拟合任务:
可见,经过200次训练后,网络的输出误差比较大,而且网络误差的收敛速度非常慢。这是由于训练函数traingd为单纯的梯度下降训练函数,训练速度比较慢,而且容易陷入局部最小的情况。结果显示网络精度确实比较差。
3.将训练函数修改为traingdx,该i函数也是梯度下降法训练函数,但是在训练过程中,他的学习速率是可变的
在200次训练后,以msereg函数评价的网络性能为1.04725,已经不是很大,结果显示P和T之间非线性关系的拟合情况不错,网络的性能不错。
E. 用BP或elman神经网络实现风速预测程序怎么写
x=[6.2 ,5.8 ,5.5 , 5.6 ,5.4 ,5.1 ,5.2 , 5.2 ,5.1 ,4.9 ,4.8 ,5 ,5.2 ,5.3 ...
,5.2 ,5.1 ,5.1 ,5 ,4.8 , 4.9 ,5.3 ,5.4 ,5.3 ,5.3 ,5.5 ,5.2 ,4.6 ,4.9 ...
,4.9 ,5.4 ,5.4 ,5.5 ,5.4 ,5.1 ,5 ,5.1 ,5.2 ,4.9 ,5.2 ,5.1 ,5.1 ,4.8 ,...
3.8 ,3.4 ,3.8 ,3.9 ,3.8 ,3.7 ,3.6 ,2.9 ,3.1 ,3.7 ,3.9 ,3.7 ,3.7 ,3.8 ,...
3.6 ,3.7 ,2.7 ,2.8 ,1.9 ,2.7 ,2.9 ,2.8 ,3.5 ,3.6 ,3.7 ,3.3 ,3.6 ,3.5 ,...
4.3 ,4.4 ,3.9 ,4.5 ,4.2 ,4.9 ,4.5 ,4.6 4.8, 5.7, 5.6, 5.6, 5.6, 5.6, ...
5.6,5.6, 5.6, 5.6, 5.6, 5.6,5.6 ,5.6,5.6 ,5.6 ,5.6 ,5.6 ,5.6 ,5.6 ,5.6 ...
,5.6 ,5.6 ,5.6 ,5.6 ,5.5 ,5.5 ,5.2 ,3.6 ,5.6 ,4.5 ,6.1,6.2 ,5.6 ,6.4 ,...
5.5 ,4.8 ,5.1 ,6.1 ,5.5 ,4.6 ,4.3 ,6.7 ,5.9 ,4.8 ,5.8 ,5.7 ,5.7 ,5.4 ,...
5.9 ,5.7 ,6.2 ,5.2 ,4.6 ,4.1 ,4.3 ,4.3 ,4.1 ,3.9 ,3.8 ,4.3 ,4.6,4.2,...
4.1 ,4.5 ,4.3 ,3.7 ,3.1 ,2.7 ,2.9 ,2.4 ,3 ,2.8 ,2.8];
% 该脚本用来做NAR神经网络预测
% 作者:Macer程
lag=3; % 自回归阶数
iinput=x; % x为原始序列(行向量)
n=length(iinput);
%准备输入和输出数据
inputs=zeros(lag,n-lag);
for i=1:n-lag
inputs(:,i)=iinput(i:i+lag-1)';
end
targets=x(lag+1:end);
%创建网络
hiddenLayerSize = 10; %隐藏层神经元个数
net = fitnet(hiddenLayerSize);
% 避免过拟合,划分训练,测试和验证数据的比例
net.divideParam.trainRatio = 70/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 15/100;
%训练网络
[net,tr] = train(net,inputs,targets);
%% 根据图表判断拟合好坏
yn=net(inputs);
errors=targets-yn;
figure, ploterrcorr(errors) %绘制误差的自相关情况(20lags)
figure, parcorr(errors) %绘制偏相关情况
%[h,pValue,stat,cValue]= lbqtest(errors) %Ljung-Box Q检验(20lags)
figure,plotresponse(con2seq(targets),con2seq(yn)) %看预测的趋势与原趋势
%figure, ploterrhist(errors) %误差直方图
%figure, plotperform(tr) %误差下降线
%% 下面预测往后预测几个时间段
fn=5; %比如预测步数为fn.
f_in=iinput(n-lag+1:end)';
f_out=zeros(1,fn); %预测输出
% 多步预测时,用下面的循环将网络输出重新输入
for i=1:fn
f_out(i)=net(f_in);
f_in=[f_in(2:end);f_out(i)];
end
% 画出预测图
figure,plot(1:n,iinput,'b',n:n+fn,[iinput(end),f_out],'r')
F. bp神经网络和hopfield神经网络有什么区别
BP神经网络是ANN人工神经中的一种,常用的神经网络有BP、RBF、SOM、Hopfield等等,其功穿骇扁较壮记憋席铂芦能不经相同,可总体来说ANN的主要功能是模式识别和分类训练。
G. NARX神经网络一定比BP神经网络更好吗如果是,具体好在哪
这看你要解决什么问题了,narx网络是为了给bp网络增加一定的序列学习能力,如果你有序列任务需求的话可以考虑采用narx网络。
单独的说好不好并没有意义
H. 求大神帮忙,用BP或elman神经网络实现风速预测程序怎么写
x=[6.2 ,5.8 ,5.5 , 5.6 ,5.4 ,5.1 ,5.2 , 5.2 ,5.1 ,4.9 ,4.8 ,5 ,5.2 ,5.3 ...
,5.2 ,5.1 ,5.1 ,5 ,4.8 , 4.9 ,5.3 ,5.4 ,5.3 ,5.3 ,5.5 ,5.2 ,4.6 ,4.9 ...
,4.9 ,5.4 ,5.4 ,5.5 ,5.4 ,5.1 ,5 ,5.1 ,5.2 ,4.9 ,5.2 ,5.1 ,5.1 ,4.8 ,...
3.8 ,3.4 ,3.8 ,3.9 ,3.8 ,3.7 ,3.6 ,2.9 ,3.1 ,3.7 ,3.9 ,3.7 ,3.7 ,3.8 ,...
3.6 ,3.7 ,2.7 ,2.8 ,1.9 ,2.7 ,2.9 ,2.8 ,3.5 ,3.6 ,3.7 ,3.3 ,3.6 ,3.5 ,...
4.3 ,4.4 ,3.9 ,4.5 ,4.2 ,4.9 ,4.5 ,4.6 4.8, 5.7, 5.6, 5.6, 5.6, 5.6, ...
5.6,5.6, 5.6, 5.6, 5.6, 5.6,5.6 ,5.6,5.6 ,5.6 ,5.6 ,5.6 ,5.6 ,5.6 ,5.6 ...
,5.6 ,5.6 ,5.6 ,5.6 ,5.5 ,5.5 ,5.2 ,3.6 ,5.6 ,4.5 ,6.1,6.2 ,5.6 ,6.4 ,...
5.5 ,4.8 ,5.1 ,6.1 ,5.5 ,4.6 ,4.3 ,6.7 ,5.9 ,4.8 ,5.8 ,5.7 ,5.7 ,5.4 ,...
5.9 ,5.7 ,6.2 ,5.2 ,4.6 ,4.1 ,4.3 ,4.3 ,4.1 ,3.9 ,3.8 ,4.3 ,4.6,4.2,...
4.1 ,4.5 ,4.3 ,3.7 ,3.1 ,2.7 ,2.9 ,2.4 ,3 ,2.8 ,2.8];
% 该脚本用来做NAR神经网络预测
% 作者:Macer程
lag=3; % 自回归阶数
iinput=x; % x为原始序列(行向量)
n=length(iinput);
%准备输入和输出数据
inputs=zeros(lag,n-lag);
for i=1:n-lag
inputs(:,i)=iinput(i:i+lag-1)';
end
targets=x(lag+1:end);
%创建网络
hiddenLayerSize = 10; %隐藏层神经元个数
net = fitnet(hiddenLayerSize);
% 避免过拟合,划分训练,测试和验证数据的比例
net.divideParam.trainRatio = 70/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 15/100;
%训练网络
[net,tr] = train(net,inputs,targets);
%% 根据图表判断拟合好坏
yn=net(inputs);
errors=targets-yn;
figure, ploterrcorr(errors) %绘制误差的自相关情况(20lags)
figure, parcorr(errors) %绘制偏相关情况
%[h,pValue,stat,cValue]= lbqtest(errors) %Ljung-Box Q检验(20lags)
figure,plotresponse(con2seq(targets),con2seq(yn)) %看预测的趋势与原趋势
%figure, ploterrhist(errors) %误差直方图
%figure, plotperform(tr) %误差下降线
%% 下面预测往后预测几个时间段
fn=5; %比如预测步数为fn。
f_in=iinput(n-lag+1:end)';
f_out=zeros(1,fn); %预测输出
% 多步预测时,用下面的循环将网络输出重新输入
for i=1:fn
f_out(i)=net(f_in);
f_in=[f_in(2:end);f_out(i)];
end
% 画出预测图
figure,plot(1:n,iinput,'b',n:n+fn,[iinput(end),f_out],'r')
效果不是很好,但未来5个点风速应该是增大的。
I. BP网络是什么
我们最常用的神经网络就是BP网络,也叫多层前馈网络。BP是back propagation的所写,是反向传播的意思。我以前比较糊涂,因为一直不理解为啥一会叫前馈网络,一会叫BP(反向传播)网络,不是矛盾吗?其实是这样的,前馈是从网络结构上来说的,是前一层神经元单向馈入后一层神经元,而后面的神经元没有反馈到之前的神经元;而BP网络是从网络的训练方法上来说的,是指该网络的训练算法是反向传播算法,即神经元的链接权重的训练是从最后一层(输出层)开始,然后反向依次更新前一层的链接权重。因此二者并不矛盾,只是我没有理解其精髓而已。
随便提一下BP网络的强大威力:
1)任何的布尔函数都可以由两层单元的网络准确表示,但是所需的隐藏层神经元的数量随网络输入数量呈指数级增长;
2)任意连续函数都可由一个两层的网络以任意精度逼近。这里的两层网络是指隐藏层使用sigmoid单元、输出层使用非阈值的线性单元;
3)任意函数都可由一个三层的网络以任意精度逼近。其两层隐藏层使用sigmoid单元、输出层使用非阈值的线性单元。
参考资料:【注】参考自《机器学习》
J. Elman神经网络和回声状态网络哪个好
BP等前馈型神经网络是将动态时间建模问题变为静态空间建模问题,同时还需对模型结构进行定介,特别是随系统阶次的增加或阶次未知,迅速扩大的网络结构使网络学习的收敛速度减慢,并造成网络输入节点过多、训练困难及对外部噪声敏感等弊病。
Elman回归神经网络是在BP网络基本结构的基础上,通过存储内部状态使其具备映射的动态特征功能,从而使系统具有适应时变特性的能力。