从零到精通SVM之超平面求解和松弛变量

嗯哼哼 回顾下 上期的内容 

目的 是找到一个超平面能够划分类别


而这个超平面 还能是最完美的

故其两边最近的点到超平面的距离 不能超过一定距离

故求其最大的函数距离(可转化为几何距离) 来确定超平面

(其中 2是 假设函数距离为2)

变得求最值问题了


嗯哼哼

根据拉格朗日对偶问题 

https://blog.csdn.net/sibiantai555/article/details/79997868

可以将其改成拉格朗日乘子式


其中α>= 0 

其中为满足KKT条件约束改为


嗯哼哼 求


转化为


故对其求导



可得




嗯哼哼 

做什么都不要忘记自己最初的目的 

我们的目的 是求解超平面方程 所以超平面方程


也就是说

我们需要求w向量 以及实数b

嗯哼哼必须强调w和x的维数是一样的(嗯哼哼  ,番外 说下 维数 问题 n位是指有n个自由度,即n个完全独立的变量,而超平面 是指n个变量通过约束,为约束因子,因为b自由度由n变成n-1也就说维度下降以为 故 千万不要日晚认为是几个变量 维度是几

而w向量 通过求导

那么b呢 嗯哼哼  

让我们回忆下线性回归的 y - ax - b 然后对其求偏导 

显然我们这不可以

嗯哼哼 既然已经求出w了还有没有必要L

屁话 你只是求出了w的表达时  并没求出α 故L的目的 是求出α

怎么求b呢 还有没对相关b的约束 

嗯哼哼 我们会发现w求出来就是确定超平面的方向 而b就是在众多超平面选择合适的

我们所定义的函数间隔 有对b做出相关约束


在这我们是令其为1的 也就是去超平到支持向量的距离为1 

嗯哼哼 也就是说两个最近的向量 求和平均的函数间隔来求b

也可以多个 最近的向量

但是    支持向量好像又是通过 超平面来确定的


千万别有这样的误解  恰恰相反

因为我们是要通过每一个特征即 向量来确定其最佳的支持向量

从而确定超平面

通过改变α求其最大值

(Ng机器学习导论,其中


嗯哼哼 

有时候会发现 一旦 函数间隔确定后 

那么不是所有的点都被完美分类的


与其不断的修改函数间隔不如 实施人道主义

嗯哼哼 就是说允许一定误差ε  嗯哼哼 这是误差 可以 是一个统一 的常量

也可以根据每一个变量 而设置其允许的误差 

毕竟人都会偏心嘛 

但是  既然 犯错 就要接受惩罚 故每一对应一个惩罚因子 一边来说 误差越大惩罚力度越大

嗯哼

原问题就变成


然后依样画葫芦写出 其拉格朗日乘子式


嗯哼哼 其中一样 都是朗格朗日因子其实

对w b ε 求偏导,其中对w,和b的偏导不变 对ε 的倒数为


嗯哼哼带入L化简

你会发现 其还是(具体 推导 可以参考刘建平大佬http://www.cnblogs.com/pinard/p/6100722.html)


根本 不变 因为连在化简过程中都被消除了

 只是 约束变了


嗯哼哼

变得求下列函数的最大值了


加快速度了SVM啃了一个多星期 

下一篇 SMO 2018.4.26








猜你喜欢

转载自blog.csdn.net/sibiantai555/article/details/80056762
今日推荐