大家在学习SVM的对偶问题部分的时候一定会看到一句话:使用对偶问题的一个原因是对偶问题一定是凸优化问题。这句话可能没接触过凸优化人表示一头雾水。凭啥呀?

本文就给大家简单地证明一下。(前面主要是科普,有基础的可以直接跳到最后)

文章目录

  • 写在前面的注意点
  • 什么是凸函数
  • 什么是仿射
  • 什么是凸集
  • 什么是凸优化问题
  • 为什么要使用凸优化问题
  • 为什么对偶问题一定是凸优化问题
  • SVM中的凸优化

写在前面的注意点

可能有些同学在一些英语课程中会学到这件事。那就是中文和英语对凸 / 凹函数的定义往往是相反的。比如,下面这个函数图像在中国大部分教材(包括同济的那本微积分)中叫做凹函数,英语中却叫convex function(凸函数)。具体是哪边思维比较反人类咱就不争论了,总之,在本博文中统一采取英语的起名法。即下面这个函数视作凸函数。

什么是凸函数


凸函数,首先它的几何特征就像是我们看到的上面那张图片一样,函数上方区域像是从平行于x轴的线上凸出来一块。由于其特殊的性质,还衍生出了高中数学竞赛中赫赫有名的琴生不等式,不过这里就不细提了。

凸函数的微分有一些很特别的性质,比如一个一元二阶可微函数在某区间是凸函数的充要条件是它在区间上的二阶导是非负的。不过这篇博文里用不到这些,就不多做介绍了。

什么是仿射

仿射集(Affine set):通过集合C中任意两个不同点的直线仍然在集合C内,则称集合C为仿射集。即∀x1,x2∈C,∀θ∈R,则x=θ∗x1+(1−θ)∗x2∈C\forall x_1, x_2 \in C, \forall \theta\in R, 则x=\theta*x_1+(1-\theta)*x_2\in C∀x1​,x2​∈C,∀θ∈R,则x=θ∗x1​+(1−θ)∗x2​∈C其实说着很高端,实际上就是线性变换。

举个例子,高中做解析几何的时候,博主喜欢在处理椭圆相切的时候变换坐标系,比如把椭圆x216+y24=1\frac{x^2}{16}+\frac{y^2}{4}=116x2​+4y2​=1上的所有点的x坐标缩小一半,这就是一个半径为2的圆,只不过这个变换是对坐标系而言的,也就是说你不能只让椭圆上的点变呀,这不公平。所以整个坐标空间的点的x坐标都缩小了一半,包括之前相切的那条直线。这时候就可以只求和圆相切的直线,然后再把x坐标变回去。非常的爽。

这其实就是一个简单的仿射变换。

由于是线性变换,你可以认为存在一个变换矩阵[a11a12b1a21a22b2001][xy1]=[x′y′1]\left[ \begin{matrix} a_{11} & a_{12} & b_1\\a_{21}&a_{22}&b_2\\0&0&1 \end{matrix} \right] \left[ \begin{matrix} x\\y\\1\end{matrix} \right]=\left[ \begin{matrix}x'\\y'\\1 \end{matrix} \right]⎣⎡​a11​a21​0​a12​a22​0​b1​b2​1​⎦⎤​⎣⎡​xy1​⎦⎤​=⎣⎡​x′y′1​⎦⎤​看,这样是不是就一目了然了?所谓的仿射,不过是新的坐标等于原坐标的线性组合。

什么是凸集

凸集(Convex set):连接集合C中任意两个不同点的线段仍然在集合C内,则称集合C为凸集。即∀x1,x2∈C,∀θ∈[0,1],则x=θ∗x1+(1−θ)∗x2∈C\forall x_1, x_2 \in C, \forall \theta\in [0, 1], 则x=\theta*x_1+(1-\theta)*x_2\in C∀x1​,x2​∈C,∀θ∈[0,1],则x=θ∗x1​+(1−θ)∗x2​∈C这个式子和仿射集定义很像,区别在哪呢?在于θ\thetaθ的取值,凸集限制更多。所以说仿射集一定是凸集,凸集是一种特殊的仿射集。

