一句话概括

凸(Convex) :在该区间函数图象上的任意两点所连成的线段上的每一个点都位于函数图象的下方(或上方)。

非凸(Non-Convex) :函数在该区间上有多个极值,即系统有多个稳定的平衡态。

一、凸和非凸的区别

直观判断一个集合是否为Convex的方法,如下图:

Convex or Non-Convex
若集合中任意两点连线上的点都在集合内,则该集合为凸集。

具体的,若 f ( ( x 1 + x 2 ) / 2 ) ( f ( x 1 ) + f ( x 2 ) ) / 2 成立。常见的凸函数有:指数函数,非负对数函数,仿射函数,二次函数,常见的范数函数,凸函数非负加权的和等。

一个典型的凸函数

三、凸优化和非凸优化

任何局部最优解即为全局最优解。通常使用一个局部优化算法,如贪婪算法(Greedy Algorithm)或梯度下降算法(Gradient Decent)来计算局部最优解。

实际问题中,判断是否凸优化问题可以参考以下几点:

min \quad \frac{1}{2}x^TPx+c^Tx+d \\ s.t. \quad \frac{1}{2}x^TQ_i x+r_i x+s_i \leq0,i=1,2,...m \\ A(x)=b m i n 2 1 x T P x + c T x + d s . t . 2 1 x T Q i x + r i x + s i 0 , i = 1 , 2 , . . . m A ( x ) = b
其中目标函数和不等式约束都是凸二次型。

4. 半正定规划(SDP, Semidefinite Programing):
f ( x k ) T d k < 0 f ( x k + 1 ) = f ( x k + α k d k ) < f ( x k )

通常情况下较难求解,可行域集合可能存在无数个局部最优点,求解全局最优算法复杂度是指数级(NP hard)。

因为非凸优化的难度较高,可以考虑将非凸优化转化为凸优化问题解决:

  • 修改目标函数,使之转化为凸函数。
  • 抛弃一些约束条件,使新的可行域为凸集并且包含原可行域。
欢迎来到《技术探索》,这是一个专注于游戏开发技术的博客。在这里,我们将深入探讨游戏引擎、图形渲染、人工智能、物理模拟等领域的最新技术和最佳实践。无论您是初学者还是经验丰富的开发者,我们都希望为您提供有价值的见解和实用的技巧。 07-18
数学中最优化问题的一般表述是求取,使,其中是n维向量,是的可行域,是上的实值函数。 优化问题是指是闭合的 集且是上的 函数的最优化问题,这两个条件任一不满足则该问题即为 的最优化问题。 其中,是 集是指对集合中的任意两点,有,即任意两点的连线段都在集合内,直观上就是集合不会像下图那样有“凹下去”的部分。至于闭合的 集,则涉及到闭集的定义,而闭集的定义又基于开集,比较抽象,不赘述,这里可以
1 基本概念 (1) 集是一个点集, 这个点集有一个性质, 就是在这个集合中任取不同的两个点x y, 他们之间的线段(包括端点)上的点都属于这个点集,那么就说这个点集是一个 集。比如下图中左边的图形是 集,而右边就是 集,因为可以找到两个点,使它们之间的线段上的点不在集合中 (3) 函数(Convex function) 非凸函数 (Convave function) 通常把函数分为 函数 非凸函数 函数的几何意义在于,定义域中任意两 - 优化定义:公式、geometric insight - 优化问题:逻辑回归;通过Hessian matrix的半正定性质判定;局部最优等价于全部最优 - 优化问题:PCA;PCA求解方式 优化问题 Li(θ)=lo...

非凸优化: