【优化算法】使用遗传算法优化MLP神经网络参数(TensorFlow2)
发布时间:2024-08-26 05:33:53浏览次数:
使用启发式优化算法遗传算法对多层感知机中中间层神经个数进行优化,以提高模型的准确率。
待优化的模型:
基于TensorFlow2实现的Mnist手写数字识别多层感知机MLP
设置随机树种子,避免相同结构的神经网络其结果不同的影响。
准确率为96.7%
使用scikit-opt提供的遗传算法库进行优化。()
官方文档:https://scikit-opt.github.io/scikit-opt/#/zh/README
优化目标函数loss_func:1 - 模型准确率(求优化目标函数的最小值)
待优化的参数数量n_dim:2
种群数量size_pop:4
迭代次数max_iter:3
变异概率prob_mut:0.15
待优化两个参数的取值范围均为10-256
精确度precision:1
结果:
通过迭代,找到layer1、layer2的最好值为165、155,此时准确率为1-0.0231=0.9769。
查看每轮迭代的损失函数值图(1-准确率):
上图为三次迭代种群中,种群每个个体的损失函数值(每个种群4个个体)。
下图为三次迭代种群中,种群个体中的最佳损失函数值。
可以看出,通过遗传算法,其准确率有一定的提升。
增加种群数量及迭代次数效果可更加明显。