什么是凸优化问题

凸优化问题是这么一个问题:minf(x)min f(x)min f(x)s.t.hi(x)≤0i=1,2,...,ms.t. h_i(x)\leq 0 i = 1,2,...,ms.t. hi​(x)≤0 i=1,2,...,mgj(x)=0j=1,2,...,pg_j(x)=0 j=1,2,...,pgj​(x)=0 j=1,2,...,p其中hi(x)和f(x)都是凸函数,gj(x)是仿射函数其中h_i(x)和f(x)都是凸函数,g_j(x)是仿射函数其中hi​(x)和f(x)都是凸函数,gj​(x)是仿射函数

很多人看到这里,可能会一拍脑袋:这不是KKT条件里的式子吗?没错,KKT条件,或者说拉格朗日乘子法本质上就是解决了一个凸优化问题。

为什么要使用凸优化问题

SVM里花了那么多的功夫做对偶变换,只为了最后和你说一句:因为对偶问题一定是凸优化问题。为什么要转换成凸优化问题呢?

因为凸优化有一个很重要的性质:局部最优点必定是全局最优点

关于这一点也很好证。我们假设∃x0\exists x_0∃x0​,它是函数的局部最优点,另∃x1≠x0\exists x_1 \neq x_0∃x1​​=x0​,它是函数的全局最优点。我们不妨假设x1>x0x_1>x_0x1​>x0​,随后∀0<δ<x1−x0,∃k=x0−x1+δx0−x1,0<k<1\forall 0 < \delta <x_1-x_0, \exists k =\frac{x_0-x_1+\delta}{x_0-x_1}, 0<k<1∀0<δ<x1​−x0​,∃k=x0​−x1​x0​−x1​+δ​,0<k<1s.t.x0+δ=kx0+(1−k)x1s.t.  x_0+\delta=kx_0+(1-k)x_1s.t. x0​+δ=kx0​+(1−k)x1​此时有f(x0+δ)=kf(x0)+(1−k)f(x1)<f(x0)f(x_0+\delta)=kf(x_0)+(1-k)f(x_1)<f(x_0)f(x0​+δ)=kf(x0​)+(1−k)f(x1​)<f(x0​)这也就是说,x0x_0x0​的领域内任何一个点都比它的函数值大,不符合局部最优的定义。所以说假设不成立。即得到结论:局部最优点必定是全局最优点

为什么对偶问题一定是凸优化问题

回到本文的正题,究竟怎么证明对偶问题一定是凸优化问题呢?

首先提到证明过程的时候就不得不提到这么张图,可能你们在别的博客里也见过。

这张图是Boyd大佬在《凸优化》中对该问题的证明原文。(别管那么多了,%%%)

首先我们对原问题minxf(x)min_x f(x)minx​f(x)s.t.gi(x)≤0i=1,2,...,ms.t. g_i(x)\leq0 i=1, 2, ..., ms.t. gi​(x)≤0 i=1,2,...,mhj(x)=0j=1,2,...,ph_j(x)=0 j=1, 2, ..., phj​(x)=0 j=1,2,...,p进行一次拉格朗日乘子法,转换为minx,λ,νL(x,λ,ν)=f(x)+∑i=1mλigi(x)+∑j=1pνjhj(x)min_{x, \lambda, \nu}L(x, \lambda, \nu)=f(x)+\sum^m_{i=1}\lambda_ig_i(x)+\sum^p_{j=1}\nu_j h_j(x)minx,λ,ν​L(x,λ,ν)=f(x)+i=1∑m​λi​gi​(x)+j=1∑p​νj​hj​(x)再求一次对偶问题maxλ,νminxL(x,λ,ν)s.t.λ≥0max_{\lambda, \nu}min_{x} L(x, \lambda, \nu)  s.t. \lambda \geq 0maxλ,ν​minx​L(x,λ,ν) s.t. λ≥0首先约束条件一定是凸函数,因为它是线性的,也就是说其实我们现在只要证明−minxL(x,λ,ν)- min_{x} L(x, \lambda, \nu) −minx​L(x,λ,ν)是一个凸函数即可。

