作为一种优化算法拉格朗日乘子法主要用于解决约束优化问题,它的基本思想就是通过引入拉格朗日乘子来将含有n个变量和k个约束条件的约束优化问题转化为含有(n+k)个变量的无约束优化问题拉格朗日乘子背后的数学意义是其为约束方程梯度线性组合中每个向量的系数
以上是从别人的博客中摘过来的, 通俗地理解就是拉格朗日乘数法将目标优化函数与约束条件合并成了一个函数,这个函数没有约束下面举一个例子讲解,唤醒高数学过的拉格朗日
拉格朗日乘数法的核心思想是不变的, 不管是等式约束还是不等式约束, 但是在不等式约束使用拉格朗日乘数法的前提是不等式约束符合KKT条件, 这个不等式约束在高等数学中没有讲过
约束条件(不是这种形式的要转换成这种形式)
我们要求嘚是\(minf(x)\), 现在就是见证奇迹的时刻了
+ 将原始的问题转换成可以使用SMO算法的形式, 使用SMO算法求解方程
F(x,y,z)?u=0随着u的改变,当该曲面与曲媔 ?(x,y,z)=0相切时u取极值。设切点为
?(x,y,z)=0上所以其还满足等式:
(1)(2)两式等价于L的所有一阶偏导数为0,L称为拉格朗日函数直接对拉格朗日函数求偏导计算条件极值称为拉格朗日数乘法。
定义拉格朗日对偶函数:
鈳以证明。故L的最值p*永远大于等于g即:
这样,我们可以由对偶函数给出一个尽可能逼近q*的值即:
最终,我们可以给出原问题的对偶形式: