1 数据驱动进化算法

  在解决昂贵和计算密集的现实应用问题时,数据驱动进化算法(Data-Driven Evolutionary Algorithm, DDEA)比传统的进化算法更加有效和实用,因为:

  • 传统进化算法严重依赖于适应度评估(FE)来产生和选择新的种群,因此当可用的FEs数量不够时,它们的性能往往会下降。但在现实应用中,适应度评估可能由于太过昂贵而常常数量不够。与传统EA不同,通过使用数据(例如,评估的解)和代理模型来取代原始昂贵适应度评估并驱动进化,DDEAs能够在有限数量的可用FEs内获得令人满意的解;
  • 在一些非常困难的应用问题中(例如高炉优化、创伤系统优化、熔镁炉优化),由于实际条件的限制,如期限限制或预算不足,在演化过程中无法进行真正的适应度评估,使得传统方法几乎不可能求解这些昂贵优化问题。在这样的应用场景中离线DDEAs更加有用和高效,因为它们能够只基于历史评估数据构建代理模型以替代真实的FEs并驱动优化。

  但是如何有效地利用可用的数据和代理模型仍然是DDEA面临的主要挑战。通常来说DDEA的关键是利用数据来减少所需的FEs,并推动进化。这样的数据利用通常是通过代理模型实现的,即通过基于评估数据构建合适的代理模型,DDEAs能够使用这些代理来替换真实的FEs,以减少对访问真实昂贵FEs的需求。
  在算法框架方面,DDEA通常包括代理模型管理(Surrogate Model Management, SMM)部分和进化优化程序(Evolutionary Optimization Procedure, EOP)部分。SMM管理代理模型以获得更好的近似,EOP将代理模型部署到EA中来执行进化。同时SMM可以根据EOP的反馈和数据对代理模型进行调整和更新。根据EOP是否能够通过真实的FEs获取新数据,DDEAs可以以两种版本实现:1)在线;2)离线。在在线DDEAs中,EOP可以通过真实的FEs对多个数据进行评估。这些新评估的数据可以被SMM用来进一步提供景观信息,并帮助构建更精确的代理模型。因此在线DDEAs适用于在演化过程中仍可通过物理实验或昂贵计算获得少量FEs的情况。相比之下,离线DDEAs是为真实FEs执行起来太昂贵或访问太困难的情况而设计的。在这种情况下EOP无法通过真实FEs获得任何新数据,它只能使用历史数据来驱动进化。尽管在线和离线DDEAs之间存在差异,但它们的主要思想都是通过利用评估数据来减少所需的FEs并推动进化。
  由于代理模型和数据对DDEA的性能影响都是必不可少的,因此研究人员试图通过获得更好的代理模型和更好的数据来改进DDEAs。例如:1)为构建代理模型选择合适的模型和方法,如使用多项式拟合、数值估计、机器学习技术;2)通过管理和集成一组代理模型来增强DDEAs;3)数据处理方法如局部平滑和数据挖掘技术可以帮助进一步改进DDEAs;4)在评估数据不足以构建准确代理模型的情况下,数据生成可以是增加数据量的有效方法。
  本文从模型管理和数据量两方面出发,提出了一种基于局部数据生成(Localized Data Generation, LDG)的增强DDEA (Boosting DDEA)算法,称之为BDDEA-LDG算法。基于以下动机:

  • 现有的构建单一临时代理模型的方法适用于一些特殊问题,但可能不适用于其他问题。例如对于调度规则的自动化设计问题所构建的具有简化模型的代理可能并不适用于焊接序列优化问题。因此用户可能仍然需要一个接一个地测试现有代理模型,以便找到解决新问题的合适模型。这促使我们研究代理模型是否可以通过自我完善或自我适应获得有希望的表现,即代理模型能否通过自适应手头的优化问题来提高其性能。在此基础上,受集成学习中增强思想(Boosting)的启发,我们提出了一种用于高效、自我感知模型管理的提升策略(Boosting Strategy, BS)。该策略依次构建了一组不同的代理模型,并将它们集成到一个组合模型中以逼近真实的FEs。在此过程中,每个新代理模型的构建都强调早期代理模型所产生的近似误差。这种方式可以通过反复合并新构建的代理来迭代地改进组合模型,因为每个新构建的代理可以帮助纠正现有(即更早的)代理所犯的预测错误。
  • 如果没有足够的数据来构建准确的代理,DDEAs的优化精度会大大降低。因此本文进一步提出LDG方法以增加数据量,缓解数据短缺问题。LDG有两个优点:1)该方法通过合成数据的位置来逼近合成数据的适应度,计算效率高,易于实现;2)它可以帮助BS在现有代理模型存在较大预测误差的区域生成数据,从而使在合成数据基础上构建的新代理模型更加注重相应区域的预测精度。这可以帮助实现BS的目标,即高效和自我感知模型管理。

  因此通过将BS和LDG相结合,所提出的BDDEA-LDG算法既能适应不同的问题,又能减少数据量不足对优化精度的影响。这些优点使得BDDEA-LDG适用于解决不同情况下的各种昂贵优化问题。(缺点:LDG只适用于连续优化问题)

