支持向量机 数学推导 Part5
2018-03-19 11:37
183 查看
这是支持向量机数学推导的第五部分,这里讲的是凸函数。
先回顾一下问题,如何求全局的最小值?
前面的讨论我们说可以把每一个极值点求出来再一个个对比,取最小的那个就是最小值。
另外的一个方法就是学习我们想要最小化的函数是怎样的函数。如果一个函数是凸函数,那么我们就能确定局部最小值就是全局的最小值。
凸函数
非凸函数
但是从上面的非凸函数中,我们也能找到在区间[-1,1]内,函数是凸函数。
凸函数函数的另外一种形式,凹函数(concave function)
数学中的定义:
A function is convex if its epigraph (the set of points on or above the graph of the function) is a convex set.
在点集拓扑学与欧几里得空间中,凸集(convex set)是一个点集合,其中每两点之间的直线点都落在该点集合中。
我们看到星型两个点之间的连线有一部分没有落在它的集合中,所以不是凸集,而圆和三角形则是凸集。
凸函数的性质:多元二次可微的连续函数在凸集上是凸的,当且仅当它的海森矩阵在凸集的内部是半正定的。
因此,想要证明我们的函数是凸函数,只需要证明海森矩阵是半正定的就可以, 可以通过以下定理证明.
对称矩阵A是半正定矩阵等价于:
- 矩阵A的全部特征值非负;
- 矩阵A的所有主子式(principal minors)非负;
- 存在BB使得A=BTBA=BTB.
与证明海森矩阵是正定矩阵唯一的不同就是,这里证明所有主子式非负。
∇2f(x,y)=(1200x2−400y+2−400x−400x200)∇2f(x,y)=(1200x2−400y+2−400x−400x200)
主子式 M11M11为200200,M22M22为1200x2−400y+21200x2−400y+2
如果这个函数是一个凸集,那么我们需要证明从任何点得到的所有主子式都是非负的。
M22M22不满足,当取点(1,4),M22=−399M22=−399.
所以香蕉函数不是凸函数。
很多方法可以求一个函数是否为凸函数。这里不多介绍了。
为了更好理解,我们先看一些图:
优化问题可以理解为扔一粒石子到一个平面。对于凸平面,像上面一幅图,无论你在哪里扔下石子,它会直接落到底部,也就是函数的最小值处。
对于非凸平面,当我们随便扔下石子时,它更有可能落到局部最小值处而不是全局最小处。要使石子落到最小值处就变得十分复杂。
梯度下降优化算法就像是让石子找到最小值的过程,另外牛顿方法也是著名的优化问题解决方法。
在解决优化问题时,凸面是一个需要理解带的重要的概念。另外一个重要的方面是二元性。
才疏学浅,还未能创造知识,先做知识的搬运工!
原文地址:https://www.svm-tutorial.com/2016/09/convex-functions/
先回顾一下问题,如何求全局的最小值?
前面的讨论我们说可以把每一个极值点求出来再一个个对比,取最小的那个就是最小值。
另外的一个方法就是学习我们想要最小化的函数是怎样的函数。如果一个函数是凸函数,那么我们就能确定局部最小值就是全局的最小值。
凸函数(Convex functions)
如果能够在函数中找到两点画一条直线,这条直线不与函数的第三个点相交,那么这个函数就是一个凸函数。凸函数
非凸函数
但是从上面的非凸函数中,我们也能找到在区间[-1,1]内,函数是凸函数。
凸函数函数的另外一种形式,凹函数(concave function)
数学中的定义:
A function is convex if its epigraph (the set of points on or above the graph of the function) is a convex set.
什么是凸集(convex set)?
维基百科:在点集拓扑学与欧几里得空间中,凸集(convex set)是一个点集合,其中每两点之间的直线点都落在该点集合中。
几个例子
我们看到星型两个点之间的连线有一部分没有落在它的集合中,所以不是凸集,而圆和三角形则是凸集。
怎么求一个函数是凸函数?
对于二维的函数用图示的方法很好理解,但是对于多个变量的高维函数,要将它的图形画出来可没有那么容易。所以先学习函数,看看函数有什么特点。凸函数的性质:多元二次可微的连续函数在凸集上是凸的,当且仅当它的海森矩阵在凸集的内部是半正定的。
因此,想要证明我们的函数是凸函数,只需要证明海森矩阵是半正定的就可以, 可以通过以下定理证明.
对称矩阵A是半正定矩阵等价于:
- 矩阵A的全部特征值非负;
- 矩阵A的所有主子式(principal minors)非负;
- 存在BB使得A=BTBA=BTB.
与证明海森矩阵是正定矩阵唯一的不同就是,这里证明所有主子式非负。
例子: 香蕉函数是凸函数吗?
香蕉函数的海森矩阵:∇2f(x,y)=(1200x2−400y+2−400x−400x200)∇2f(x,y)=(1200x2−400y+2−400x−400x200)
主子式 M11M11为200200,M22M22为1200x2−400y+21200x2−400y+2
如果这个函数是一个凸集,那么我们需要证明从任何点得到的所有主子式都是非负的。
M22M22不满足,当取点(1,4),M22=−399M22=−399.
所以香蕉函数不是凸函数。
很多方法可以求一个函数是否为凸函数。这里不多介绍了。
为什么凸函数这么酷?
首先,局部最小值就是全局最小值;其次,凸函数优化问题容易解决。为什么呢?为了更好理解,我们先看一些图:
优化问题可以理解为扔一粒石子到一个平面。对于凸平面,像上面一幅图,无论你在哪里扔下石子,它会直接落到底部,也就是函数的最小值处。
对于非凸平面,当我们随便扔下石子时,它更有可能落到局部最小值处而不是全局最小处。要使石子落到最小值处就变得十分复杂。
梯度下降优化算法就像是让石子找到最小值的过程,另外牛顿方法也是著名的优化问题解决方法。
总结
这篇文章介绍了什么是凸集以及怎么证明一个函数是凸集。在解决优化问题时,凸面是一个需要理解带的重要的概念。另外一个重要的方面是二元性。
才疏学浅,还未能创造知识,先做知识的搬运工!
原文地址:https://www.svm-tutorial.com/2016/09/convex-functions/
相关文章推荐
- 支持向量机 数学推导 Part3
- 支持向量机 数学推导 Part2
- UVA - 10294 Arif in Dhaka (First Love Part 2) (置换群-polya定理- 数学推导循环节)
- 支持向量机 数学推导 Part4
- 【机器学习】支持向量机(Suport Vector Machine)数学推导
- 支持向量机 数学推导 Part1
- 根据经纬度计算地面两点间的距离-数学公式及推导
- 支持向量机SVM推导过程
- 支持向量机(SVM)的详细推导过程及注解
- 最大熵模型中的数学推导
- 子集算法的完整数学推导过程
- hdu 5312 Sequence(数学推导——三角形数)
- LSTM简介以及数学推导(FULL BPTT)
- poj 1183 反正切函数的应用 数学推导
- 支持向量机(SVM)入门理解与推导
- 【Derivation】 条件数学期望公式泊松分布推导(Poisson distribution)
- hdu2086 A1=?(数学公式推导)
- paper 9:SVM番外篇:支持向量机系列六:Duality —— 关于 dual 问题推导的一些补充理论。
- Codeforces 534C Polycarpus' Dice(数学,公式推导)
- Alternating Least Squares(ASL) for Implicit Feedback Datasets的数学推导以及用Python实现