支持向量机预备知识(一)kkt条件、凸函数

一、凸函数
什么是凸函数。
关于凸函数的定义:
对于任意 λ ∈ [ 0 , 1 ] \lambda∈[0,1] λ[0,1],如果
f ( λ x + ( 1 − λ ) y ) < λ f ( x ) + ( 1 − λ ) f ( y ) f(\lambda x+(1-\lambda)y)<\lambda f(x)+(1-\lambda) f(y) f(λx+(1λ)y)<λf(x)+(1λ)f(y)
我们则称,这个函数是凸函数。
什么意思呢,我们在目标函数上取两个点,然后计算出 f ( λ x + ( 1 − λ ) y ) f(\lambda x+(1-\lambda)y) f(λx+(1λ)y)看点的值和这个值的大小来进行凸函数的比较。
(2)如果这个处处二阶可导,那么我们可以采用二阶导数来判断
即设目标函数为f(x),则f(x)是凸函数的必要条件为 f ( 2 ) ( x ) > 0 f^{(2)}(x)>0 f(2)(x)>0
即函数的斜率不断在变大。
这是凸函数的定义,那么我们用例子来看看:
支持向量机预备知识(一)kkt条件、凸函数_第1张图片
支持向量机预备知识(一)kkt条件、凸函数_第2张图片
支持向量机预备知识(一)kkt条件、凸函数_第3张图片
所以,我们寻找凸函数一般用凸函数的定义去寻找就行了,或者采用2阶导数的条件寻找。注意一般如果采用定义1去寻找的话,会采用多个点去找寻,避免随机性导致的判断
1.2 凸集
如果在函数的定义范围内,满足对于任意 λ ∈ [ 0 , 1 ] \lambda∈[0,1] λ[0,1]
f ( λ x + ( 1 − λ ) y ) < λ f ( x ) + ( 1 − λ ) f ( y ) f(\lambda x+(1-\lambda)y)<\lambda f(x)+(1-\lambda) f(y) f(λx+(1λ)y)<λf(x)+(1λ)f(y)的解的集合就被称为凸集。
如上面 f ( x ) = x 3 f(x)=x^{3} f(x)=x3 ( 0 , + ∞ ) (0,+∞) 0+为凸集, ( − ∞ , 0 ) (-∞,0) (0)就不是。
1.3 如何对多元函数进行凸函数的判断
方法一:
采用定义法,采用蒙特卡洛采样了很多很多次,每次都计算一次中间值和两边值分别进行比较,如果其中有个别点满足凸函数定义,那么这个函数就是凸函数。
方法2:
采用二阶偏导,看二阶偏导是否大于0。

对于非凸函数来说,我们可能不好求得函数的最小值,或者无约束条件下并不满足函数的最小值。

二、kkt条件
kkt条件是用来解决不等值约束条件下,求解极值的最优解的问题。为了理解不等值约束我们先从最基本的求极值的思路开始。
首先从无约束的优化问题讲起,一般就是要使一个表达式取到最小值:
m i n x f ( x ) \mathop{min}\limits_{x}f(x) xminf(x)。对于这类问题在高中就学过怎么做。只要对它的每一个变量求导,然后让偏导为零,解方程组就行了。
支持向量机预备知识(一)kkt条件、凸函数_第4张图片
所以在极值点处一定满足 d f ( x ) / d x = 0 df(x)/dx=0 df(x)/dx=0 (只是必要条件,比如 y = x 3 y=x^3 y=x3 在 x=0 处就不是极值点),然后对它进行求解,再代入验证是否真的是极值点就行了。
1、等值优化问题最优性条件
比如有一个等式约束:

min f(x)
s.t h(x)=0

支持向量机预备知识(一)kkt条件、凸函数_第5张图片
这时相当于我们的f(x)的负梯度方向为图中的中心,由中心向外为函数的等高线,当等高线和h(x)想切时刚好为约束条件下的极值点。但是要注意f(x)与g(x)的约束条件必须是凸函数和凸集才行,否则我们求出来的点也不一定是最小值点。

支持向量机预备知识(一)kkt条件、凸函数_第6张图片
因为f(x)不是凸函数,且所以求出来的值不是最优解,且在约束条件g(x)所在的范围内也不是凸集。因为
x ∈ ( − ∞ , + ∞ ) x∈(-∞,+∞) x+时, y ∈ ( − ∞ , 0 ) y∈(-∞,0) y(0),而所以只要y不断减小,x不断变大,此时目标函数只有最大值,没有最小值。
如果f(x)是凸函数,h(x)=0所在的集合又是凸集。那么我们只需要对多个约束条件,分别求偏导,对求出来的多个极值点带入目标函数进行检验,最后选出一个极小值解就行了。
即:
支持向量机预备知识(一)kkt条件、凸函数_第7张图片
2、不等式约束优化问题
支持向量机预备知识(一)kkt条件、凸函数_第8张图片
在这里插入图片描述
此时g(x)<0。
(2)边界解:当解集在边界时,此时λ>0。且g(x)=0。
但不管解集是否在边界,一定满足一下条件:
支持向量机预备知识(一)kkt条件、凸函数_第9张图片
这些条件合称为Karush-Kuhn-Tucker (KKT)条件。但是我们在运用kkt条件时一般会有一些约束条件。
支持向量机预备知识(一)kkt条件、凸函数_第10张图片
支持向量机预备知识(一)kkt条件、凸函数_第11张图片
当然kkt条件的使用必须有一定的限制,即regularity条件。

2、regularity条件。
(1)如果h(x)与g(x)都是形如 a x + b ax+b ax+b这样的映射函数,则kkt条件的值一定是最小值
(2)起作用的g(x)和h(x)的在极值处的梯度要线性无关
(3)优化问题是凸优化问题
3、 缺少regularity条件KKT还是最优解的必要条件吗?
若满足regularity条件,KKT就是最优解的必要条件。所谓必要条件的意思是满足KKT条件的不一定是最优解(例如鞍点就满足KKT,但鞍点就不是最优解),但是如果不满足KKT条件就一定不是最优解,缺少了regularity条件,KKT条件就并非最优解的必要条件。
那么我们怎么判断,这个目标函数的优化是否是符合regularity条件的呢。我们可以采用fritz条件来判断
3、fritz条件
支持向量机预备知识(一)kkt条件、凸函数_第12张图片
即我们要求利用kkt条件求出来的解为最小解,那么在目标函数前的 μ 0 \mu_0 μ0一定是大于0的。此时
若满足fritz条件,那么求出的解为最优解。若 μ 0 \mu_0 μ0=0代表此时目标函数不受约束,即无最小值。
4、例子

你可能感兴趣的:(简历及机器学习)