机器学习——支持向量机:线性支持向量机和软间隔最大化

Posted Lyndon_zheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习——支持向量机:线性支持向量机和软间隔最大化相关的知识,希望对你有一定的参考价值。

前两章讨论支持向量机时,假设了数据最终是能完全被分开,即数据在原始特征空间或映射到高维特征空间之后能够完全正确分类。但是,这样绝对的分类存在一个明显的问题,如果模型中存在异常点,即使高维映射之后,能够完全正确分类,也可能导致模型复杂度过高,模型过拟合。虽然训练出来的模型能够在训练集上表现很好,但其泛化能力会很差
如下图所示,明显蓝色框标记的两个白色点和两个红色点都是异常点,如果通过硬间隔SVM我们会得到右上角的分类效果,而采用高斯核则会得到左下角的结果。这两种分类器都能够将训练样本完全正确分类,但是这与我们人眼所观测到的分类器明显存在差异,如果应用这两个分类器在测试集上进行测试,有可能出现很大的误差。我们认为最恰当的应该还是类似于右下角的软间隔分类器。

也就是说,在某种情况下,训练集数据存在一定的异常点,如果将这些异常点取出后,我们能够得到更好的模型。那么,如何将这些异常点去的影响去除呢?在SVM中我们通过引入松弛变量来解决这个问题。为了更好地理解松弛变量的含义,我们在此类比逻辑回归的损失函数。

逻辑回归

之所以在这里又引出logistic回归,一方面是为了后面比较两者的应用环境,更重要的则是通过损失函数对比,感性认识支持向量中目标函数的意义,方便更好的调试SVM模型中的各项参数。
首先我们回顾一下logistic回归中损失函数的定义:

J(θ)=1mi=1m[yiloghθ(x(i))(1yi)log(1hθ(x(i)))]+λ2mj=1Nθ2j
其中,原始的error项 yiloghθ(x(i))(1yi)log(1hθ(x(i))) 如下图所示,对于正样本而言, θTx 越大,预测函数 hθ(x) 越接近1, 即与正样本的差越小;同理,我们也可以这么理解负样本预测值的代价。

通过上面的分析,我们可以重新定义原始的损失函数为:
Eϵ(f(x)y)=0,|f(x)y|ϵ,|f(x)y|<ϵotherwise
因此,带正则化的损失函数可以定义为:
J(θ)=Cn=1mEϵ(f(x)y)+12||w||2
对比于初始的损失函数,其中 Eϵ(f(x)y) 是模型训练误差,即错分样本的代价; ||w||2 是正则化的代价。然后两项去掉了分母 m ,训练集的大小,是两项共有常数,去掉不影响最终的优化效果;然后两项同时除以λ,即 C=1λ ,对于选定好的参数 λ ,也不会影响最终的优化效果。
通过对逻辑回归目标函数的变形,我们可以看到,代价函数可以分为错分样本代价和模型复杂度代价两部分。前面介绍的别的机器算法也与此类似,接下来我们再来看支持向量机软间隔最大化的代价函数。

支持向量机

在软间隔最大化中,我们引入松弛变量 ξi0 ,允许样本错分。具体来说,现在的约束条件就变为了:

yi(wxi+b)1ξi
对于硬间隔SVM中的所有样本点,他们到分割平面的函数间隔都大于等于1。如今通过引入松弛变量,却允许他们函数间隔小于1了,即样本可以错分了。现在我们假设松弛变量 ξi 很大,则任意超平面都能满足条件了,这样显然是不合理的。因此原来的目标函数由 12||w||-SVM支持向量机

支持向量机

第七章:支持向量机

支持向量机

SVM--支持向量机

理解支持向量机