凸优化(二)凸锥与常见凸集
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了凸优化(二)凸锥与常见凸集相关的知识,希望对你有一定的参考价值。
参考技术A那么开始第二期,介绍凸锥和常见的集合,这期比较短( 因为公式打得太累了 ),介绍凸集和凸锥与仿射集的意义在哪呢,为的就是将很多非凸集合转化为凸集的手段,其中,又以凸包(包裹集合所有点的最小凸集)为最常用的手段,在细节一点,闭凸包(闭合的凸包)是更常用的手段。
(1) 锥(cone)定义: 对于集合 则x构成的集合称为 锥 。说明一下,锥不一定是连续的(可以是数条过原点的射线的集合)。
(2) 凸锥(convex cone)定义: 凸锥包含了集合内点的所有凸锥组合。若 , ,则 也属于凸锥集合C。这里说明一下,就是说一个集合既是凸集又是锥,那么就是凸锥( 废话 )。
(3) 凸锥包(convex cone hull)定义: 凸锥包是包含C的最小的凸锥,假设 ,凸锥包表示为:
以上是比较简单的集合,接下来来看看稍微复杂的常用集合。
(1)超平面: ,其中a和x为n维向量,b为常数。解释一下就是,想想初中学的直线为 ,高中学的平面为 。拓展到n维空间就是超平面啦。超平面是凸集、仿射集,只有在过原点的时候是个凸锥。
(2)球: ,即点到圆心的距离的二范数小于半径的点构成的集合。那么解释一下二范数的求法: 。球是凸集、当是个点的时候是仿射集、凸锥。
(3)椭球: ,其中P为正定对称矩阵,正定就是其特征值全大于0.相关概念不再赘述。同理,椭球是凸集,当是个点的时候是仿射集、凸锥。
(4)多面体(polyhedron): ,多面体由半空间与超平面的交集组成。依旧是凸集。
(5)单纯形(simplex):特殊多面体, 则构成单纯形为 。看起来比较绕,其实想想就明白了,就是找两两组合起来构成的线不平行的点,然后找这些点的凸包集合。 当然有一种情况需要说明,就是在 空间中,由于无法找到n+1个向量线性无关,所以点也是有个数限制的。即不超过n+2个。 举个例子,就是二维空间中,不存在四边形的单纯形,三维空间没有五面体的单纯形。
(6)这里开始介绍三个不太能想像出具体形式的集合,对称矩阵集合 ,是凸锥。
(7)对称半正定矩阵集合 来简单证明一下它是凸锥,半正定矩阵有个特点,假设半正定矩阵A,则有 ,那么证明开始,有两个矩阵A、B集合在C中,满足 则 显然成立,得到 仍在集合C中,得证。
(8)对称正定矩阵集合 , (其实表示正定有个数学符号,表示其特征值大于0,和大于号很像,但是markdown我不会打那个符号), 不是凸锥! ,具体看(7)的证明,这里(1)式依旧成立,但是无法满足大于0,因为当两个 参数为0时就会有等于0的情况。反例也可以找到,当n=1时,此矩阵集合则变为了 显然不包含原点,则不是凸锥。
那么这次写到这里,下次介绍啥呢( 其实我想跳一跳的 )。
机器学习凸集凸函数凸优化凸优化问题非凸优化问题概念详解
1 基本概念
(1)凸集和非凸集
凸集是一个点集, 这个点集有一个性质, 就是在这个集合中任取不同的两个点x和y, 他们之间的线段(包括端点)上的点都属于这个点集,那么就说这个点集是一个凸集。比如下图中左边的图形是凸集,而右边就是非凸集,因为可以找到两个点,使它们之间的线段上的点不在集合中
(3)凸函数(Convex function)和非凸函数(Convave function)
通常把函数分为凸函数和非凸函数。凸函数的几何意义在于,定义域中任意两点连线组成的线段都在这两点的函数曲线(面)上方。如图所示。凸函数是有且只有全局最优解的,而非凸函数可能有多个局部最优解。
判定方法:
- 对于一元函数f(x),首先必须定义域是凸集,其次通过其二阶导数f′′(x) 的符号来判断。如果函数的二阶导数总是非负,即f′′(x)≥0 ,则f(x)是凸函数。
- 对于多元函数f(X),首先必须定义域是凸集,其次通过其Hessian矩阵(Hessian矩阵是由多元函数的二阶导数组成的方阵)的正定性来判断。如果Hessian矩阵是半正定矩阵,则是f(X)凸函数。
(4)凸优化和非凸优化
在最小化(最大化)的优化要求下,目标函数是凸函数且约束条件所形成的可行域集合是一个凸集的优化方法,因此凸优化的判定条件有两个
- 函数定义域是凸集
- 目标函数是凸函数
(4)水平子集(sublevel sets)
由凸函数的概念出发,我们可以引出水平子集(sublevel set)的概念。假定f(x)是一个凸函数, 给定一个实数α∈R,我们把集合
{
x
(
f
)
∣
f
(
x
)
≤
α
}
\\{ x(f)| f(x) \\leq \\alpha \\}
{x(f)∣f(x)≤α}
叫做α−水平子集。 也就是说α水平子集是所有满足f(x)≤α的点构成的集合。利用凸函数性质,我们可以证明水平子集也是凸集:
f
(
θ
x
+
(
1
−
θ
y
)
)
≤
θ
f
(
x
)
+
(
1
−
θ
)
f
(
y
)
≤
θ
α
+
(
1
−
θ
)
α
f(\\theta x +(1-\\theta y)) \\leq \\theta f(x)+(1-\\theta)f(y) \\leq \\theta \\alpha +(1-\\theta)\\alpha
f(θx+(1−θy))≤θf(x)+(1−θ)f(y)≤θα+(1−θ)α
水平子集告诉我们,给凸函数添加一个上限,定义域内剩下的点构成的点集还是一个凸集。
(5)仿射函数(affine functions)
数学上,我们把形如
h
(
x
)
=
A
x
+
b
h(x)=Ax+b
h(x)=Ax+b
的函数叫做仿射函数。其中,A是一个m*n的矩阵,x是一个k向量,b是一个m向量。直观上理解,仿射函数将一个n维空间的向量通过线性变换A映射到m维空间,并在其基础上加上向量b,进行了平移。实际上反映了一种从 k维到m维的空间映射关系。
2 凸优化问题
(1)定义
数学上表示为
m
i
n
f
(
x
)
s
.
t
x
∈
C
min \\space f(x)\\\\ s.t\\space x∈C
min f(x)s.t x∈C
其中f是凸函数,C是凸集。以下是用仿射函数的表示法
m
i
n
f
(
x
)
s
.
t
g
i
(
x
)
≤
0
,
i
=
1
,
.
.
.
,
m
h
i
(
x
)
=
0
,
i
=
1
,
.
.
,
p
min \\space f(x)\\\\ s.t\\space g_i(x) ≤0,i = 1,...,m\\\\ h_i(x) = 0,i = 1,..,p
min f(x)s.t gi(x)≤0,i=1,...,mhi(x)=0,i=1,..,p
其中g(x)是凸函数,h(x)是仿射函数。原约束集C表示为了一系列凸集的交集。
(2)简介
优化方法是几乎所有机器学习模型中最重要的核心部分,凸优化是优化方法论中的特例,是一个非常大的领域。
例如针对逻辑回归、线性回归这样的凸函数,使用梯度下降或者牛顿法可以求出参数的全局最优解,针对神经网络这样的非凸函数,我们可能会找到许多局部最优解。
(3)经典凸优化问题
- Least squares(最小二乘法,常用,目标:线性关系;限制条件:线性关系)
- Convex quadratic minimization with linear constraints(线性约束条件下的二次规划问题,常用,目标:平方关系;限制条件:线性关系)
- Linear programming(线性规划)
- Quadratic minimization with convex quadratic constraints(具有凸二次约束的二次最小化)
- Conic optimization(圆锥优化)
- Geometric programming(几何规划)
- Second order cone programming(二阶锥规划)
- Semidefinite programming(半定规划)
- Entropy maximization with appropriate constraints(具有适当约束的熵最大化)
3 非凸优化问题
(1)简介
在实际解决问题过程中,都希望我们建立的目标函数是凸函数,这样我们不必担心局部最优解问题,但实际上,我们遇到的问题大多数情况下建立的目标函数都是非凸函数,因此我们需要根据场景选择不同的优化方法。
我们在寻找优化方法论时,一定要选择更合理的方法论。很多非凸优化问题可以转化(并非是等价的)为凸优化问题,并给出问题的近似解。
当非凸优化应用到机器学习中时,目标函数可以允许算法设计者编码适当和期望的行为到机器学习模型中,例如非凸优化中的目标函数可以表示为衡量拟合训练数据好坏的损失函数。正如 Goodfellow 所说,一般的非凸优化和深度学习中的非凸优化,最大的区别就是深度学习不能直接最小化性能度量,而只能最小化损失函数以近似度量模型的性能。而对目标函数的约束条件是允许约束模型编码行为或知识的能力,例如约束模型的大小。
(2)传统解决方法
面对非凸问题及其与 NP-hard 之间的关系,传统的解决方案是修改问题的形式化或定义以使用现有工具解决问题,即凸松弛(Relaxation),对问题限制条件的松弛,将原问题等价为凸优化问题。但是我们求出来的最优解与原问题的最优解可能是相等,也可能有一定的误差的,所以通过relaxation,我们需要证明relaxation得出的最优解和原问题的最优解的误差范围。
由于该方法允许使用类似的算法技术,所谓的凸松弛方法得到了广泛研究。例如,推荐系统和稀疏回归问题都应用了凸松弛方法。对于稀疏线性回归,凸松弛方法带来了流行的 LASSO 回归。
(3)非凸优化方法
机器学习和信号处理领域出现了一种新方法,不对非凸问题进行松弛处理而是直接解决。引起目标是直接优化非凸公式,该方法通常被称为非凸优化方法。非凸优化方法常用的技术包括简单高效的基元(primitives),如投影梯度下降、交替最小化、期望最大化算法、随机优化及其变体。这些方法在实践中速度很快,且仍然是从业者最喜欢用的方法。
如果该问题具备较好的结构,那么不仅可以使用松弛方法,还可以使用非凸优化算法。在这类案例中,非凸方法不仅能避免 NP-hard,还可以提供可证明的最优解。事实上,在实践中它们往往显著优于基于松弛的方法,不管是速度还是可扩展性
4 总结
当我们拿到一个业务问题,一定需要按照算法思维那一节做,先将问题转换为一个严谨的数学问题,判断我们写出的目标函数的凹凸性,如果目标函数非凸,我们需要对问题的限制条件做一些转化,进而求出转化后问题的近似解,并证明其与原问题的误差范围。如果是凸函数,我们需要选择相应的优化方法论进行优化,因为优化问题是机器学习算法中的核心部分。
以上是关于凸优化(二)凸锥与常见凸集的主要内容,如果未能解决你的问题,请参考以下文章
最优化之凸集凸函数上确界Jensen不等式共轭函数Fenchel不等式拉格朗日乘子法KKT条件