机器学习技法
本学期在台湾大学交换,选上了林轩田老师的机器学习课程。这是这门课的笔记。老师的讲课方式是,先放自己的课程录影,就是YouTube上面的Machine Learning Techniques:https://www.youtube.com/watch?v=A-GxGCCAIrg&list=PLXVfgk9fNX2IQOYPmqjqWsNUFl2kpk1U2
然后再讲一些技术方面更新的东西,回答一些问题。
学习大纲
本课程主要讲解围绕着特征转换的三个重要技法:
three major techniques surrounding feature transforms:
(1)数据里面内嵌了很多特征:如何使用并且正规化这些特征?(Kernel方法),在这里我们会学到著名的SVM:
Support Vector Machine (SVM) model
(2)组合各种预测特征:如何构建并且混合预测特征(聚合方法),在这里我们会学到著名的AdaBoost逐步增强法:
Adaptive Boosting (AdaBoost) model
(3)提取隐含特征:如何辨认并且学到这些内隐的特征(萃取方法),在这里我们学到著名的深度学习模型:
Deep Learning model
Lecture 1:linear support vector machine
Large-Margin Separating Hyperplane
回顾一下之前的linear classification,对于线性可分的情况,我们可以使用PLA/pocket算法在平面或者超平面上把正负类分开。
例如对平面2D这种情况,我们可以找到一条直线,能将正类和负类完全分开。但是,这样的直线通常不止一条,如下图所示。那么,下图中的三条分类线都能将数据分开,但是哪条线更好呢?
这三条直线都是由PLA/pocket算法不断修正错误点而最终产生的,整个确定直线形状的过程是随机的。单从分类效果上看,这三条直线都满足要求,而且都满足VC bound要求,模型复杂度Ω(H)是一样的,即具有一定的泛化能力。但是,如果要选择的话,凭第一感觉,我们还是会选择第三条直线,感觉它的分类效果更好一些。那这又是为什么呢?
先给个简单解释,一般情况下,训练样本外的测量数据应该分布在训练样本附近,但与训练样本的位置有一些偏差。若要保证对未知的测