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生成的数据分别称为原始数据和合成数据。
原始数据可以表示为由输入输出对所形成一个训练数据集
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%是为了在代理模型准确度和时间成本之间取得一个平衡。)
2.2 Model Management With Boosting Strategy
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是用户定义的代理模型总数。
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将根据预测结果输出最佳个体作为最终解,算法结束。