吴恩达《机器学习》第十二章:支持向量机SVM
十二、支持向量机
12.1 优化目标
SVM:support vector machine;
把代价函数分成两部分,比如左边:hθ(X)=1/(1+e-z),当z趋向于很大的数时,hθ(X)才能取到1;
支持向量机:
- 取出1/m,惯例不同而已,1/m不影响θ的结果;
这是支持向量机的总体代价函数:
12.2 大边界的直观理解
支持向量机=大间距分类器?
什么是向量机,我们如何理解它,有什么作用?
假设C非常大,那么我们优化代价函数只需将A部分尽力优化成0即可,那么可做出如下假设:
假设A被优化成0:
比如:
~~~~~~
未使用支持向量机时,决策边界可能是紫色的或者绿色的那条,可以看出它们非常贴近数据集;
~~~~~~
而使用支持向量机画出的决策边界的间距(黑色线),很明显拥有更大的间距,能够更好的夹在两个数据集中间;
~~~~~~
更大间距->更好的鲁棒性;
~~~~~~ 当C非常大的时候,决策边界会对某个异常点敏感,比如没有左下角的红×时,决策边界是黑线,当加上那么一个异常点时,决策边界可能立马变为紫色的线;而这都是基于C很大的情况;
如果C很小,那么决策边界并不会对某个或者一些异常点敏感,比如上面正集混入一些负集等等,它还是能划出一条合理的分类边界;
所以C的取值问题才是SVM的核心,C取得不那么大时,才能既有大边界又能对某个/些异常数据不敏感;
12.3 数学背后的大边界分类
为什么这么优化呢?如何得到大间距分类器的?
更好地理解SVM;
欧几里得长度;
vTu内积=v在u上的投影长度*u的长度;
p是有符号的;
当C取很大得值时,A部分就要最小化为0,此时代价函数=1/2||θ||2;
~~~~~~
z=0时,假如边界函数如绿色线所示,θ与决策边界垂直,那么对于x(1)和x(2),它们在θ上的投影长度都很小,那么为了满足条件p(i)·||θ|| ≥1或者p(i)·||θ||≤-1,则||θ||就要取很大的值,这与之前最小化代价函数(1/2||θ||2)相矛盾;
支持向量机试图让p(i)(训练样本到决策边界的距离)变得足够大,从而让θ的范数变小,最小化代价函数;
这就是SVM如何产生大间距分类现象的;
12.4 (高斯)核函数1
非线性决策边界
本节问题:
- 什么是高斯核函数?
- 运行机理
f(i)表示相似度;
相似度的度量=>相似函数=>核函数=>高斯核函数=>k(x,l(i));
给定一标记点 l1,如果样本x距离 l1 近,那么这个f1的值接近于1,隔得越远,越接近0;
σ是高斯核函数的参数,σ越大收敛越慢;
12.5 (高斯)核函数2
本节问题:
- 如何求解这个相似方程?
- 标记点如何设置?
使用SVM+Kernels
有m个样本就选m个标记点;将计算出的m个相似度合成相似度向量 ( +f0 就是m+1维);
低偏差、高方差就是图像有较大的斜率,不那么平滑;
高偏差、低方差就是图像较平滑;
高斯分布=>正态分布;
12.6 使用支持向量机
本节问题:
- 如何使用SVM软件进行求解;
- 如何选择一个合适的核函数;
支持向量机并不能很好的应用在逻辑回归;
C的选择、核函数的选择;
计算核函数的向量值;
进行特征缩放,放置特征中量级较大的特征过度影响||v||2;
核函数应该要满足的条件(并不是所有的函数都能作为核函数):
Mercer定理;
其它核函数:
- 多项式核函数;一般表现较差 ,用的不多;
- 卡方核函数;
- 字符串核函数
- …
多分类问题:
SVM是一种凸优化,不用担心局部最优;
SVM比神经网络快,它是一种体系,一个有效的方法去学习复杂的非线性函数;