人生倒计时
- 今日已经过去小时
- 这周已经过去天
- 本月已经过去天
- 今年已经过去个月
介绍
上一篇文章介绍了优化方法的基本概念,通常分为三类:
本文将对其进行介绍,并简要介绍约束和多目标优化的处理。
洒水算法
这种方法比较容易理解,即:选取一系列数据点,找到对应的函数值,然后比较这些函数值的大小,取出最多的值和对应的自变量值,或拟合数据并进行分析。趋势。
这些方法中最极端的是穷举法,或者将定义域划分为几个区间,分别进行遍历计算。
遍历算法的优点是不会陷入局部极值,一般都能取到最大值;但缺点也很明显,就是效率太低。
因此,洒水法主要研究如何进行高效洒水,通常采用随机或准随机的方法来实现洒水。此外,正交试验也可以看作是一种洒水法。
严格来说直线搜索方法,无约束优化方法,约束优化方法,基于的方法并不是一种优化算法。它没有设计“优化”策略,效率比较低。它适用于小规模优化问题;但对于规模稍大一些的优化问题,算法往往无法得到精度更高的优化结果。
但喷点法可靠性高,不易陷入局部极值,在优化分析中非常重要。
基于点散射法的上述特点,这种方法通常可以作为优化问题的第一个“粗搜索”。价值。
梯度算法
由于遍历的效率较低,我们需要考虑设计一种可以更快地搜索到最优解的策略。基于梯度的方法的一般原理如下:
这里有一句话,基于“最速下降法”或“梯度下降法”,并结合“反向传播”的思想,可以实现神经网络的训练,并已广泛应用于机器学习并成名。.
基于梯度的方法有很多种,不同的算法适用于不同的问题,但原则上大多是基于梯度计算每一次“前进”的方向和速度直线搜索方法,无约束优化方法,约束优化方法,最终“到达”目的地。
这种方法有个很大的缺陷,就是“搜索”过程是基于梯度的(类似于导数),本质上是局部线性化(差商而不是微分),容易陷入局部极值解。
基于梯度的方法理论在凸分析中比较完善,但在非凸集合中寻找全局最优存在一定的问题;结合点散射法,在整个定义域中随机选取一定数量的起点和区间,然后分别对这些点和区间进行梯度算法,可以改善陷入局部极值的问题一定程度上。
启发式算法
对于非凸集的全局优化,梯度方法有一定的困难;此外,还有一些更严重的问题:
对于此类问题,基于梯度的算法几乎无能为力,而启发式算法可能会产生相对满意的结果。
启发式算法有很多种,其中大部分是基于仿生学或模拟自然来构建进化和退化的进化过程以实现优化。主要包括:退火算法、遗传算法、蚁群算法等。启发式算法理论比较复杂,本文不再详细讨论。
启发式算法理论上可以解决强非线性优化问题,而不会陷入局部极值解。但是,这种方法的可解释性较差,结果不可预测;可能会得到很好的结果,同时也可能会得到很差的结果,在申请过程中要特别注意。
约束问题
前面的讨论都没有涉及约束引起的问题,这限制了自变量的值空间,给问题带来了额外的困难。
幸运的是,通过引入广义拉格朗日函数,约束可以转化为新目标函数的一部分:
最优解的必要条件变为 KKT(-Kuhn-) 条件;如果是凸优化问题,KKT条件是最优解的充要条件:
多目标优化
我们知道一个优化问题只能有一个目标函数,所以理论上不能同时建立多目标优化。常见的定义为“帕累托最优”;通常还有其他处理方法,例如加权构造新的目标函数,或者将某些目标转化为约束。
最后
此处简要介绍了优化方法的基础知识。如果以后有机会,作者会详细介绍一些有趣的话题。