什么是数据驱动的进化优化,只是数据+优化算法?数据驱动的进化优化适用于哪些应用场景?传统的数学优化方法是否迎来新一轮挑战?本文将为您深入浅出地解答以上问题。在文章的最后,我们还附上??了相关资料和参考资料的大礼包。这些资料不是简单的书单。是本文两位作者经过多年的研究经验和学习历程,精心挑选整理而成。有***期刊的优质论文,也有科普大众的热门讲义。收集相关数据驱动优化经典文献和进化计算相关课程PPT等资料做成网盘链接,稍后放上。先说说数据驱动进化优化的Motivation。简单地说,数据驱动的进化优化(Data-drivenevolutionarycomputation)就是利用数据和进化算法来解决优化问题。首先,为什么要用进化算法?举几个例子,有些优化问题很难得到数学优化模型,比如仿真实验软件,可以看作是黑盒优化问题。对于其他一些问题,虽然数学表达式是已知的,但表达式具有非凸、不可微、不可微等性质。这些问题很难用传统的基于梯度的数学优化方法来解决。这时候智能优化算法就派上用场了,比如遗传算法、粒子群算法、差分算法等等,那为什么要用数据呢?我们知道智能优化算法是基于种群迭代的优化算法。种群包含几十个甚至上百个个体(每个个体都是一个解),需要迭代数百代才能找到更好的解,此时优化问题需要多次求值(计算解决方案)。比如一个种群为100,迭代次数为100代的智能优化算法,优化问题需要评估10000次!然而,一些优化问题的评估成本非常高。例如,风洞实验评估需要几个小时;另一个例子是在制药工程中,测试药物的过程是昂贵的(药物的测试关系到老鼠的生命)。智能优化计算需要几千或几万次评价,优化问题难以承受。在这种情况下,学者们提出了利用优化问题的历史数据来辅助优化过程以减少对优化问题的评估的想法。次,从而降低优化问题评估的成本。数据驱动的进化优化算法那么,数据驱动的进化优化是如何工作的呢?该过程如图1所示(来自文献[1])。首先利用优化问题在优化过程中产生的数据(图中Exactfunctionevaluation,以下简称真实优化问题)建立模型。这种模型被称为代理模型(Surrogate),所以之前的数据驱动的进化优化算法也被称为代理模型。辅助进化优化算法(Surrogate-AssistedEvolutionaryAlgorithm,SAEA)。代理模型的目的是近似真实的问题。在优化过程中,代理模型与真实问题相互合作对个体进行评价,这种相互合作就是所谓的模型管理(SurrogateManagement)。代理模型和真正的优化问题相互配合的原因有两个。一方面,代理模型由真实问题的数据训练而成,与真实问题具有相似性。使用代理模型代替优化问题来评估解决方案并预选真正的问题。一个更好的解决方案,可以减少对实际问题的评估次数。另一方面,代理模型与实际问题存在偏差。使用真实问题评估解决方案,防止代理模型误导真实问题的解决方案,将真实问题评估的解决方案添加到训练数据集(即图中的虚线)以纠正代理人。模型。那么代理模型是如何建立的呢?什么是模型管理?图1.数据驱动的进化优化算法流程(来自文献1)一般来说,机器学习的那些建模方法都可以用来训练代理模型,例如高斯过程、神经网络、SVM、RBF和各种集成模型。不过高斯过程用的比较多(后面讲到模型管理的时候就知道了)。模型管理常用的方法在学术上称为基于生成和基于个体的混合方法。是指算法首先使用代理模型作为优化问题优化几代,然后从上一代中选择一部分个体重新评估真实问题。这里(也是SAEA问题)的重点和难点是从代理模型中选择哪些解可以快速辅助真实问题的收敛,也就是上面提到的如何预选好的解。如何从代理模型中选择真实问题的评估策略,在SAEA中有一个专业术语叫做InfillSamplingCriteria。一种思路是选择代理模型的一部分解来重新评估真正的问题。在这种情况下,如果代理模型足够准确,并且代理模型与真实优化问题非常相似,那么选择的解更有利于真实问题的收敛。如图2所示。图2.选择代理模型的最佳解决方案但是训练一个足够准确的代理模型是不切实际的,尤其是在SAEA中收集的小数据的情况下。因此,另一种选择重评解的方法是选择代理模型认为不确定的解(简单理解就是那些与其他个体相距较远的个体),如图3(来自文献2)所示。这时候高斯过程的优势就体现出来了。既可以直接给出解的评价值,又可以给出评价值的确定性(一个解释高斯过程的网站http://www.ppvke.com/Blog/archives/24049)。选择这些不确定的解决方案有两个好处:这些个体所在的区域很少被搜索到(图3a),并且转移到实际问题中可以提高对实际问题的探索能力。另一个好处是由于这些个体分布在稀疏区域,用真实问题评估后加入训练集增加了训练集的多样性,在代理模型修正过程中可以大大提高代理模型的准确率(图3b)。图3.为替代模型选择最不确定的解决方案(来自参考文献2)***一种方法,也是最常见的一种方法,是选择那些能够平衡上述两者的个体。例如,高斯过程模型中常用的LCB指标,ExI指标如式(1)和(2)所示。对于不给出解决方案不准确的其他模型,SAEA研究社区提出了各种策略。例如,建立本地代理模型,选择本地代理模型的最优解;对于一个集成模型,用各个子模型评价的差异来表示个体评价的准确度等。从训练集中选出***真实问题的最佳解(集)(真实问题评价的解).以上就是数据驱动的进化优化算法的简单过程。详细介绍了推荐调查[3]和挑战[4]。EvolutionaryAlgorithmsVSMathematicalOptimization(以下讨论均基于单目标优化问题)。以上章节简要介绍了数据驱动的进化优化。看到这里,你可能想问一下进化算法和数学优化(如果你对数学不熟悉什么是优化可以参考这篇文章https://zhuanlan.zhihu.com/p/25579864)他们各自的优势和优势是什么缺点。其实进化算法和数学优化都是为了解决优化问题而做的,只是出发点有很大的不同。我们经常会看到以下场景。Round1解效果进化算法只需要计算目标函数的值,对优化问题本身的性质要求很低,不像数学优化算法那样依赖大量的条件,比如是否是凸优化,目标函数是否可微,目标函数的导数是否是Lipschitz连续性等。我还研究了具有偏微分方程约束的优化问题。很多时候,你甚至不知道目标函数是不是凸的,能不能引导。这是进化算法相对于数学优化算法的最大优势之一,实际上也是进化算法的劣势,因为问题无关的性质(problem-independent)对所有问题都适用,往往意味着没有足够的利用不同问题的特点,进一步加速和优化算法(优点往往导致缺点,这里很哲理辩证)。这样一来,似乎真正勾勒出数学优化算法的规律。数学优化算法的适用范围未知,但在这个范围内,数学优化可以给出基本的理论保证。.结论:对于具有一定问题结构的优化问题,数学优化一般在有足够的优化问题信息可供使用时具有优势,如线性规划、二次规划、凸优化等,反之,可能更有优势使用进化算法。对于一些目前无法完全用数学优化解决的问题,如NP难问题,进化算法也有很大的应用前景。Round2解率进化算法的计算速度比较慢一直是大家的共识,这一点也很好理解。每次迭代需要计算目标函数M次,M为种群规模,一般为30-50左右。进化算法的前沿研究方向之一是针对大规模优化问题(large-scale)。我也查阅了相关***期刊的论文,发现进化算法中大规模的规模对于数学优化算法来说非常重要。可能根本不构成大规模。所以侧面反映进化算法在计算速度上的瓶颈限制了它在大规模优化问题中的应用。值得一提的是,随着近几年深度学习的兴起,人们对计算能力的要求也越来越高。基于GPU的并行计算和分布式计算架构已广泛应用于人工智能的各个领域。由于进化算法本身具有良好的并行特性,基于GPU并行计算的进化算法能否在一定程度上解决进化算法速度慢的问题,绝对是一个值得研究的课题。总结一下:进化算法和数学优化只是理解和解决问题的工具之一。工具本身的优缺点并没有绝对的区别。每个工具都有它的适用场景。总而言之,找到它们合适的应用场景是我们这些使用工具的人应该做的。总结数据驱动的进化优化算法用于解决计算量大的问题,也被用于其他优化领域,如鲁棒优化问题、大规模优化问题等,因为解决这些问题的过程也消耗了大量的计算时间,其实质是减少对真实问题的评价次数。此外,还研究了离线数据驱动的优化(也称为模拟优化)[1],这意味着在优化过程中只能使用代理模型,无法验证真实问题。
