SVM 随笔

作者: zidea | 来源:发表于2019-10-27 20:26 被阅读0次

    前言

    当下机器学习比较重要 3 中算法,个人都目前为止认为比较重要机器学习算法分别是,深度学习、SVM 和决策树。在深度学习出现之前,是 SVM 的时代 SVM 占据了机器学习算法优势地位整整 15 年。

    SVM VS 深度学习

    深度学习是对原始特征重新表示,也就是原始特征虽然学的很懒,通过。就拿深度学习擅长的图像识别,是因为我们人类使用 pixel 来表示图片,用 pixel 来表示图片是一种比较烂表示方式,这是通过深度学习能够帮助我提取一些新表示特片特征来对图像进行表示。
    而且深度学习有时候即使对于设计者是个黑核模式,也就是我们不知道机器如何学习来给出其预测或推荐。有时候我们是需要知道机器是如何学习,学习到了什么,以及如何做出决定和推荐。

    而 SVM 好处是通过数学推导出来的模型。个人尝试了解一下感觉还是比较难。

    SVM VS 决策树

    SVM 和决策树都是找决策边界

    SVM(Support Vector Machine)


    SVM = Hinge Loss + (核方法)Kernel Method

    概念 SVM (Support Vector Machine)

    SVM 是我们必须掌握统计算法,而且 SVM 推导过程要比其应用更加重要。使用 SVM 前提是我们分类问题是线性可分的。

    SVM 用于解决分问题的分类器。介绍且背后算法,了解算法后便于我们更好调整参数。在深度学习出现之前被大家广泛应用用于分类算法。

    svm
    图中有我们用颜色来表示不同样本,所谓分类问题就是找到一条线,让线两边分别是不同的类别。

    我么不仅需要关注训练误差,我们更要关系期望损失

    SVM 关键术语

    • 间隔: 就是离
    • 对偶
    • 核技巧:在 SVM 出现之前就有核技巧,通过核技巧让 SVM 从欧式空间扩展到多维空间

    SVM 分类

    • 硬间隔 SVM
    • 软间隔 SVM
    • 核 SVM

    SVM 推导过程

    • 监督学习
      我们对比深度学习 SVM,深度学习通过梯度下降不断优化边界,然后最后找到最优解而 SVM 无需梯度下降就可以
    • 几何含义
      就是我们要找的决策分界线到离其最近点的边距最大。这就是 SVM 的几何含义。那么有了这个想法我们就需要用数学来描述我们的想法,这也就是找模型的过程。
    • 决策
      support-vector-machine-and-implementation-using-weka-19-638.jpg
      我们绘制 \vec{w} 垂直于我们决策边界的向量,然后计算一点 \vec{u} 向量到 \vec{w} 上的投影,如果投影值大于一个常数值就说明是正样本否则就是负样本。
      \vec{w} \cdot \vec{u} \ge C then u \in +
      \vec{w} \cdot \vec{u} - b \ge 0 then u \in +

    训练数据

    我们在构建训练数据集时候,需要将所有正样本设计为计算后大于 1
    \vec{W} \cdot \vec{X_+} + b \ge 1
    \vec{W} \cdot \vec{X_-} + b \le -1
    这就是 SVM 的最大间隔假设。

    小技巧

    我们通过一些小技巧将上面两个公式合并为一个公式
    y_i(\vec{w}x_+ \cdot \vec{u} + b) \ge 1
    y_i(\vec{w}x_- \cdot \vec{u} + b) \ge 1
    y_i(\vec{w}x \cdot \vec{u} + b) \ge 1
    约束条件在训练集中所有样本都需要满足这个公式
    对于支持向量的点在上面公式不等号变为等号
    y_i(\vec{w}x \cdot \vec{u} + b) = 1

    求取宽度

    width = (\vec{x_+} -\vec{x_-}) \cdot \frac{\vec{W}}{||w||}

    width = (\vec{x_+} -\vec{x_-}) \cdot \frac{\vec{W}}{||w||} = \frac{\vec{x_+} \cdot \vec{w}}{||w||} - \frac{\vec{x_-} \cdot \vec{w}}{||w||}
    width = \frac{1-b}{||w||} + \frac{1+b}{||w||} = \frac{2}{||w||}
    y_i(\vec{w}x \cdot \vec{u} + b) = 1
    那么我们让街宽最大就是让 \frac{2}{||w||} 大,那么也就是问题变为了\max \frac{2}{||w||}
    我们将问题进行一系列转换那么求 \max \frac{2}{||w||} 转换为了 \min \frac{1}{2} ||w||^2

    L = \frac{1}{2} ||\vec{w}||^2 - \sum \alpha_i (y_i(\vec{w} \cdot \vec{x} + b ) - 1)

    \frac{\partial L}{\partial \vec{w}} = \vec{w} - \sum \alpha_i \cdot y_i \cdot x_i = 0
    \vec{w} = \sum \alpha_i \cdot y_i \cdot x_i

    \frac{\partial L}{\partial b} = \sum \alpha_i y_i = 0
    然后将 \vec{w} = \sum \alpha_i \cdot y_i \cdot x_i 公式带入下面公式中进行推导
    L = \frac{1}{2} ||\vec{w}||^2 - \sum \alpha_i (y_i(\vec{w} \cdot \vec{x} + b ) - 1)

    L = \frac{1}{2} \sum \alpha_i \cdot y_i \cdot x_i \vec{w} \sum \alpha_i \cdot y_i \cdot x_i - \sum \alpha_i y_i x_i \cdot (\sum \alpha_i y_i x_i )- \sum \alpha_i y_i b + \sum \alpha_i
    = \sum\alpha_i - \frac{1}{2} \sum \sum \alpha_i y_i x_i \alpha_j y_j x_j

    相关文章

      网友评论

        本文标题:SVM 随笔

        本文链接:https://www.haomeiwen.com/subject/qjymvctx.html