线代专栏:https://zhuanlan.zhihu.com/p/30191876
概率统计:https://zhuanlan.zhihu.com/p/30314229
优化(上):https://zhuanlan.zhihu.com/p/30383127
优化(下):https://zhuanlan.zhihu.com/p/30486793
信息论及其他:https://zhuanlan.zhihu.com/p/30383356
掌握机器学习数学基础之优化[2](重点知识)
前方烧脑高能!这可能是我写过最多数学符号和解释的文章了,也参考了大量的书籍,博文,知乎答案之后加上自己的理解总结的机器学习数学基础之优化(主要凸优化,对偶)理论了。比较复杂,比较烧脑,一起学习:
- 仿射集,凸集和凸锥
- 超平面,半空间及凸集分离定理
- 不改变凸性的运算
- 凸函数及凸优化简述
- 无约束的优化,等式约束优化,不等式约束优化
- 线性规划中对偶理论
- 拉格朗日对偶理论
仿射集,凸集和凸锥
仿射集:对于一个集合 ,如果集合内的任意两点构成的直线仍在集合C内,则称集合C为仿射集。仿射集就是包含该集合内任意两点的线性组合,即包含了所有经过该集合集中任意两点的直线的集合。
比如:一维情况下可以类似理解为直线,但仿射集是一个更广意义的直线。
另外,如果集合C为仿射集,那么集合中的点 ,则 称为仿射集的仿射组合(affine combination),其中, 。很明显,仿射集中某些点的仿射组合形成的点也在该仿射集内部。仿射组合的定义有些类似线性空间的向量的线性组合。
仿射包:对于任意一个集合 ,集合间所有点的仿射组合称为集合C的仿射包,仿射包是包含某些点构成的集合C的最小仿射集。如果任意仿射集S包含集合C,则集合C的仿射包是集合S的子集。我们一般将仿射包记为:
凸集 :实数域R上(或复数C上)的向量空间中,如果集合S中任两点的连线上的点都在S内,则称集合S为凸集,如下图所示:
从数学严格定义来说,设集合,若对于任意两点,及实数都有: 则称集合D为凸集。
另外,和仿射组合类似,我们定义凸集组合:
注意的是,仿射组合和凸集组合的区别在于θ的取值,也就是满足仿射组合定义的前提下,要求 。
凸包:对应的凸包(convex hull)则可记为:
从定义上来看,凸包肯定是凸集,它是包含集合C的最小凸集。从下图我们可以看出,左边第一个图中的15个点的凸包为阴影包括的多边形,第二个图中肾型集合的凸包为直线封闭下的集合。
凸集和仿射集的联系和区别:从定义我们可以看出,仿射集和凸集间的区别就在于凸集是线段在集合中。仿射集要求的是集合中经过任意两点的直线上的任意点都在集合中。
注意:有人说凸集是仿射集的子集,但其实谁也不是谁的子集。确切的讲,包含所有仿射集的集合是包含所有凸集的集合的子集,因为一个仿射集是一个凸集。凸集定义比仿射集的定义更加苛刻,但是条件更加的苛刻不等于就是子集,不等于他们就是一类。比如,如果我们要区分固态和气态,常温常压下二氧化碳就是气态,如果限定他的温度、压力,条件更加苛刻,让其变成固态的干冰,我们还能说二氧化碳就是气态吗?我们能说固态是气态的子集吗?不能,因为“类别(集合)是根据某些固定条件去定义的”,而不是靠“苛刻程度”去识别的,所以我们有明确一下两个基础逻辑。
凸锥:锥体(cone)的定义为如果集合C中的任意点 其中, ,则集合C称为锥。如果集合既是凸集又是锥体,我们就称该集合为凸锥(convex cone)。凸锥的数学表达为:
直观上看,上式定义下的凸锥为顶点为原点,以 和 为边的扇形区。如下图所示,阴影部分表示点 和 构成的凸锥,顶点对应 :
凸锥中各点的线性组合我们称之为凸锥组合(conic combination),某集合C的各点的凸锥组合构成集合C的锥包(conic hull),记为:
锥包:与仿射包和凸包类似,锥包也是包含集合C的最小凸锥集合。以下是两个锥包的实例,阴影部分表示集合构成的锥包,当然,顶点位置不同,所表示出的锥包也各不相同:
上图中第一个图中的15个点的锥包为阴影部分的集合,对应的第二个图中肾型集合的凸锥集合。
综合举例:
- 空集、单点和实数域的点集是仿射集,因此,也是凸集。
- 一条直线是仿射集,如果直线过原点,那么它还是凸锥。
- 一条线段是c凸集的,但不是仿射集,除非该线段仅含有一个点。
- 一条射线 是凸集的,但不是仿射集,如果 为0, 则是凸锥。
基本概念,好好消化
超平面,半空间及凸集分离定理
2、超平面和半空间
超平面:数学表达式为,Emmm...理解不了,但实际上,我们这样想,二维空间的超平面就是一条线(可以使曲线),三维空间的超平面就是一个面(可以是曲面),那高维的时候,也就是超平面了,为什么叫这个名字,也就是要定义一般化的一个界线。
半空间:数学表达式为 ,,Emmm...又理解不了,简单理解,如下图,上面说了,超平面就是一个空间的一个界线,也就是说,超平面可以将空间分为两个半空间,举个二维例子:
上图中,超平面也就是 ,而半空间{ }表示的是方向为a的所有的点的集合,而半空间定义为{ },其是方向为-a上的点的集合,而因为,半空间任意点的线段在半空间内,而任意连线的直线不在半空间内(参考射线是凸集但不是仿射集),所以,半空间是凸集,但不是仿射集。
凸集分离定理:所谓两个凸集分离,直观地看是指两个凸集合没有交叉和重合的部分,因此可以用一张超平面将两者隔在两边,如下图所示:
不改变凸性的运算
不改变凸集性质的运算对于凸集而言很重要,因为凸集的优良性质会使得优化求解过程更为简单,同时,我们也可以根据具体问题构建凸函数解决对应问题。不改变凸集的运算主要有以下几种:
交集:首先什么是交集?设 是两个集合,由所有属于集合 且属于集合 的元素所组成的集合,叫做集合 与集合 的交集(intersection),记作 。然后,如果 和 是凸集,那么 仍为凸集。子空间、仿射集、凸锥、多面体都可以通过半空间或者超平面(二者都是凸集)构成,且每一个闭合的凸集都可以由有限个半空间的交集构成。
仿射函数:在仿射集的定义中,我们提到仿射集可以被线性方程所表示,因此,具有 形式,其中, 的函数都可以成为仿射函数,注意:仿射函数也就是最高次数为1的多项式函数。常数项为零的仿射函数称为线性函数。 。我们先从简单的变化看起,如果 是凸集,同时, 以及 ,很明显, 都为凸集,这两种操作称为变换(scaling)和平移(translation)。所以根据仿射函数的定义,仿射函数的变换形式仍保持原始凸集集合的性质,例如对凸集执行投影、集合相加等的操作后的集合仍为凸集。
透视函数:透视函数的直观理解如下: 为一个不透光隔板,只有在原点有一个小孔,光透过小孔投射至 的隔板上,如果上面的光点所构成的集合是凸的,那么投射至下方的光点构成的集合也是凸的。更加直观的想象我们通过一个针孔照相机去拍摄一个凸的对象,那么生成的图像也是凸的,如下图所示:
数学描述如下:
凸函数及凸优化简述
凸函数:就是一个定义域在某个向量空间的凸子集C上的实值函数。
凸函数的数学定义为: 对于函数 ,如果其定义域C是凸的,且对于∀x,y∈C,有: 则 是凸函数。
凸优化问题:”凸优化“ 是指一种比较特殊的优化,是指求取最小值的目标函数为凸函数的一类优化问题。其中,目标函数为凸函数且定义域为凸集的优化问题称为无约束凸优化问题。而目标函数和不等式约束函数均为凸函数,等式约束函数为仿射函数,并且定义域为凸集的优化问题为约束优化问题
在优化问题中,凸优化问题由于具有优良的性质(局部最优解即是全局解),受到广泛研究。对于一个含约束的优化问题:
其中, 为一个凸函数,变量 的可行域 是一个凸集,那么这个优化问题称为一个凸优化问题。
将上面的约束条件的形式更加明确一点,一个凸优化问题可以写成:
其中, 当然仍然为一个凸函数,但对约束条件有一定要求: 是凸函数; 为仿射函数。这样的要求当然是为了保证可行域是一个凸集。
不等式约束中 为凸函数,而凸函数的水平截集 是一个凸集(凸函数的性质),这就使得不等式约束保证了可行域为凸集;对于等式约束 可以写成:
要使得满足条件的 组成的集合为凸集,就要求 既是一个凸函数,又是一个凹函数,这样 便只能是仿射函数了。
以上便是凸优化问题的一般形式。常见的线性规划、二次规划、二次约束二次规划等优化问题都是凸优化问题。
无约束的优化,等式约束优化,不等式约束优化
说了凸优化问题之后,我们再从无约束的优化,等式约束优化和不等式约束优化全面了解优化的类型的求解:
无约束的优化问题:我们要求的是,其中,
图中的等高线表示 的值。此时 在局部极小值点 处的梯度必然为0,比较容易理解。这个梯度为零的条件是局部极小值点的必要条件。这样,优化问题的求解变成了对该必要条件解方程组。这个是很简单的一种优化,直接。
带等式约束的优化问题:
s.t. .
s.t. 表示条件
与无约束的问题不同。我们所要求的极小值点被限制在曲线 上,我们将 称为可行域, 解只能在这个可行域里取。如下图所示,曲线 (黑色实曲线)经过无约束极小值点(黑点)附近。那么满足约束的极小值点应该与黑点尽可能近。我们将 的等高线不断放大,直到与曲线 相切,切点即为所求。相切是关键,也是极小值点的条件。
把 沿着曲线方向参数化为 , 。必有 在红点 的梯度方向与 的切线方向垂直,即。(注意: 表示的是x(t)的切线斜率,这里是一个向量,由 表示)
另外,由于 为常数,那么也有复合函数 , 因此 在 t 的导数必为0。(这里注意常数的导数为0),然后根据链式法则有 (内积为0,说明 与 垂直),而因为 垂直于 , 垂直于 ,所以 与 共线,有 (注意:这里涉及到向量共线定理,不懂可查), 若为最小值点就必须满足上式和问题中的约束 ,这个条件就叫作拉格朗日条件,为了好记,定义一个拉格朗日函数令其偏导为0,正好就得到拉格朗日条件。
因此带等式约束的优化问题转化为了无约束的优化问题,只需要对拉格朗日条件解方程组即可。这里λ就是拉格朗日乘子,有多少个等式约束就有多少个拉格朗日乘子。
带不等式约束的优化问题:
,
s.t. .
当只有一个不等式时, 如我们把问题2里的等式约束 改为 ,如下图所示,可行域变成了阴影部分,最小值点还是切点,情况和问题2完全一样,只需要把不等号当做等号去求解即可。
当两个不等式起作用时,那么问题就来了
,
s.t.
,
.
如下图,当 的等高线慢慢扩大时,等高线与可行域(阴影部分)第一次相遇的点是个顶点,2个不等式同时起作用了。满足约束的最小值点从原来的黑点位置(切点)移动到了红点位置,现在跟哪条约束函数曲线都不相切。那怎么才能找到这个黑点并求解?这时候就需要用到kkt条件了。这里的“条件”是指:某一个点它如果是最小值点的话,就必须满足这个条件(在含不等式约束的优化问题里)。这是个必要条件,前面说的也全部是必要条件。
这个问题的解 应满足的KKT(卡罗需-库恩-塔克)条件为:
1. , ;
2. ;
3. .
其中,μ叫KKT乘子,有多少个不等式约束就有多少个KKT乘子。加上问题3中的约束部分,就是完整版的KKT条件。(注意:对于有等式的情况,你把其中一个不等式约束换成等式,可行域变成了半条曲线,最小值点还是那个红点,和下面这种情况是一样的。)
说完KKT条件是什么,然后说说KKT条件是怎么来的?:
在问题2中我们知道了约束曲线的梯度方向与曲线垂直,在上图画出了两条约束曲线的负梯度方向(绿色箭头)和等高线的梯度方向(红色箭头)。如果这个顶点是满足约束的最小值点,那么该点处(红点),红色箭头一定在两个绿色箭头之间( 方向一定指向 减小的方向,即 的那一边)。即 能被 和 线性表出( ),且系数必非负( , )。也就是kkt条件中的1和2
1. , ;
2. .
有时候,有的不等式约束实际上不起作用,如下面这个优化问题
,
s.t.
;
;
.
如下图的 是不起作用的
对于最小值点 ,三个不等式约束的不同在于
(起作用)
(起作用)
(不起作用, 最小值点不在 上)
这时,这个问题的KKT条件1,2成了:
1. , , ;
2. .
条件2中的 这一项让我们很苦恼啊, 的绿色箭头跟我们的红色箭头没关系。要是能令 就好了。加上条件3:
3.
恰好能使 。由于 , ,所以前两项等于0,第三项 , 在条件3的作用下使得 . 正好满足需求。如果再多几项不起作用的不等式约束,比如 。要使
就只能有
同样地, , , 只能出现 或者 和 异号的情况。但注意条件1限制了 , ,所以只能有 。因此不管加了几个不起作用的不等式约束,条件2都能完美实现:目标函数 的梯度 被起作用的不等式约束函数 的负梯度( )线性表出且系数 全部非负(红色箭头被绿色箭头夹在中间)。这样,优化问题的求解就变成对所有KKT条件解方程组。
如果再定义一个拉格朗日函数
令它对x的偏导为0,就是KKT条件中的条件2了。
注意:以上所有都是局部极小值点的 必要条件。据此求得的解不一定是局部极小值点(更别提全局了),原因是上图中我所画的等高线也许根本就不闭合,也就是说我们一直想要靠近的等高线中间的黑点压根就是个鞍点或者近似鞍点。 所以,很多时候,我们都是求其对偶问题来使得上面的条件变成充要条件,而一般问题也变成凸优化问题,具体下面讲解。
以上讲解主要参考《An Introduction to optimization》和知乎 彭一洋关于优化的解答,在此表示感谢!
线性规划中对偶理论
首先,我们来说说什么是线性规划:线性规划法是解决多变量最优决策的方法,是在各种相互关联的多变量约束条件下,解决或规划一个对象的线性目标函数最优的问题,而描述线性规划问题的常用和最直观形式是标准型。
标准型包括三个部分:一个需要极大化的线性函数: 在问题约束: ; ; 和非负变量: , 中求解。
而其他类型的问题,例如极小化问题,不同形式的约束问题,和有负变量的问题,都可以改写成其等价问题的标准型。
举个例子:生产安排模型:某工厂要安排生产Ⅰ、Ⅱ两种产品,已知生产单位产品所需的设备台时及A、B两种原材料的消耗,如表所示,表中右边一列是每日设备能力及原材料供应的限量,该工厂生产一单位产品Ⅰ可获利2元,生产一单位产品Ⅱ可获利3元,问应如何安排生产,使其获利最多?
解:1、确定决策变量:设 分别为产品Ⅰ、Ⅱ的生产数量;2、明确目标函数:获利最大,即求 最大值;3、所满足的约束条件:设备限制: ;原材料A限制: ;原材料B限制: ;基本要求:
用max代替最大值,s.t.(subject to 的简写,代替约束条件),则该模型可记为:
讲完线性规划,下面讲下他的对偶理论,首先为什么要有对偶理论?
- 判断一个线性规划有没有解,这点很重要,因为对应一个无解线性规划问题,我们是不能简单的证明没有解的,但这个时候,找到一个跟原问题的对偶问题密切相关的问题,如果这个问题有解,原问题就没解。这样就提供了一个简单的证明原问题没解的途径。(至于其中原因比较复杂,感兴趣可自行了解)
- 对偶问题有时比原问题更简单,更加容易求解,而且,在求解完对偶问题之后,原问题自然可以解出。
首先:原始问题和对偶问题的标准形式如下:
设原始问题为:
则对偶问题为:
;
式中max表示求极大值,min表示求极小值,s.t.表示“约束条件为”;z为原始问题的目标函数,w为对偶问题的目标函数;x为原始问题的决策变量列向量(n×1),y为对偶问题的决策变量行向量(1×m);A为原始问题的系数矩阵(m×n),b为原始问题的右端常数列向量(m×1),c为原始问题的目标函数系数行向量(1×n)。
举个例子(以下来自课程PPT):
例子如上图,也就是说,LP1式和LP2式就是一个经典的对偶问题。下面再说一些对偶问题的重要性质和结论:
弱对偶定理:若上述原始问题和对偶问题分别有可行解 和 ,则 。这个定理表明极大化问题任一可行解的目标函数值总是不大于它的对偶问题的任一可行解的目标函数值。
强对偶定理:若上述原始问题和对偶问题都可行,则它们分别有最优解 和 ,且 。
最优准则定理:若上述原始问题和对偶问题分别有可行解(满足条件的解,自然不止一个) 和 ,且两者的目标函数值相等,即 ,则两个可行解分别为对应线性规划的最优解。
松弛定理:若上述原始问题和对偶问题分别有可行解 和 ,且 和 分别为它们的松弛变量,则当且仅当 和 时, 和 分别为它们的最优解。 和 这两个等式称为互补松弛条件。
上面的知识了解就好,只是要知道对偶理论基础。
拉格朗日对偶理论
先给出之前讲过的一般优化式子:
当然,这里对 都是没有要求的。根据拉格朗日方法,对应的拉格朗日函数为: 其中 为拉格朗日乘数(都是向量,其长度分别对应于不等式约束和等式约束的个数),且 任意。
定义函数:
容易发现:
如果原来的约束条件都满足,那 ,最后一项为零,第二项要取得最大值,由于 ,所以只能取 0(0为零向量),使其取得最大值0,这样
如果违背了原来的约束条件,比如存在某一个约束 ,那么可以取 任意大,这样 。违反等式约束, 的情况是类似的。
所以可以认为 是对原理优化问题中的约束条件进行了吸收,原来的约束优化问题变为无约束优化问题(相对于原来变量x 无约束了),即原来的优化问题可以写成:
现在,称上式为原问题,这和最初的有约束问题是等价的。将上式中min和max交换顺序得到对偶问题:
其中
记 为原问题的最优解,对应最优解的最优变量取值为 ,则 ;
记 为对偶问题的最优解,对应最优解的最优变量取值为 ,则 。
下面来说明 。对于任意 :
第一个不等号成立是显然的,这是由 的定义直接得到的;第二个不等号成立是因为 是一个可行解,所以约束条件 和 都满足,所以
,
由于以上推导过程中 的任意性,所以 ,所以求解对偶问题是在最大化原问题最优解的下界。
注意:这个不等式也对应着上面讲对偶理论时的弱对偶性质。
通常,对偶问题相对于原问题有比较好的形式(因为对偶函数是一系列仿射函数的逐点求极值。根据凸函数的相关性质,这样的函数必定是凸函数。故无论原问题形式如何,对偶问题都是一个凸优化问题,具体证明可自查),这样,当原问题不好求解时,可以转而求解对偶问题。问题是一般情况下有 ,所以求解对偶问题只能得到原问题解的下界,不能保证 。
当原问题满足一些条件时,可以保证 。
Slater条件:存在x ,使得不等式约束 严格成立,即 。
当原问题为一凸优化问题,且满足Slater条件时,有 ,这样就原问题和对偶问题的解一致,求解对偶问题即可。显然,Slater是凸优化问题与其对偶问题等价的一个充分条件。
注意,这里很重要,说明了我们为什么要求拉格朗日对偶,这也是SVM为什么是这样的理论的关键!
一种解释:顺其自然,我们可以引出一个重要的概念,对偶间隙,其定义为
,用文字叙述就是原问题的最优值与通过拉个郎日对偶函数获得的其最好(最大)的下界之差,而当满足Slater条件时,也使得对偶间隙变成0,这时使得
注意。这里有证明,对于凸优化问题,如果Slater条件满足了,就满足 ,而这种情况正是对应着上面的强对偶性质
同时,KKT条件是原问题与对偶问题等价的必要条件。考虑一般优化问题(不一定是凸优化),如果有 ,则:
由于 ,所以上面推导过程中所以的不等号“ ”应该取到等号。第一个等号得到 ,这说明 是 的一个极值点,所以 在 处的偏导为零, ;第二个等号得到 ,所以 是显然的,因为根据约束条件本来就有 ,重点是原本的 现在取到了等号。
综合以上两点,在加上原来的约束,可以得到KKT条件,就是和之前讲的一样的!
KKT条件是 的必要条件,给出了当原问题和对偶问题等价时对应最优值点所满足的性质。
尽管KKT条件是 的必要条件,但当原问题是凸优化问题时,它就升级为充要条件,也就是只要找到 满足以上五个条件,那么原问题就和对偶问题就有相同的解,分别在 和 处取得。
另外,根据KKT条件中的 可以得到, ,反过来说,只有 才有可能不为0。
这节算是SVM数学理论基础吧,如果觉得SVM太难理解,可以查看下这些知识!
终于写完,其实还有一些写的,比如Jensen不等式,但写不下了,下次吧!有什么建议意见,感谢提出,如果有用,点个赞呗~\(≧▽≦)/~。