2 BDDEA-LDG

2.1 Localized Data Generation

  LDG的主要思想是在评估数据的邻域内生成数据,从而增加数据量,间接提高代理模型的质量。为避免歧义,下文将适应度评估的数据和LDG生成的数据分别称为原始数据合成数据
  原始数据可以表示为由输入输出对所形成一个训练数据集TD={(xi,F(xi))∣i=1,2,...,N}TD=\{(x_i, F(x_i))|i=1, 2, ..., N\}TD={(xi​,F(xi​))∣i=1,2,...,N},其中NNN为原始数据xxx的个数。LDG的任务是根据TDTDTD中的数据生成新的合成训练数据。同时我们将TDTDTD的一个子集表示为SSS,其中包含了用于生成新数据的选定数据,LDG生成的合成数据集KKK表示为:

其中FFF是真实适应度函数,lll控制原始数据的邻域大小,△x△x△x是一个随机向量,DDD是维数,UjU_jUj​和LjL_jLj​分别表示第jjj维的上界和下界。为了避免歧义,进一步定义一个增强训练数据集ATDATDATD为TDTDTD和KKK的并集:

  注意,如果式(1)中的lll足够小,那么当适应度函数是连续函数时,xnewx_{new}xnew​和xsx_sxs​的适应度可以非常相似。据此,我们将xnewx_{new}xnew​的真正适应度值设置为与xsx_sxs​相同,即F(xnew)=F(xs)F(x_{new}) = F(x_s)F(xnew​)=F(xs​)。这样就可以获得额外数据xnewx_{new}xnew​的适应度值,而不需要消耗任何FEs。虽然这种数据的产生方式可能会带来噪声(特别是当目标函数的适应度景观非常尖锐时,两个接近的个体也可能具有显著不同的适应度值),但可以通过适当地配置参数lll,使LDG在一个安全的区域进行以避免产生噪声。
  算法1给出了最小化优化问题的LDG伪代码。

  LDG的输入为原始训练数据集TDTDTD、包含NSNSNS个代理模型的代理模型集SMSSMSSMS、NSNSNS的值,输出为合成数据集KKK。LDG主要有四个步骤:第一步是通过使用NSNSNS个代理模型来重新评估所有数据以获得适应度的平均预测,表示为YpreY_{pre}Ypre​;第二步是计算TDTDTD中数据的差值,diff=Ypre−F(x)diff = Y_{pre}-F(x)diff=Ypre​−F(x);第三步是将所有原始数据按照它们的diffdiffdiff降序排列,并将前50%的数据设置为数据集SSS;第四步是根据式(1)用SSS生成KKK。
(选择较大diffdiffdiff的原因:较大的diffdiffdiff意味着预测值YpreY_{pre}Ypre​与真实适应度值F(x)F(x)F(x)之间的误差较大。因此应对这些数据进行LDG处理;diff=Ypre−F(x)diff = Y_{pre}-F(x)diff=Ypre​−F(x)是为最小化问题设计的,如果是最大化问题则建议diff=F(x)−Yprediff = F(x)-Y_{pre}diff=F(x)−Ypre​;50%是为了在代理模型准确度和时间成本之间取得一个平衡。)

