学习笔记–一个自管理(组织)的多目标进化算法(SMEA)
摘要:在温和条件下,一个连续m维目标的优化问题的帕累托前沿(解集)可以形成一个(m-1)维的分段连续流形。基于这个性质,这篇文章提出了一个自管理(组织)的多目标进化算法。在每代中,一个带有(m-1)个潜在变量的自组织映射方法被用来建立当前解之间的邻域关系。一个解仅允许和它附近的解交配来产生新的解。为了降低计算代价,用一个可选择的方法(交替进行)管理自组织训练步骤和进化步骤。换句话说,在每一代中,只执行一个自组织训练的步骤。
一、 介绍
这篇文章考虑的是带有空间约束的连续多目标优化问题,如公式(1)所示。
一个有效的MOEA应该充分利用问题的特殊只是来指导搜索过程。当问题是可分的时,在温和条件下,一个连续m维目标的优化问题的帕累托前沿(解集)在目标空间和决策空间都可以形成一个(m-1)维的分段连续流形。这个性质已经被明确使用在基于多目标分布估计算法的规则模型中,来建立帕累托最优解集的模型和执行局部搜索(RM-MEDA)。单元多目标遗传算法(cMOGAs)和基于分解的多目标遗传算法(MOEAs/D)含蓄地引用了这个性质。
自组织映射(SOM)是一个无指导的学习方法,用来从一个高维的输入空间中产生低维空间的训练点代表。SOM(自管理系统)的主要优势是它保留了输入数据的局部拓扑性质。在进化多目标优化中,已经有使用SOM的一些研究了。SOM被用来产生新解,或通过学习好的适应度的区域来产生好的适应度的解,并将一个种群划分为一个子种群。
这篇文章考虑的是带有规则性质的连续MOP。提出和研究了一个自管理多目标进化算法(SMEA)。在SMEA中,一个带有预先定义的m-1维的潜在变量结构的SOM算法被用来获得每代中当前种群中的解的邻域关系信息。这些信息被用来指导邻域内的重组从而产生一个新解。
SMEA的主要特征包括:
1.SOM用一个可选择的方式管理训练步骤和进化步骤。用这种方式SOM的训练成本能被显著降低。
2.使用SOM能建立当前解之间的邻域关系 ,并且只有在邻域中的解能发生交配产生新解。这能很好地帮助提高新解的质量。
因为SMEA考虑的是规则性质,它能够处理复杂的帕累托前沿(解集)类型的问题。
二、 相关工作
cMOGAs [23]–[25], MOEAs/D [12]–[15], and RMMEDAs [19], [20]直接或间接使用了正则性质。图1(a),2(a),3(a)展示了这三种算法的基本思想,并分别作出了解释。这些算法考虑的都是解的分布结构。由于这个原因,它们被称作结构化的MOEA。
如公式(2)所示,我们用双目标问题来解释。如图2所示,函数有一个复杂的PF类型,这意味着集合类型不接近一个连续的超平面或超球体。在我们的分析中,算法的参数是根据这些算法的原文设置的。所有的算法都做了45000次函数评价。
(1) 网格多目标遗传算法:如图1(a)所示,在Cmoga算法中的一个种群中的每个解(小圆圈)都和一个一个拓扑结构的单元相关。因此,通过网格结构很容易地就建立解之间的邻域关系。每个解和它的邻域交配产生新的解。由于已经通过单元拓扑结构定义了邻域关系,在决策空间中邻域解可能并不是很靠近。
为了解释这个现象我们将基准(测试)函数在CELLDE中执行,并在三位决策空间中用圆圈画出最后获得的解,用菱形代表随机选择的解的邻域解。如图1(b)所示,基于单元拓扑的邻域解通常并不是相互靠近的。由于这个原因,就限制了定义为单元结构的两个相邻解的交叉在开发(促进收敛)方面的积极影响。
(2) 基于分解的多目标进化算法:如图2(a)所示,MOEA/D通过一组预先定义的权重向量将MOP分解为一组子问题。相邻的子问题有相近的权重向量。对不同的子问题,种群中的每一个解都是目前为止找到的最好的解。使用权重向量距离就自然地建立起邻域关系。MOEA/D用协同的方式优化所有的子问题。由于权重向量空间是(m-1)维的,解就被间接地映射到一个(m-1)维的空间。在某种程度上,MOEA/D利用了正则性质(一般用来刻画函数的光滑性)。
在MOEA/D中,全忠发向量和PF的类型直接决定了种群的最终目标函数值的分布。因此,如果权重向量设置的合理,MOEA/D能表现的很好。然而,一组固定的权重向量能够对具有简单PF类型的MOPs产生均匀分布的最终目标点,并且已经被不同的MOEA/D采纳,但是对一些PF类型比较复杂的问题可能表现的就不是那么好了,因为这些权重向量对复杂的PFs可能不会产生一组均匀分布的目标点。
图2(b)画的是MOEA/D-DE获得的解的目标函数值。图片显示几个子问题收敛到PF左边的两个部分,目标点分布稀疏,但对于PF的右边部分,沿着PF分布了更多密集的点。这个现象的原因是目标点的位置有权重向量和PF决定,而不是沿着PF均匀分布,在PF不连续的部分,不止一个子问题获得了相同的最优解。
(3) 基于正则模型的多目标分布估计算法:RM-MEAD假设一个MOP的PS是一个(m-1)维的分段连续流形。此算法采用了局部主要组成分析来模拟PS并从建立的,模型中采样新解。如图3(a)所示,局部主要组成分析法将种群划分成几个杂乱的簇,然后在每个簇中实施PCA来获得一个流行和建立一个概率模型。
RM-MEAD中一个关键的参数是簇的个数K。如果K选择的不合理,那么建立的概率模型可能效果就不好了,因为它们不能靠近PF的分段(片段如图3(b)和3©)。显然,不同的K值表现的相当不同。说明了K值对RM-MEAD的性能有重要的影响。
基于上述分析,现存的MOEAs算法框架存在一些不足。为了改善MOEAs的框架,我们提出了一个自管理的多目标算法,
三、 自管理多目标进化算法(SMEA)
各种机制和统计学的方法已经被提出被用来从给出的数据集中提取模型。我们提出SMEA的主要动机是使用SOM算法来获得种群中个体的邻域关系信息,然后利用这些信息来产生新解。我们的基本假设是MOP有正则性质(光滑的)。
A. 自管理映射
SOM是一种无指导的学习方法。在一个高维的输入空间产生低维的训练点的模型表示。在一个n维的输入空间中,S代表训练点集,模型代表(潜在)空间是(m-1)维的。也就是在潜在空间有(m-1)个单元。每个单元是D维的。
图4展示了一个典型的SOM(自管理映射)的拓扑。例子给出的是n维输入空间和2维潜在空间。SOM的目的是找到通过训练点嵌入在潜在空间的表征向量Wu。SOM的学习首先给每个单元权重向量分配一个从S中随机选择的训练点。权重向量通过靠近它们的新联点迭代更新。更新权重向量有不同的训练策略,SMEA中用的是算法1。
B. SMEA框架
图5 所示SMEA交替进行SOM训练和EA的步骤。在图中,SOM的模型更新组成表示邻域半径,在SOM模型中的学习率和单元权重使用训练数据更新。分割表示解被分成几个基于SOM训练模型的的簇。在SMEA的每一代中,种群中解的邻域关系首先通过 SOM提取。接着,在邻域信息的基础上,通过邻域解重组的限制产生新解。
符号说明:
N:单元数,即种群大小。
Tao0:初始化SOM学习率。
Sigmma0:更新的单元的权重向量的初始邻域半径。
H:交配邻域池的大小
Beita:交配限制邻域的概率
T:最大代数
算法2给出了SMEA的框架:SMEA能被看作是一个变化数据集的邻域关系信息的SOM学习过程,第21行,每代增加新的解并存储在S中。SOM伪代码第一行开始,第3 ~ 8行使用训练数据集,迭代更新邻域半径,学习率和单元权重向量。第9 ~ 14行将种群P中的数据映射到单元中。对算法1中的原始的SOM程序的主要修正是第21行的训练数据集的改变步骤,防止S为空时不发生训练。当使用新的数据集时,SOM程序不重启。相反,数据之前的学习分布信息被重用以降低由重启和重新训练具有大量数据的SOM模型的计算代价。
SMEA是MOEA和SOM的组合。第一行是MOEA的开始,第18行是迭代产生新的候选解,19行是更新种群。SEMA和其他MOEA算法的主要不同是第9~14行(每个解被分配到不同的单元,目的是获得每个单元相关的解并且确保邻域交配池的大小相同)和第17行(xu的邻域交配池由一些与xu接近的解组成,交配池限制概率为beita,最近的解是联系与第k个最近单元和单元u的解,k<H,否则,就以1-beita的概率选择将整个种群作为交配池。
C.后代繁殖
我们直接使用算法3中给出的后代繁殖算子。y = Generate(Q,x)通过当前解和交配池产生一个新解。首先使用差分进化的算子来产生一个试验向量,然后使用多项式变异算子来变异试验向量。为了使解是可行的,试验解是提前处理好的。F,CR是DE算子的两个控制参数,pm是变异概率,nm代表变异分布角标。采用差分算子的原因是它在单目标优化问题中比其他遗传算子相比常常表现更好。另外,交叉概率被设置为1,在任何正交坐标旋转的条件下DE算子的设置是固定不变的,对处理复杂的PF类型是可取的。SMEA中也使用了其他重组算子。
D.环境选择
这篇文章采用的是SMS-SMOA中的超体积度量选择方法。算法4给出了选择方法的细节。
第1行,重组新解和当前解,快速非支配排序机制被用来将重组集合划分成L个不同的非支配前沿,B(i)代表第i个最好的前沿,BL表示最差的前沿。
考虑了两种策略从重组集中移除交叉的解:(a)重组集中的非支配前沿不止一个,那就将最差的非支配前沿中距离最近解距离最远的解被删除。;(b)当重组集只有一个非支配前沿时,拥有最小的超几何分布的解被移除。策略(a)被设计的动机是防止当不止一个前沿时,移除一个最差的解,与超几何测量相比,策略(a)的运行时间复杂度更小,同时较好地保证了种群多样性。
算法1:SOM框架
- 初始化,从S中随机选择的一个单元向量作为训练点。
- For g = 1 : G
- 调整邻域半径σ = σ0 ×(1−g/G);和学习率τ = τ0 ×(1−g /G)
- 在S中随机选择一个训练点
- 找到最近的单元:u = arg min 1≤u≤D||x−wu||2.
- 查找邻域单元:U = {u|1 ≤ u ≤ D∧||zu −zu||2 <σ}.
- 更新所有的邻域单元:wu = wu + τ ·exp(−||zu −zu||2)(x−wu).
- End
- Return 单元权重向量Wu,u=1:D
算法2:SMEA框架 - 随机初始化种群P。将初始训练集S设置为S=P;单元权重向量集=P;uk表示再映射(潜在)空间距离单元u第k近的单元。
- For t = 1 : T
- For s = 1 :numel(S)
- 更新训练参数:σ = σ0 ×(1− (t−1)N+s TN ), τ = τ0 ×(1− (t−1)N+s TN )
- 找到距离xs最近的单元:u = arg min 1≤u≤N ||xs −wu||2
- 查找邻域单元:U = {u|1 ≤ u ≤ N ∧||zu −zu||2 <σ}.
- 更新所有的邻域单元:wu = wu + τ ·exp(−||zu −zu||2)(x−wu).
- End
- A=P;U=1:N
- While A ~=[]
- 从A中随机选择一个解,A=A{x}
- Xu=x, u = arg min u∈U||x−wu||2.
- U=U{u}
- End
- A=P
- For U = 1 : N
- 为xu设置交配池:Q =∪H k=1{xuk} if rand() <β,P otherwise
- 生成一个新解y
- 选择较好个体保留,更新种群
- End
- 更新训练数据集:S=P\A
- End
- Return P
算法3:y = Generate(Q,x)产生新解 - 从种群Q中随机挑选两个父代个体x1和x2(x1,x2,xi不同)
- 通过差分变异产生一个试验解
- 处理(修正)试验解(包括越界处理)
- 多项式变异试验向量
- Return y
算法4:P = Select(P,y)选择较好个体保留 - 通过快速非支配排序将重组集合划分成L个前沿
- If L>1
- x∗ = arg min x∈BL{ min x∈{P∪{y}{x}}||x−x||2}.
- Else
- x∗ = arg min x∈{P∪{y}}Δϕ(x,B1).
- End
- P = [P;y].{x*}
- Return 外部档案P
最后,博主的学习笔记都是根据自己的理解意译的,可能与原文并不完全相符,而且博主作为初学者理解尚不深刻,所以可能存在一些不足之处,若有疑问可与博主进行讨论。博主翻译的文章是已公开发表的英文文献,仅供学习使用,如有侵权请联系博主删除。下面是原文链接,感兴趣的小伙伴可以下载来看。
链接: https://pan.baidu.com/s/1_LEFB4PeChdHsMnI9gDwZg 提取码: w2g4 复制这段内容后打开百度网盘手机App,操作更方便哦