第9.5节 拉格朗日乘数法
各位朋友大家好,欢迎来到月来客栈,我是掌柜空字符。
本期推送内容目录如下,如果本期内容对你有所帮助,欢迎点赞、转发支持掌柜!
9.5 拉格朗日乘数法 9.5.1 条件极值 9.5.2 求解条件极值 9.5.3 小结 引用
9.5 拉格朗日乘数法
在正式介绍SVM算法的求解过程之前,笔者先带着各位读者回顾一下拉格朗日乘数法,因为这同时也是第10章中用来对聚类算法求解的工具。可能对于一部分读者来讲,使用拉格朗日乘数法已经是很多年前的事情了,其中的细节也自然慢慢模糊了起来,但是对于拉格朗日乘数法的作用大家都不会忘记,那就是用来求解条件极值。既然大多数读者的记忆都停留在这个地方,那么笔者下面就从条件极值开始简单地介绍一下拉格朗日乘数法。
这里首先以一个例题来重温条件极值的求解过程。求解目标函数在约束条件下的条件极值。
首先列出拉格朗日函数
由式(9.37)可得函数F的驻点为
求解方程组式(9.38)便可求得、、分别为
由此可以知道,目标函数在约束条件下的条件极值为。不过为什么可以通过这样的方法求得条件极值呢?
9.5.1 条件极值
在数学优化问题中,拉格朗日乘数法(Lagrange Multiplier)是一种用于求解等式约束条件下局部最小(最大)值的策略。它的基本思想是通过将含约束条件的优化问题转化为无约束条件下的优化问题,以便于得到各个未知变量的梯度,进而求得极值点[1],因此,用一句话总结:拉格朗日乘数法是一种用来求解条件极值的工具。什么又是条件极值呢? 所谓条件极值是指,在一定约束条件下(通常为方程)目标函数的极值就被称为条件极值。
如图9-10所示,目标函数在其定义域上的极大值(也是最大值)为,但如果此时对其施加一个约束条件,这就等价地告诉函数取得极值点同时还要满足约束条件[2],因此,在约束条件下的极值点只能在处获得(因为此时的,而不满足约束条件)。
现在,相信各位读者对条件极值已经有了一个直观上的理解,接下来要探究的是怎么才能求得这个极值。
9.5.2 求解条件极值
通常来讲,对于包含等式约束条件目标函数的条件极值可以通过拉格朗日乘数法(Lagrange Multipliers)进行求解,因此,对于多元函数在多个约束条件下的条件极值,利用拉格朗日乘数法求解的步骤可以总结为[2]
1. 作拉格朗日函数
其中,和为拉格朗日乘子。
2. 求多元函数的驻点
解如下方程组求得驻点
此时便是可能的条件极值。
9.5.3 小结
在本节中,笔者首先通过一个引例介绍了如何通过拉格朗日乘数法求解条件极值,然后总结了如何用拉格朗日乘数法求解多元函数的条件极值。对于拉格朗日乘数法,我们在后续介绍聚类算法的求解过程中同样也会用到,因此有必要知道其具体求解步骤。
引用
[1] https://en.wikipedia.org/wiki/Lagrange_multiplier
[2] 徐小湛.高等数学学习手册[M].北京:科学出版社,2005.