热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

机器学习凸优化问题

1.凸集与凸函数2.凸优化问题3.拉格朗日乘子法4.对偶问题,slater条件,kkt条件1.凸集与凸函数凸集:在点集拓扑学与欧几里得空间中,凸集是一个点集,其中每两点之间的直线上

1.凸集与凸函数

2.凸优化问题

3.拉格朗日乘子法

4.对偶问题,slater条件,kkt条件 

 

 

 

1.凸集与凸函数

 

凸集:在点集拓扑学与欧几里得空间中,凸集是一个点集,其中每两点之间的直线上的点都落在该点集中。千言万语不如一张图来的明白,请看下图:

 

 

凸函数:一个定义在向量空间的凸子集c(区间)上的实值函数f,如果在其定义域c上的任意两点x,y以及t∈[0,1]有: 


这里写图片描述
则该函数为凸函数!凸函数另一个判别方式是:如果一个凸函数是一个二阶可微函数,则它的二阶导数是非负的。上图:

 

 






   

2.凸优化问题



  • 凸优化:凸优化是指一种比较特殊的优化,是指求取最小值的目标函数为凸函数的一类优化问题。其中,目标函数为凸函数且定义域为凸集的优化问题称为无约束凸优化问题。而目标函数和不等式约束函数均为凸函数,等式约束函数为仿射函数,并且定义域为凸集的优化问题为约束优化问题。

  • 凸优化性质: 1、目的是求取目标函数的最小(优)值; 
    2、目标函数和不等式约束函数都是凸函数,定义域是凸集; 
    3、若存在等式约束函数,则等式约束函数为仿射函数; 
    4、对于凸优化问题具有良好的性质,局部最优解便是全局最优解。




 

一个凸优化问题用公式描述为:

            

所以其目标函数f(x)以及不等式约束条件g(x)便是凸函数,而等式约束条件h(x)是仿射函数。




  • 常见的几种凸优化问题









线性规划:如果凸优化中的目标函数ff和不等式约束条件gigi都为线性函数,那么此时的凸优化问题就成为了线性规划问题,其格式如下:

                

二次规划:如果凸优化中的目标函数f">ff为 二次函数,那么此时的凸优化问题就成为了二次规划问题,其格式如下:

f">             

二次约束二次规划:如果在上述二次规划中再加入一个令其不等式约束条件也为二次的,那么这时候我们称该问题为二次约束二次规划问题, 其格式如下: 

              

 

 

 

 

3.拉格朗日乘子法


拉格朗日乘子法的作用:求函数f(x1,x2…)在g(x1,x2…)=0的约束条件下的极值

 

拉格朗日乘子法的操作过程 



  • 定义新函数: 





  • 利用偏导方式列出以下方程



  

 



  • 求解出x,y,σ的值带入f(x,y,σ)便是目标函数的极值



 

 

4.对偶问题,slater条件,kkt条件 

要说对偶问题,则需要从凸优化问题开始说起。假设我们现在来求解上面的那个凸优化问题的最优解:

                            

观察上面的最优化问题,便是在一定的约束条件下求解函数的极值,我们上面已经说过拉格朗日乘子法啦,所以这里便用到了。

使用拉格朗日乘子法针对上面的最优化问题有: 

         

需要明确:其中α≥0、β任意,均为拉格朗日乘子,i=1,2,…,p且j=1,2,…,q

如果按照我们上面谈到的拉格朗日乘子法的思路,则应该让l(x,α,β)对x以及参数α和β进行求导,然后得出结果带入原始便可求出我们需要的最优解。

但需要注意两点: 
1、这里参数α和β总共p+q个,如果全部求偏导工作量太大,不现实; 
2、并且大家有没有想过,这个问题可能根本就没有最优解这种情况存在。

 

针对上面情况,我们便引出了换一种思路,那就是利用对偶问题,也就是将原问题转化成其对偶问题进行求解。

下面和大家先说一下对偶问题的基本思想,然后我们再继续从上面的问题出发,推导其对偶问题,进行求解。

对偶问题的性质:无论原命题的形式如何,对偶问题都是一个凸优化问题,还记得凸优化问题的好处吧,那就是局部最优解就是全局最优解,并且容易求解,所以我们将问题转化为其对偶问题就简化了问题的求解思路。

 

上面我们利用拉格朗日乘子法得到了如下式子:

现在我们自定义一个函数如下:

      

分析上面的自定义函数有:

      

对上面的式子进行分析: 
(1)式说明,当目标函数的约束条件都满足时,则自定义的函数便是上面需要求解的目标函数f(x),(2)则是只要目标函数的约束条件只有一个不满足,则自定义的函数便等于无穷大!

所以我们便可以认为自定义的函数θ(x) 是对原理优化问题中的约束条件进行了吸收,是原来的约束优化问题变为无约束优化问题(相对于原来变量x 无约束了),即我们可以将最初的优化问题写成:     

        

上式便是我们需要优化的原问题 
原问题的 对偶问题 便是:
 

    

下面我们假设假命题为p,对偶问题为q!当然对偶问题已经不等价于原问题了,但是二者是存在一定联系的,下面我们来讲解二者的联系,以及如何通过求解对偶问题来得到原问题的最优解!

这里我们令: 


这里写图片描述

 


这里写图片描述

所以有: p>=q 
解释:大家想一下,函数l中最大值中最小的一个总比最小值中最大的那一个要大,也就是对偶问题提供了原问题最优值的一个下界。

