• 《机器学习》第6章 支持向量机


    6.1 间隔与支持向量

    分类学习最基本的想法就是基于训练集D在样本空间中找到一个划分超平面,将不同类别的样本分开.但能将训练样本分开的划分超平面可能有很多,如图6.1所示,我们应该努力去找到哪一个呢?
    在这里插入图片描述
    在样本空间中,划分超平面可通过如下线性方程来描述:w为法向量,决定了超平面的方向;b为位移项,决定了超平面与远点间的距离。
    在这里插入图片描述
    样本空间中任意点x到超平面(w,b)的距离可写为:
    在这里插入图片描述
    假设超平面(w,b)能将训练样本正确分类,则有:
    在这里插入图片描述
    如图6.2所示,距离超平面最近的这几个训练样本点使式(6.3)的等号成立,它们被称为“支持向量”(support vector),两个异类支持向量到超平面的距离之和为
    在这里插入图片描述
    它被称为间隔。

    支持向量与间隔:

    在这里插入图片描述

    目标:找最大间隔
    在这里插入图片描述
    即:
    在这里插入图片描述
    这就是支持向量机(简称SVM) 的基本型。

    6.2 对偶问题

    问题:求解(6.6)式得到大间隔划分超平面所对应的模型在这里插入图片描述
    对式(6.6)使用拉格朗日乘子法可得到其“对偶问题”(dual problem).具体来说,对式(6.6)的每条约束添加拉格朗日乘子α≥0,则该问题的拉格朗日函数可写为
    在这里插入图片描述
    求偏导:
    在这里插入图片描述
    代回原式得到对偶问题:
    在这里插入图片描述
    在这里插入图片描述
    求解得到模型:
    在这里插入图片描述
    (6.6)式有不等式约束,因此上述过程需要满足KKT条件限制:
    在这里插入图片描述
    支持向量机的一个重要性质:
    训练完成后,大部分的训练样本都不需保留,最终模型仅与支持向量有关。

    如何求解(6.11)式呢?
    SMO算法:
    在这里插入图片描述
    在这里插入图片描述

    6.3 核函数

    问题:在现实任务中,原始样本空间并不存在一个能正确划分两类样本的超平面。

    解决方案:向高维空间映射。
    在这里插入图片描述

    如果原始空间是有限维,即属性数有限,那么一定存在一个高维特征空间使样本可分。

    映射模型:
    在这里插入图片描述

    转换:
    在这里插入图片描述
    其对偶问题是:
    在这里插入图片描述
    在这里插入图片描述

    支持向量展式

    又提出一个难题?
    在这里插入图片描述
    函数重写·:
    在这里插入图片描述
    求解:
    在这里插入图片描述

    什么样的函数能作核函数呢?

    核函数

    在这里插入图片描述

    定理6.1表明, 只要一个对称函数所对应的核矩阵半正定,它就能作为核函数使用.事实上,对于一个半正定核矩阵,总能找到一个与之对应的映射.换言之,任何一个核函数都隐式地定义了一个称为“再生核希尔伯特空间”(Reproducing Kernel Hilbert Space.简称RKHS)的特征空间。

    通过前面的讨论可知,我们希望样本在特征空间内线性可分,因此特征空间的好坏对支持向量机的性能至关重要.需注意的是,在不知道特征映射的形式时,我们并不知道什么样的核函数是合适的,而核函数也仅是隐式地定义了这个特征空间.于是,“核函数选择” 成为支持向量机的最大变数.若核函数选择不合适,则意味着将样本映射到了一个不合适的特征空间,很可能导致性能不佳.

    在这里插入图片描述

    性质:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    6.4 软间隔与正则化

    在前面的讨论中,我们一直假定训练样本在样本空间或特征空间中是线性可分的,即存在一个超平面能将不同类的样本完全划分开.然而,在现实任务中往往很难确定合适的核函数使得训练样本在特征空间中线性可分;退一步说,即便恰好找到了某个核函数使训练集在特征空间中线性可分,也很难断定这个貌似线性可分的结果不是由于过拟合所造成的.

    缓解该问题的一个办法是允许支持向量机在一些样本上出错.为此,要引入“软间隔”(soft margin)的概念,如图6.4所示.
    在这里插入图片描述

    具体来说,前面介绍的支持向量机形式是要求所有样本均满足约束(6.3),即所有样本都必须划分正确,这称为“硬间隔”,而软间隔则是允许某些样本不满足约束。

    在这里插入图片描述

    当然,在最大化间隔的同时,不满足约束的样本尽可能少,于是,优化目标可写为:
    在这里插入图片描述
    0/1损失函数非凸、非连续,数学性质不好,使得(6.29)式不易直接求解,于是人们通常用一些函数来替代损失函数,以下给出了三种替代损失函数:

    在这里插入图片描述

    若采用hinge损失,则式(6.29)变成
    在这里插入图片描述

    引入松弛变量,对(6.34)重写:

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    6.5 支持向量回归(SVR)

    在这里插入图片描述
    SVR问题可形式化为:
    在这里插入图片描述

    不敏感损失函数:
    在这里插入图片描述

    引入松弛变量,将式(6.43)重写为:

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    6.6 核方法

    在这里插入图片描述
    人们发展出一系列基于核函数的学习方法,统称为“核方法”(kernelmethods).最常见的,是通过“核化”(即引入核函数)来将线性学习器拓展为非线性学习器.下面我们以线性判别分析为例来演示如何通过核化来对其进行非线性拓展,从而得到“核线性判别分析”(Kernelized Linear DiscriminantAnalysis,简称KLDA).

    假设:
    在这里插入图片描述

    类似于式(3.35),KLDA的学习目标是
    在这里插入图片描述

    均值:
    在这里插入图片描述
    两个散度矩阵分别为
    在这里插入图片描述

    函数h(x)可写为:
    在这里插入图片描述

    于是由式(6.59)可得
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    【综合类型第 38 篇】如何查看、安装最新版本、旧版本的 Cocoapods
    Apache最新版安装和配置
    DayDayUp:计算机技术与软件专业技术资格证书之《系统集成项目管理工程师》课程讲解之十大知识领域之4核心—成本进度管理
    uniapp 短信监听(验证码)插件 Ba-Sms
    常用的 linux开发的shell脚本
    四种自动化测试模型实例及优缺点
    PHP:命名空间必知必会
    【功能栏】基于session的模拟短信注册功能
    Python中tuple()函数的用法
    【数据结构】串的基础知识及代码实现
  • 原文地址:https://blog.csdn.net/qq_45823731/article/details/133828333