引言
接下里的一系列有关机器学习的博文,我将具体的介绍常用的算法,并且希望在这个过程中尽可能地结合实际应用更加深入的理解其精髓,希望所付出的努力能得到应有的回报。
接下来的有关机器学习基础博文主要根据机器学习技法课程的学习,围绕特征转换(feature transforms)这个主要工具,从以下三个方向进行探讨:
- 如果现在有很多特征转换可以使用的时候,我们该如何运用这些特征转换,如何控制特征转换中的复杂度的问题,从这个角度刺激了支持向量机(Support Vector Machine)算法的发展。
- 我们该如何将具有预测性质的特征混合起来,让整个模型拥有更好的表现,从这个角度衍生出逐步增强法(Adaptive Boosting,AdaBoost)模型。
- 我们该如何找出数据中的隐藏的特征,或者说机器如何从中学习出来,让机器表现地更好,从这个角度出发,刺激了之前的类神经网络成为近年来的深度学习领域。
这一小节,我们从线性的支持向量机开始,一点一点地延伸到更加复杂的模型。
最大间隔分离超平面(Large-Margin Separating Hyperplane)
就上图给出的分类问题而言,三个图中的分类平面都正确的把训练数据分成两类(训练误差为0),且线性分类模型的复杂度是维度加1(d+1),那么我们该如何解释最右边图的分离平面要更优呢?
由于高斯噪声的存在,对于左面的图而言,如果在靠近分离平面的点的周围有与该点是同一类别的数据就很容易被判错,故这几幅图的区别在于,其分离平面对于测量误差的容忍度不同,相比较,右侧图对避免测量误差发生的健壮性更好。
所以,实际上,我们希望该分离平面距离训练数据越远越好。
重新叙述一下该问题,我们希望分离平面对数据的泛化能力更好,就希望所有点到线的间隔越大越好。所以我们的目标是,找到最大间隔的分离平面,这个平面要满足两个条件,一是该分离平面能正确分离两类数据(即yn=sign(wTxn),yn与wTxn同号),二是该分离间隔取所有点中离平面最近的数据。