内容主要来源于 大数据文摘

#1 高数教材中拉格朗日乘子法的泛化
##1.1 高数教材中的拉格朗日乘子法
我们大学时讲了这个计算条件极值的方法,运用拉格朗日乘数法(乘子法)
{min⁡f(x)s.t.hi(x)=0i=1,2...,n\left\{ \begin{matrix}\min\;f(x) \\ s.t.\;h_{i}(x)=0\;\;\;\;i=1,2...,n\end{matrix}\right. {minf(x)s.t.hi​(x)=0i=1,2...,n​
第一行就是目标函数,第二行是约束函数。我们就是想在h(x)=0一系列函数的约束下,求f(x)的最小值。我们可以用(1)式中的方法求解
min[f(x)+∑i=1nλihi(x)](1)min\;[f(x)+\sum_{i=1}^{n}\lambda_{i}h_{i}(x)]\tag1min[f(x)+i=1∑n​λi​hi​(x)](1)
这当然是个很简单的事件了。但是这是绝对是个特例。你看啊,上面的约束条件都是等式,但事实上很多情况都是不等式。这就是我们的拉格朗日乘数法(乘子法)的扩展KKT问题。
##1.2 KKT(Karush–Kuhn–Tucker conditions)问题

在1.1中,约束机制的泛化了的就是KKT。KKT的名字让人的意思不明所以,其实就是一般约束优化问题极值点一阶必要条件:
如果x∗x^*x∗是约束条件的局部最小,那么有如下条件
{s.t.gi(x)=0i=1,2...,ps.t.hj(x)⩽0j=1,2...,q∇f(x∗)=∑i=1pμi∇gi(x∗)+∑j=1qλj∇hj(x∗)λj∗⩾0j=1,2...,qλj∗hj(x∗)=0j=1,2...,q\left\{ \begin{matrix} s.t.\;g_{i}(x)=0\;\;\;\;i=1,2...,p\\ s.t.\;h_{j}(x) \leqslant 0\;\;\;\;j=1,2...,q\\ \nabla f(x^{*})=\sum _{i=1}^{p}\mu _{i}\nabla g_{i}(x^{*})+\sum _{j=1}^{q}\lambda _{j}\nabla h_{j}(x^{*})\\ \lambda_{j}^*\geqslant 0\;\;\;\;j=1,2...,q\\ \lambda_{j}^*h_j(x^*)= 0\;\;\;\;j=1,2...,q\\ \end{matrix}\right.⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧​s.t.gi​(x)=0i=1,2...,ps.t.hj​(x)⩽0j=1,2...,q∇f(x∗)=∑i=1p​μi​∇gi​(x∗)+∑j=1q​λj​∇hj​(x∗)λj∗​⩾0j=1,2...,qλj∗​hj​(x∗)=0j=1,2...,q​

因为可以利用正负号更改最大最小,大于等于号,所以上式基本可以表达所有情况。
但一定要注意大于号的方向。
那么这就是变成解x∗x^*x∗的行为。(同时也要注意,上式仅仅是必要条件。)
为什么"极值点’一阶’必要条件"?在第三个式子解出的x∗x^*x∗是驻点,我们同时需要判断二阶Hassion矩阵。这个式子是怎么来?还得从凸函数好好说起。
#2 凸函数
我按照点集的观点重新审视下点线面。初中时,遇到一种四边形的说法“凸四边形”,“凹四边形”。老师讲凸四边形就是“四个角都凸出来的,如平行四边形梯形等;凹四边形就是有角凹进去了的四边形,如下图”。

这么说的确很容易理解,但不是数学语言。详细描述这个问题很复杂,可以先从点集入手。
##2.1 仿射,凸集

基础:过两点x1,x2x_1,x_2x1​,x2​的直线表示为x=θx1+(1+θ)x2,θ∈Rx = \theta x_1+(1+\theta)x_2,\theta \in Rx=θx1​+(1+θ)x2​,θ∈R,即Ax=bAx=bAx=b的解。我们借助直线定义仿射。

如果一个集合C∈RnC\in R^nC∈Rn是仿射的,则过C中两点间的直线(注意不是线段)也在C中,例如上面的 x=θx1+(1+θ)x2,θ∈Rx = \theta x_1+(1+\theta)x_2,\theta \in Rx=θx1​+(1+θ)x2​,θ∈R 注意C∈RC\in RC∈R

如果一个集合C∈RnC\in R^nC∈Rn是凸的,则过C中两点间的线段(注意不是直线段)也在C中。即对于任意x1,x2∈Cx_1,x_2 \in Cx1​,x2​∈C,有x=θx1+(1+θ)x2,1⩾θ⩾0x = \theta x_1+(1+\theta)x_2,1 \geqslant \theta \geqslant 0x=θx1​+(1+θ)x2​,1⩾θ⩾0 注意C∈RC\in RC∈R
下图中左边是凸的,右边不是凸的

2.2 凸函数

  • 凸集合交集是凸集
  • 凸函数的定义是根据凸集来的:
    f(x)是凸函数,则有
    f(λx1+(1−λ)x2)⩽λf(x1)+(1−λ)f(x2)f(\lambda x_1+(1-\lambda)x_2)\leqslant \lambda f(x_1)+(1-\lambda)f(x_2) f(λx1​+(1−λ)x2​)⩽λf(x1​)+(1−λ)f(x2​)
    f称为I上的凸函数,当且仅当其上境图(在函数图像上方的点集)为一个凸集
  • 凸函数与我们以前接触的函数不一样。因为是翻译问题,数学上的因为形状凹下去,所以将Convex翻译为凹函数,但Convex Set又叫凸集合来定义的。这里有必要把老版本翻译的凹函数凸过来。

2.3凸函数的性质

  • 一元二阶可微的函数在区间上是凸的,当且仅当它的二阶导数是非负的;这可以用来判断某个函数是不是凸函数。如果它的二阶导数是正数,那么函数就是严格凸的,但反过来不成立。根据上节课的经验,当一元变为多元时,可以判断Hassion矩阵是否正定。
  • 保凸运算(这个很重要)
    1. f是凸函数,自变量的线性组合,f(Ax+b)也是凸函数
    2. f1,⋯,fmf_1,\cdots,f_mf1​,⋯,fm​为凸函数,w1,⋯,wm⩾0w_1,\cdots,w_m \geqslant 0w1​,⋯,wm​⩾0,则∑i=1mwifi\sum_{i=1}^{m} w_if_i∑i=1m​wi​fi​也是凸函数
    3. f1,⋯,fmf_1,\cdots,f_mf1​,⋯,fm​为凸函数,逐点最大f(x)=sup{f1(x),⋯,fm(x)}f(x)=sup\{f_1(x),\cdots,f_m(x)\}f(x)=sup{f1​(x),⋯,fm​(x)}也是凸函数。这条性质跟实际应用时可以给正则化一个解释。加了正这则化的凸函数也是凸函数,所以正则化对原函数的解题方法无影响。
    4. g,h为凸函数,扩展的h非递减(这条性质很重要)。则f(x)=h(g(x))也是凸函数。
  • 对于凸函数f的α\alphaα水平子集Sα={x∣f(x)≤a}S_\alpha = \{x | f(x) \le a\}Sα​={x∣f(x)≤a}是凸集。水平子集是凸集的函数不一定是凸函数。这样的函数称为拟凸函数。
    ##2.2 凸优化问题
    还是回到上面我们的条件极值问题,我们这里加上几个条件,让它变成的功能强大的函数:
    minimizef(x){s.t.gi(x)=0i=1,2...,ps.t.hj(x)⩾0j=1,2...,qminimize \;\;\;\;\; f(x)\\ \left\{ \begin{matrix} s.t.\;g_{i}(x)=0\;\;\;\;i=1,2...,p\\ s.t.\;h_{j}(x) \geqslant 0\;\;\;\;j=1,2...,q \end{matrix}\right.minimizef(x){s.t.gi​(x)=0i=1,2...,ps.t.hj​(x)⩾0j=1,2...,q​
    但我们做了额外要求:
  1. 目标函数是凸函数我们的目标函数f(x)是凸函数
  2. 不等式约束函数也是凸函数,这里要注意不等号的方向。有些数不等号方向不同,这里一定要注意。这条要求的实质条件是围成的可行域交集是个凸集。由于具有不同的形式,在后面推导KKT的过程会有不同。
  3. 等式约束(这里的gj(x)g_j(x)gj​(x))必须是仿射的。
    这就是在一个凸集上极小化一个凸的目标函数问题。
    凸优化问题的局部最优等于全局最优
    我们费尽心思搞的凸优化形式,目的就是就求目标函数在可行域上的的极值。这里是可行域,因为还会有正无穷或负无穷(但我们视为可行域是空的,如求y=x的极值)。

凸优化里面,KKT不仅仅是必要条件,而是充分必要条件
具体原因还得详细解释下KKT的由来。

#3 KKT(Karush–Kuhn–Tucker conditions)问题的解释——对偶问题
##3.1 普通的条件极值问题
首先我们不管什么凸函数不凸函数。还是熟悉的条件极值问题。

注意:目标函数*“最小化问题”*与h函数的*“不等号方向”*是配对的;
上面的同样的式子为了普遍性,故意不转化成这种情况。

minimizef(x){s.t.gi(x)=0i=1,2...,ps.t.hj(x)⩽0j=1,2...,qminimize \;\;\;\;\; f(x)\\ \left\{ \begin{matrix} s.t.\;g_{i}(x)=0\;\;\;\;i=1,2...,p\\ s.t.\;h_{j}(x) \leqslant 0\;\;\;\;j=1,2...,q\\ \end{matrix}\right.minimizef(x){s.t.gi​(x)=0i=1,2...,ps.t.hj​(x)⩽0j=1,2...,q​
然后我们用拉格朗日法合并目标函数与约束:
L(x,μ,λ)=f(x)+∑i=1pμigi(x)+∑j=1qλjhj(x)L(x,\mu,\lambda)= f(x)+\sum _{i=1}^{p}\mu _{i}g_{i}(x)+\sum _{j=1}^{q}\lambda _{j}h_{j}(x)L(x,μ,λ)=f(x)+∑i=1p​μi​gi​(x)+∑j=1q​λj​hj​(x)
这下我们知道L(x,μ,λ)L(x,\mu,\lambda)L(x,μ,λ)是关于μ,λ\mu,\lambdaμ,λ的仿射函数。
当λ⩾0,x0\lambda \geqslant 0 , x_0λ⩾0,x0​为一个区域内符合条件的点时,我们取区间D内x的逐点最小值,就是下确界inf,有:
g(μ,λ)=inf⁡x∈DL(x0,μ,λ)=f(x0)+∑i=1pμigi(x0)+∑j=1qλjhj(x0)g(\mu,\lambda)=\inf_{x\in D} L(x_0,\mu,\lambda)= f(x_0)+\sum _{i=1}^{p}\mu _{i}g_{i}(x_0)+\sum _{j=1}^{q}\lambda _{j}h_{j}(x_0)g(μ,λ)=x∈Dinf​L(x0​,μ,λ)=f(x0​)+i=1∑p​μi​gi​(x0​)+j=1∑q​λj​hj​(x0​)
L(x,μ,λ)L(x,\mu,\lambda)L(x,μ,λ)是关于μ,λ\mu,\lambdaμ,λ的仿射函数(我们暂定算凹的),那么g(μ,λ)g(\mu,\lambda)g(μ,λ)应该算凹(或者仿射)吧,但肯定是非凸的。
我们还知道了f(x0)f(x_0)f(x0​)后面的项一个负数,一个零。肯定有
g(μ,λ)⩽f(x0)+∑i=1pμigi(x0)+∑j=1qλjhj(x0),↓g(μ,λ)⩽f(x0)g(\mu,\lambda) \leqslant f(x_0)+\sum _{i=1}^{p}\mu _{i}g_{i}(x_0)+\sum _{j=1}^{q}\lambda _{j}h_{j}(x_0),\\ \downarrow \\ g(\mu,\lambda) \leqslant f(x_0)g(μ,λ)⩽f(x0​)+i=1∑p​μi​gi​(x0​)+j=1∑q​λj​hj​(x0​),↓g(μ,λ)⩽f(x0​)
这样区间内x的最优解x∗x^*x∗肯定有
g(μ,λ)⩽f(x∗)=p∗g(\mu,\lambda) \leqslant f(x^*) = p^*g(μ,λ)⩽f(x∗)=p∗
##3.2 对偶问题
那么任意一个相似条件极值(我没说凹凸性)都可以求它的对偶问题,且这个对偶问题是个凸优化问题:
maximizeg(μ,λ)s.t.λ⩾0maximize \;\;\;\; g(\mu,\lambda)\\ s.t.\;\lambda \geqslant 0maximizeg(μ,λ)s.t.λ⩾0
设整理这里最优值为d∗d^*d∗,那么d∗⩽p∗d^*\leqslant p^*d∗⩽p∗

但是当“强对偶”现象情况发生时,等号成立。
什么时候“强对偶”现象发生?
答:原问题是个凸优化问题。。。

在经过一些不重要的证明(我懒不想写)我们得到凸优化求全局极值的充分必要条件就是KKT。。。。

机器学习第四课:SVM前置知识点(凸优化问题)相关推荐

  1. 斯坦福大学机器学习第四课“逻辑回归(Logistic Regression)”

    斯坦福大学机器学习第四课"逻辑回归(Logistic Regression)" 本次课程主要包括7部分: 1) Classification(分类) 2) Hypothesis R ...

  2. Coursera公开课笔记: 斯坦福大学机器学习第四课“多变量线性回归(Linear Regression with Multiple Variables)”

    Coursera公开课笔记: 斯坦福大学机器学习第四课"多变量线性回归(Linear Regression with Multiple Variables)" 斯坦福大学机器学习第 ...

  3. 第四课 CSS核心知识点

    一.块元素: 特点: 1.默认显示在页面的左上角,内容也是默认在左上角 2.默认单独占满一行(占满整个文档流) 常用的块级元素: p.h1-h6.ul li.ol li.div.hr.table. 二 ...

  4. 机器学习(四)——SVM(2)

    http://antkillerfarm.github.io/ 拉格朗日对偶(续) 如果w不满足约束,也就是gi(w)>0g_i(w)>0或hi(w)≠0h_i(w)\ne 0.这时由于L ...

  5. 机器学习(四)SVM之根据相关数据预测交通流量

    根据相关数据预测交通流量 实验内容 准备工作 详细步骤 实验结果 实验内容 我们将建立一个SVM来根据相关数据预测交通流量. 准备工作 我们将要使用的数据集可以在https://archive.ics ...

  6. 机器学习——凸优化基础知识

    文章目录 一.计算几何 (一)计算几何是研究什么的 (二)直线的表达式 二.凸集 (一)凸集是什么 (二)三维空间中的一个平面如何表达 (三)更高维度的"超平面"如何表达 三.凸函 ...

  7. 斯坦福大学机器学习第三课“多变量线性回归“

    斯坦福大学机器学习第三课"多变量线性回归(Linear Regression with Multiple Variables)" 斯坦福大学机器学习第四课"多变量线性回归 ...

  8. 机器学习之支持向量机(SVM)学习笔记-Datawhale Task05

    Author Bryce230 e-mail 2540892461@qq.com Software win10,Pycharm2019.3.3,Python3.7.7 SVM笔记-Datawhale ...

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

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

最新文章

  1. 一些权限管理方面的文章
  2. 数据结构——快速排序
  3. python3中字符串编码常见种类_Python基础篇—标准数据类型—String字符串编码问题...
  4. 现在还需要掌握linux文本模式吗?
  5. vuepress文档服务器,使用 vuepress 快速搭建文档
  6. 探索性数据分析,这8个流行的 Python可视化工具就够了
  7. query和prototype库冲突的解决方法
  8. Maven学习总结(58)—— 常用的 Maven 镜像地址和中央仓库地址汇总
  9. 【面试】最容易被问到的N种排序算法!
  10. background 图片比例缩小_如何更精准控制背景图片?
  11. 机器视觉中偏振片的应用
  12. 【Android】使用MPAndroidChart过程中BarChart的几点心得
  13. 声音场景分类问题探讨
  14. WordPress按钮人机验证(1)
  15. idea当中批量替换变量名字
  16. Android 自定义相机 Camera 图片方向问题
  17. SMTP判断邮箱是否存在 检查email地址是否真实存在
  18. 使用git工具提交上传代码到GitHub上或者远程仓库
  19. citus调研(三)- 优势与限制
  20. 解决英文、特殊字符自动换行

热门文章

  1. Linux 在bash.bashrc中添加 一个目录
  2. Ubuntu 18.04环境配置系统设置
  3. 把Windows资源管理器结束任务了,电脑黑屏的解决方案
  4. 苹果手机数据线充不了电_平板充电柜为什么充不了电,别急可能是以下原因!...
  5. 对马尔可夫链(Markov Chain, MC)的学习
  6. java控制台打印输出 中文乱码 解决办法
  7. java swing实训项目(图书管理系统)
  8. python打开各种文件格式_使用python读取数据科学最常用的文件格式(转)
  9. 计算机组成的了LDAR,静态存储器实验报告
  10. 人类海马体中缓慢的Theta-gamma相幅耦合支持新的情景记忆的形成