凸优化-凸集

作者:韩龙飞
原文:凸优化-凸集

22 May 2015

注明:对于机器学习初学者而言,本篇博客里的内容实际不易于理解,如果不想过多深入研究凸优化理论的童鞋可以忽略本节内容。并且,我自己对于这部分内容理解的也不是很好,所以也许会存在不对的地方,还请看过的童鞋指正。

仿射集和凸集

a. 直线和线段

假设存在 实数空间内的不同的两点 ,那么可以构成穿越两点的直线 ,其中, 。这里 都是n维空间中的点,如果在指定原点的情况下,我们用向量表示他们的坐标,他那么们就代表一个n维向量。上式表示出的新点 就是通过 这两个点的直线上的某一点。当 时, 为点 。同理,当 时, 为点 。如果 之间内的任意值,则 可构成点 之间的线段,如果 内任意值,则 可构成直线。如下图所示,加粗的部分表示线段,空间内整个无限长度的为直线:

b. 仿射集

对于一个集合 ,如果集合内的任意两点构成的直线仍在集合 内,则称集合 为仿射集(affine set)。换句话说,仿射集 包含该集合内任意两点的线性组合,即包含了所有经过该集合集中任意两点的直线的集合。一维空间的仿射集与我们之前提到直线的概念类似,但仿射集是一个更广意义的直线,当 取任意实数时,这条直线不仅在无限的空间中延展,而且没有制定空间原点的位置。

对于线性方程或线性方程组而言,如果存在方程或方程组的解,则记为集合 ,其中, 。此时,集合 为仿射集。因为,对于任意两个点 ,都会满足 ,对于任意 ,点 的线性组合仍为方程组的解。所以满足仿射集的定义(任意两点的线性组合仍在该集合内),线性方程组解的集合就是仿射集。同理,假使我们知道线性方程解的集合为仿射集,我们可以推出任意解的线性组合仍为方程的解。因此,每一个仿射集也可以表示成一系列线性方程组的解的集合的形式。

如果集合 为仿射集,那么集合中的点 ,则 称为仿射集的仿射组合(affine combination),其中, 。很明显,仿射集中某些点的仿射组合形成的点也在该仿射集内部。仿射组合的定义有些类似线性空间的向量的线性组合。

对于任意一个集合 ,集合间所有点的仿射组合称为集合 的仿射包(affine hull),仿射包是包含某些点构成的集合 的最小仿射集。如果任意仿射集 包含集合 ,则集合 的仿射包是集合 的子集。我们一般将仿射包记为:

c. 凸集

与直线和线段间的定义类似,凸集合仿射集的定义也比较相像,对于一个集合 ,如果集合内的任意两点构成的线段仍在集合 内,则称集合 为凸集。可记为:

,其中,

从定义我们可以看出,仿射集和凸集间的区别就在于凸集是线段在集合中。直观上理解,凸集是指集合中所有的点都可以被其他点观测到,即二者的连线仍在集合内。所以,仿射集也是凸集,因为,仿射集包含通过集合内任意两点的直线,也必然包含两点间的线段。根据凸集的定义,从下图可以看出,明显左边第一个图表示的集合为凸集,其余两个不是凸集,因为存在两点间的连线不在集合内的情况。

根据仿射集的定义,我们可以定义凸集组合(convex combination:不知道中文翻译的对不对。。。难道叫凸组合??)为:

,其中,

应当注意的是,仿射组合和凸集组合的区别在于 的取值,凸集组合,中文名总觉得怪怪的。。。,在满足仿射组合定义的前提下,要求

因此,对应的凸包(convex hull)则可记为:

从定义上来看,凸包肯定是凸集,它是包含集合C的最小凸集。从下图我们可以看出,左边第一个图中的15个点的凸包为阴影包括的多边形,第二个图中肾型集合的凸包为直线封闭下的集合。

d. 锥

锥体(cone)的定义为如果集合 中的任意点 ,其中, ,则集合C称为锥。如果集合既是凸集又是锥体,我们就称该集合为凸锥(convex cone)。凸锥的数学表达为:

,其中

直观上看,上式定义下的凸锥为顶点为原点,以 为边的扇形区。如下图所示,阴影部分表示点 构成的凸锥,顶点对应

