matlab神经网络30个案例分析适合初学者吗

matlab神经网络30个案例分析适合初学者吗,第1张

嗯,挺不错的, 不过现在已经有《matlab神经网络43个案例分析》了,是30个案例的升级版 。

它是matkabsky论坛出版的,还有个matlab中文论坛出版的,《MATLAB神经网络原理与实例精解(附光盘)》也是挺不错的。。 这两本里面都有比较多的干货。

另外《神经网络之家》网,nnetinfo也推荐你去看看,上面也有些视频可以下载。

使用神经网络工具箱可以非常简便地实现网络建立和训练,实例代码如下:

%% BP算法

function Out=bpnet(p,t,p_test)

%p,t为样本需要提前组织好

global S1

net=newff(minmax(p),[S1,8],{'tansig','purelin'},'trainlm');    %trainlm训练函数最有效

%net=newff(P,T,31,{'tansig','purelin'},'trainlm');%新版用法

nettrainParamepochs=1000;

nettrainParamgoal=000001;

nettrainParamlr=001;

nettrainParamshowWindow = false;      %阻止训练窗口的d出

nettrainParamshowCommandLine = false; %阻止训练窗口的d出

net=train(net,p,t);

Out=sim(net,p_test);

end

上面的代码不完整,完整的带训练样本数据的程序见附件。

1)局部极小化问题:从数学角度看,传统的BP神经网络为一种局部搜索的优化方法,它要解决的是一个复杂非线性化问题,网络的权值是通过沿局部改善的方向逐渐进行调整的,这样会使算法陷入局部极值,权值收敛到局部极小点,从而导致网络训练失败。加上BP神经网络对初始网络权重非常敏感,以不同的权重初始化网络,其往往会收敛于不同的局部极小,这也是很多学者每次训练得到不同结果的根本原因。

2)BP神经网络算法的收敛速度慢:由于BP神经网络算法本质上为梯度下降法,它所要优化的目标函数是非常复杂的,因此,必然会出现“锯齿形现象”,这使得BP算法低效;又由于优化的目标函数很复杂,它必然会在神经元输出接近0或1的情况下,出现一些平坦区,在这些区域内,权值误差改变很小,使训练过程几乎停顿。

3)BP神经网络结构选择不一:BP神经网络结构的选择至今尚无一种统一而完整的理论指导,一般只能由经验选定。网络结构选择过大,训练中效率不高,可能出现过拟合现象,造成网络性能低,容错性下降,若选择过小,则又会造成网络可能不收敛。而网络的结构直接影响网络的逼近能力及推广性质。因此,应用中如何选择合适的网络结构是一个重要的问题。

4)应用实例与网络规模的矛盾问题:BP神经网络难以解决应用问题的实例规模和网络规模间的矛盾问题,其涉及到网络容量的可能性与可行性的关系问题,即学习复杂性问题。

5)BP神经网络预测能力和训练能力的矛盾问题:预测能力也称泛化能力或者推广能力,而训练能力也称逼近能力或者学习能力。一般情况下,训练能力差时,预测能力也差。

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

原文地址:https://www.54852.com/zaji/12457078.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存