文章目录

  • 前言
  • 进化算法简介

前言

近期,遇到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

基于DEAP库的python进化算法-1相关推荐

  1. 遗传算法 python 简书_基于DEAP库的Python进化算法从入门到入土—(二)简单遗传算法实现...

    前言 在上一篇中,我们已经介绍了如何在DEAP中实现进化算法的基本操作,在这一篇中我们试图将各个操作组装起来,用进化算法解决一个简单的一元函数寻优问题. 进化算法实例 - 一元函数寻优 问题描述与分析 ...

  2. python路线寻优_基于DEAP库的Python进化算法从入门到入土 --(四)遗传算法的改进...

    前言 前面一节我们尝试了用GA求解TSP问题,简单遗传算法总是不能很好收敛到一个较优的解,在用时和求解精度上都被贪心算法吊打.在末尾我们总结了三个可能的改进方向,这次我们想要沿着这三个方向试着改进简单 ...

  3. 基于DEAP库的Python进化算法

    https://www.jianshu.com/p/8fa044ed9267 http://geatpy.com/index.php/category/geatpy_tutorials/

  4. 基于Pyinstaller库将Python项目包括 图片打包exe方法,本人已经实践多次

    基于Pyinstaller库将Python项目包括 图片打包exe方法,本人已经实践多次 文章目录 基于Pyinstaller库将Python项目包括 图片打包exe方法,本人已经实践多次 一.前言 ...

  5. IGD+-EMOA:基于IGD+的多目标进化算法

    IGD±EMOA:基于IGD+的多目标进化算法 参考文献 <IGD±EMOA:A Multi-Objective Evolutionary Algorithm based on IGD+> ...

  6. MaOEA-IBP:带有边界保护的基于指标的多目标进化算法

    MaOEA-IBP:带有边界保护的基于指标的多目标进化算法 参考文献 <An Indicator-Based Many-Objective Evolutionary Algorithm With ...

  7. 【图像压缩】基于matlab香农熵和差分进化算法多级图像阈值图像压缩【含Matlab源码 2035期】

    一.差分进化算法简介 1 前言 在遗传.选择和变异的作用下,自然界生物体优胜劣汰,不断由低级向高级进化和发展.人们注意到,适者生存的进化规律可以模式化,从而构成一些优化算法:近年来发展的进化计算类算法 ...

  8. Python遗传算法库和进化算法框架(二)Geatpy库函数和数据结构

    (转载自https://blog.csdn.net/qq_33353186/article/details/82020507) 上一篇讲了Geatpy的快速入门:https://blog.csdn.n ...

  9. Python遗传和进化算法框架(二)Geatpy库函数和数据结构

    上一篇讲了Geatpy的快速入门:https://blog.csdn.net/qq_33353186/article/details/82014986 但是光是几个例子是远远不能熟练掌握python遗 ...

  10. python优化、进化算法、启发式算法

    一个封装了7种启发式算法的 Python 代码库 (差分进化算法.遗传算法.粒子群算法.模拟退火算法.蚁群算法.鱼群算法.免疫优化算法) python优化中文文档

最新文章

  1. String类的学习
  2. Memcache压力测试工具 -- memslap
  3. 15个最佳的代码评审(Code Review)工具
  4. 在Activity的Title中加入进度条
  5. Java开发趋势:2019年展望
  6. [基础篇]ESP32-RTOS-SDK教程(一)之Windows环境搭建
  7. 【SpringCloud】Spring cloud Alibaba Nacos 服务注册与配置中心
  8. TensorFlow tf.keras.layers.TimeDistributed
  9. Elasticsearch 动态映射——自动检测
  10. 【C#小知识】C#中一些易混淆概念总结(八)---------解析接口
  11. apue.h文件找不到的解决办法
  12. 572.另一个树的子树(力扣leetcode) 博主可答疑该问题
  13. ACM算法-逃离机场
  14. 大唐杯题库(300道)(一)
  15. 【实践】如何用python绘制词云图(文本数据可视化)?
  16. 支付宝小程序 scheme跳转
  17. python+appium+夜神模拟器APP自动化测试
  18. 【吴恩达deeplearning.ai】Course 5 - 2.10 词嵌入除偏
  19. Linux下载HTTP文件
  20. 为啥JAVA虚拟机不开发系统_我的YMLF OS (LINUX)上装了java为何运行不了eclipse 还提示没有java虚拟机 ?...

热门文章

  1. Win32Asm学习笔记[不断更新]
  2. 20190815 On Java8 第五章 控制流
  3. 一笔期货成交的始末(可能有问题)
  4. 笔记3:数字和数学计算
  5. C语言学习——bsmap-2.74_main.cpp
  6. ASP.NET MVC Action返回结果类型【转】
  7. 让Linux脱胎换骨的标致桌面与主题
  8. 《构建高性能WEB站点》读书笔记--第一章
  9. 在windows server 2003服务器上提供NTP时间同步服务
  10. 关于求最长子串,使得最大减最小小于k的问题-以POJ4003为例