进化算法VS传统数学优化方法
-
进化算法是基于种群的搜索
-
进化算法是随机的搜索算法,不需要梯度,不需要解析的目标函数
进化算法优势
-
适用于没有解析目标函数和无法得到目标函数梯度信息的优化问题
-
基于种群,一次运行得到一组解,so求解多目标优化问题具有优势
-
随机搜索,so搜索全局最优解能力比较强
-
并行计算
-
适用于解决同时有整数和连续变量的混合优化问题
-
处理不确定性有优势,如鲁棒性,由于基于种群的方法有着隐式的平均在里面,鲁棒性较好
传统数学规划方法解决多目标优化问题
-
通过特定的方法将其转换为单目标问题,一次求解只能获得一个帕累托解
机器学习与数学规划的优化
-
机器学习算法大部分是梯度法及其变形,像牛顿法、梯度下降法、爬山法等
-
增强学习本质是一种动态规划方法
为什么做数据驱动的优化
-
在现实世界中有很多优化问题无法用解析的数学公式来表示,其性能的优劣只能仿真或实验来验证
数据驱动的优化与一般的进化优化
-
一般的进化优化算法需要解决的挑战主要在于问题中含有很多局部极优、大规模、多目标、强约束及不确定量
-
数据驱动的优化首先面对来自数据方面的挑战,如数据有各种类型,如小数据、大数据、异构数据,数据可能包含很多噪声,还有数据缺失、流数据、数据保密等问题
优化与建模之间的主要区别
-
建模是为了拟合数据
-
优化是为了引导优化算法更快的找到最优解
离线数据优化意义
-
做研究一般分为两类,问题驱动的研究和理论驱动的研究
-
离线数据驱动更多是问题驱动的优化,是数据驱动优化问题中比较特殊的一类问题
-
像生产过程的优化问题无法边优化边验证
-
像资源优化问题只能离线数据优化,其数据来源于日常生活,并且是独立于优化过程而产生的,无法在优化过程中采集想要的数据
汽车设计中的进化算法应用
-
难点:没有明确的优化目标函数、做仿真和实验都很耗时或费钱
-
没法用解析的数学公式来描述优化问题的目标函数,需要用基于数据驱动的方法求解
-
基于小数据驱动的优化,需要将进化算法与先进的机器学习方法(如半监督学习、迁移学习等)进行有机结合
实际应用中问题
-
解决实际问题时问题描述本身很复杂
-
产品设计过程分很多阶段。一般来说,在不同的设计阶段需要考虑不同的变量和目标函数。
-
在概念设计阶段,把大的框架定下来,把某些设计参数定好,这时所使用的仿真工具精度低一些
-
然后对每个部件进行优化,这时设计的变量可能发生改变,目标也可能发生改变,所选择的仿真工具精度高一些
-
最后涉及每个零件的设计,更加细微,所关注的目标函数和自变量又会改变
机器学习×进化算法
-
怎么用机器学习帮助进化计算:用深度学习处理大数据,半监督学习、迁移学习解决小数据驱动的优化问题,增强学习解决时变数据驱动的优化问题
-
进化计算来提升机器学习性能:机器学习本质是优化问题,机器学习中的误差函数或损失函数就是目标函数,在机器学习中,为了考虑其他目的,如正则化、稀疏化等,就分别把正则化或稀疏的要求有一个超参数累加到损失函数中去,总之就是使用加权的方法把不同目标合成一个目标,所以机器学习是一个多目标优化问题。
机器学习大多采用梯度法及其变形算法,进化算法有如下优势
-
进化算法更适合解决非凸问题。如机器学习中采用加权法把不同的学习目标加在一起,如果是凸优化问题,梯度法效果好,但如果是非凸问题,通过加权以后解决不了
-
传统的机器学习只能用于参数优化,用梯度法进行神经网络的结构优化就比较难了。事实上为了解决大规模深度网络的结构优化问题,可以将进化算法和发育模型相结合
-
进化算法可以实现多目标学习
多目标学习的好处
-
传统机器学习将多个目标整合为一个目标需要人工设置超参数,但很难确定最优的超参数
-
如果问题是非凸问题,调超参数没有用
-
采用多目标学习,用帕累托优化的思想,得到不同模型,满足不同用户的需求(如可解释性和精度)
可解释和精度
-
在机器学习中加正则化就是防止过拟合/防止复杂度过高,会产生稀释的特性/降低模型复杂度,产生了一定可解释性
参考资料:
https://mp.weixin.qq.com/s/sHGMW3eLvTpFHkz6UYFCxQ