这一步的证明就是我们必须要求一次对偶的原因。(大家可以尝试一下,使用原始问题这一步是证明不出来的)

既然我们已经调整xxx来极小化L(x,λ,ν)L(x, \lambda, \nu)L(x,λ,ν)了,那么我们极小化LLL后xxx是一个定值了。

(关于这一点,就好比一个二元函数要你求最小值,你分成两步,先求yyy固定时xxx变化能取到的最小值函数,最后求yyy变化时的最小值函数。在这个过程中,第一步完成后得到的函数一定不能再含有变量xxx,即xxx被固定了,这样我后面才能只变化yyy)

所以f(x),g(x),h(x)f(x), g(x), h(x)f(x),g(x),h(x)就全部是定值了。那么此时的−minL(x,λ,ν)=−k1λ−k2ν−b-minL(x, \lambda, \nu)=-k_1\lambda-k_2\nu-b−minL(x,λ,ν)=−k1​λ−k2​ν−b,其中k1=g(x),k2=h(x),b=f(x)k1=g(x), k2=h(x), b=f(x)k1=g(x),k2=h(x),b=f(x)。再次强调,这里xxx已经在极小化的过程中确定了,上面跟xxx有关的全部是一个定值。这就是一个线性变化,或者说仿射变换。然后就用到了我们前面用到的那个重要定理:仿射集一定是凸集。所以说这是一个凸函数。

所以说−minL(x,λ,ν)-minL(x, \lambda, \nu)−minL(x,λ,ν)一定是凸函数。这也就意味着凸优化问题的最后一个条件被满足了。所以对偶问题一定是凸优化问题。

SVM中的凸优化

SVM中的对偶问题其实就是L(w,b,α)L(w, b, \alpha)L(w,b,α)。换言之x=(w,b)x = (w, b)x=(w,b),λ=α\lambda=\alphaλ=α,ν=0\nu=0ν=0。

把这个条件带入到上面就可以很简单地证明出来啦。

为什么对偶问题一定是凸优化问题?相关推荐

  1. 凸优化基础知识笔记-凸集、凸函数、凸优化问题

    文章目录 1. 凸集 2. 凸函数 2.1. 凸函数的一阶条件 2.1. 凸函数例子 3. 凸优化问题 4. 对偶 4.1. Lagrange函数与Lagrange对偶 4.2. 共轭函数 4.3. ...

  2. 机器学习第四课:SVM前置知识点(凸优化问题)

    内容主要来源于 大数据文摘 #1 高数教材中拉格朗日乘子法的泛化 ##1.1 高数教材中的拉格朗日乘子法 我们大学时讲了这个计算条件极值的方法,运用拉格朗日乘数法(乘子法) {min⁡f(x)s.t. ...

  3. 机器学习+优化问题的种类、如何优化、凸优化、非凸优化、对偶问题、KKT条件

    机器学习+优化问题的种类.如何优化.凸优化.非凸优化.对偶问题.KKT条件 目录

  4. 详解GCN、GAT、凸优化、贝叶斯、MCMC、LDA

    如果你准备发AI方向的论文,或准备从事科研工作或已在企业中担任AI算法岗的工作.那么我真诚的向大家推荐,贪心学院<高阶机器学习研修班>,目前全网上应该找不到类似体系化的课程.课程精选了四大 ...

  5. 凸优化 [Convex Optimization] — [美] 鲍德(Stephen Boyd),Lieven Vandenberghe 著,王书宁,许鋆,黄晓霖 译

    <信息技术和电气工程学科国际知名教材中译本系列:凸优化>从理论.应用和算法三个方面系统地介绍凸优化内容. 凸优化在数学规划领域具有非常重要的地位.从应用角度看,现有算法和常规计算能力已足以 ...

  6. 机器学习中的凸优化理论

    凸优化课程 优化问题 定义:从一个可行解中找到一个最好的元素. 通常来说优化问题都可以写成如下的形式: 最小化目标函数: m个约束函数: 凸规划与非凸规划 凸规划满足: 凸规划都是相对容易解决的,非凸 ...

  7. 详解凸优化、贝叶斯、MCMC、GCN

    几年前如果熟练使用TensorFlow,同时掌握基本的AI算法就可以很容易找到一份高薪的工作,但现在不一样了,AI岗位的要求越来越高,对知识的深度也提出了更高的要求. 如果现在一个面试官让你从零推导S ...

  8. GCN、GAT、凸优化、贝叶斯、MCMC、LDA

    加入AI行业拿到高薪仅仅是职业生涯的开始.现阶段AI人才结构在不断升级,对AI人才的要求也不断升高,如果对自己没有很高的要求,其实很容易被快速发展的趋势所淘汰. 为了迎合时代的需求,我们去年推出了&l ...

  9. (机器学习之算法)凸优化

    深切哀悼抗击新冠肺炎斗争中的牺牲烈土和逝世同胞.愿逝者安息,愿生者奋发,愿祖国昌盛!!!!! 一.基础认知 我们首先思考两个不等式: 两个正数的算术平均数大于等于几何平均数:(a+b)/2 ≧√ab, ...

  10. SVM中对偶、凸优化与KTT条件问题

    对偶问题:http://blog.csdn.net/wuwuwuwuwuwuwuwu/article/details/8252056 最优化与KTT条件:http://blog.csdn.net/wu ...

