0. 前言
// 可直接跳过本小节
以支持向量积(Support Vector Machine, SVM) 的基本型引入拉格朗日乘子法(Lagrange Multipliers).
min 1 2 ∥ ω ∥ 2 s . t . y i ( ω T x i + b ) ⩾ 1 , i = 1 , 2 , … , m . \min \frac{1}{2} \lVert \omega \rVert ^{2} \\ s.t.~~y_{i}(\omega^{T}x_{i} + b) \geqslant 1,~~i=1,2,\dots,m. min21∥ω∥2s.t. yi(ωTxi+b)⩾1, i=1,2,…,m.
这式子本身是一个凸二次规划问题,能直接用现成的优化计算包求解,但是我们可以有更加高效的办法,那就是使用拉格朗日乘子法,其拉格朗日函数就可以写为:
L ( ω , b , α ) = 1 2 ∥ ω ∥ 2 + ∑ i = 1 m α i ( 1 − y i ( ω T x i + b ) ) L(\omega, b, \alpha)=\frac{1}{2} \lVert \omega \rVert ^{2} + \sum_{i=1}^{m}\alpha_{i}(1-y_{i}(\omega^{T}x_{i} + b)) L(ω,b,α)=21∥ω∥2+i=1∑mαi(1−yi(ωTxi+b))
1. 最优化问题
拉格朗日乘子法是求解最优化问题中最常见的方法,一般情况下,最优化问题会碰到一下三种情况:
- 无约束条件
- 有等式约束条件
- 有不等式约束条件,像上文中的SVM基本型一样
情况1是最简单的情况,解决方法通常是函数对变量求导,令求导函数等于0的点可能是极值点,将结果带回原函数进行验证即可。
拉格朗日主要处理2、3两种情况,在第3种情况上需要加上KKT条件(Karush-Kuhn-Tucker),本文将主要对拉格朗日进行详细讲述,KKT条件将在另外一篇博文进行讲解。
2. 拉格朗日乘子法
设目标函数为 f ( x ) f(x)