大数跨境
0
0

【十分钟 机器学习 系列课程】 讲义(52):非线性支持向量机 序列最小最优化SMO算法(二)

【十分钟 机器学习 系列课程】 讲义(52):非线性支持向量机 序列最小最优化SMO算法(二) 简博士数据分析吧
2022-06-13
0
导读:本课程讲义基于李航老师第2版的《统计学习方法》



内容提要:

*SMO算法的迭代

*SMO算法的含义

点击蓝字 |关注我们

欢迎回来。上期我们开启了介绍「序列最小最优化SMO算法」的新篇章,【十分钟 机器学习 系列课程】 讲义(51):非线性支持向量机 序列最小最优化SMO算法(一)用一句话以概之,就是在「坐标下降法」的基础上,固定 值,经过一系列的简化,从而「在无约束」情况下,得到新迭代出的 与上一结果 之间的函数表达式。

当然,上期的公式超级多,以至于,公号第一次竟然识别不出了,所以大家看到好多是图片的形式。

可是,我们的优化问题中是存在约束条件的,那么这期,当然就是要「考虑约束条件啦」,这样得到的才是优化问题真正的解。

有了它,就能继续得到剩余 的迭代值,从而实现迭代的过程,能够最终找到所有参数的最优解。

先来复习一下约束条件有哪些:

接下来,就来看看考虑约束条件后,迭代后真正的 值。不妨将上一期得到的 记作未剪辑的参数,注意哦,这里的unc代表un cut


壹 SMO算法中的迭代

1.考虑约束条件后的

注意哦,因为这里固定了 因此约束条件只对 有效,那么可以写成:

观察一下这三个条件: 条件(1),是一条直线;条件(2)和(3)可以看出是一个线性约束,表示一个正方形,横轴代表 ,纵轴代表

条件(2)和条件(3)

接着,咱们就可以分情况讨论啦:

 时

说明 或者 代入到第1个条件中,

对应的可以写成:

,就是

各位可以看出,这时 之间的斜率就是 ,截距项为 。看来,这个约束条件就是一条 的动线,比如这样的:

意味着, 或者是 ,这样,对应的可以写成:

,就是

对应的斜率就变成了 ,约束条件就是一条斜率为 ,截距项为 的动线,比如视频中这样

总结一下,就是下面的两条动线。

绿色的直线斜率为-1,红色的直线斜率为+1

2.找到剪辑后的最优解

接下来,我们就该找到在这三个条件下的最优解,我们把考虑约束的过程称为「剪辑」,那么就有「未经剪辑」「剪辑之后」

现在,请大家明确我们的目标就是,在三个条件下找到  的最优解。

那么,我们分两种情况讨论一下,一种是同类的   ,一种是不同类的

时,从上面的推导,我们知道此时的约束条件就是:

  • 条件一
  • 条件二
  • 条件三

那么我们不妨就画一下这三个条件,大家看,对于条件一而言, 这条动线和由条件二三组成的正方形产生的交点该怎么表示呢?

我们可以定义「左端的」交点为「P点」「右端的」交点为「Q点」。 简单来看:

对于「P点」而言,可以分别交于红线上。

对于「Q点」而言,可以分别交于蓝线上。

我们考虑以下两种情况:

时的约束条件

「第一种情况」: 斜率为-1的“1号”绿色直线,当约束在正方形内的时候,直线上约束内的是 线段, 点坐标为 点坐标为

「第二种情况」: 斜率为-1的“2号”绿色直线在正方形的对角线右上角,当约束在正方形内的时候,约束内的是 线段, 点坐标为 点坐标为

因为是交集,我们要取上面两种情况下 的约束区间,怎么找呢?

Step1 先找「约束区间的上界」

我们将其记为 (取 的首字母),肯定得在 点中找,为什么呢?

因为大家要始终把注意力集中在 上,它的最大值,肯定就是 的纵坐标为 时。

对于 “1号直线” 而言,  动线和 轴的「交点P」的纵坐标都在 的范围内,而对于 “2号直线”,此时 点的纵坐标,会落在正方形外面,很明显此时 点的纵坐标是超过 的,这时,「就不满足 的约束条件了」

