Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
/ ga_bp Public
forked from SureeLee/ga_bp

a back propagation neural network with genetic algorithm

Notifications You must be signed in to change notification settings

duangan1/ga_bp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

13 Commits

Repository files navigation

ga_bp

a back propagation neural network with genetic algorithm

利用遗传算法对bp神经网络进行权值优化 优化过后,loss收敛速度变快,收敛结果较为稳定,结果较未优化的相比小了一点,这说明遗传算法有一定的作用。 但效果不是特别显著,均方误差0.001,是现在最好的情况,也勉强还可以接受,到时候再挣扎一下...

.py说明

  1. ga_main.py

程序入口函数,定义ga一些参数,负责整体的ga_bp过程

  1. ga_encoding.py

ga编码函数,对所有的变量进行编码,这里采用的是二进制编码,实数编码准备在考虑一下

  1. ga_decoding.py

ga解码函数,对编码后的二进制码进行解码,转换成十进制形式

  1. ga_calObject.py

计算目标值,是调用神经网络的函数

  1. ga_calFitness.py

计算每一代种群中的最优个体

  1. ga_replace.py

个体替换函数,用上一代最优个体替换本代最差个体

  1. ga_selection.py

ga选择函数,以轮盘赌的方式选择一些个体组成新的种群,淘汰掉一些目标值较低的个体

  1. ga_crossover.py

ga交叉函数,以一定概率选择两个个体进行交叉

  1. ga_mutation.py

ga变异函数,以一定概率选择个体进行变异

  1. ga_getBest.py

从所有代中选择一代最优种群

  1. bp_object.py

该函数位于ga_calObject.py中,用于计算loss,并返回loss的倒数作为目标值

  1. bp_train.py

遗传算法迭代结束后选择最优权值传入此文件中进行训练,达到优化效果

  1. 10790.csv

训练数据(打乱)

这是原始的一版ga_bp优化代码。如果允许,可以用作论文中实验(代码注释、结构、功能尚未优化,可以按需增改)。这里的采用的是二进制编码,接下来会用实数编码在写一个程序,看看是否会比二进制更好一些,同时也会不断修改这一版本的代码参数,力求更好。

Update-实数编码

  1. 增加了bp_test.py函数,该函数用来测试模型的性能,同时增加测试集3597.csv
  2. 在ga_bp文件内添加了ga_bp_real包,该包内的程序为实数编码的遗传算法,与上面二进制编码相对应。 主要的改变在于去掉了ga_decoding.py,修改了ga_encoding.py,ga_crossover.py,ga_mutation.py这几个文件。 相对于二进制编码来说,实数编码没有二进制和十进制转换问题,减少了一些可能的转换误差,同时也减少了计算量,按照网上和论文中的说法,应该更为准确。 但实际实验后并没有与二进制编码有所区别...可能是实验效果真的到了极限,但算法本身肯定也存在需要优化的地方。遗传算法种群的变化需要再优化。

About

a back propagation neural network with genetic algorithm

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%

AltStyle によって変換されたページ (->オリジナル) /