小闹钟的机器学习笔记(8)

本次学习内容为cs229第八节

回顾

首先回顾上一节提到的优化问题:

这里写图片描述

对于这个问题,给定一个训练集合,这个问题的算法会找到一个数据几何的最优距离分类器,使得训练样本的几何间隔最大化。我们推出这个问题的对偶问题。

这里写图片描述

我们同样求出参数w应该满足以下式子。

这里写图片描述

g是个阈值函数,输出为0或1。

比如说有一个输入属性或者一个实数x,通常将x映射到多个特征上。如果想使用映射后的新特征,只需要回到算法中将所有的x替换。这意味着我们会使用映射后的特征来执行向量机。
有时候这些特征维度可能很高,你无法高效地计算出内积。
定义为:

这里写图片描述

你可以用很小的代价计算出向量的内积,即计算出核。
支持向量机的思想是在算法中你看到这样的内积都将其替换成核函数。
比如说有两个输入x,z。则我们的核函数:

这里写图片描述

为了计算映射的特征,你需要O(n^2)的时间,但为了计算k也就是核函数的值,你只需要O(n)的时间。你只用O(n)时间的复杂度就计算出了两个包含n^2个元素的向量的内积。
核的一般表示:

这里写图片描述

核就是计算两个特征向量的内积。如果xz非常相似,特征向量可能指向一个方向,内积就会非常大。如果相似度比较低,就会指向不同方向,内积就会变小。

假设有一个分类问题,我写出一个核函数并认为它能很好度量x和z的相似性:

这里写图片描述

我们需要考虑K的合法性。
定义一个核矩阵,表示核函数在这两个样本上的取值。

这里写图片描述

对于任何m维向量z,根据矩阵乘法的定义:

这里写图片描述

假设k是一个合法的核函数,那么满足要求的向量一定存在,它等于两个向量的内积,所以可以把它展开。然后重新调整求和的顺序,就可以得到倒数第二行的式子。

如果k是一个合法的核,它所对应的矩阵是半正定矩阵。逆命题也是成立。

SVM与核

核的作用是将你的原始输入映射到高维的特征空间。然后你在这个空间运行SVM,你会找到最优间隔分类器。换句话说,你找到的分类器将高维空间的数据分隔开来,并且使几何间隔最大化。在原始空间不是线性可分,但到了高维空间就可分。

非线性决策边界

对SVM原始问题进行修改,添加一些惩罚项。

这里写图片描述

要求所有的训练样本都需要被分隔,并且其函数间隔都要大于等于1-惩罚项。通过调整惩罚项,我们使得某些数据的函数间隔小于0,即被错误分类。
我们也可以求出这个优化问题的对偶问题。
首先构建拉格朗日算子。a和r表示拉格朗日乘数,分别和我们之前的约束相对应。
我们的拉格朗日算子等于要优化的目标函数减去拉格朗日算子乘以这些大于0的约束。

这里写图片描述

当你推导出这个优化问题的对偶问题并且化简后,你会得到:

这里写图片描述

你可以消除掉拉格朗日乘数r,只剩下和a的约束相关。

这里写图片描述

这是l1 norm软间隔SVM,它对原有算法进行修改,使我们可以处理非线性可分割的情形,同时对于那些包含异常数据的可线性分割的数据集合,也可以通过这个算法,不进行完全正确的分类决策。

坐标上升算法

我们希望最大化函数w,它是一个关于a1到am的函数,没有约束条件。
坐标上升算法是这样的:

repeat {
for I=1 to m
ai:=arg max w(a1..)[相对于ai使函数w取最大值]
}

同牛顿方法相比,坐标上升会经过更过的步骤,但是坐标上升的主要优点是,有的时候相对于w的任何一个参数,求其最优值的代价会比较小。
坐标上升的基本形式不能直接应用,因为我们对ai存在约束。

这里写图片描述

SMO序列最小优化算法,最小指的是希望我们一次只改变最小数目的ai。由于约束的存在,我们一次只改变两个ai。

除ai和aj外,所有参数固定,同时相对于这两个参数使w取最优,同时满足所有约束条件。
根据之前的约束条件,我们知道:

这里写图片描述

还有另一个约束:

这里写图片描述

将a1用a2表示并带入原式,得到一个二次方程。求解后并根据方形约束可以得到a2的值,然后再求出a1的值。
每一次迭代都要选取一对a1a2用以上方法进行更新。

SVM的应用

手写整数识别问题。
神经网络一直被视为用来解决手写识别问题的最好的算法。
事实证明多项式核和高斯核的效果都很好。
将这些核代入到SVM中,其性能和神经网络差不多。

SVM可以用来对一些神秘的事物进行分类。比如蛋白质。
假设我需要把蛋白质分成几类,特征选取氨基酸序列出现的次数。这种表示方式与蛋白质长度无关。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值