遗传算法java-双色球 遗传bp算法
机器之心编译
参与:蒋思源
在该论文中,研究者提出了一种进化深度网络(Evolutionary Deep Network/EDEN),即一种神经进化(neuro-evolutionary)算法。该算法结合了遗传算法和深度神经网络,并可用于探索神经网络架构的搜索空间、与之相关联的超参数和训练迭代所采用的 epoch 数量。机器之心简要介绍了该论文。
论文地址:
在 Emmanuel 等人的研究工作中,除了探索超参数和 epoch 数以外,他们还探索了其它有效特征(如嵌入层的优化)以增加现存研究模型的复杂度。通过使用 EDEN,研究者认为我们可以解决两个问题:即我们是否可以在众多问题领域中演化优良的一般性架构和超参数?这种演化是否可以在单块 GPU 上完成,而不是像以前一样需要在大型计算集群上完成?
随着层级深度的增加,深度神经网络在性能上持续保持提升。该趋势意味着不同网络架构和超参数的排列组合可以产生极其巨量的可能性遗传算法java,而现在它只有少量的经验性指导。为了解决这一复杂性增长问题,我们提出了进化深度网络(Evolutionary DEep Networks /EDEN),该网络是一种高效计算的神经进化算法,它能接入任何已有的深度学习平台,如 TensorFlow 等。我们展示了 EDEN 可以演化使用嵌入、1D 和 2D 卷积、最大池化、全连接层以及超参数所构建的简单而成功的架构。EDEN 在七个图片与情感分析数据集中的演化结果表明,该网络在搜寻高效的网络架构上是可依赖的。此外,EDEN 不仅在三个案例中获得了当前最佳的水平,同时还只需要在单块 GPU 上训练了 6 到 24 个小时。我们的研究首先尝试了将神经进化应用于创建 1D 卷积网络(包括嵌入层的优化等)并进行情感分析任务。
下图 1 展示了一个神经网络由 EDEN 染色体编码的情况:
图 1:每一个 EDEN 染色体包含两个基因,分别编码学习率和神经网络。
2. 遗传算法
遗传算法(GA)[12] 是用于解决优化问题的进化算法。一般首先随机初始化染色体群(population of chromosomes),每一个染色体代表优化问题的候选解。基于适应度函数,我们选择多对较优个体(父母)。适应度高的个体更易被选中繁殖,即将较优父母的基因传递到下一代。
4. EDEN
算法 3 展示了染色体如何随机生成伪代码,算法 2 展示了本研究所使用的初始种群生成法。在某些情况中可能会生成无效的架构,而这些无效的架构将会被抛弃并重新生成新的神经网络架构。
在遗传算法的每一代中,我们需要选择父染色体并进行遗传操作而创造子染色体。父染色体的选择使用的特定的算法,一般父染色体的选择是根据适应度排序和竞赛选择(tournament selection)。在本研究中,竞赛选择使用的是如下算法 4:
5. 实验设置
以下是该实验所使用的 7 个数据集遗传算法java,其中展示了每一个数据集的训练样本数、测试样本数和最终分类数。Elec 和 IMDB 数据集用于情感分析,其它的都用于图像识别。
6. 试验结果与结论
下表 3 展示了模型在 7 个数据集上的测试准确度、学习率、可训练参数和现有的最佳实验结果。我们实验有三个准确度超过了当前最佳水平,他们都是使用 Adam 算法获得的。
下图 2 和 3 展示了模型在进化过程中的适应度和学习率变化情况。
图 2:在 MNIST 数据上,0 到 10 代遗传算法平均适应度的展示
图 3:在 0 到 10 代遗传算法中的平均学习率变化
我们的研究是首次尝试用神经进化算法来创造 1D 卷积网络和优化嵌入层以实现情感分析任务。在未来的研究工作中,我们计划把 EDEN 扩展到 GAN 架构,以及探索并行实现(parallel implementation)。