有一个分类任务的样本集,我们想要在样本空间中找到一个划分超平面,把不同类别的样本分开。但这可能会产生过拟合的问题,为了缓解这个问题,我们需要让这个超平面容忍一些错误的分类,让它不被训练样本里面的个别样本所干扰,这样子得到的分类结果的鲁棒性会是最好的,泛化能力最好。

    距离这个超平面最近的几个样本,我们叫做支持向量。两个不同类的支持向量到超平面的距离之和,我们称之为间隔。我们想要找到的就是拥有最大间隔的超平面。这个模型叫做支持向量机SVM

    • 如果要求所有的样本都分类正确,叫做硬间隔。
    • 容忍一些错误的样本分类,叫做软间隔。

    让这个超平面容忍一些错误的分类,也就是在计算损失的时候,如果这个损失在一个区间内,那么我们就认为它是分类正确的。如果在这个区间外,那么我们就根据这个损失,反向传播去更新参数。

    但如果不存在一个超平面,可以把训练样本正确分类的话,我们就需要把这个样本空间给升维。通过将样本从原始空间映射到一个更高维的特征空间 ,使得 样本在这个特征空间内线性可分。

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

    不只分类问题,这个支持向量也可以用在回归问题上面。原理与上面类似。

    更多推荐