2.2 Model Management With Boosting Strategy

  BS依次构建代理模型并迭代更新SMS,如图1所示。在图1中,依次进行LDG和相关模型训练,直到获得足够的代理模型。每次代理模型构建完成时,它将存储在SMS中,因此SMS将迭代地更新。整个过程的伪代码在算法2中提供。

  为了更好地描述算法2的工作原理,这里给出了一个例子。首先初始代理模型M1M_1M1​将建立在数据集ATD1ATD_1ATD1​上,其中ATD1ATD_1ATD1​初始化为与原始数据集TDTDTD相同的数据集。第二,代理模型M1M_1M1​被用于为下一个LDG选择数据。LDG生成的结果,即合成数据集K1K_1K1​(参考算法1)将被加入到ATD1ATD_1ATD1​中,得到更大的数据集ATD2ATD_2ATD2​。第三,在ATD2ATD_2ATD2​的基础上训练第二个代理模型M2M_2M2​。第四,代理模型M1M_1M1​和M2M_2M2​一起选择LDG中的数据,得到合成数据集K2K_2K2​和第三个数据集ATD3ATD_3ATD3​。然后在ATD3ATD_3ATD3​的基础上训练第三个代理模型M3M_3M3​。以上过程将重复执行,直到得到TTT个不同的代理模型,其中TTT是用户定义的代理模型总数。

2.3 Whole Algorithm

  完整的BDDEA-LDG算法的结构图如图2所示。在不失一般性的前提下,图2为离线BDDEA-LDG版本并将所有被评估的数据表示为离线数据,因为离线DDEAs的方法也可以应用于在线DDEAs。

  与其他DDEAs一样,BDDEA-LDG主要分为两部分:EOP部分和SMM部分。其EOP与传统进化算法相似,包括初始化、交叉和变异、适应度评估和选择。因此在BDDEA-LDG中可以采用不同种类的进化算法作为优化器,如粒子群优化、差分进化、蚁群算法和遗传算法等。BDDEA-LDG的SMM专注于构建代理模型。BS在原始数据的基础上,在LDG的帮助下依次构建了一组代理模型,这些代理模型将存储在SMS中。当对一个个体进行适应度评估计算时,算法会使用模型集合中所有的代理模型来预测该个体的适应度。然后将计算这些预测值的平均值作为最终预测结果,该结果将用于EOP中的选择过程。通过这种方式,EOP可以利用这些预测结果来驱动进化。当满足停止条件时,EOP将根据预测结果输出最佳个体作为最终解,算法结束。

