• 前边我们已经学习了线性回归和逻辑回归、神经网络一系列监督学习算法,并且得出结论:在机器学习中,重要的不是使用算法a还是算法b,而是是否能收集到大量数据。并且算法的性能非常依赖使用者的个人水平,如特征向量的选择、正则化参数的选择
  • 接下来,我们讨论最后一个监督学习算法:支持向量机(SVM)。与逻辑回归和神经网络相比,SVM为学习复杂的非线性方程提供了一种更强大的方式

从逻辑回归讲起

  • 我们从逻辑回归开始,一点点的修改,逐渐改为实质上的支持向量机:

(1)首先考虑,我们要想逻辑回归干啥。当样本y=1时,假设函数h趋近1,即向量乘积远大于0;当样本y=0时,假设函数h趋近0,即向量乘积远小于0
image
(2)接着我们观察逻辑回归的代价函数只有一个样本即m=1时的样子。我们令y=1,得到如图曲线,这时想让代价函数小的话,要求z远大于0;我们将这条曲线修改为两条线段,右边水平,这作为支持向量机代价函数的一项。令y=0,得到如图曲线,想要代价函数小的话,要求z远小于0;我们继续用两条线段代替曲线,得到支持向量机的另一项。这两项定义为cost1(z)、cost0(z)
image

  • 下边我们开始构建支持向量机的代价函数:

(1)将逻辑回归代价函数的负号放到里边去,然后两个对数项替换成cost函数
(2)去掉1/m这一项。因为在一个样本集中,因为m是相同的,带不带对代价函数的大小比较没影响
(3)概念上的变化,不用正则化参数权衡平均误差和正则化项,而是用C参数权衡(实际是一样的,可以看做1/正则化参数)
经过三步加工,我们就得到了支持向量机的代价函数
image

  • 这里要注意逻辑回归和支持向量机的区别:

(1)逻辑回归输出的是概率,然后我们人为规定一个临界值,判断0还是1
(2)而支持向量机直接预测y是0还是1
image

支持向量机:又称大间距分类器

  • 支持向量机又称为大间距分类器,我们来看一下为什么。我们先考虑最小化支持向量机的代价函数要求什么:

(1)当y=1时,后边一项为0,只有z大于等于1时前边一项逼近0
(2)当y=0时,前边一项为0,只有z小于等于-1时后边一项逼近0

因此与逻辑回归仅要求正负或者自己定临界值不同,支持向量机要求更高,要求1和-1(个人理解:不是非黑即白了,在正负标签间有一段空白间距,有了过渡地带)。这就相当于嵌入了额外的安全因子,增大了准确性
image

  • 综前,要让误差项为0,就要满足这两个条件中的一个:

(1)y=1时,误差项大小由cost1决定,要求z大于1
(2)y=0时,误差项大小由cost0决定,要求z小于-1
image

  • 由于嵌入了安全因子,支持向量机的决策边界更加稳健。这是因为决策边界到训练样本有更大的最短距离。由于支持向量机的这个特性,有时又被称为大间距分类器

image

  • 若我们将C参数设置的非常大(100000),那么误差项的权重就会非常大,很有可能因为一个异常点就改变了曲线的形状,这显然是不明智的

image

大间距分类背后的数学原理

  • 下边我们看一下,为什么这种代价函数能够让决策边界到训练样本有更大的间距
复习向量的内积运算

U转置乘V=V乘U的转置=V投影到U上的投影,乘U的模(投影是有符号的)
image

应用内积到支持向量机的代价函数
  • 我们简化代价函数的参数0为0,只有两个特征,这使得我们能把它放到二维坐标中表示

(1)当满足前边误差项为0的条件之一时,代价函数只有正则化项一项,可以写作假设函数参数模的平方
(2)我们假设样本集只有一个样本,那么z可以写作参数向量的模乘特征向量在参数向量上的投影,将乘积和1或者-1比较
image
(3)因为参数0为0,所以决策边界通过原点。因为参数变量和决策边界是正交的,所以参数向量和距离是平行的。当最短距离小时,特征向量的投影值也小,要符合1、-1的话,要求参数向量的模大,而参数向量的模大的话,代价函数的值就会变大,这与我们尽量要求代价函数小矛盾。这就是支持向量机能产生大间距分类的原因
image

  • 综上,支持向量机通过尽可能缩小参数向量模的大小,来找到最大间距的决策边界

核函数

  • 在拟合非线性边界时,之前我们一般通过构造多项式特征变量解决,但是这种方法计算量太大。在支持向量机中,我们通过构造新的特征,来拟合非线性边界
    image
如何构造新的特征变量
  • 我们手动选择一些点,用函数度量x和每个点的相似度,这些相似度构成新的特征变量。其中,相似度函数就是核函数,核函数有许多种,这里我们以高斯核函数为例

image

  • 核函数的直观感受:当x和我们选择的点接近时,分子接近0,f接近1;当x和选择的点隔得远时,分子比较大,f接近0.所以核函数就是度量x和标记点的相似度,接近为1,远离为0。其中每个特征点l定义一个新的特征变量f

image

  • 核函数参数对核函数的影响:我们用等高线图表示。当核函数参数变小,变密收缩;核函数参数变大,稀疏扩展

image

  • 定义了新的特征变量后,看下新的假设函数:假设我们已经得到了假设参数。当训练样本接近l1点,f1接近1,f2、f3接近0,假设函数值为0.5,预测y=1;当训练样本远离时,f1、2、3都接近0,假设函数值为-0.5,预测y=0

image


无欲则刚
76 声望15 粉丝