第十二章-SVM支持向量机 深度之眼_吴恩达机器学习作业训练营

Kamiisa ·
更新时间:2024-09-21
· 690 次阅读

目录

一,优化目标

  1.1 从逻辑回归到SVM

1.1.1 回顾逻辑回归算法

1.1.2 损失项变换

1.1.3 正则化变换

1.1.4 假设函数变换

  1.2 最大间隔

1.2.1 直觉上理解

1.2.2 最大间隔的数学原理

二, 核函数

2.1 高斯核函数

2.2 其他核函数

三,SVM的使用建议

3.1 超参数

3.2 核函数的选择以及训练

3.3 多分类问题

一,优化目标

支持向量机(Support Vector Machines,简称SVM)是一个非常强大且广泛运用与工业界和学术界的算法,其为学习复杂的非线性方程提供了一直清晰且强大的方法。其即可用于分类问题,又可稍加变形运用到回归问题中,本章主要从分类问题着手,从逻辑回归算法“演变”到SVM。

  1.1 从逻辑回归到SVM

本节中,我们首先回顾逻辑回归算法,然后再通过“3步变换”,得出SVM算法。

1.1.1 回顾逻辑回归算法

研究任何一个算法,首要的就是确定其优化目标,也就是常说的损失函数。这里我们先回顾逻辑回归的目标函数与损失函数:

                                             

图12-1 sigmoid函数

             在逻辑回归中h(X)一直可被理解为样本 X的标签y=1的概率,当 θX越大,概率越接近1;当 θX越小,概率越接近0。再来观察损失函数,当样本X的真实标签Y为1或为0时损失函数分别如图12-2和图12-3所示。

图12-2 y=1时的损失函数

当y=1时:如果Z越大相应的预测为1的概率越大,则损失值越小;反之如果Z越小相应的预测为1的概率越小,则损失值越大。

图12-3 y=1时的损失函数

当y=0时:如果Z越大相应的预测为1的概率越大,则损失值越大;反之如果Z越小相应的预测为1的概率越小,则损失值越小。

1.1.2 损失项变换

在SVM中,我们将公式9.1中的

图12-4 普通模型与SVM模型

回顾假设函数(公式 12.3),可知模式以

图12-5 向量投影

首先需要了解一个前提知识:向量投影。任意一个N维向量可与N维空间中的一个点相对应,如图12-5中,向量

图12-6 间距与模长
二, 核函数

当数据非线性可分时我们可改变决策边界的表达式,但在SVM中还有更好的方法---核函数。核函数可将已有的数据特征映射到更高维度的空间中,使得存在一个超平面能将样本进行划分。核函数的种类很多,这里介绍常用的高斯核函数。

2.1 高斯核函数

在N维空间中选定k个地标(landmarks)

图12-7 高斯核函数

假设训练出结果为\theta_{0} =-0.5 ,\theta_{1}=1, \theta_{2} = 1, f_{3}= -2 ,\theta_{4} = 0。则表明当样本越解决地标l^{1},l^{2}时越可能是正类,越接近地标l^{3}时,越可能是负类,地标l^{4}对分类无影响,且远离这些地标时默认为负类。综上所述可得图中绿色的决策边界,边界以内为正类,边界以外为负类。于是乎通过从高斯核函数可得到如图中这般复杂的决策边界。

由上可知,地标的选择非常重要。这里介绍一种简单的选择方法,即在训练样本中每个原样本所在位置处复制出一个一模一样的地标。假设有m个实例,则会将原数据映射到m维空间中,最后通过训练可知一些特征所对应的参数θ较小甚至为0,表明其对分类不重要可删去。

同时超参数\sigma ^{2}也会对训练造成一定的麻烦,当\sigma ^{2}较大时,可能会导致低方差,高偏差;当\sigma ^{2}较小时,可能会导致低偏差,高方差。

2.2 其他核函数

除了高斯核函数以外还有一些其他的常用核函数,例如:

线性核函数(Linear kernel),不使用任何核函数,用原数据特征线性核函数。 多项式核函数(Polynomial Kernel),使用原特征之间的多项式组合为新特征。 字符串核函数(String Kernel),常用于文本分类和信息检索等领域,以字符串的子串为特征。 卡方核函数(Chi-square Kernel) 直方图交集核函数(Histogram intersection Kernel) etc...... 三,SVM的使用建议 3.1 超参数

回顾上文,已知有2个超参数\sigma ^{2}C = \frac{1}{\lambda}会影响最终结果需要了解的是。

\sigma ^{2}较大时,可能会导致低方差,高偏差;当\sigma ^{2}较小时,可能会导致低偏差,高方差。 当C较大时,相当于λ较小,容易导致过拟合,高方差;当C较小时,相当于λ较大,容易导致欠拟合,高偏差。 3.2 核函数的选择以及训练

假设特征数为n,样本数为m,则有以下的使用准则:

当n远大于m时,训练样本不足以训练出一个复杂的非线性模型,应当选择逻辑回归模型或者不带核函数的SVM。 当n较小,m大小中等时,如 n 在(1~1000)之间,m在(10~10000)之间,可使用高斯核函数的SVM。 当n较小,m较大时,如n 在(1~1000)之间,m大于50000时,训练SVM会非常慢,应当创造和增加样本特征,然后再使用逻辑回归模型或不带核函数的SVM。

在训练SVM时,最好选择合适的高级优化软件库而非自己实现,这时要求所选的核函数满足Mercer‘s定理才能被正确的优化。

还需要注意的一点是当使用核函数时,损失函数中的正则化项\frac{1}{2}\sum _{j=1}^{n}\theta_{j}^{2} = \frac{1}{2}\theta^{T}\theta需要修改为\frac{1}{2}\theta^{T}M\theta,其中M为根据具体核函数而定了一个矩阵,其原因是为了简化计算。

3.3 多分类问题

对于多分类问题,同样可以采取在介绍逻辑回归时所采用的训练出多个二分类模型的方法。假设一个有K个类,则训练出K个二分类SVM,一个对应一个类别即可。

同时也可直接采用有关SVM的软件包,其中有内置的多分类功能。

 

四,总结

本章主要讲解了SVM的相关知识具体有:

利用熟知的逻辑回归模型逐步”演变 “出SVM模型。 重点讲解了SVM具有最大化间隔的功能。 讲解了利用高斯核函数将样本映射到高维空间的方法。 讲解了有关SVM的一些使用技巧。
作者:凡尘一人



吴恩达 训练 学习 svm 机器学习

需要 登录 后方可回复, 如果你还没有账号请 注册新账号