支持向量机(SVM)算法简介

支持向量机(SVM)算法推导

概述

支持向量机模型是一种经典的二分类模型(通过额外处理也可以得到多分类模型),可以理解为在特征空间中去寻找一个超平面,这个平面离所分类的特征距离最远。

推导

Hard-Margin SVM

假设有目标二分类别y(1,-1),它的特征向量为X(x1,x2,x3…xn),特征与类别之间线性相关。给每个特征赋权重值WiWTX大于等于0时y为1,反之为-1。超平面的最大边界我们称为margin,所以可以得到目标函数:
在这里插入图片描述
margin是点到平面的距离,需要使用点到壁面距离公式:
在这里插入图片描述
上述公式b为线性函数的截距。此时目标函数可以转化为:
在这里插入图片描述
上述目标函数我们仍热没办法求解,所以我们假设WTXn+b是大于某一数值A的(因为是线性函数,肯定可以找到大于A的情况),此时
m a r g i n ( b , w ) = A / ∣ ∣ W ∣ ∣ margin(b,w)=A/||W|| margin(b,w)=A/W
那么目标函数就转化为:
max ⁡ b , w A / ∣ ∣ W ∣ ∣ \max_{b,w} A /||W|| b,wmaxA/W
s t . y n ( W T x n + b ) > = A st.y_n(W^Tx_n+b)>=A st.yn(WTxn+b)>=A
A可以理解为一个超参数,A越大SVM模型的条件越苛刻,margin的范围越大,这里先假设A为1,这样就得到了经典的SVM目标函数:
在这里插入图片描述
这个地方可以理解为L1正则和误差函数的结合,为了后面优化方便,将上述目标函数转化为:
在这里插入图片描述
该目标函数的优化问题是二次规划问题,可以直接调用二次规划的工具包进行求解。

Soft-Margin SVM

上述推导得到目标函数的限制条件是很严格,它表示模型不可以犯任何错误,这个在实际中是很难得到的,因为在收集数据的过程中多少会夹带一些噪声数据。这时我们可以将上述目标函数转化为:
在这里插入图片描述
公式中的Zn表示特征向量X的高纬特征,此时,我们是允许模型犯一些错误的,但是错误要压缩在小范围内。并且错误率也变成了我们需要求解的目标参数。

对偶问题

上述的推导过程是基于类别之间是线性可分的,但是实际上现实生活中很多问题都不是线性可分,大多数要借助于非线性分类模型。SVM中可以采用比较暴力的方法直接增加特征的组合以达到非线性的效果。但是这样必然会导致模型参数训练复杂,耗费大量时间和资源。而kernel trick方法可以很好地解决这个问题,可以在原始线性分类时间复杂度下完成非线性的分类效果。
我们以Hard-Margin SVM为例,首先使用拉格朗日方法将svm原始问题的限制条件和目标函数进行耦合得到:
在这里插入图片描述
此时我们的目标函数变为:
在这里插入图片描述
接着我们将这个优化问题的min和max颠倒,得到:
在这里插入图片描述
在这里插入图片描述
这部分的转化数学比较复杂,暂时我们先这么用吧。由于上面的函数是一个凸函数,我们的最优解会出现在参数偏导为0的的地方,即:
在这里插入图片描述
在这里插入图片描述
将这两个公式带入原问题中得到SVM的对偶问题:
在这里插入图片描述

总结

上面是对SVM算法的简单推导,时间有限我就不展开讨论了。文章参考了台大的机器学习技法视频课程,有兴趣的小伙伴可以自行观看学习。
B站视频连接: 机器学习技法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值