SVM支持向量机(吴恩达课程笔记)

支持向量机(support vector machine) 大概是机器学习中最热门的算法之一,但同时也是最难懂的算法之一。最近看了吴恩达的课程,虽讲的比较浅显,但对于初学者来说不失为一个入门的好路径。

1. Optimization objective 目标函数

先来回顾一下逻辑回归,这是其计算分类概率的函数:
SVM支持向量机(吴恩达课程笔记)_第1张图片

这是逻辑回归的cost function:
SVM支持向量机(吴恩达课程笔记)_第2张图片

y=1y=2两种情况来表示zcost function之间的关系(黑色的细线):
SVM支持向量机(吴恩达课程笔记)_第3张图片

SVM支持向量机(吴恩达课程笔记)_第4张图片

如果将上图中逻辑回归的代价函数替换为蓝色的线,就得到了SVM。

这是逻辑回归的目标函数:
在这里插入图片描述

这是SVM的目标函数:
在这里插入图片描述

可以看到SVM中没有1/m,并且把λ替换为了C,这里C=1/λ

2. Large margin 大间隔

从SVM的代价函数可以看出,当y=1时,我们希望z>=1,而不仅仅是大于0;同样的,当y=0,我们希望z<=-1,而不仅仅小于0:
SVM支持向量机(吴恩达课程笔记)_第5张图片

当C非常大的时候,我们可以将SVM代价函数改写为带约束的极值问题:
SVM支持向量机(吴恩达课程笔记)_第6张图片

对于一个线性可分的问题,比较大的C会得到一个大间隔的decision bundary(黄色的那条决策边界):
SVM支持向量机(吴恩达课程笔记)_第7张图片

当存在一个离群的异常点时,较大的C不能容忍分类错误的情况,所以会产生黄色的决策边界。当C不那么大时,就可以得到更加合理的蓝色分界线:
SVM支持向量机(吴恩达课程笔记)_第8张图片

回顾一下向量内积的定义,vu的内积等于vu上的投影长度p乘以||u||
SVM支持向量机(吴恩达课程笔记)_第9张图片

依据上述定义,将SVM的优化函数改写为如下形式。要最小化的目标函数是||θ||,P(i)为x(i)在θ上的投影。
SVM支持向量机(吴恩达课程笔记)_第10张图片

我们希望p(i)*||θ||尽可能大,又希望||θ||尽可能小,所以就需要p(i)尽可能大。那么什么样的决策边界会得到较大的p(i)呢?

如果决策边界是下图绿色的那条线(margin比较小),θ就是与它垂直的那条线。这个时候投影p(i)比较小
SVM支持向量机(吴恩达课程笔记)_第11张图片

如果决策边界是下图竖直的那条绿线(margin比较大),这时θ就是水平的线。此时的投影p(i)比较大,满足我们的之前的要求。
SVM支持向量机(吴恩达课程笔记)_第12张图片

3. Kernals 核函数

核函数可以看做特征工程的一部分。对于一些线性不可分的样本,通过核函数将它们的特征映射到更高/复杂的维度,从而实现在高维新特征下线性可分的目的。比如下图的多项式核函数:
SVM支持向量机(吴恩达课程笔记)_第13张图片

最常用的kernel是高斯核函数。首先选几个landmarks,然后计算样本点离这些landmarks的距离(相似性)作为新特征:
SVM支持向量机(吴恩达课程笔记)_第14张图片

由下图的公式可以看出,当x与landmark很近,高斯相似度接近于1;当x于landmark很远,高斯相似度接近于0:
SVM支持向量机(吴恩达课程笔记)_第15张图片

SVM中关于参数C和高斯核的参数σ^2的偏差方差分析:
SVM支持向量机(吴恩达课程笔记)_第16张图片

SVM的应用建议,关于kernel和参数的选择:
SVM支持向量机(吴恩达课程笔记)_第17张图片

逻辑回归 VS SVM
SVM支持向量机(吴恩达课程笔记)_第18张图片

你可能感兴趣的:(Machine,Learning)