作者:罂粟花wd2010 | 来源:互联网 | 2023-09-08 17:19
前言 近期,遇到LSTM神经网络调参问题,本人由于初学神经网络,调参没有经验,所以决定用优化算法进行优化,经过尝试最终决定使用DEAP库。 关于DEAP,DEAP是一个进化计算框架,能够帮助我们快速实现和测试进化算法。
进化算法简介 进化算法(Evolutionary Algorithms)是一类元启发式算法的统称。这类算法借鉴大自然中生物的进化、选择与淘汰机制,通常先产生一个族群,然后不断进化与淘汰,最终产生能够在严酷的自然环境中生存的优异个体(也就是有较大适应度函数的可行解)。它具有自组织、自适应的特性,常被用来处理传统优化算法难以解决的问题。
进化算法的优缺点 优点: 泛用性强,对连续变量和离散变量都能适用; 不需要导数信息,因此不要求适应度函数的连续和可微性质(或者说不需要问题内在机理的相关信息); 可以在解空间内大范围并行搜索; 不容易陷入局部最优; 高度并行化,并且容易与其他优化方法整合。 缺点: 对于凸优化问题,相对基于梯度的优化方法(例如梯度下降法,牛顿/拟牛顿法)收敛速度更慢; 进化算法需要在搜索空间投放大量个体来搜索最优解。对于高维问题,由于搜索空间随维度指数级膨胀,需要投放的个体数也大幅增长,会导致收敛速度变慢; 设计编码方式、适应度函数以及变异规则需要大量经验。
进化算法的基本元素 宽泛来讲,大部分进化算法都具有以下元素:
1.个体编码 (Individual representation): 将问题的解空间编码映射到搜索空间的过程。常用的编码方式有二值编码(Binary),格雷编码(Gray),浮点编码(Floating-point)等。 2.评价 (Evaluation): 设定一定的准则评价族群内每个个体的优秀程度。这种优秀程度通常称为适应度(Fitness)。 3.配种选择 (Mating selection): 建立准则从父代中选择个体参与育种。尽可能选择精英个体的同时也应当维护种群的多样性,避免算法过早陷入局部最优。 4.变异 (Variation): 变异过程包括一系列受到生物启发的操作,例如重组(Recombination),突变(mutation)等。通过变异操作,父代的个体编码以一定方式继承和重新组合后,形成后代族群。 5.环境选择 (Environmental selection): 将父代与子代重组成新的族群。这个过程中育种得到的后代被重新插入到父代种群中,替换父代种群的部分或全体,形成具有与前代相近规模的新族群。 6.停止准则 (Stopping crieterion): 确定算法何时停止,通常有两种情况:算法已经找到最优解或者算法已经选入局部最优,不能继续在解空间内搜索。
利用这些元素,我们就可以依照流程图组成一个进化算法:
Generate the initial population P( 0 ) at random, and set t to 0 . repeatEvaluate the fitness of each individual in P( t) . Select parents from P( t) based on their fitness. Obtain population P( t+ 1 ) by making variations to parents. Set t = t + 1 until Stopping crieterion satisfied