这几天一直在看支持向量机,然后就是大量大量的数学公式,一直迷迷糊糊的,然后一直遇到拉格朗日,拉格朗日,原来数学基础也不好,没怎么学过,于是下定决心要把拉格朗日乘子法搞懂,花了几天,看了一些文章,算是对拉格朗日乘子法有了简单的了解,下面就和大家简单的分享分享啦!
  
  我们在求解优化问题的时候,可能小伙伴们遇到的最大的困难就是约束条件了,想想如果没有约束条件是一件多么愉快的事情,但是往往事与愿违哈哈!一般我们遇到比较简单一点问题的可能就是等式约束,但是稍微复杂一点的题目都会涉及到不等式约束,所以,这个时候就要根据实际情况选取不同的方法咯。一般情况下,最优化问题会有三类:

(一)、无约束条件
  这种情况想都不用想,直接对变量求导等于0,代入原函数验证即可。

(二)、等式约束条件
  我们假定目标函数为f(x),约束条件为h_k(x)。
     minf(x) m i n f ( x ) min f(x)     (最大值最小值问题可以相互转化)
     s.t. hk(x)=0,k=1,2,3... s . t . h k ( x ) = 0 , k = 1 , 2 , 3... s.t.  h_k(x)=0 ,k=1,2,3...
  我们原来高中学过的消元法不失为一种好方法,但是毕竟比较Low,体现不出优秀的你的水平哈哈,不开玩笑了,主要是消元的时候会很麻烦,比如说有高次的情况,开根号带来了计算时许多不便之处,而拉格朗日就厉害了,为什么这么讲呢,我们一起来看看:
  拉格朗日乘子法的求解流程大概包括以下几个步骤:
   1. 构造拉格朗日函数
   2. 解变量的偏导方程
   3. 代入目标函数即可
  是不是看上去很简单,其实的确不麻烦(==,吐槽一下当时看向量机的时候,还一直纠结着看不懂,但其实本身这个方法并没有想象的那么难)。关键在于构造拉格朗日函数,后面求解实际上就是高数里面基本的求偏导数的问题了。我们不妨另:
    F(x,λ)=f(x)+∑lk=1λkhk(x) F ( x , λ ) = f ( x ) + ∑ k = 1 l λ k h k ( x ) F(x,\lambda) = f(x)+\sum_{k=1}^l \lambda_k h_k(x)    (公式不好打!!!)

  然后分别对每一个变量求导,得出来的解代入目标函数就ok了!

    ∂Fλk=0 ∂ F λ k = 0 \frac{\partial F}{\lambda _k}=0  ∂Fxi=0 ∂ F x i = 0 \frac{\partial F}{x _i}=0

(三)、不等式约束条件
  不等式约束相比于等式约束,要复杂一点,而且通常情况下,不等式约束和等式约束总喜欢一起出现,在这里,为了更好的解决该问题,除了拉格朗日乘子外,我们引入了KKT条件。什么是KKT条件呢?KKT条件是怎么来的呢?我们不妨先看看我们的问题:
        minf(x) m i n f ( x ) min f(x)
      s.t. hi(x)=0,i=1,2,3...p s . t . h i ( x ) = 0 , i = 1 , 2 , 3... p s.t.  h_i(x)=0 ,i=1,2,3...p
      s.t. gj(x)<=0,j=1,2,3...q s . t . g j ( x ) <= 0 , j = 1 , 2 , 3... q s.t.   g_j(x)

  那么我们定义的拉格朗日函数又是什么呢,其实很容易想到:

    F(x,λ,l)=f(x)+∑pi=1λihi(x)+∑qj=1ujgj(x) F ( x , λ , l ) = f ( x ) + ∑ i = 1 p λ i h i ( x ) + ∑ j = 1 q u j g j ( x ) F(x,\lambda,l) = f(x)+\sum_{i=1}^p \lambda_i h_i(x)+\sum_{j=1}^q u_j g_j(x)

  其中,f(x)是目标函数, hi(x) h i ( x ) h_i(x)是第i个等式约束条件, λi λ i \lambda _i是对应的约束系数, gj(x) g j ( x ) g_j(x)是不等式约束, uj u j u _j是对应的约束系数。这里把目标函数,等式约束,不等式约束融合到了一个式子里,这时候KKT约束就出场了:

 (1). F(x,λ,l) F ( x , λ , l ) F(x,\lambda,l)** 对 x x x 求偏导为 0;

 (2). h(x)=0 h ( x ) = 0 h(x)=0

 (3). a∗g(x)=0 a ∗ g ( x ) = 0 a*g(x)=0

  至于为什么这么来的,由于时间问题不跟大家作详细的推导啦,网上百度一下到处都有的。(附个链接:可以随便看看,讲的挺好的)
  基于KKT条件,不等式约束条件的问题基本也就解决了,下面来说说我自己的一点心得吧!
第一点:拉格朗日乘子法求解优化问题是很有效的方法,对于限制条件比较多的情况下,特别是限制条件较为复杂的情况下,利用该方法可以很容易的求解出来。
第二点:约束条件其实就是限定了问题的解决范围,学会如何转化和考量限制条件是解决问题的关键。
第三点:基础知识的重要性,比如说高数如果学不好的话,在KKT条件的推导过程中,会遇到很多痛苦(对于数学基础不好的我感触尤深 = =)。
  
  就这样啦,第一次博客,问题挺多的,后面再加强!!!

