赞
踩
在解决昂贵和计算密集的现实应用问题时,数据驱动进化算法(Data-Driven Evolutionary Algorithm, DDEA)比传统的进化算法更加有效和实用,因为:
但是如何有效地利用可用的数据和代理模型仍然是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算法。基于以下动机:
因此通过将BS和LDG相结合,所提出的BDDEA-LDG算法既能适应不同的问题,又能减少数据量不足对优化精度的影响。这些优点使得BDDEA-LDG适用于解决不同情况下的各种昂贵优化问题。(缺点:LDG只适用于连续优化问题)
LDG的主要思想是在评估数据的邻域内生成数据,从而增加数据量,间接提高代理模型的质量。为避免歧义,下文将适应度评估的数据和LDG生成的数据分别称为原始数据和合成数据。
原始数据可以表示为由输入输出对所形成一个训练数据集
T
D
=
{
(
x
i
,
F
(
x
i
)
)
∣
i
=
1
,
2
,
.
.
.
,
N
}
TD=\{(x_i, F(x_i))|i=1, 2, ..., N\}
TD={(xi,F(xi))∣i=1,2,...,N},其中
N
N
N为原始数据
x
x
x的个数。LDG的任务是根据
T
D
TD
TD中的数据生成新的合成训练数据。同时我们将
T
D
TD
TD的一个子集表示为
S
S
S,其中包含了用于生成新数据的选定数据,LDG生成的合成数据集
K
K
K表示为:
其中
F
F
F是真实适应度函数,
l
l
l控制原始数据的邻域大小,
△
x
△x
△x是一个随机向量,
D
D
D是维数,
U
j
U_j
Uj和
L
j
L_j
Lj分别表示第
j
j
j维的上界和下界。为了避免歧义,进一步定义一个增强训练数据集
A
T
D
ATD
ATD为
T
D
TD
TD和
K
K
K的并集:
注意,如果式(1)中的
l
l
l足够小,那么当适应度函数是连续函数时,
x
n
e
w
x_{new}
xnew和
x
s
x_s
xs的适应度可以非常相似。据此,我们将
x
n
e
w
x_{new}
xnew的真正适应度值设置为与
x
s
x_s
xs相同,即
F
(
x
n
e
w
)
=
F
(
x
s
)
F(x_{new}) = F(x_s)
F(xnew)=F(xs)。这样就可以获得额外数据
x
n
e
w
x_{new}
xnew的适应度值,而不需要消耗任何FEs。虽然这种数据的产生方式可能会带来噪声(特别是当目标函数的适应度景观非常尖锐时,两个接近的个体也可能具有显著不同的适应度值),但可以通过适当地配置参数
l
l
l,使LDG在一个安全的区域进行以避免产生噪声。
算法1给出了最小化优化问题的LDG伪代码。
LDG的输入为原始训练数据集
T
D
TD
TD、包含
N
S
NS
NS个代理模型的代理模型集
S
M
S
SMS
SMS、
N
S
NS
NS的值,输出为合成数据集
K
K
K。LDG主要有四个步骤:第一步是通过使用
N
S
NS
NS个代理模型来重新评估所有数据以获得适应度的平均预测,表示为
Y
p
r
e
Y_{pre}
Ypre;第二步是计算
T
D
TD
TD中数据的差值,
d
i
f
f
=
Y
p
r
e
−
F
(
x
)
diff = Y_{pre}-F(x)
diff=Ypre−F(x);第三步是将所有原始数据按照它们的
d
i
f
f
diff
diff降序排列,并将前50%的数据设置为数据集
S
S
S;第四步是根据式(1)用
S
S
S生成
K
K
K。
(选择较大
d
i
f
f
diff
diff的原因:较大的
d
i
f
f
diff
diff意味着预测值
Y
p
r
e
Y_{pre}
Ypre与真实适应度值
F
(
x
)
F(x)
F(x)之间的误差较大。因此应对这些数据进行LDG处理;
d
i
f
f
=
Y
p
r
e
−
F
(
x
)
diff = Y_{pre}-F(x)
diff=Ypre−F(x)是为最小化问题设计的,如果是最大化问题则建议
d
i
f
f
=
F
(
x
)
−
Y
p
r
e
diff = F(x)-Y_{pre}
diff=F(x)−Ypre;50%是为了在代理模型准确度和时间成本之间取得一个平衡。)
BS依次构建代理模型并迭代更新SMS,如图1所示。在图1中,依次进行LDG和相关模型训练,直到获得足够的代理模型。每次代理模型构建完成时,它将存储在SMS中,因此SMS将迭代地更新。整个过程的伪代码在算法2中提供。
为了更好地描述算法2的工作原理,这里给出了一个例子。首先初始代理模型
M
1
M_1
M1将建立在数据集
A
T
D
1
ATD_1
ATD1上,其中
A
T
D
1
ATD_1
ATD1初始化为与原始数据集
T
D
TD
TD相同的数据集。第二,代理模型
M
1
M_1
M1被用于为下一个LDG选择数据。LDG生成的结果,即合成数据集
K
1
K_1
K1(参考算法1)将被加入到
A
T
D
1
ATD_1
ATD1中,得到更大的数据集
A
T
D
2
ATD_2
ATD2。第三,在
A
T
D
2
ATD_2
ATD2的基础上训练第二个代理模型
M
2
M_2
M2。第四,代理模型
M
1
M_1
M1和
M
2
M_2
M2一起选择LDG中的数据,得到合成数据集
K
2
K_2
K2和第三个数据集
A
T
D
3
ATD_3
ATD3。然后在
A
T
D
3
ATD_3
ATD3的基础上训练第三个代理模型
M
3
M_3
M3。以上过程将重复执行,直到得到
T
T
T个不同的代理模型,其中
T
T
T是用户定义的代理模型总数。
完整的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将根据预测结果输出最佳个体作为最终解,算法结束。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。