COAC:Introduction

2018-01-30  本文已影响0人  dlongry

凸集和凸函数的定义:

凸集:
凸函数:

熟记常见的凸函数和保凸运算,有助于后期自己建模模型!!(有空整理下,然后关键是非凸函数如何有效的求解建模)

研究的问题:
输入是凸集X,然后有一个凸函数f,然后我们求F在定义域X中最大或者最小的值。用数学表达式来描述这个问题就是:
几个凸优化在机器学习领域典型的例子

“凸”的基本属性的介绍

1.分离定律(Separation Theorem)

条件:让X含于Rn作为一个闭合凸集集合(closed convex),并且x0属于Rn\X(“\”的意思是除去)
结果:存在w 属于Rn and t 属于R 使得:

注意如果X不是闭集合,那么上面的结果就退化成如下: 这个很容易推导到下面支持超平面定理。

其它角度来理解:直观的理解这个定理:就是对于闭凸集X,在集合外存在一个平面W,和点x0,和值t,使得点x0到平面W的距离小于等于t,同时集合内任意一点到这个平面的距离大于等于t。如果X不是闭凸集合只是凸集合的时候只能说X集合外存在平面W和外一个点x0,使得集合内部的点到这个平面w的距离都大于x0平面w的距离。

2.支持超平面定理(Supporting Hyperplane Theorem)

条件:让X含于Rn是一个凸集,并且x0属于X的边界。
结果:存在w属于Rn,w不等于0,使得:


直观解释:X是凸集,那么存在一个超平面,使得X边界上的某点x0到这个平面的距离比所有X的其他元素来的小。

其实在上面用数学公式都是不等式符号,然后你可以两边同时除以W的模那么就可以变成距离公式,就可以用几何的角度来理解了。

次梯度(Subgradients)(关键概念)[3]

定义: 让X含于Rn,并且 f是X到R(只是一维)的映射。然后如果g属于Rn是f在点x的次梯度。那么就有x属于X,有任意y点属于X,满足如下不等式:

你可以这么来推,首先我们将代表任意点的y的值f(y)移动至不等式的左边可以得到;f(y)>=gT(y-x)+f(x),其中gT(y-x)+f(x)是横坐标为y切线函数的上面的点((梯度x(目标横坐标-当前横坐标)+当前横坐标的值)就是目标横坐标在切线上面的值),f(y)是原来函数上面的点,所以根据定义是大于等于。所以子梯度有一个性质,函数f都会在切线直线gT(y-x)+f(x)上方。另外,f函数的子梯度可能不止是一个数,而是存在一个集合,我们把这个集合记作: 为什么要引出次梯度:是因为有一些凸函数是不可导的,没法用梯度,所以subgradient就在这里使用了。注意到,子梯度也是求解凸函数的,只是凸函数不是处处可导。
次梯度的命题:
1.如果x’属于X(x在函数f的自定义中),并且g是f的子梯度集合,那么f的值会一直在函数f(x‘)+gT(x-x’) 上面。如下面图所示:直线f(x‘)+gT(x-x’) 必过点(x',f(x')),且若f(x)可导,那么该直线就是f(x)在x‘点的切线。

可以看出图像f(x)都在直线f(x')+g(x-x')上面,当点不可导时,其g的值不只一个。在下图中就是竖直直线形式存在。
2.次梯度存在性命题: 凸函数总会存在子梯度(在COAC上有证明过程,主题思路是应用支持超平面定理)并且如果这个凸函数可导,那么导数一定存在于次梯度中。
条件: 如果让X含于Rn是凸集合,并且f:X到R的映射函数。对于任意的x属于X,其次梯度集合都不为空。
结果: 函数f(x)是凸函数。可以从集合上面理解,如果每一点都存在次梯度g,那么这一函数f(x)必然位于f(x')+g*(x-x')上面。如果是凹函数就不满足这个条件了。
相反的:
条件: f(x) 是凸函数
结果: 对于任意x属于int(X),则其次梯度g非空。更进一步的,如果f(x)是凸的并且是可导的
3.次梯度的由来: 如果f是凸函数那么次梯度的由来可以用一阶泰勒公式来得到(图片少了右括号):

4.次梯度的使用:
1)常见的max函数:就是用在max函数中,在很多函数由于是分段函数导致在分段点左右导数不同即不存在导数,但是存在次梯度,所以可以用次梯度来求: 即所有该点函数值等于最大值的函数的梯度的凸包。 其中co就是凸包的意思。
2)次梯度一般使用流程:其实次梯度的一般使用流程和普通的的梯度下降使用的流程是相同的,只不过梯度选取是次梯度集合中任意一个就行。这个时候要注意了:次梯度下降是非单调收敛:−gt不需要是下降方向,在这种情况下,不能使用线性搜索选择合适的αt即学习率。
3)在非约束最优化问题中,要求解一个凸函数f:Rn映射到R的最小值问题: 如果f(x)可导我们一般求解其导数为0,求解x*,但是在函数f不可导的时候我们可以求的是次梯度中为0的值来获得x*的值。