基础数学知识(一)——拉格朗日乘子法相关推荐

  1. 拉格朗日乘子法(Lagrange Multiplier)和KKT条件

    拉格朗日乘子法(Lagrange Multiplier)和KKT条件 一:前言 如果我们现实生活中的多元值求最优化的问题,我们会遇到一下三种场景: 无条件约束的优化问题 有等式约束的优化问题 有不等式 ...

  2. 拉格朗日乘子法 KKT条件

    目录 1. 拉格朗日乘子法用于最优化的原因 2. 最优化问题三种情况 2.1 无约束条件 2.2 等式约束条件:拉格朗日乘子法 2.3 不等式约束条件:KKT 3. Lagrange对偶函数 3.1  ...

  3. 【java机器学习】支持向量机之拉格朗日乘子法解释

    什么是拉格朗日乘子法 按照维基百科的定义,拉格朗日乘数法是一种寻找多元函数在其变量受到一个或多个条件的约束时的极值的方法.用数学式子表达为: 简单理解就是,我们要在满足 这个等式的前提下,求 函数的最 ...

  4. 拉格朗日乘子法几何意义

    为什么出现拉格朗日乘子法? 最短路径问题 从几何意义中获得灵感: 从数学公式中获得灵感 推广到高维空间 一个最短路径问题 假设你在M点,需要先到河边(上图右侧曲线 )再回到C点,如何规划路线最短? 假 ...

  5. 机器学习--支持向量机(二)拉格朗日乘子法详解

    上节我们从线性回归模型出发详细阐述了支持向量的来源,以及为什么需要寻找支持向量,如何找到这决策函数等问题,最后问题转化为下面的求最大值问题: 先说明一下分类就是如果:          则被分为    ...

  6. 拉格朗日乘子法:写得很通俗的文章

    拉格朗日乘子法            最近在学习 SVM 的过程中,遇到关于优化理论中拉格朗日乘子法的知识,本文是根据几篇文章总结得来的笔记.由于是刚刚接触,难免存在错误,还望指出?.另外,本文不会聊 ...

  7. 机器学习基础:拉格朗日乘子法

    在凸优化问题中,拉格朗日乘子法是最常用的方法之一. 先看个例题:求目标函数 f(x,y)=x2+y2\mathrm{f}(\mathrm{x}, \mathrm{y})=\mathrm{x}^{2}+ ...

  8. SVM中拉格朗日乘子法、KKT条件、对偶问题详解

    SVM中拉格朗日乘子法.KKT条件.对偶问题详解 创作目的 1.SVM回顾 2.拉格朗日乘子法 3.KKT条件 4.对偶问题 强对偶性证明 总结 创作目的 我是机器学习初学者,目前正在上机器学习课,老 ...

  9. 一文详解从拉格朗日乘子法、KKT条件、对偶上升法到罚函数与增广Lagrangian乘子法再到ADMM算法(交替方向乘子法)

    最近看了ADMM算法,发现这个算法需要用到许多不少前备知识,在搜索补齐这些知识的过程中感觉网上的资料与总结在零散的同时又不够清晰,在此本文对这一块的内容进行汇总,同时表达自己的一些理解. 目录 拉格朗 ...

最新文章

  1. CoRL 2020奖项公布,斯坦福获最佳论文奖,华为等摘得最佳系统论文奖
  2. android已停止三星,急,android离线打包程序三星下总报 程序 已停止
  3. 知乎高赞:有哪些你看了以后大呼过瘾的数据分析书?
  4. MIND新闻推荐冠军分享细节揭秘
  5. python3访问map
  6. 聊天室软件(服务器+图形界面客户端)
  7. 酷狗.kgtemp文件加密算法逆向
  8. 【随笔】理性国度的感性之火——浅论《报任安书》
  9. 2022 面试必刷 461 道大厂架构面试真题汇总 + 面经 + 简历模板
  10. 华为首次自曝“天才少年”成果:入职不到一年就干成这件大事,网友:值 200 万年薪!...
  11. 华硕ROG|玩家国度冰刃6双屏GX650RX Windows11原厂预装系统 工厂模式恢复安装带ASUSRecevory一键还原
  12. 数据库实体间关联关系:一对一、一对多、多对多
  13. spring中自定义注解(annotation)与AOP中获取注解___使用aspectj的@Around注解实现用户操作和操作结果日志
  14. 如何投影一个纹理 (翻译:心蓝 潘李亮)
  15. (第二场网络赛J题)Leaking Roof(bfs)
  16. 2016年7月编程语言排行榜
  17. Chrome浏览器查看、找回保存的网站账户密码
  18. IBM 的另一面http://www-31.ibm.com/innovation/cn/iter/2011v17/
  19. appium android数字字母切换键,Android自定义键盘:数字键盘和字母键盘
  20. 基于python的灰色预测模型

热门文章

  1. Arduino 74HC595驱动数码管0-9循环显示+Proteus仿真
  2. iphone有什么软件测试信号,iphone12信号测试-iphone12信号实测
  3. 如何在笔记本上设置wifi热点(菜鸟篇)
  4. Python爬取网易云音乐播放地址
  5. 为Redmine的项目加上起止时间
  6. WORD插入图题注表题注添加图表目录
  7. 【Android】通过命令行adb install 将apk下载到手机之中
  8. 信息学奥赛对大学计算机专业,关于信息学竞赛学习的几大误区,你必须得知道!...
  9. 真正理解mybatis拦截器以及Interceptor和Plugin作用
  10. Ingress-Nginx服务暴露基础学习与实践