玩命加载中 . . .

7-支持向量机(SVM)


SVM 也被称作大间距分类器。对非线性分类有较好的处理。SVM处理的问题都是凸优化问题,因此找到的几乎都是全局最优值。而神经网络存在局部最优的问题。

一、优化目标

Support vector machine Hypothesis(SVM的数学定义)

SVM hypothesis

二、SVM的直观解释

假设中的 $C$ 作用等效于之前逻辑回归中的 $\frac{1}{\lambda}$ 。若 $C$ 很大,则假设会对异常点非常敏感(拟合很好甚至过拟合),表现为图中黑色的分界线会变为紫色的分界线;若 $C$ 很小,则可能会忽略异常点,得到黑线。($C$ 的作用类似正则化因子)

decision boundary

三、SVM的数学原理

  1. 向量内积(Vector Inner Product)

    $u^Tv=p·||u||=u_1v_1+u_2v_2=v^Tu$

    其中 $p$ 为向量 $v$ 在向量 $u$ 上的投影长度,范数 $||u||$ 为向量 $u$ 的长度,$p,||u||\in\mathbb{R}$,$u=[u_1,u_2],v=[v_1,v_2]$。

    Vector Inner Product

  2. SVM 决策边界

    SVM假设为(即 $C$ 很大,可以不考虑第一项)

    根据向量内积,可将假设转换为

    其中 $p^{(i)}$ 是 $x^{(i)}$ 在向量 $\theta$ 上的投影。假设 $\theta_0=0$,即向量 $\theta$ 过原点(该值是否为0对分类效果影响不大)。则分类情况会出现下面几种情况:

    interpretation for SVM'large margin.png

    由图可见,通过选择右边的决策边界(绿线),可以让两类样本的间隔更远(即投影值 $p^{(i)}$),从而使得代价函数值更小。(当 $p^{(i)}>0$ 且较大时,$||\theta||$ 很小就能满足约束条件 $p^{(i)}\cdot|\theta|\ge 1$)。即分类器试图最大化训练样本到决策边界的距离——投影值 $p$。

四、核函数(Kernel Function)

利用相似度函数(核函数)标记点来定义**新的特征变量 **$f$:

$f_i=\text{similarity}(x,l^{(i)})=\exp(-\frac{||x-l^{(i)}||^2}{2\sigma^2})$

若 $x\approx l^{(i)}$:则 $f_i\approx 1$

若 $x$ 离 $l^{(i)}$ 很远:则 $f_i\approx 0$

利用新的特征变量预测y值:

$\theta_0+\theta_1f_1+\theta_2f_2+\theta_3f_3\ge 3,\quad y=1$

$\theta_0+\theta_1f_1+\theta_2f_2+\theta_3f_3< 3,\quad y=0$

采用核函数的 SVM 运算过程:

  1. 给定样本集 :$(x^{(1)},y^{(1)},x^{(2)},y^{(2)},\ldots,x^{(m)},y^{(m)})$

  2. 选取标记点:

    可以直接选择样本点作为标记点。即 $l^{(1)}=x^{(1)},l^{(2)}=x^{(2)},\ldots,l^{(m)}=x^{(m)}$

  3. 计算新的特征变量(映射)

    $f_i=\text{similarity}(x,l^{(i)})$

    $f=[f_0,f_1,\ldots,f_m],\quad f_0=1$

    映射关系为:

    $x^{(i)}\rightarrow (f_0^{(i)},f_1^{(i)},f_2^{(i)},\ldots,f_m^{(i)})$,即将样本点 $x^{(i)}$ (可能包含多个特征)映射为特征向量 $f_i$ 进行后续计算。

  4. 最终的假设就变为

SVM参数:

  • $C(=\frac{1}{\lambda})$
    • Large。低偏差,高方差(small λ)
    • Small。高偏差,低方差(large λ)
  • $\sigma^2$
    • Large。特征向量 $f_i$ 非常平滑(变化平缓)。高偏差,低方差
    • Small。特征向量 $f_i$ 非常陡峭(变化剧烈)。低偏差,高方差

使用SVM:

  1. 选择参数 $C$

  2. 选择核函数

    核函数需要满足默塞尔定理

    • 线性核函数——即没有核函数
    • 高斯核函数——$f=\exp(-\frac{||x-l^{(i)}||^2}{2\sigma^2})$,其中 $x^{(i)}=l^{(i)}$
    • 高斯径向基核函数(Radial Basis Function,RBF)
    • 多项式核函数(效果比较差)
    • 字符串核函数
    • ……
  3. 多分类

    假设有 n 个特征值($x\in\mathbb{R}^{n+1}$),训练样本为 m。

    • 若 n 很大,比 m 大(如n=10000,m=10,…1000),则使用逻辑回归或者使用带线性核函数的SVM
    • 若 n 很小,m 大小适中(n=1,……,1000,m=10,……10000),则使用带高斯核函数的SVM
    • 若 n 很小,m 很大(如n=1,……,1000,m=10000+),尝试找到更多的特征,然后使用逻辑回归或带线性核函数的SVM

文章作者: hjd
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 hjd !
评论
 上一篇
8-无监督学习(Unsupervised Learning) 8-无监督学习(Unsupervised Learning)
学习《吴恩达-机器学习》视频时做的笔记。本篇为无监督学习,主要涉及到的无监督学习算法为聚类和PCA降维。
2022-02-08
下一篇 
6-算法选择和算法改进 6-算法选择和算法改进
学习《吴恩达-机器学习》视频时做的笔记。本篇为算法选择和算法改进。主要涉及对算法的性能进行评估,包括如何划分数据集、诊断偏差与方差,并根据训练集、验证集的偏差及方差表现对算法进行修正。
2022-02-08
  目录