为什么研究凸函数

在继续下面一个话题之前,我们先进行回答一个重要问题,为什么我们要研究凸函数,很显然一个重要原因就是凸函数拥有很有优良的性质,其中最主要的就是:可以很方便的从局部特性拓展到全局的特性。这个体现在了两个方面:一个是:之前的导数,只能体现一个在x周围的局部的特性,可能切线会和函数相交,但是现在次梯度可以体现全局的最下界。另一个是:凸函数中局部的最小值就是全局的最小值。
命题1.2:若函数f是凸函数,那么如果x是f的局部最小值,那么x就是f的全局最小值,并且当且仅当次梯度g集合中有0值。
命题1.3:(一阶最优性条件(First order optimality condition))
条件:1)f是凸函数,2)X是闭合凸集且在此定义域上f是可微的(differentiable)
结论:然后为了求函数f(x)的最小值x*

当且仅当 则说明x*是最小值,这个也很好理解,因为这个式子表明,对于其他任意y值对比与切点x*而言,切线的增量都是大于等于0的,所以可以看到这个x*就是函数的最小值了。

黑箱模型:

黑箱模型的定义是假设我们有无限的计算资源,然后有一个集合X是已知的,但是目标函数f:X到R是未知的(故称为黑箱),但是可以根据数据库进行查询来回答以下两个问题:
1)输入一个点x属于集合X,输出f关于x的值f(x)
2)输入一个点x属于集合X,输出f(x)在点x的次梯度
目标一般也是求f(x)的最小值。在这种条件下,我们感兴趣与在于:对凸函数进行优化求解的时候需要利用数据库的复杂度。即需要查询多少次数据库,才能达到lamda近似极值。并且要去计算他的复杂度上界。
另外的黑箱模型问题,也并不知道集合X,想对应的他需要加入数据库的另外一种询问方式:
3)输入x,来返回是否x属于X
黑箱模型的优点:近几年,黑箱模型很流行,主要的原因有一下两点:
1.数据库的询问方式,不被数据的维度做束缚,所以黑箱模型可以优化非常高维度的优化问题。
2.很多算法用黑箱模型会对于数据库的输出噪声非常的鲁棒,这个对传统的优化问题,和机器学习的优化问题特别相关,详情在后续章节在继续介绍。

结构优化(Structured optimization)

黑箱优化为什么有提出结构优化:主要原因就是黑箱优化的前提是基于不知道目标函数,但是很多时候我们已经知道了,目标函数的格式,所以如果我们还继续使用黑箱模型的优化方法,那么相当于人工为此类优化问题进行限制。所以基于这个观察,针对目标函数已经知道的优化问题,提出了数学家提出了更有效优化策略,即结构优化。
常见的结构优化的算法:
内点法(the Interior Point Methods),其他还有(FISTA or Mirror Prox)
结构优化对于LPs和SDPs: 结构优化对于(Linear Programs)线性规划问题 and SDPs (Semi-Definite Programs)与半正定规划问题非常有效,也会在后续进行简单的介绍.
线性规划问题定义:线性规划问题,目标函数一般为f(x) = cTx, c∈Rn,限制条件X一般也为线性函数即X={x∈Rn,Ax<=b},A的维度是mxn,b的维度是m。
半正定规划问题定义:优化的变量时一个对称的矩阵X∈Rnxn,让Sn是对称矩阵nxn空间。让符号<*,*>代表Frobenius内积,具体为<A,B>=Tr(ATB).那么半正定问题拥有如下形式:目标函数f(x)=<X,C>,其中C∈Rnxn,并且限制条件为{X∈Sn+:<X,Ai><=bi,i∈{1....m}},其中Sn+表示正定矩阵nxn。A1,...Am∈Rnxn 并且b∈Rm,值得一提的是矩阵填充问题是SDP问题一个例子。
Frobenius inner product:定义摘自wiki:

image.png

参考文献:

  1. https://www.zhihu.com/question/58904993
  2. http://blog.csdn.net/u010182633/article/details/54139896
  3. 次梯度(subgradient)相关解释:http://blog.csdn.net/lansatiankongxxc/article/details/46386341
  4. 可微的解释(百度知道)https://zhidao.baidu.com/question/554026989474496252.html
  5. FISTA
    https://zhuanlan.zhihu.com/p/26645449
    http://blog.csdn.net/huang1024rui/article/details/51534524
上一篇 下一篇

猜你喜欢

热点阅读