机器学习 06:SMO 算法

概述

机器学习 06:SMO 算法 是由 机器学习 06:SMO 算法 在 1998 年提出的、针对软间隔最大化 机器学习 06:SMO 算法 对偶问题求解的一个算法,其基本思想很简单:如果所有变量的解都满足此优化问题的 KKT 条件,则这个优化问题的解就得到了;否则在每一步优化中,挑选出诸多参数 机器学习 06:SMO 算法 中的两个参数 机器学习 06:SMO 算法 作为变量,其余参数都视为常数,问题就变成了类似于二次方程求最大值的问题,从而我们就能求出解析解,这两个变量中,一个是违反 KKT 条件最严重的那一个,另一个由约束条件自动确定一个。


选择变量的启发式方法

先来回顾一下 机器学习 06:SMO 算法 中的优化目标函数:

机器学习 06:SMO 算法

由于要满足约束 机器学习 06:SMO 算法,所以每次需要选取两个 机器学习 06:SMO 算法 做为变量,这一点与坐标上升法不同。

要使优化目标函数有解,我们需要使其满足 机器学习 06:SMO 算法 条件中的互补松弛:

机器学习 06:SMO 算法

根据上面的条件我们可以得出:

机器学习 06:SMO 算法

由于 机器学习 06:SMO 算法,我们令

机器学习 06:SMO 算法

则可以推出以下三个条件:

机器学习 06:SMO 算法


选择第一个变量

机器学习 06:SMO 算法 中,我们称第一个变量为外循环。外循环取的是样本中违反 机器学习 06:SMO 算法 条件最严重的点。

我们可以借助上面推出的条件来度量一个点违反 机器学习 06:SMO 算法 条件的程度,具体来说,我们定义三份“差异向量”

机器学习 06:SMO 算法

其中第 机器学习 06:SMO 算法 个向量对应着第 机器学习 06:SMO 算法 个条件。对于不同的条件,我们按不同方式将对应向量的某些位置置为 0。

  • 第一个条件:机器学习 06:SMO 算法 若满足:

    • 机器学习 06:SMO 算法机器学习 06:SMO 算法
    • 机器学习 06:SMO 算法机器学习 06:SMO 算法
  • 第二个条件:机器学习 06:SMO 算法 若满足:

    • 机器学习 06:SMO 算法机器学习 06:SMO 算法机器学习 06:SMO 算法
    • 机器学习 06:SMO 算法机器学习 06:SMO 算法
  • 第三个条件:机器学习 06:SMO 算法

    • 机器学习 06:SMO 算法机器学习 06:SMO 算法
    • 机器学习 06:SMO 算法机器学习 06:SMO 算法

最后只需要将这三个差异向量的平方相加作为“损失”,从而直接选出损失最大的 机器学习 06:SMO 算法 作为外循环即可。


选择第二个变量

第二个变量成为内循环,只需要简单的随机选取一个即可。

取出这两个变量之后,把其它变量看做常数,这样优化目标函数就变成了带约束的二次规划问题。


目标函数的优化

假设选择的两个变量是 机器学习 06:SMO 算法,把其它的 机器学习 06:SMO 算法 都看作常数。定义 机器学习 06:SMO 算法 那么原先的优化目标函数就成了:
机器学习 06:SMO 算法


无约束求极值

我们先暂时不管约束条件 机器学习 06:SMO 算法,通过 机器学习 06:SMO 算法 可以将目标函数替换成单变量形式:
机器学习 06:SMO 算法

我们设更新前的值为 机器学习 06:SMO 算法, 更新后的值为 机器学习 06:SMO 算法,对目标函数进行一个偏导的求:
机器学习 06:SMO 算法

因为 SVM 中数据点的预测值为:机器学习 06:SMO 算法 因此有:

  • 机器学习 06:SMO 算法
  • 机器学习 06:SMO 算法

另有:机器学习 06:SMO 算法

将上面三个式子带入偏导中并化简得:
机器学习 06:SMO 算法

机器学习 06:SMO 算法,则有:
机器学习 06:SMO 算法

这样我们就求出了这两个变量在无约束情况下的解析解。


加入约束

机器学习 06:SMO 算法 时,线性限制条件可以写成:机器学习 06:SMO 算法,根据 机器学习 06:SMO 算法 的正负可以得到不同的上下界,可以统一表示为:

  • 下界:机器学习 06:SMO 算法
  • 上界:机器学习 06:SMO 算法

机器学习 06:SMO 算法 时,限制条件可以写成:机器学习 06:SMO 算法,此时上下界可以统一为:

  • 下界:机器学习 06:SMO 算法
  • 上界:机器学习 06:SMO 算法

由此可知,此约束为方形约束,下图为它的限制区域。
机器学习 06:SMO 算法

根据得到的上下界,我们可知加入约束后的 机器学习 06:SMO 算法 为:
机器学习 06:SMO 算法

这样就实现了对 机器学习 06:SMO 算法 的更新。


更新阈值 b

每次更新完一对 机器学习 06:SMO 算法 之后都需要重新计算阈值 机器学习 06:SMO 算法,因为它关系到 机器学习 06:SMO 算法 的计算和优化时误差 机器学习 06:SMO 算法 的计算。

机器学习 06:SMO 算法,根据 机器学习 06:SMO 算法 条件可知相应的数据点为支持向量,满足 机器学习 06:SMO 算法,两边同时乘 机器学习 06:SMO 算法 得:机器学习 06:SMO 算法,因此 机器学习 06:SMO 算法 的值为:
机器学习 06:SMO 算法

其中,机器学习 06:SMO 算法

机器学习 06:SMO 算法 时:
机器学习 06:SMO 算法

机器学习 06:SMO 算法 都有效时他们是相等的,即 机器学习 06:SMO 算法
机器学习 06:SMO 算法 都在边界上,且 机器学习 06:SMO 算法 时,选择它们的中点作为新的阈值:机器学习 06:SMO 算法





同步更新于:SP-FA 的博客

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2022年5月28日 下午3:27
下一篇 2022年5月28日

相关推荐