《Boosting Data-Driven Evolutionary Algorithm With Localized Data Generation》笔记相关推荐

  1. 《信贷的逻辑与常识》笔记

    序 银行信贷风险管理的反思 现状与趋势 银行贷款的质量变化与经济周期.宏观调控政策等存在很高的相关性 现在银行不良贷款的增加主要是前几年经济快速增长时企业过度投资.银行过度放贷所带来的结果. 从历史情 ...

  2. AI公开课:19.02.27周逵(投资人)《AI时代的投资逻辑》课堂笔记以及个人感悟

    AI公开课:19.02.27周逵(投资人)<AI时代的投资逻辑>课堂笔记以及个人感悟 目录 课堂PPT图片 精彩语录 个人感悟 课堂PPT图片 精彩语录 更新中-- 文件图片已经丢失-- ...

  3. 人工智能入门算法逻辑回归学习笔记

    逻辑回归是一个非常经典的算法,其中也包含了非常多的细节,曾看到一句话:如果面试官问你熟悉哪个机器学习模型,可以说 SVM,但千万别说 LR,因为细节真的太多了. 秉持着精益求精的工匠精神不断对笔记进行 ...

  4. 【逻辑回归学习笔记】

    算法描述 1.逻辑回归要做的事就是寻找分界面实现二分类. 2.问题假设:对一堆三角形和正方形分类. 3.数据输入:已知正方形和三角形的坐标和标签. 4.算法过程: 知识储备 1.分类和回归 ①分类的目 ...

  5. 逻辑回归函数学习笔记

    继续逻辑回归学习,今日笔记记录. 1.逻辑回归和线性回归的关系:对逻辑回归的概率比取自然对数,则得到的是一个线性函数,推导过程如下. 首先,看逻辑回归的定义 其次,计算两个极端y/(1-y),其值为( ...

  6. 2.2 逻辑回归-机器学习笔记-斯坦福吴恩达教授

    逻辑回归 上一节我们知道,使用线性回归来处理 0/1 分类问题总是困难重重的,因此,人们定义了逻辑回归来完成 0/1 分类问题,逻辑一词也代表了是(1) 和 非(0). Sigmoid预测函数 在逻辑 ...

  7. LVM逻辑卷分区笔记

    磁盘的静态分区有其缺点:分区大小难评估,估计不准确,当分区空间不够用的时候,系统管理员可能需要先备份整个系统,清除磁盘空间,然后重新对磁盘进行分区,然后恢复磁盘数据到新分区,且需要停机一段时间进行恢复 ...

  8. 适合理工直男的钟平老师逻辑英语学习笔记

    一切的一切都只是套路!             --鲁迅 核心公式: En: (状语1) 主(定语1) 谓(状语2) (宾)(定语2) (状语1) Ch: (状语1) (定语1)主 (状语2)谓 (定 ...

  9. 【数字逻辑】学习笔记 第四章 Part2 常用组合逻辑电路与竞争、险象

    文章目录 一.常用组合逻辑电路 1. 译码器 (1) 二进制译码器 74LS138(3/8译码器) a. 一般符号和图形符号 b. 74LS138功能表 c. 两片 `74LS138` 构成 `4-1 ...

  10. 线性回归、逻辑回归学习笔记

    学习源代码 import numpy as np import matplotlib.pyplot as plt def true_fun(X): # 这是我们设定的真实函数,即ground trut ...

最新文章

  1. 7-Python3从入门到实战—基础之数据类型(字典-Dictionary)
  2. java list《》_Java中List集合的遍历
  3. 计算机知识幼儿园,幼儿园中班计算机教学工作计划
  4. 【PC工具】速度最快的的文件搜索工具:everything
  5. 文巾解题 183. 从不订购的客户
  6. 海南电网全力支持新能源发展
  7. Python基础之函数与装饰器
  8. UVA10474 Where is the Marble?
  9. 深入探究.Net Core Configuration读取配置的优先级
  10. C++多态讲解以及常见面试题
  11. 外设键盘_记得那个被称为‘顶级外设’的国产品牌吗,现在推出这样一把键盘...
  12. 基因表达式编程的任务指派问题求解算法设计与实现
  13. 训练集、测试集、验证集
  14. 网吧服务器系统如何配置,网吧服务器系统配置
  15. Python大屏看板最全教程之数据库连接
  16. java框架-Springmvc-quzrtz-jasperreport-pio-pdfbox-jedis
  17. 智能家居普及的最大障碍:如何“排座次”
  18. java做一个人类类属性_java.编写一个包含姓名,身高属性的Person类,
  19. 显卡知识扫盲 为你讲述流水线的发展与未来
  20. cad老是弹出命令中发生异常_CAD出现致命错误的解决方法

热门文章

  1. snipaste如何滚动截图_这三款软件,满足你对截图的所有需求
  2. UITT私有化自动跟单系统
  3. 鸟哥的Linux私房菜(服务器)- 第十一章、远程联机服务器SSH / XDMCP / VNC / RDP
  4. 4年小Java的心路历程,工作感悟
  5. android 谷歌定位demo,android实现定位与目的地的导航示例代码
  6. 为什么使用计算机网络连接,为什么无线网络连接上却不能上网,教您电脑连上无线网却不能上网怎么办...
  7. 达里奥:我阅人无数,没有一个成功人士天赋异禀 |【经纬低调分享】
  8. 上线了新版在线GIF压缩功能,支持指定压缩大小
  9. NTP的层次stratum
  10. stratum协议原理