非凸(non-convex)类优化问题在很多论文中遇到,一般也是NP-hard问题,一直不太明白,不太理解,故参考借鉴网上各位大佬帖子以及自己理解,得出以下内容,分享给大家。
一、什么是凸问题、非凸问题?
出现了两个概念:凸集、凸函数,分别介绍一下
二、凸集、非凸集
三、凸函数、非凸函数
1、定义
2、判断方法
以下是两个简单例子:
四、凸优化问题判断
五、凸优化问题举例
六、为什么要区分凸优化和非凸优化?
1)如果一个实际的问题可以被表示成凸优化问题,那么我们就可以认为其能够得到很好的解决。
2)还有的问题不是凸优化问题,但是凸优化问题同样可以在求解该问题中发挥重要的左右。比如松弛算法和拉格朗日松弛算法,将非凸的限制条件松弛为凸限制条件。
3)对于凸优化问题来说,局部最优解就是全局最优解。
4)若f(x)在非空可行集R上是严格凸函数,则问题的全局极小点是唯一的。
在实际解决问题过程中,都希望我们建立的目标函数是凸函数,这样我们不必担心局部最优解问题。
但实际上,我们遇到的问题大多数情况下建立的目标函数都是非凸函数,因此我们需要根据场景选择不同的优化方法。
七、非凸优化怎么解决?
1)修改目标函数,使之转化为凸函数
2)凸松弛(Relaxation),对问题限制条件的松弛,将原问题等价为凸优化问题
3)直接优化非凸公式,非凸优化方法常用的技术包括简单高效的基元(primitives),如投影梯度下降、交替最小化、期望最大化算法、随机优化及其变体。
强化学习为什么能解决非凸优化问题
强化学习能解决非凸优化问题的原因主要是强化学习在训练过程中,通过与环境的交互和试错,逐步学习到在给定环境下的最优策略,而这个最优策略往往可以泛化到一些未经历过的状态和动作,从而在一定程度上解决非凸优化问题。
(如有侵权,联系删除)