本讲内容

1. Kernels (核)

2. L1 norm soft margin SVM (L1 norm软边界SVM)

3. SMO algorithm  (SMO算法)

 

1. 核函数K

首先回顾线性分类器SVM的原始优化问题

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

 

上一讲解出其对偶问题为

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

解出

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

(笔记)斯坦福机器学习第八讲--顺序最小优化算法  

 

我们可以将整个算法表示成内积的形式

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

 由上式可知,算法对于x的依赖,仅仅局限于这些内积,我们甚至无需显式地写出x的值,只需要得到训练样本(笔记)斯坦福机器学习第八讲--顺序最小优化算法和输入特征向量x之间内积的值。

 这就是核要解决的事情。

 

 给定一组输入特征x,我们经常会将这个特征x映射到一组更高维的特征上,用 (笔记)斯坦福机器学习第八讲--顺序最小优化算法 来表示这个映射关系,那么有

Have (笔记)斯坦福机器学习第八讲--顺序最小优化算法

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

 

得到新特征(笔记)斯坦福机器学习第八讲--顺序最小优化算法.

如果想要使用这些新特征 (笔记)斯坦福机器学习第八讲--顺序最小优化算法,只需要回到原来的公式中,将所有的 (笔记)斯坦福机器学习第八讲--顺序最小优化算法 替换为 (笔记)斯坦福机器学习第八讲--顺序最小优化算法

这里存在一个问题,映射之后得到的新特征(笔记)斯坦福机器学习第八讲--顺序最小优化算法 的维数可能非常高,甚至于是无限维的向量,那么传统的计算向量内积的方法是非常低效的,因为计算机需要对(笔记)斯坦福机器学习第八讲--顺序最小优化算法进行表示,之后才计算内积。

既然 (笔记)斯坦福机器学习第八讲--顺序最小优化算法的表示代价如此之大,那么干脆就不要显式的把(笔记)斯坦福机器学习第八讲--顺序最小优化算法表示出来——我们可以通过直接规划(笔记)斯坦福机器学习第八讲--顺序最小优化算法的值来得到我们需要的结果。

引入核函数的定义

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

SVM的思想是,对于算法中任何出现 (笔记)斯坦福机器学习第八讲--顺序最小优化算法的地方,都替换为核函数 (笔记)斯坦福机器学习第八讲--顺序最小优化算法

 

假设对于 (笔记)斯坦福机器学习第八讲--顺序最小优化算法

我们规划 (笔记)斯坦福机器学习第八讲--顺序最小优化算法

下面比较传统计算内积的算法和核函数计算内积算法的复杂度:

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

       (笔记)斯坦福机器学习第八讲--顺序最小优化算法

                 (笔记)斯坦福机器学习第八讲--顺序最小优化算法

       (笔记)斯坦福机器学习第八讲--顺序最小优化算法

那么对应的

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

(假设n=3)

对于传统算法来说,假设x的长度n为3,那么为了显式的表示出 (笔记)斯坦福机器学习第八讲--顺序最小优化算法,需要O(n^2)的时间复杂度,如图所示(笔记)斯坦福机器学习第八讲--顺序最小优化算法 的长度为9;

但是如果只是计算核函数K的值,只需要O(n)的时间复杂度:我们计算 (笔记)斯坦福机器学习第八讲--顺序最小优化算法的值,然后将结果乘积。

通过创造核函数的形式,实际上在隐性地处理一个维数非常大的向量空间的乘积,而仅仅需要O(n)的时间复杂度。

那么对于一个机器学习问题,应该如何创造一个核?

给定一组属性 (笔记)斯坦福机器学习第八讲--顺序最小优化算法

给定一组属性 (笔记)斯坦福机器学习第八讲--顺序最小优化算法

核就是计算 (笔记)斯坦福机器学习第八讲--顺序最小优化算法

一种直观的理解是:

假设属性x和属性z相似度很高,那么 (笔记)斯坦福机器学习第八讲--顺序最小优化算法和 (笔记)斯坦福机器学习第八讲--顺序最小优化算法将会大概指向相同的方向,内积会比较大;

如果x和z的相似度很低,(笔记)斯坦福机器学习第八讲--顺序最小优化算法 (笔记)斯坦福机器学习第八讲--顺序最小优化算法将会指向不同的方向,内积会比较小。

因此一个创造核的一般做法是:

当你希望x和z相似度高的时候,K(x,z)的值比较大;

当你希望x和z相似度低的时候,K(x,z)的值比较小。

一种好的度量x和z相似性的核函数为

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

 

核K的合法性:

是否 (笔记)斯坦福机器学习第八讲--顺序最小优化算法 ?

假设K是一个核函数, 给定任意点集合 (笔记)斯坦福机器学习第八讲--顺序最小优化算法

定义核矩阵 (笔记)斯坦福机器学习第八讲--顺序最小优化算法

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

对于任何一个m维向量 (笔记)斯坦福机器学习第八讲--顺序最小优化算法

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

             (笔记)斯坦福机器学习第八讲--顺序最小优化算法

        (笔记)斯坦福机器学习第八讲--顺序最小优化算法

             (笔记)斯坦福机器学习第八讲--顺序最小优化算法

    (笔记)斯坦福机器学习第八讲--顺序最小优化算法

