关于GA/NSGA优化神经网络

查了网上一些论文和代码,自己写了三个版本的GA-BP优化代码。

说明:主要便于方便代入自己的数据所以写了如下代码。自己用的时候主要可以修改Net中的网络,Train中的load_data变成自己要读的文件,选用合适的损失函数等等。geatpy为国内大佬写的遗传算法库,这里假设读者已经会用。关于GA和NSGA的区别只在于代码中运用模板的区别。

代码都有注释,可以试着读一读。代码gpu支持暂没测试与优化。

可供测试data文件。测试文件说明:最后一列为label,除最后一列外为data。

三个版本对比,对上述测试文件对R^2 >= 0.96为指标,在我的破电脑上运行时间v1.0≈1min,v2.0约等于45s,v3.0≈20s,我没有测试过别的例子的速度,对于v3.0不能保证每个例子都能用,有一定缺陷,不同问题可以选用不同的版本进行使用。

利用 GA 求神经网络最优的learning rate和隐藏层的神经元个数

GA-NET v1.0

对于图片的识别,进行了相关优化

GA-NET v2.0

在神经网络中也加入GA来加快神经网络训练速度

GA-NET v3.0

以上均为回归损失计算方法,要计算分类损失只需要修改如下代码。

详情也可见该文章

分类损失

发表评论

您的电子邮箱地址不会被公开。

浙ICP备2021019730-1    浙公网安备 33010902002953号
Copyright © 2022 PanCake