监督学习第四,五周:
因为有一周是lab课所以第四课实际上是第五周的内容。
本课件26页,典型的高压课件!所有复杂的理论就在这26页中全部展示。我会尽量让大家跟随教授的思路并享受到直观的算法思想。
1,具有分离数据功能的超平面
前面的课程说过,所谓的分类问题的解就是一个函数,这个函数能够接受数据输入,产生分类结果的输出。
而在一个空间中,我们则是要找到一个界限,这个界限可以将不同类别的数据分开。
而对于一个空间来说,这个界限实际上是一个平面(超平面)。想象在三维空间里,每个数据点的表示为 (X,Y,Z),有一些数据点聚集在超平面的左侧,而另外一些数据点聚集在超平面的右侧(另一侧)。那么我们说这个超平面具有分离数据的功能。
对于三维空间来说,这个界限是一个平面,而对于多维空间来说,这个界限是一个超平面。
那么如何表示这个平面呢?
假设这个是三维空间,则平面的表达式为:
也就是
a x
b . y = k
c z
其中abc是平面的法向量normal vector,也就是垂直于平面的向量。
xyz就是一个点,位于这个平面上。
而多维的空间的超平面,实际上也是一样的表达式,
w x + bias = 0, where w stand for weight ,
这个时候我们发现,将空间中其他不位于平面上的点带入 wx + b这个式子中,只有两个结果 ,label >0 或者label <0.
那么这个时候我们就发现,这个平面的表达式成功把空间中的点(数据点)分成了两个类别。
接下来,我们对这个平面加上约束,如果这个平面能够分类,说明 yi 和 yhat(预测值)含有相同的符号(即同时大于0 或同时小于0 )那么两个数的乘积必然大于0,因为yi和 yhat都不为0 。
最佳平面
现在我们发现,如果有一个平面满足上面这个约束,则这个平面具有了分类功能。问题是,如何在无限多个平面中选择最优的解呢?
假设数据已知,我们将所有点描绘在空间中,那么我们总能找到一个平面具有分类功能,但同时,如果我们将平面稍微平移或者旋转,我们又能够得到一个新的平面。可以看出,这样满足约束的平面依然是无限多个。
为了解决这个问题(无限个解),我们个这个平面增加了约束条件。
我们要找的平面,是能够让margin 最大的一个平面。直观的说,当我们确定了一个平面,我们希望他跟数据点的缝隙足够大,大到让新的数据点也能落在相同的分类区域中。这样的平面,泛化能力最佳。
问题来了,这个缝隙怎么求呢?数据点非常多,我们如何定义缝隙的标准距离呢?
答案是以平面和最近距离的数据点的距离为标准距离。
这个答案有点复杂,简单的说就是在无数个数据点中,找到最近的数据点,计算这个数据和平面的距离。
很容易发现在前面的约束中,我们要找最大 和最小 距离。这并不是互相矛盾的条件,而是在条件不同的情况下,选择平面的思路转变。
距离公式:
约束化简:
现在我们的条件依然复杂,我们试着化简一些参数让式子更加短小简洁。
因为平面的方程是wx +b = 0 所以w和b实际上是一个两个不能确定的参数。
如果wx + b = 0
=> 2w x +2 = 0
=> w/b x + 1 = 0
可以发现只要w和b进行缩放,我们又可以得到无数个解,虽然这些解的平面都是同一个。
那么现在我们重新定义距离公式:
化简问题为:
别忘了我们要最大化 1/||w||也就是最小化||w||。
也就是最小化 wTw。
1/2是系数,无关痛痒。
解决约束问题:拉格朗日
根据百度百科拉格朗日乘数,这个带约束函数可以再次转化为其他的非约束数学函数
根据百度的方法,我们也可以重写目标函数。
这里的α就是百度例题的λ。
然后对L函数微分求极值:
将极值条件带入L函数中又可以转化成对偶问题(图片来自李航统计学习方法)
复杂度与m样本数有关。
线性不可分
现在讨论线性不可分的情况。在这个情况下,有的a类数据会跑去b类,反之同样。所以超平面的意义不再是完美分割两类数据,而是大致分割。
引入一个松弛变量,让原界限变模糊。回忆原问题为:
多了个C,系数C是松弛变量的影响程度。若C为0 ,则回到原问题,若C无限大,则超平面毫无分割作用。
根据上面的条件我们可以分析support vector的对应存在性
对偶问题
今天暂时先写到这里,对于支撑向量的由来以后再添加,欢迎关注并阅读该系列的其他博客。