SVM解释:二、SVM的数学基础

本文详细介绍了支持向量机(SVM)的数学基础,包括凸优化问题、拉格朗日乘子法、KKT条件和拉格朗日对偶。首先阐述了凸优化问题的分类,接着详细解释了拉格朗日乘子法的基本思路和形式化描述,通过实例展示了如何运用拉格朗日乘子法求解只有等式约束条件的优化问题。随后,文章介绍了KKT条件,用于处理含不等式约束的优化问题,并通过例子解析了KKT条件的3个关键条件。最后,文章简要提到了拉格朗日对偶的概念,为后续的SVM理论铺垫。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本节所述的内容为与支持向量机(SVM)相关的数学基础知识。总的来说,我先介绍了凸优化问题求最优解的思路,介绍了拉格朗日乘子法和KKT条件,随后根据KKT条件给出了求解有不等式约束的凸优化问题的一种解法,即拉格朗日对偶。

我的学习体会是,如果不理解上面说的这些数学基础知识,学习SVM会寸步难行。所以我把基础知识部分当做学习SVM的第一站。当然,如果你已经了解这些,也可以直接跳到我的下一篇博客 SVM解释:三、线性可分的情况 去,或者你打算先看问题,再求数学解答,也可以先看后面的,不明白了再回过头看数学基础。

1. 凸优化问题

通常,我们要求解的函数优化问题,大致可分为以下3类:

  • 无约束条件的优化问题: m i n    f ( X ) min~~f(X) min  f(X);
  • 只有等式约束的优化问题:
    m i n    f ( X ) min~~f(X) min  f(X)
           s . t . h j ( X ) = 0 , j ∈ { 1 , 2 , … , n } ~~~~~~s.t. h_j(X) = 0, j \in \{1, 2, \dots, n\}       s.t.hj(X)=0,j{ 1,2,,n};
  • 含不等式约束的优化问题:
    m i n    f ( X ) min~~f(X) min  f(X)
           s . t . h j ( X ) = 0 , j ∈ { 1 , 2 , … , n } ~~~~~~s.t. h_j(X) = 0, j \in \{1, 2, \dots, n\}       s.t.hj(X)=0,j{ 1,2,,n}
                 g i ( X ) ≤ 0 , i ∈ { 1 , 2 , … , m } ~~~~~~~~~~~~g_i(X)\leq 0, i \in \{1, 2, \dots, m\}             gi(X)0,i{ 1,2,,m}

其中大写的 X X X表示所有自变量的集合, h j ( X ) h_j(X) hj(X)表示等式约束条件, g i ( X ) g_i(X) gi(X)表示不等式约束条件。我这里用 m i n   f ( X ) min ~f(X) min f(X)表示求取最优值的目标函数,其实不一定是求取最小值,求最大值也是可以的,我只是用这种方式表示而已。

为了讲述方便,本节中,默认所要解决的最优问题都是凸优化问题(即求取凸函数的最优解)。凸函数的解释如下:凸函数指的是那些开口朝一个方向(向上或向下)的函数。我们可以通过令其导数等于0的方法求取该函数的全局最优解(极值)。显而易见,对于非凸函数来讲,导数为0这种方法只是可以求得局部最优解(极值),而不一定是全局最优解。

上面只是我给出的一个方便理解的说明,关于凸函数的准确定义还请参考专业的数学教材。需要强调的是,后面要说的拉格朗日乘子法一定是适用于凸优化问题的,而不一定适用于其他非凸问题。

回到最上面的3类优化问题,解决方法是明确的,参考如下(注意,我默认都是针对凸优化问题):

  • 对于无约束条件的优化问题,直接对其各个自变量求导,令导数为0,得全局最优解。这是我们高中就会的东西,不多说了;
  • 对于只有等式约束的优化问题,利用拉格朗日乘子法,得全局最优解。具体步骤下面详细说;
  • 对于含不等式约束的优化问题,利用KKT条件,得全局最优解。具体步骤下面详细说;

