理解SVM 的三层境界 —— 自学笔记01

理解SVM 的三层境界 —— 自学笔记01

主要参考资料为:

1: 结构之法算法之道blog(作者July)的 支持向量机通俗导论(理解SVM的三层境界)

2: Convex Optimization(作者Stephen Boyd)

本文为以自己思路整理的笔记。

一、了解SVM

SVM,全称  Support Vector Machine \text{ Support\ Vector\ Machine}  Support Vector Machine,中文名 支持向量机,是一种二分类模型,其中,支持向量表示的是距离超平面最近的向量,即当超平面移动时候,首先“穿过”的向量。

首先我们现在理解一下什么是 Logistic 回归:

Logistic 回归目的是从特征学习出一个 0/1 分类模型,将样本向量带入到 Logistic 函数(或者称作 sigmoid 函数)得到的函数值被认为是属于 y = 1 y=1 y=1 这个类别的概率。 Logistic 函数表达式以及图像如下:
g ( z ) = 1 1 + e − z (1.1) g(z) = \frac{1}{1+e^{-z}} \tag{1.1} g(z)=1+ez1(1.1)

图1 g(z)的函数图像

从而当我们新拿到一个样本的时候,通过 g ( z ) g(z) g(z) 就可以判断其属于哪一个类,若 g ( z ) > 0.5 g(z)>0.5 g(z)>0.5 就属于 y = 1 y=1 y=1 的类,反之属于 y = 0 y=0 y=0 的类。

Q: 为什么一个多维的样本可以用过这个一元函数进行分类呢,因为这里 z ∈ R z\in \R zR ?

A: 对一个多维的样本,我们可以通过超平面方程,将多维向量映射到实轴上,然后用过 g ( z ) g(z) g(z) 分类即可。

然后看一下什么是线性分类:

​ 以二维平面举例,平面上有两种不同数据,分别用○和△标示,由于这些数据是线性可分的,所以可以用一条直线将这两类数据分开,在二维平面上中,这条直线的表达式为 a x + b y + c = 0 a x + b y + c=0 ax+by+c=0 ,当数据的维数为 n n n 维时候,这个“直线”称为超平面,可以表示为 f ( x ) = ω T x + b f(x) = \omega ^T x+b f(x)=ωTx+b ,这里 ω \omega ω x x x 为一列向量, b b b 为常数。当数据刚好在平面上时候有 f ( x ) = 0 f(x)=0 f(x)=0 。超平面两边的数据点分别对应标签 y = 1 y=1 y=1 y = − 1 y=-1 y=1

图2 线性分类示例

Q: 为什么 SVM 中的标签 y y y 只取 1 和 -1 ?

A: 因为 y y y 是二分类的分类标签,相当于上述 Logistic 函数的上下界 0 / 1 0/1 0/1 ,我们只需要对 g ( z ) g(z) g(z) 进行上下平移和缩放即可得到想要的上下界,我们去 1 和 -1 是为了我们后面计算的方便性,因为超平面两侧的函数值符号相反,所以根据这个特点可以将判断是否正确分类样本的标准用 y ⋅ ( ω x + b ) > 0 y\cdot (\omega x+b)>0 y(ωx+b)>0 统一表示。当然分类标签取 1 和 2 也是可以的,那就需要奖判断标准改为 ( y − 1.5 ) ⋅ ( ω x + b ) > 0 (y-1.5)\cdot (\omega x+b)>0 (y1.5)(ωx+b)>0 表示,显然前者更方便。

​ 接下来,当我们需要对一些数据进行线性分类时候,只需要找到 一组 ω   b \omega \ b ω b 确定一个平面。怎样确定最优的超平面呢,从直观上来讲,我们需要选择距离两边数据的距离间隔最大的超平面。

​ 在二维空间中,我们有点到直线的距离公式 d = ∣ a x + b y + c ∣ a 2 + b 2 d = \frac{|ax+by+c|}{\sqrt{a^2+b^2}} d=a2+b2 ax+by+c ,类似的,在高维空间中,点到超平面的距离可以表示为 d = ∣ ω T x + b ∣ ∣ ∣ ω ∣ ∣ d=\frac{|\omega^Tx+b|}{||\omega||} d=ωωTx+b ,其中 ∣ ∣ ω ∣ ∣ = ω 1 2 + ω 1 2 + ⋯ + ω 1 2 ||\omega||=\sqrt{\omega_1^2+\omega_1^2+\cdots+\omega_1^2} ω=ω12+ω12++ω12 ,表示向量 ω \omega ω 的二范数。对于支持向量对应的距离 d 0 d_0 d0 ,我们有 d 0 = min ⁡ i ∈ [ 0 , n ] y i ( ω T x i + b ) ∣ ∣ ω ∣ ∣ d_0 = \min_{i\in[0,n]}\frac{y_i(\omega^Tx_i+b)}{||\omega||} d0=mini[0,n]ωyi(ωTxi+b) , 所以我们的优化问题可以描述为:

maximize d 0 subject to y i ( ω T x i + b ) ∣ ∣ ω ∣ ∣ ≥ d 0 ,   i = 1 , ⋯   , n (1.2) \begin{aligned} & \text{maximize}\quad d_0 \\ & \text{subject to} \quad \frac{y_i(\omega^Tx_i+b)}{||\omega||} \geq d_0,\ i = 1,\cdots,n \end{aligned} \tag{1.2} maximized0subject toωyi(ωTxi+b)d0, i=1,,n(1.2)

可以看到这个形式略显复杂,接下来考虑是否可以通过继续挖掘信息简化优化问题。

​ 在公式(1.2)的约束条件中,可以看到不等式的两个分母 都是 ∣ ∣ ω ∣ ∣ ||\omega|| ω ,所以我们只需要判断分子即可,分子表达式的意义可以理解为集合距离与超平面方程系数 ∣ ∣ ω ∣ ∣ ||\omega|| ω 的乘积,显然针对一组样本数据,我们要得到超平面方程的两个参数,这样的最优参数有无数组,因为 w T x + b w^Tx+b wTx+b a ( ω T x + b ) , a ≠ 0 a(\omega^Tx+b),a\neq0 a(ωTx+b),a=0 表示同一个平面,如果我们令目标\数中的分子 min ⁡ i ∈ [ 0 , n ] y i ( ω T x i + b ) = 1 \min _{i\in[0,n]}y_i(\omega^Tx_i+b)=1 mini[0,n]yi(ωTxi+b)=1 ,这样就唯一确定了一组参数 ω   b \omega \ b ω b ,并且公示(1.2)可以简化为:
maximize 1 ∣ ∣ ω ∣ ∣ subject to y i ( ω T x i + b ) ≥ 1 ,   i = 1 , ⋯   , n (1.3) \begin{aligned} & \text{maximize}\quad \frac{1}{||\omega||} \\ & \text{subject to} \quad y_i(\omega^Tx_i+b)\geq 1,\ i = 1,\cdots,n \end{aligned} \tag{1.3} maximizeω1subject toyi(ωTxi+b)1, i=1,,n(1.3)

图3 二维SVM线性分类示例

二、深入 SVM

跳转

三、 证明SVM

敬请期待~

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北极星~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值