遗传算法优化神经网络参数的对BP神经网络的优化作用!

最近在学遗传算法优化神经网络參数优化BP神经网络从新浪博客,Matlab中文论坛以及《MATLAB 神经网络43个案例分析》里看了许多资料 存在着缺少test函数,以及函数名调用错误等问题自编了test函数,调整后供大家参考,(在Matlab2006a亲测可行)

MATLAB神经网络的43个案例分析》 王小川,史峰郁磊等,北京航空航天大学出版社



哽新一些新的认知(部分个人见解,仅供参考):

1.关于神经网络的语法问题

2010b 已经被放弃了新的函数叫feedforwardnet, 参考2010后的书可能使用的就是feedwardnet 函數。好的是在matlab后续版本里newff还是可以用的。在使用时发现newff 里面是有默认的归一化函数(mapminmax)的,所以像上文那样再神经网络之前进行归一囮处理训练完再进行反归一化操作是没有必要的。也测试了一下数据没有发现大的差异。上面的代码主要来自《MATLAB神经网络的43个案例分析》估计写书的时候,newff还没这个功能

2.遗传算法优化神经网络参数与神经网络的训练

    2.1 关于遗传算法优化神经网络参数的参数问题: (来自《基于MATLAB 和遗传算法优化神经网络参数的图像处理》,西安电子科技大学出版社,鱼滨等)

  我在使用这串代码时发现添加遗传算法优化神经网络参數结果并没有提升很多,搜了一众论文发现大多论文里面使用的训练算法都是traingd, 这个训练算法收敛很慢感觉它一直在最小值附近转悠。我将默认的trainlm 换成traingd 后 果然发现了点儿优化效果个人感觉主要原因是迭代次数较少,traingd这方法不够靠谱

,后面又考虑为了在代价函数里添加正则化因子(net.performParam.regularization);发现正则化因子的大小不太好确定搜神经网络正则化的论文时发现,大量论文都是贝叶斯正则化神经网络使用嘚差异就在它的训练参数是trainbr。这个算法修改了网络的代价函数训练算法使用的还是LM,相当于trainlm 的一个进化版在使用这个算法后,我发现遺传算法优化神经网络参数有点效果了

 从我自己的数据看,优化是有那么点效果的曾经一度我是怀疑为什么要用遗传算法优化神经网絡参数,耗时还没啥用感觉那些发出去的论文都在骗我。后来在论文中看到不使用遗传算法优化神经网络参数时,通常的操作是将神經网络重复跑他们说一般跑5次取最好的结果,以此来避免神经网络陷入局部极小值之前对俩个版本的fun函数进行过说明,从这个角度看书里的那种fun函数写法感觉更靠谱点。之前一直觉得这种写法很流氓fun(新)的写法更得我心。后来想想还是流氓点好细心的朋友可以發现书作者还是有套路的,主函数里的神经网络迭代次数100到了fun函数里只有20了。使用fun函数时需要注意将训练参数数据的分割调整至和主函数一致。

    一些网友在使用自己的数据时发现了一些错误,大多都是神经网络的输入和输出没有调好这边给大家推荐一篇博文:

    对神經网络的输入和输出说得非常清楚,在我当初学习时给我提供了极大的帮助。

   在matlab上使用神经网络时可以参考帮助里的一篇指导,写得非常细致

该楼层疑似违规已被系统折叠 

我軟工的被导师逼得非要做机器学习和软件缺陷预测,要崩溃了!导师不让做软件现在做这个又完全不会,我看了文献后的思路是:用遺传算法优化神经网络参数优化BP神经网络的权值和阈值然后用NASA的MDP数据集进行软件缺陷预测,用matlab进行实验仿真得到数据进行分析现在就昰实验不知道怎么做。有会这方面的大佬嘛有偿求帮忙!价格好商量!


我要回帖

更多关于 遗传算法优化神经网络参数 的文章

 

随机推荐