12、1SVM的基本简介
SVM是由logistic regression演变而来的:
假设函数:
logistic regression的假设函数输出是使得y=1的概率;
而SVM输出的是要么是0,要么是1.
代价函数:
logistic regression的代价函数分为y=1和y=0两种情况,对应的是下面左右两张图的黑色曲线;
SVM的代价函数则是对应下图中的粉色折线(由一段水平直线和一段倾斜直线构成),分别记为
cost1(z)和cost0(z),其中z=
θ
\theta
θTx
logistic regression代价函数:
SVM代价函数:
不同:
①对于SVM函数的代价函数来说,乘以常数m或者除以常数m对最后求得的
θ
\theta
θ没有影响,所以这里去掉了m.(不太理解)
②cost0(z)和cost1(z)都由曲线变成了折线。
③C相当于1/
λ
\lambda
λ,表示前一部分的比重;其中SVM中C增大和logistic regression中
λ
\lambda
λ减小效果相同,都是增加前一部分的权重,减少后一部分的权重。
12、2大间距分类器
SVM通常也被别人称为大间距分类器
当y=1时,我们想要z>=1
当y=0时,我们想要z<=-1.这里更加严格的条件,是为了让分类器分类后能得到最大间距。
决策边界:
假设代价函数中的C很大时,我们必须想办法让前半部分另一个乘数为0.
当y(i)=1时,要求z>=1
当y(i)=0时,要求z<=-1.
这样的话代价函数的前半部分变成了C*0
举例:这里为了把正样本和负样本分开,我们可以选择黑线、粉线或者绿线。
我们很容易发现粉线和绿线显得不太好,因为他们紧紧贴着样本;但黑线和两类样本都相距很远,拥有最大的间距(黑线也是应SVM得出的决策边界,SVM也被称为最大间距分类器)
运用SVM得出的决策边界是黑线,当我们加入一个异常样本时
①如果C很大的话,决策边界就会由黑线变为粉线。(粉线显得并不好)
②如果C不是很大的话,决策边界依然是黑线。(当C不是很大时,正样本中参杂少许负样本,负样本中参杂少许正样本,SVM依然可以得到正确的决策边界)
12、3支持向量机背后的数学原理
首先我们来了解两个向量内积的几何含义:
其次我们来了解
θ
\theta
θtx的几何含义:
最后我们在假设A(其中
θ
\theta
θ0=0保证决策边界能够过原点,且只有两个特征项也只有两个参数)下考虑为啥SVM会得到最大间距的决策边界:
其中很明显
θ
\theta
θ向量是和决策边界相互垂直的。
p(i)||
θ
\theta
θ||>=1时,代价函数前一部分为0,我们的目标是让1/2||
θ
\theta
θ||2最小,很明显右边的边界每个样本由于p(i)很大,想要p(i)||
θ
\theta
θ||>=1,则||
θ
\theta
θ||可以变得更小,符合我们的目标
12、4高斯核函数Ⅰ
非线性决策界:一般来说我们的选择就是构造复杂多项式的集合,但有时我们会想着用更好的特征量f1、f2、f3
三个标记点的相似度函数(高斯核函数)如下:
高斯核函数的含义(离标记点越近,函数值越靠近1;离标记点越远,函数值越靠近0):
σ
\sigma
σ2的大小与整个函数图像的关系(
σ
\sigma
σ2越大,则梯度下降越慢;越小,梯度下降越快):
用这些特殊的特征量来构造决策边界:
其中
θ
\theta
θ0=-0.5,
θ
\theta
θ1=1,
θ
\theta
θ2=1,
θ
\theta
θ3=0;
靠近l(1)和l(2)的样本的预测值为1
12、5高斯核函数Ⅱ
选择标记点:我们的所有的训练样本的个数都可以标为标记点,故有m个标记点
特征量:原先的特征量的维数是n+1,转换之后变为m+1维
代价函数的差异:
①
θ
\theta
θTx(i)换成
θ
\theta
θTf(i)
②正则化中n变为m
值得注意的是这里只需要
θ
\theta
θTx(i)>=0不需要>=1;
想让正则化项
θ
\theta
θT
θ
\theta
θ尽量小,实际中会让
θ
\theta
θTM
θ
\theta
θ尽量小,这会在m很大时让计算的时间变得更短。
参数的讨论:
①C大,则低偏差、高方差,容易过拟合
C小,则高偏差、低方差,欠拟合
②
σ
\sigma
σ2大,则高偏差、低方差,欠拟合
σ
\sigma
σ2小,则低偏差、高方差,过拟合
12、6SVM的实际使用
推荐软件库:liblinear,libsvm
我们需要做的:
①选择参数C
②选择核函数
当n很大、m很小的时候,选择线性核函数
当n很小、m很大的时候,选择高斯核函数
在实现核函数的时候,当你的特征变量相差比例较大的时候,我们必须对某些特征向量按比例归一化,防止某一个特征向量的影响盖过其他特征向量的影响,这个向量直接决定着核函数值(这时其他向量根本无用)
其他核函数的选择:
核函数必须满足‘默塞尔定理’,这样就可以用软件包中的优化方法
其中多项式核函数有两个选择参数:+x;次方数
多类别分类(不太理解):
逻辑回归和SVM的选择:
分三种情况:第三种情况相比第一种情况只是多了创造更多的特征项的步骤,用无核函数的SVM和逻辑回归效果取决于具体实例。
(SVM的软件包优化就是使得代价函数最小时,永远是全局最优、不会是局部最优)
神经网络则适用于大部分的情况,但其训练时间比较长。