后两类问题(尤其是对含不等式约束的优化问题),是本节(也是SVM)所重点关注的问题。我们先从拉格朗日乘子法说起。

2. 拉格朗日乘子法

2.1 基本思路

举个例子来描述拉格朗日乘子法的基本思路:

注1:本文中的例子取自博客:解密SVM系列(一):关于拉格朗日乘子法和KKT条件,这篇博客的博主讲解这个问题非常细致,推荐大家阅读。

m i n   f ( X ) = 2 x 1 2 + 3 x 2 2 + 7 x 3 2 s . t . 2 x 1 + x 2 = 1        2 x 2 + 3 x 3 = 2 \begin{aligned} min~f(X) &= 2{x_1}^2 + 3{x_2}^2 + 7{x_3}^2\\ &s.t. 2x_1 + x_2 = 1\\ &~~~~~~2x_2 + 3x_3 = 2 \end{aligned} min f(X)=2x12+3x22+7x32s.t.2x1+x2=1      2x2+3x3=2

这个例子正是我在上面说的3类情况的第二种,只有等式约束条件的优化问题。求解思路如下:

首先想到直接对3个自变量分别求偏导,令其偏导数都为0,则此时 x 1 , x 2 , x 3 x_1, x_2, x_3 x1,x2,x3都是0,看函数也是这样,当3个自变量都是0时,函数取得最小值0。但是这显然是不符合约束条件的。怎么把约束条件考虑进去呢?用拉格朗日乘子法,把改写后的约束条件乘以一个系数,然后以加的形式带入目标函数,该函数我称之为拉格朗日函数。先看看改写后的约束条件:

s . t .   2 x 1 + x 2 − 1 = 0 2 x 2 + 3 x 3 − 2 = 0 \begin{aligned} s.t. ~&2x_1 + x_2 - 1 = 0\\ &2x_2 + 3x_3 - 2 = 0 \end{aligned} s.t. 2x1+x21=02x2+3x32=0

左右移项,实际上没发生任何变化。其后,将改写后的约束条件带入目标函数,构造拉格朗日函数:

L ( X , β ) = 2 x 1 2 + 3 x 2 2 + 7 x 3 2 + β 1 ( 2 x 1 + x 2 − 1 ) + β 2 ( 2 x 2 + 3 x 3 − 2 ) L(X, \beta) = 2{x_1}^2 + 3{x_2}^2 + 7{x_3}^2 + \beta_1(2x_1 + x_2 - 1) + \beta_2(2x_2 + 3x_3 - 2) L(X,β)=2x12+3x22+7x32+β1(2x1+x21)+β2(2x2+3x32)

可见,当求得的最优解满足约束条件时, L ( X , β ) L(X, \beta) L(X,β)与原始的目标函数并没有差别(后面都是0)。这样,我们再对这个拉格朗日函数求关于各个自变量的偏导,并令这些偏导数为0。

{ ∂ f ( X ) ∂ x 1 = 4 x 1 + 2 β 1 = 0 ⇒ x 1 = − 1 2 β 1 ∂ f ( X ) ∂ x 2 = 6 x 2 + β 1 + 2 β 2 = 0 ⇒ x 2 = − 1 6 β 1 − 1 3 β 2 ∂ f ( X ) ∂ x 3 = 14 x 3 + 3 β 2 = 0 ⇒ x 3 = − 3 14 β 2 \left\{ \begin{aligned} &\frac{\partial f(X)}{\partial x_1} = 4x_1 + 2\beta_1 = 0 \Rightarrow x_1 = -\frac{1}{2}\beta_1\\ &\frac{\partial f(X)}{\partial x_2} = 6x_2 + \beta_1 + 2\beta_2 = 0 \Rightarrow x_2 = -\frac{1}{6}\beta_1 - \frac{1}{3}\beta_2\\ &\frac{\partial f(X)}{\partial x_3} = 14x_3 + 3\beta_2 = 0 \Rightarrow x_3 = -\frac{3}{14}\beta_2 \end{aligned} \right.

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值