凸锥中各点的线性组合我们称之为凸锥组合(conic combination),某集合 的各点的凸锥组合构成集合 的锥包(conic hull),记为:

与仿射包和凸包类似,锥包也是包含集合C的最小凸锥集合。以下是两个锥包的实例,阴影部分表示集合构成的锥包,当然,顶点位置不同,所表示出的锥包也各不相同:

e. 总结
  1. 空集、单点和实数域的点集是仿射集,因此,也是凸集。
  2. 一条直线是仿射集,如果直线过原点,那么它还是凸锥。
  3. 一条线段是c凸集的,但不是仿射集,除非该线段仅含有一个点。
  4. 一条射线 是凸集的,但不是仿射集,如果 为0, 则是凸锥。
f. 超平面和半空间

超平面(hyperplane)是 ,其中, ,该定义很简单,根据仿射集中讲到的线性方程解的例子,我们可以发现,超平面就是线性方程解的结合,如果点 为超平面上的点,则超平面的定义可以表示成 ,其中, 表示向量 的正交分量,即垂直于向量 的点的集合,可以理解为偏移量 和向量a的正交分量的和。超平面是仿射集也是凸集,我们可以通过调整b的值调整超平面距离原点的距离,调整a的值来调整超平面的方向,超平面的实例如下图所示,对任意点 (可看成是 )与向量 正交:

超平面可以将空间分为两个半空间,我们定义闭合的半空间(halfspace)为 ,其中 。半空间 表示的是方向为 的所有的点,而半空间定义为 ,其是方向为 上的点的集合。因为,半空间任意点的线段在半空间内,而任意连线的直线不在半空间内(参考射线是凸集但不是仿射集),所以,半空间是凸集,但不是仿射集。如下图所示:

因为半空间的定义为 ,所以根据上图我们可以发现,半空间是任何与向量 呈钝角的向量的集合。多个半平面围成的集合就称为多面体(polyhedra),关于多面体和单纯形的定义和相关概念这里就不在赘述,有兴趣的同学可以参考stanford大学Boyd教授《convex optimization》一书中的2.2.2~2.2.5节。

g. 不改变凸性的运算

不改变凸集性质的运算对于凸集而言很重要,因为凸集的优良性质会使得优化求解过程更为简单,同时,我们也可以根据具体问题构建凸函数解决对应问题。不改变凸集的运算主要有以下几种:

  1. 交集(intersection):如果 是凸集,那么 仍为凸集。子空间、仿射集、凸锥、多面体都可以通过半空间或者超平面(二者都是凸集)构成,且每一个闭合的凸集都可以由有限个半空间的交集构成。即如果 是凸集,那么 仍为凸集;
  2. 仿射函数(affine function):在仿射集的定义中,我们提到仿射集可以被线性方程所表示,因此,具有 形式,其中, 的函数都可以成为仿射函数 。我们先从简单的变化看起,如果 是凸集,同时, 以及 ,很明显, 都为凸集,这两种操作称为变换(scaling)和平移(translation)。所以根据仿射函数的定义,仿射函数的变换形式仍保持原始凸集集合的性质,例如对凸集执行投影、集合相加等的操作后的集合仍为凸集。
  3. 透视函数(perspective function):透视函数定义为 ,透视函数通过规约变换或者归一化向量的最后一个分量,去除向量的一个维度,从n+1维降低到n维。该思想可以用初中物理学到的针孔呈像来解释。假设存在一个针孔摄像机在背面存在一个平面 ,一个物体 通过小孔成像映射到平面上,会使得呈像变成二维画面。如下图所示,空间上二维的点投影到一维直线 上,二维点的最后一个分量变成-1,成像成直线上的一个线段。很明显,如果成像前的物体为凸集,则映射后仍为凸集:

  1. 线性分式(linear-fractional function):定义为 ,从定义可以看出,仿射函数和线性函数都是线性分式的特殊形式,这部分内容理解的还不是特别清楚,所以暂时先不写这部分的内容了

总结

总的来说,这一节所讲述的问题比较枯燥,但是对于日后理解svm等算法会有很大帮助。具体细节等到svm篇章再做具体介绍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值