点的纵坐标,黄色的动点

那么,咱们一眼就能看出来,对于2号直线而言,此时P的纵坐标就得固定在 了,但是计算机却看不出来,「那就得用一些约束条件来实现这个目的了」

于是取 点中 的最小值来满足约束,意味着对于2号直线 而言,此时P点的坐标为 ,而为了满足约束条件,我们要将它的纵坐标 和边界最大值 中取最小值:

那么 最大值,也就是:

即,

Step 2 再找到「约束区间的下界」

我们将其记为 (取 的首字母),肯定得在 点中找,这时其实就在看 点的横坐标,同理,一种是“1号直线”中的,在 的范围内,另一种是“2号线”, 点的横坐标在 以外,同理,我们也是一眼能看出,对于这种情况, 的横坐标就卡在 ,而怎么让计算机自己判断呢?

很简单,和上面一样的思路,我们最终是要得到   的最小值。

点的纵坐标,绿色的动点

意味着对于2号线 而言,此时Q点的坐标为 ,而为了满足约束条件,当它的横坐标多出 时,我们要取 ,说明对于纵轴 的最小值而言,代入曲线后,正是从1号线中的 中取最大值,而这决定了 下界,也就是:

即,

时的约束条件

类似地,当 时,下界可以写成:

时,上界 ,那么写成:

通过以上分析,这下就可以将 剪辑之前和剪辑之后的结果简要总结出来啦:

「未经剪辑」

「剪辑之后」

有小伙伴纳闷,刚才给出的 有两种表达式啊,用哪个?

这就不用担心啦,因为样本 我们是已知的,所以直接看 是不是同类就好啦。

贰 SMO算法的含义

1.权重参数和截距参数

搞清楚了考虑约束条件后的 的表达式,以此类推能求解出其余的 的值,然后设置收敛条件,就能求出 的最优解,接着代入到非线性支持向量机(或线性支持向量机)的分类函数中,就能求出最终的权重参数 :

把符合

的点 挑出来,代入到 中,可以得到截距参数:


从而得到最终的支持向量机的「决策函数」

2.每次迭代需要计算什么

当然看完上面的思路,相信你已经明白了大致的思路,但是其实还有些细节值得我们关注。 比如经过第一轮更新后,从 变为 ,我们需要计算哪些值呢?我们分情况讨论一下。

属于支持向量

既然 是支持向量,那么就可以代入去更新 了。注意哦,这里表示根据第1个样本点更新的 ,不妨记为

其中 应该代入的是:

整理一下:

仔细观察可以发现,后面两部分会在每次迭代时发生多次的重复计算,那么就无形中增加了工作量,怎么对这种情况进行优化呢?

那么大家还记得上期的 ,它代表了预测结果与观测结果之差。

也就是:

因为此处的求和式,是从 开始的,那么继续改成:

放入 的表达式中:

这样每次算一下迭代更新前后的 ,还有旧的 就行啦。

属于支持向量

同理,就可以知道:

假如说都满足条件呢?

都属于支持向量

很简单,此时这两个样本点都可以来更新参数:

可能是

那么可以平均得出截距项:

再说回 ,我们可以用刚才更新的参数进行更新,

其中 是所有支持向量的集合(S为Support 的首字母)。

好啦,这样我们就得到了非线性支持向量机的算法思路,并且根据SMO算法得出了优化问题的求解过程,那么下一期就说一说「如何选出更新的两个变量 能够让迭代更快更好,感兴趣的小伙伴也可以到B站点击视频继续学习,我们下期不见不散~

拓展阅读


欢迎大家关注简博士的B站和公众号,在公众号私信“入群”,可以与小伙伴们一起讨论问题哦。

扫码关注我们

微信号|Dr_Janneil

B站|简博士

【声明】内容源于网络
0
0
简博士数据分析吧
信息时代最不缺的是什么?数据!最缺的是什么?数据分析的思维!在这里,你将获取神秘的力量,推开数据之门!
内容 181
粉丝 0
简博士数据分析吧 信息时代最不缺的是什么?数据!最缺的是什么?数据分析的思维!在这里,你将获取神秘的力量,推开数据之门!
总阅读66
粉丝0
内容181