目录
SVM是一种监督式学习算法,有时候它更简洁和强大
一 优化目标
以逻辑回归为例
如果y=1,那么hθ(x)≈1且
如果y=0,那么hθ(x)≈0且
然后将逻辑回归的代价函数变形后,得到如下的代价函数公式
可分为y = 0 和y = 1 两种情况,下图中的折现对应了SVM的代价函数曲线(hinge loss 函数)
代价函数中,在y为0时第一项失效, y=1 时第二项失效。
因此,如果我们想最小化代价函数,那么首先考虑这两个极端情况:
- 在y为0的时候,需要让z比-1小,此时第一第二项都为零。
- 在y为1的时候,需要让z比1大,此时第一项第二项都为零。
二 Cost function
下面给出Cost function 的定义
其中cost0 代表y =0 时,cost1 代表y=1时的代价函数,K 为直线的斜率。
C本质上和λ一样的,都是改变普通代价函数项和正则项的权重关系。如果我们想要加强正则化强度来处理过拟合,那么减小C;如果想要减少正则化强度来处理欠拟合,那么增大C
与逻辑回归中不同的是,SVM算法的假设函数并不代表y=0或1的概率,而是只输出0或1
三 大间距分类器(SVM别称)
SVM引入了hinge loss函数来代替sigmoid函数,其输出关系如下:
- 预测y=1,则要使z≥1(注意不仅仅是≥0)
- 预测y=0,则要使z≤−1(注意不仅仅是<0)
如果代价函数中的C非常大,最小化优化目标的时候,我们需要找到一个值使第一项为0
SVM决策边界
大间距分类器指的是尽可能地把正数据集与负数据集的间距拉大。因为这样会使决策边界对于两种数据集都有一些余地,也就是有一些容错率
四 SVM的数学原理
向量内积的几何意义:相当于向量V在向量U的投影长度乘以向量U的平方根,如果U和V的夹角大于90°,内积为负值
根据上述概念,对于SVM的cost function的优化目标是让参数的平方根尽可能的小
因此优化代价函数的目标其实是让样本向量在参数构成的向量上的投影尽可能的大于1 或小于-1
从下图可以看出,左侧的决策边界情况下,样本在参数向量上的投影长度较短,这就意味着参数的平方根要足够大才能满足上述要求。这显然不符合优化方向。
五 用SVM训练复杂非线性分类器
如果要将下图中的类别分开,假设用了高阶多项式,为了方便表示,用f 对公式进行替换。
由于高阶多项式的特征过于庞大,计算量超级高。是否有办法来得到更好的特征嵌入到假设函数中呢?
1.核函数
首先假设坐标系中有一些标记(landmark),度量样本X与标记之间的相似度,因此引入了一个新的相似度函数
相似函数的目的是找到更好的特征来代替样本的幂指数项。这里选择高斯函数作为相似函数,相似函数就是核函数
相似函数有如下两个特征
如果样本和标记很接近,则f接近1
如果样本和标记差异很大,则f接近0
具体如下图所示
2.高斯核函数示例
对于下图的水平坐标对应了样本的x1 和x2分量 ,高度对应了f_1(假设我们这里讨论的是标记1)的大小,对于刚好等于[3,5]这个点的样本来说,它的f值刚好达到了最大(在帽顶上),如果离这个点越远,那么f值越接近0,它衡量了样本X到标记f_1的距离(介于0和1之间)。
改变高斯函数的参数的值,可以改变f_1接近0的速度
如果,f_1下降的很快
如果,f_1下降的相对较慢
3.根据标记点和已知的参数确定样本的分类
根据下图,靠近l1和l2的样本会被判定为正类,原理l1 和l2的样本会被判定为负类,这里l3不起作用因为假定
六 如何选择标记点(landmarks)
1.将训练集中的每一个样本的坐标位置对应一个标记点
2.对于训练集/测试集/交叉检验集中的任意一个样本计算其与所有标记点的距离,得到一个特征向量
3.训练过程
七 SVM参数选择技巧
,所以对于C来说
C越大,过拟合(高方差,低偏差)
C越小,欠拟合(低方差,高偏差)
对于参数来说,
越大,特征向量f_1越光滑,对应高偏差,低方差(过拟合)
越小,特征向量f_1越剧烈,对应低偏差,高方差(欠拟合)
八 SVM 与逻辑回归的选择
n: 特征的数量,m:训练样本的数量
- 1.n非常大(相对于m),则使用逻辑回归,或者是无核函数的SVM算法(线性核函数)原因:我们没有足够的样本来训练多项式假设函数
- 2.n比较小,m适中,那么使用高斯核函数支持的SVM算法,原因:我们有足够的样本来训练非线性假设函数
- 3.n比较小,m非常大,则需要手动地添加更多的特征量,然后使用逻辑回归或者不带核函数的SVM算法。原因:我们想要增加更多的特征量,以此使得逻辑回归可以适用。