三、非线性支持向量机

  1. 非线性分类问题是指利用非线性模型才能很好的进行分类的问题。

  2. 对于给定的训练集 三、非线性支持向量机 - 图1 ,其中 三、非线性支持向量机 - 图2,如果能用 三、非线性支持向量机 - 图3 中的一个超曲面将正负实例正确分开,则称这个问题为非线性可分问题。

  3. 设原空间为 三、非线性支持向量机 - 图4,新的空间为 三、非线性支持向量机 - 图5 。定义

    从原空间到新空间的变换(映射)为:三、非线性支持向量机 - 图6

    则经过变换 三、非线性支持向量机 - 图7

    • 原空间 三、非线性支持向量机 - 图8 变换为新空间 三、非线性支持向量机 - 图9 , 原空间中的点相应地变换为新空间中的点。
    • 原空间中的椭圆 三、非线性支持向量机 - 图10 变换为新空间中的直线 三、非线性支持向量机 - 图11
    • 若在变换后的新空间,直线 三、非线性支持向量机 - 图12 可以将变换后的正负实例点正确分开,则原空间的非线性可分问题就变成了新空间的线性可分问题。
  4. 用线性分类方法求解非线性分类问题分两步:

    • 首先用一个变换将原空间的数据映射到新空间。
    • 再在新空间里用线性分类学习方法从训练数据中学习分类模型。

    这一策略称作核技巧。

3.1 核函数

3.1.1 核函数定义

  1. 三、非线性支持向量机 - 图13 是输入空间(欧氏空间 三、非线性支持向量机 - 图14 的子集或者离散集合), 三、非线性支持向量机 - 图15 为特征空间(希尔伯特空间)。若果存在一个从 三、非线性支持向量机 - 图16三、非线性支持向量机 - 图17 的映射 三、非线性支持向量机 - 图18 ,使得所有的 三、非线性支持向量机 - 图19, 函数 三、非线性支持向量机 - 图20,则称 三、非线性支持向量机 - 图21 为核函数。

    即:核函数将原空间中的任意两个向量 三、非线性支持向量机 - 图22 ,映射为特征空间中对应的向量之间的内积。

  2. 实际任务中,通常直接给定核函数 三、非线性支持向量机 - 图23 ,然后用解线性分类问题的方法求解非线性分类问题的支持向量机。

    • 学习是隐式地在特征空间进行的,不需要显式的定义特征空间和映射函数。

    • 通常直接计算 三、非线性支持向量机 - 图24 比较容易,反而是通过 三、非线性支持向量机 - 图25三、非线性支持向量机 - 图26 来计算 三、非线性支持向量机 - 图27 比较困难。

      • 首先特征空间 三、非线性支持向量机 - 图28 一般是高维的,甚至是无穷维的,映射 三、非线性支持向量机 - 图29 不容易定义。

      • 其次核函数关心的是希尔伯特空间两个向量的内积,而不关心这两个向量的具体形式。因此对于给定的核函数,特征空间 三、非线性支持向量机 - 图30 和 映射函数 三、非线性支持向量机 - 图31 取法并不唯一。

        • 可以取不同的特征空间 三、非线性支持向量机 - 图32
        • 即使是在同一个特征空间 三、非线性支持向量机 - 图33 里,映射函数 三、非线性支持向量机 - 图34 也可以不同。
  3. 在线性支持向量机的对偶形式中,无论是目标函数还是决策函数都只涉及输入实例之间的内积。

    • 在对偶问题的目标函数中的内积 三、非线性支持向量机 - 图35 可以用核函数 三、非线性支持向量机 - 图36 来代替。

      此时对偶问题的目标函数成为:

      三、非线性支持向量机 - 图37

    • 分类决策函数中的内积也可以用核函数代替:三、非线性支持向量机 - 图38

  4. 核函数替代法,等价于:

    • 首先经过映射函数 三、非线性支持向量机 - 图39 将原来的输入空间变换到一个新的特征空间。
    • 然后将输入空间中的内积 三、非线性支持向量机 - 图40 变换为特征空间中的内积 三、非线性支持向量机 - 图41
    • 最后在新的特征空间里从训练样本中学习线性支持向量机。
  5. 若映射函数 三、非线性支持向量机 - 图42 为非线性函数,则学习到的含有核函数的支持向量机是非线性分类模型。

    若映射函数 三、非线性支持向量机 - 图43 为线性函数,则学习到的含有核函数的支持向量机依旧是线性分类模型。

3.1.2 核函数选择

  1. 在实际应用中,核函数的选取往往依赖领域知识,最后通过实验验证来验证核函数的有效性。

  2. 若已知映射函数 三、非线性支持向量机 - 图44,那么可以通过 三、非线性支持向量机 - 图45三、非线性支持向量机 - 图46 的内积求得核函数 三、非线性支持向量机 - 图47。现在问题是:不用构造映射 三、非线性支持向量机 - 图48, 那么给定一个函数 三、非线性支持向量机 - 图49 判断它是否是一个核函数?

    即: 三、非线性支持向量机 - 图50 满足什么条件才能成为一个核函数?

    可以证明: 设 三、非线性支持向量机 - 图51 是对称函数, 则 三、非线性支持向量机 - 图52 为正定核函数的充要条件是:对任意 三、非线性支持向量机 - 图53三、非线性支持向量机 - 图54 对应的 Gram 矩阵: 三、非线性支持向量机 - 图55 是半正定矩阵。

  3. 对于一个具体函数 三、非线性支持向量机 - 图56 来说,检验它为正定核函数并不容易。因为要求对任意有限输入集 三、非线性支持向量机 - 图57 来验证 三、非线性支持向量机 - 图58 对应的 Gram 矩阵是否为半正定的。

    因此,实际问题中往往应用已有的核函数。

  1. 常用核函数:

    • 多项式核函数:三、非线性支持向量机 - 图59

      对应的支持向量机是一个 三、非线性支持向量机 - 图60 次多项式分类器。

    • 高斯核函数:

      三、非线性支持向量机 - 图61

      • 它是最常用的核函数,对应于无穷维空间中的点积。
      • 它也被称作径向基函数radial basis function:RBF ,因为其值从 三、非线性支持向量机 - 图62 沿着 三、非线性支持向量机 - 图63 向外辐射的方向减小。
      • 对应的支持向量机是高斯径向基函数分类器(radial basis function) 。
    • sigmod核函数:三、非线性支持向量机 - 图64

      对应的支持向量机实现的就是一种神经网络。

3.2 学习算法

  1. 非线性支持向量机学习算法:

    • 输入:训练数据集 三、非线性支持向量机 - 图65 ,其中 三、非线性支持向量机 - 图66

    • 输出:分类决策函数

    • 算法步骤:

      • 选择适当的核函数 三、非线性支持向量机 - 图67 和惩罚参数 三、非线性支持向量机 - 图68 ,构造并且求解约束最优化问题:

      三、非线性支持向量机 - 图69

      求得最优解 三、非线性支持向量机 - 图70

      三、非线性支持向量机 - 图71 是正定核函数时,该问题为凸二次规划问题,解是存在的。

      • 计算: 三、非线性支持向量机 - 图72
      • 选择 三、非线性支持向量机 - 图73 的一个合适的分量 三、非线性支持向量机 - 图74,计算:三、非线性支持向量机 - 图75
      • 构造分类决策函数 :三、非线性支持向量机 - 图76