最新文章

  1. 去掉中文语言下 wget下载提示 英国中部时间 的问题
  2. 在Elasticsearch中查询Term Vectors词条向量信息
  3. SEO 搜索引擎优化
  4. opencomm在c语言中的作用,使用OpenMPI从Fortran调用C语言
  5. el-table跨页选中
  6. jq点击更多收起效果
  7. 9.Tideways和xhgui
  8. idea svn回退版本_mac下使用svn通过终端回退版本到某个版本号 - 博客频道 - CSDN.NET...
  9. lisp绘制直齿圆柱齿轮_直齿圆柱齿轮的画法
  10. php解析m3u8代码,m3u8后缀 视频解析接口源码
  11. 数字人体”视觉挑战赛-宫颈癌风险智能诊断
  12. 程序员必学电脑计算机专业英语词汇 04 (200 单词)
  13. 小米集团回应造车;移动公布1月份运营数据;中天科技拟回购公司股份;工信部发布春节流量数据...
  14. android 水滴动画效果图,Android控件实现水滴效果
  15. 旭日图(Sunburst)
  16. FreeBSD使用CVSup升级Ports,让它涣然一新
  17. 使用非对称加密匿名加好友
  18. python写的hadoop实战_hadoop实战 pdf
  19. 医学图像分割新网络:Boundary-aware Context Neural Network for Medical Image Segmentation
  20. 初中计算机案例交流,初中语文与信息技术整合教学案例——《爱莲说》

热门文章

  1. 期货十三篇 第九篇 心态篇
  2. android8临时root,Android8.0怎么root,刷supersu无穷重启
  3. js初级动态随机抽人事件运用 计时器和超时期应用 解决用on事件onclick多次点击不能停止的问题
  4. 瑞芯微(RKDocs)平台技术开发资料汇总(rk3188,rk3066,RK3128,rk3288)
  5. Dubbo线程池耗尽原理分析Thread pool is EXHAUSTED
  6. 数字电路34( 计数器—二进制加计数器)
  7. 蒲公英下载专用协议头ipa
  8. MFC---List Control的用法总结
  9. Python源文件改写。编写一个程序,读取一个Python源程序文件source.py,将文件中所有除保留字外的小写字母换成大写字母。生成后的文件要能够被Python解释器正确执行。
  10. NOI2016 滚粗记