知识迁移,看似高大上,实则很简单!

离线数据驱动的多目标优化

Yang C , Ding J , Jin Y , et al. Off-line Data-driven Multi-objective Optimization: Knowledge Transfer between Surrogates and Generation of Final Solutions[J]. IEEE Transactions on Evolutionary Computation, PP(99):1-1.

首先介绍一下什么是数据驱动的优化问题。在使用进化算法解决很多实际问题时,都需要评价个体的适应度,适应度可以理解为衡量个体好坏程度的指标。只有个体拥有了适应度,才能对种群进行选择。但是在某些实际问题中,评价个体的适应度函数并不是一个明确的数学表达式,而是一个计算机仿真实验或者物理实验等。在这类问题中,没有明确的适应度函数,只有某些个体的适应度值。为了解决这类问题,一般做法是基于已有的数据训练代理模型,代理模型其实是一个机器学习模型,使用代理模型去预测种群中个体的适应度值。这类问题就被称为基于数据驱动的优化问题,简单来说,其特点为适应度函数不可求,只有历史数据可以应用。根据在优化过程中是否有新的数据产生,数据驱动的优化问题又可以被分为在线数据驱动的优化问题和离线数据驱动的优化问题。前者在优化过程中可以源源不断地产生新数据。有关数据驱动地优化问题可以参考文章《Data-Driven Evolutionary Optimization: An Overview and Case Studies》。

在解决离散数据驱动的优化问题中,面临的挑战主要有两个:

  • 历史数据有限,如何利用有限的数据得到预测精度比较高的代理模型。
  • 优化算法结束后,如何选择出最优结果。因为代理模型的训练基于历史数据,并且在优化过程中并没有更新,由于代理模型预测误差的影响,最后得到最优解并不是真实的最优解。

为了解决以上两个问题,作者提出了一个新算法,该算法主要包含两个部分:基于代理模型之间的知识迁移和基于参考向量的最优解产生方法。

代理模型之间的知识迁移

有关知识迁移,上篇文章介绍了一种种群之间的知识迁移方法,有兴趣的可以参考进化计算与深度学习1。

知识迁移,看似高大上,实则很简单!_第1张图片
在寻优过程中,文章所提算法主要两个部分:模糊搜索(Coarse Search)和精确搜索(Fine Search)。模糊搜索是在决策空间的子空间内进行搜索,达到终止条件后,模糊搜索会将得到的最优解通过知识迁移的方法注入到精确搜索搜索的过程中。具体说明如下:

  1. 模糊搜索(Coarse Search)
    模糊搜索的基本思想是在决策空间的子空间中找到有可能存在最优解的区域,然后再在这个子区域对应的决策空间中使用精确搜索寻找最优解。模糊搜索主要包含四个步骤:构建决策空间的子空间、在子空间中构建局部代理模型、初始化种群和迭代过程。
    1) 构建决策空间的子空间
    D L = ⌈ r v ∗ D ⌉ DL=\lceil rv*D \rceil DL=rvD
    D D D表示决策变量的维度, D L DL DL表示子空间的维度, r v rv rv表示影响系数, D L ≤ D DL \leq D DLD。为了方便,文章从决策变量 X X X中随机选出 D L DL DL维构成子空间中的决策变量 X L XL XL
    2)构建局部代理模型
    根据 ( X L , Y ) (XL,Y) (XL,Y)构建局部代理模型, Y Y Y表示目标函数的观测值,代理模型使用多项式回归。
    3)初始化种群
    种群中个体决策变量的维度为 D L DL DL
    4)迭代过程
    使用 D L DL DL维的种群和局部代理模型进行优化,当达到一定迭代次数后,模糊搜索停止。
  2. 知识迁移(Knowledge Transfer)
    (终于要写到关键部分了!!!写这部分比较纠结,很重要,但是很简单,很怕一两句话就说完了)
    上回书说到,算法在决策空间的子空间内进行了一番搜索,找到了一些比较好的解,这部分的操作就是如何充分利用模糊搜索中找到的最优解从而加速精确搜索的收敛过程,用到的方法就是代理模型之间的知识迁移。
    假设 P T L P_{TL} PTL是局部搜索迭代后的种群, P P P是当前代精确搜索的种群,代理模型之间的知识迁移定义为:
    P L = P PL=P PL=P
    for i=1: ∣ P T L ∣ |P_{TL}| PTL do
         P L ( i , D i n d ) = P T L ( i , : ) PL(i,Dind)=P_{TL}(i,:) PL(i,Dind)=PTL(i,:)
    其中, D i n d Dind Dind表示构建子空间变化的维度。算法为了保留模糊搜索最后得到的种群 P T L P_{TL} PTL,先对当前精确搜索的种群进行了一个复制( P L PL PL),然后将 P T L P_{TL} PTL中个体维度上的值赋值给 P L PL PL个体的相应维度上。比如 P T L P_{TL} PTL中的一个个体 X T L = ( 0.2 , 0.5 , 0 ) X_{TL}=(0.2,0.5,0) XTL=(0.2,0.5,0), P L PL PL中的一个个体 X = ( 0.1 , 0.3 , 0.8 , 0.8 , 1.0 ) X=(0.1,0.3,0.8,0.8,1.0) X=(0.1,0.3,0.8,0.8,1.0),构建子空间时选取的是第1、2、5维,经过知识迁移后, X X X变为 ( 0.2 , 0.5 , 0.8 , 0.8 , 0 ) (0.2,0.5,0.8,0.8,0) (0.2,0.5,0.8,0.8,0)
    简单理解,这里所提的代理模型之间的知识迁移就是将有可能出现最优值的某些维赋值给当前种群。
  3. 精确搜索(Fine Search)
    在精确搜索中使用观测到的历史数据构建全局代理模型,作者使用的是RBF模型。在算法中还有一个细节需要注意,在产生子代的种群中,作者将 P L PL PL P P P合并为父代种群,然后使用经营保留策略选出进入下一代的个体。

基于参考向量的最优解产生方法

精确搜索过程中,没有新数据产生,代理模型并没有更新,由于预测误差的影响,最后产生的非支配个体不一定就是真实的最优解。为解决这个问题,作者提出了一种基于参考向量的最优解产生方法,该方法主要由两个部分组成。

  1. 在精确搜索的整个过程中,所有非支配个体都存储在一个集合 S S S
  2. 精确搜索过程结束后,通过设置一组参考向量,将所有非支配个体聚类到参考向量周围,然后在每个聚类簇中挑选出一定个体,输出其适应度值的平均值。

至于产生参考向量的方法,后续相关文献中再做详细介绍。

你可能感兴趣的:(Evolutionary,Computation)