因此,当核矩阵K为对称的半正定矩阵时,K是一个合法的Mercer核,即 (笔记)斯坦福机器学习第八讲--顺序最小优化算法,逆命题也成立。      

 

2. L1 norm soft margin SVM 

到目前为止,我们讨论SVM时认为数据是线性可分的, 把数据映射到高维空间一般会增加线性可分的可能性,但是我们不能保证一定可以.

左图显示的是一个最优间隔分类器,但是如果在左上区域加上一个异常值,决定边界线会发生剧烈的变化,
导致分类器有更小的边界.

 (笔记)斯坦福机器学习第八讲--顺序最小优化算法

为了使算法能够处理非线性可分的数据集并且对异常值不会这么敏感, 修订优化问题如下: 

 (笔记)斯坦福机器学习第八讲--顺序最小优化算法

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

直观解释如下:

(笔记)斯坦福机器学习第八讲--顺序最小优化算法 意味着样本被正确分类,通过设置 (笔记)斯坦福机器学习第八讲--顺序最小优化算法,我们允许分类器对一部分样本错误分类;

然而这种做法并不被鼓励,因此需要在原始的优化问题上添加一个正则项,当将 (笔记)斯坦福机器学习第八讲--顺序最小优化算法 设置为较大值时,会给予总体目标一些惩罚。

这里多了一个参数(笔记)斯坦福机器学习第八讲--顺序最小优化算法,于是对偶问题的解变为

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

 通过KKT条件,可以推导出如下收敛性条件:

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

 

3. 顺序最小优化算法

我们得到了优化问题以及收敛性条件,那么该如何高效地求解这个优化问题呢?

引子. 坐标上升法

对于上述优化问题,首先忘掉所有约束条件,只考虑 (笔记)斯坦福机器学习第八讲--顺序最小优化算法

坐标上升算法表述为

Repeat

{

for i = 1 to m:

   (笔记)斯坦福机器学习第八讲--顺序最小优化算法

}

保持除 (笔记)斯坦福机器学习第八讲--顺序最小优化算法 之外的所有参数固定,使优化目标相对于(笔记)斯坦福机器学习第八讲--顺序最小优化算法 取最大值。

 坐标上升法对于二次函数的执行过程如下:

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

坐标上升法相对于牛顿法,会需要更多的迭代次数来达到收敛,但是优点是,当每次固定所有参数只优化一个参数时,其计算代价要比牛顿法的一次迭代小得多。

下面考虑坐标上升法在SVM求解优化问题的引申,考虑SVM的约束:

 (笔记)斯坦福机器学习第八讲--顺序最小优化算法

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

如果使用坐标上升法,不可能一次只改变一个 (笔记)斯坦福机器学习第八讲--顺序最小优化算法 而不违反约束条件。

于是SMO算法选择一次更新两个(笔记)斯坦福机器学习第八讲--顺序最小优化算法 。

假设更新的参数为 (笔记)斯坦福机器学习第八讲--顺序最小优化算法 ,对于算法的每一次迭代,都有

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

因此 

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

(笔记)斯坦福机器学习第八讲--顺序最小优化算法 用 (笔记)斯坦福机器学习第八讲--顺序最小优化算法 表示

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

于是在一次迭代中,可以把 (笔记)斯坦福机器学习第八讲--顺序最小优化算法 看成是 (笔记)斯坦福机器学习第八讲--顺序最小优化算法 的函数

 (笔记)斯坦福机器学习第八讲--顺序最小优化算法

是标准的一元二次函数,可以很容易的得到(笔记)斯坦福机器学习第八讲--顺序最小优化算法关于 (笔记)斯坦福机器学习第八讲--顺序最小优化算法 的最优解。

然后考虑另外一个约束

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

称为方形约束。

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

(笔记)斯坦福机器学习第八讲--顺序最小优化算法的解一定要落在边长为C的正方形的空间内,同时(笔记)斯坦福机器学习第八讲--顺序最小优化算法 还要满足 (笔记)斯坦福机器学习第八讲--顺序最小优化算法的约束,即 (笔记)斯坦福机器学习第八讲--顺序最小优化算法 要落在这条直线上,那么根据求解的一元二次函数的最优解,(笔记)斯坦福机器学习第八讲--顺序最小优化算法 的更新如下:

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

求出(笔记)斯坦福机器学习第八讲--顺序最小优化算法之后根据

(笔记)斯坦福机器学习第八讲--顺序最小优化算法

解出(笔记)斯坦福机器学习第八讲--顺序最小优化算法 的值,一次迭代完成。

每次迭代需要根据一些启发性规则选出 (笔记)斯坦福机器学习第八讲--顺序最小优化算法 来进行更新,直到(笔记)斯坦福机器学习第八讲--顺序最小优化算法收敛。

 

第八讲完。

 

相关文章:

  • 2021-07-25
  • 2022-03-08
  • 2021-05-29
  • 2021-08-11
  • 2021-09-20
  • 2021-07-26
  • 2021-08-09
  • 2021-07-10
猜你喜欢
  • 2021-07-13
  • 2021-09-30
  • 2021-05-17
  • 2021-08-20
  • 2021-07-13
  • 2022-12-23
  • 2021-07-24
相关资源
相似解决方案