但是大家想,我们是想通过对偶问题求解原问题的最优解,所以只有当二者相等时即p=q,才可能将原问题转化成对偶问题进行求解。当然,当满足一定条件的情况下,便有p=q。而这个条件便是 slater条件和ktt条件

slater条件:

slater条件官方正规定义:存在x,使得不等式约束g(x)<=0严格成立。 
slater条件性质: slater条件是原问题p可以等价于对偶问题q的一个充分条件,该条件确保了鞍点的存在。

 

kkt条件:

 

大家已经知道slater条件已经确保了鞍点的存在,但是鞍点不一定就是最优解啊,所以kkt条件的作用便体现出来了。 
kkt条件便是确保鞍点便是原函数最优解的充分条件,当然对于我们前面举得那个例子,当原问题是凸优化问题时,则kkt条件便是鞍点便是最优解的充要条件。

kkt条件描述为一下三个条件: 



  •       

 

 

    

 

    

 

解释:第一个约束条件表明:最优点x必须满足所有等式及不等式限制条件, 也就是说最优点必须是一个可行解, 这一点自然是毋庸置疑的; 

第二个约束条件表明:在最优点x, ∇f必须是∇gi和∇hj的线性組合; 
第三个约束条件表明:拉格朗日乘子不等式的一些限制,对于不等式的拉格朗日乘子限制条件有方向性, 所以每一个α都必须大于或等于零, 而等式限制条件没有方向性,只是β不等于0。

这样对于slater条件和kkt条件都十分清楚了吧,并且也知道了他们的作用!这样我们最初的求解凸优化问题便转化为求解其对偶问题。当前我们的优化目标便是: 


这里写图片描述
因此我们先让l函数对x求导然后最小化,得出一个优化函数,然后在让这个优化函数对α,β求导,求出参数α,β!这样再待会原问题中,便可得到最优解,而下面我们要将的 smo算法(序列最小化算法),正是用于求解参数α,β的!

 

 

 

 

 

 引用以下文章:

https://blog.csdn.net/batuwuhanpei/article/details/46562459

https://blog.csdn.net/feilong_csdn/article/details/62427148

 



推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 近年来,大数据成为互联网世界的新宠儿,被列入阿里巴巴、谷歌等公司的战略规划中,也在政府报告中频繁提及。据《大数据人才报告》显示,目前全国大数据人才仅46万,未来3-5年将出现高达150万的人才缺口。根据领英报告,数据剖析人才供应指数最低,且跳槽速度最快。中国商业结合会数据剖析专业委员会统计显示,未来中国基础性数据剖析人才缺口将高达1400万。目前BAT企业中,60%以上的招聘职位都是针对大数据人才的。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 词袋模型的通俗介绍
    词,袋, ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 数据结构与算法的重要性及基本概念、存储结构和算法分析
    数据结构与算法在编程领域中的重要性不可忽视,无论从事何种岗位,都需要掌握数据结构和算法。本文介绍了数据结构与算法的基本概念、存储结构和算法分析。其中包括线性结构、树结构、图结构、栈、队列、串、查找、排序等内容。此外,还介绍了图论算法、贪婪算法、分治算法、动态规划、随机化算法和回溯算法等高级数据结构和算法。掌握这些知识对于提高编程能力、解决问题具有重要意义。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 电销机器人作为一种人工智能技术载体,可以帮助企业提升电销效率并节省人工成本。然而,电销机器人市场缺乏统一的市场准入标准,产品品质良莠不齐。创业者在代理或购买电销机器人时应注意谨防用录音冒充真人语音通话以及宣传技术与实际效果不符的情况。选择电销机器人时需要考察公司资质和产品品质,尤其要关注语音识别率。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了在Python张量流中使用make_merged_spec()方法合并设备规格对象的方法和语法,以及参数和返回值的说明,并提供了一个示例代码。 ... [详细]
  • 本文详细介绍了商汤科技面试中涉及的CV算法面经内容,包括CornerNet的介绍与CornerPooling的解决方案、Mimic知识蒸馏的实现方式、MobileNet的特点、普通卷积和DW PW卷积的计算量推导、Residual结构的来源等。同时还讨论了在人脸关键点和检测中的mimic实现方式、pose对人脸关键点的提升作用、目标检测中可能遇到的问题以及处理检测类别冲突的方法。此外,还涉及了对机器学习的了解程度和相似度分析的问题。 ... [详细]
  • 本文介绍了贝叶斯垃圾邮件分类的机器学习代码,代码来源于https://www.cnblogs.com/huangyc/p/10327209.html,并对代码进行了简介。朴素贝叶斯分类器训练函数包括求p(Ci)和基于词汇表的p(w|Ci)。 ... [详细]
  • 建立分类感知器二元模型对样本数据进行分类
    本文介绍了建立分类感知器二元模型对样本数据进行分类的方法。通过建立线性模型,使用最小二乘、Logistic回归等方法进行建模,考虑到可能性的大小等因素。通过极大似然估计求得分类器的参数,使用牛顿-拉菲森迭代方法求解方程组。同时介绍了梯度上升算法和牛顿迭代的收敛速度比较。最后给出了公式法和logistic regression的实现示例。 ... [详细]
  • 前言:拿到一个案例,去分析:它该是做分类还是做回归,哪部分该做分类,哪部分该做回归,哪部分该做优化,它们的目标值分别是什么。再挑影响因素,哪些和分类有关的影响因素,哪些和回归有关的 ... [详细]
author-avatar
滞留童年车
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有