![](https://img.haomeiwen.com/i8207483/9dcc52ee00c0a67b.jpg)
统计学习SVM
今天我们就开始最难懂的 SVM,首先在开始介绍 SVM 之前先介绍一下拉格朗日。在线性回归中,已经知道如何来解决一个问题,首先我们找到损失函数,然后通过让损失函数最小来不断优化参数。在 SVM 中优化问题变成了有约束条件的优化。SVM 是一个难懂算法,要想真正掌握 SVM 并非一件易事。我们需要了解凸优化问题、拉格朗日乘子和对偶问题。
还有人说 SVM 核心是** Hinge Loss 函数和核函数**。有专门的厚厚的书专门用来介绍 SVM,感兴趣可以自己买来读一读。
我们先从优化问题讲起,只有了解不等式约束条件的优化问题,也就是拉格朗日算法我们才能真正理解 SVM 算法。
通常我们的问题是没有约束条件的优化,例如
我们可以引入等式 h(x) 约束条件来约束 f(x) 的优化问题,也就是在保证 h(x) 等于 0 条件下来优化 f(x)。
当然我们约束条件可能不止一个约束条件可能是 i 个约束条件。
还可能有非等式的约束条件,例如我们添加小于等于 0 约束条件 g(x),可能你会问可以是大于等于 0 的约束条件不? 当然可以不过我们将大于等于 0 的约束条件转化为小于等于 0 的约束条件。
今天我们介绍过程也是从简单无条件约束优化到不等式优化来逐步递进给大家分享如何理解 SVM。
无约束条件的优化问题
我们先将问题简化为无约束条件下求极值的优化问题,
<img src="images/001.png" width="60%"/>
上面推导我们在一个最简单方式求导过程,在导数为 0 位置也就是函数极值位置。多维空间,我们对每一个特征相对函数进行求导
等式约束条件优化问题
有关优化问题,我们先将约束条件从不等式简化为等式,将求极值问题转化为在等式约束条件下求极值问题。
就是在 约束条件下求
函数的极值。
![](https://img.haomeiwen.com/i8207483/91cc94564db207a3.png)
这张图是我精心绘制的,图中红色线表示 函数,我们这里以间隔 1 进行绘制,大家可以理解为函数f(x) 的等高线。蓝色圆表示等式约束条件。
其中 这条线穿过圆心的斜率为 -1 的直线。在任何一点都可以有一条平行直线,我们这里将这些间隔为 1 来选取直线理解为 f(x) 的等高线。
然后绘制出h(x)的图像,表示一个以 半径,圆心在(0,0)的圆,这样我更直观地观察他们之间关系。这里约束条件就是要求我们
和
都要落在这个圆上,因为在圆上的任意一点都满足h(x)的约束条件,然后我们在这个圆上找到合适点,也就是 x1 + x2 值是最小,这一点也就是最优解,现在我们也就是把一个优化问题变成几何问题,这些平行的线我们通常叫做等高线。
什么样的点是极值点呢?下面内容会有些难度,假设点 附近移动
(
这里是一个非常小的数)距离,后满足下面条件, 首先
移动一个距离,其中
是一个常数有点类似梯度下降中学习率,其中
是一个趋近无穷小的单位,移动一个距离后点还落在约束条件(圆)上。
并且移动后在函数值 要小于
值,也就是我们沿着梯度下降的方向进行移动。这是我们期望移动方向。
有了移动距离,那么移动方向是要满足 因为我们希望每一次移动后都会变小,也就是沿梯度下降进行移动这样来找最小值。
因为f(x)中有两个变量,梯度也就是二维向量来表示分别在x1 和 x2 两个方向的梯度,我们知道梯度为零处函数出现极值,这里偏导向量表梯度方向,因为损失函数通常是
所以我们更新是其负梯度。
图(svm_2)
那么在(1,-1)点的梯度为(2,-2),而在(-1,-1)点的梯度为(-2,-2),然后我们来看f(x)和h(x)两者之间的梯度关系。
$$\begin{cases}
\delta_x \perp \nabla_x h(X_F) \
h(X_F + \delta_x) = 0 \
\delta_x \cdot (-\nabla_x f(X_f)) = 0
\end{cases}-\nabla_x f(X_F) = \mu \nabla_x h(X_F)$$
这里 就是拉格朗日乘子,我们
先说说 SVM 这个模型,早在深度学习出现之前 SVM 曾经盛行一时。SVM 良好的表现和其背后算法被多数工程人员所接受。让数学理论里实际应用不再那么遥远。我们可以真真切切体会到数据给我们带来福利。
之前我们讲了等式约束条件下如何求取一个函数的最优解。今天我们来说一说在不等式约束条件下求函数的最优解的方法
不等式约束条件
这里我们还是通过一个实际的例子来讲解有关在不等式条件下如何解函数的最优解,下面 f(x)
![](https://img.haomeiwen.com/i8207483/e7a062bf1a79fced.png)
f(x) 是用一个一圆一圆的等高线来表示方程 f(x) 也就是上图中的绿色的线,从上图来看,很清楚我们限制条件就是 g(x) ,图中用浅黄色表示圆形面积为约束条件
1 情况 f(x) 函数最优点落在限制条件 g(x) 面积(浅黄色区域)内
<img src="images/003.png" width="80%"/>
就可以按照非限制条件来正常处理,也就是f(x)全局最优解就是f(x)的最优解。
如果计算出全局最优解不满足限制条件,这就是第二种情况,也就是f(x)的全局最有点没有落在限制条件内
![](https://img.haomeiwen.com/i8207483/f76ef897e136ea97.png)
2 情况 f(x) 函数函数最优点没有落在限制条件g(x)区域内
- f(x)负梯度与 g(x) 法向方向平行,也就是方向相同他们之间可能就差系数
- 如果
这时候约束条件可以等价于 g(x)=0 ,也就是 KKT 条件
满足第一个条件
满足第二个条件
满足第三个条件
举一个例子
![](https://img.haomeiwen.com/i8207483/fbce83df1809fa0f.png)
我们用上面学过的知识来解决这个不等式约束条件。
这样我们用拉格朗日乘子来表示上面不等式约束条件问题,计算最优解过程就是对 lambda 和 x 进行求取偏导。
- 如果 lambda 等于 0 那么 f(x) 全局最优解就是 0,因为 lambda 等于就等于 g(x) 等于 0
- 如果 lambda 不等于 0 就变成 g(x) = 0 的等式约束条件,那么 x = b 才能够满足约束条件,此时 lambda = 2b
由此可见 lambda 是取值是 2b 和 0 的最大值,当 b 为负数时候 lambda 就取 0 反之取 2b
有两种情况如果全局最优解在约束条件内也就是,最优解不在约束条件内外,那么
就是一个不等于 0 的数时候就可以计算
![](https://img.haomeiwen.com/i8207483/48690a506ec756d2.jpeg)
网友评论