1)交叉验证(Cross validation)
1.1)hold-out cross validation或者称为简单交叉验证 1.2)k-fold cross validation(k-折叠交叉验证)
1.3)leave-one-out cross validation
2)特征选择(Feature selection)
2.1)封装特征选择(wrapper feature selection)
2.2)过滤特征选择(Filter feature selection)
3)贝叶斯统计和规范化(Bayesian Statistics and Regularization)
3.1)频率学派(frequentist statistics)
3.2)贝叶斯学派(Bayesian)
4)在线学习(Online Learning)
由于学习理论部分大多数是数学推导,这些推导其实是非常容易理解的,这里就直接省去一些,另外一些则简单一笔带过。
Bias/variance Tradeoff
Empirical Risk Minimization (ERM)
The Case of Finite H: Sample Complexity Bound, Error Bound, PAC(probably approximately correct
The Case of Infinite H: The Concept of 'Shatter' and VC Dimension
1)交叉验证(Cross validation)
1.1)hold-out cross validation或者称为简单交叉验证
1、 将全部训练集S分成k个不相交的子集,假设S中的训练样例个数为m,那么每一个子集有m/k个训练样例,相应的子集称作{}。 2、 每次从模型集合M中拿出来一个预测模型,然后在训练子集中选择出k-1个{}(也就是每次只留下一个),使用这k-1个子集训练后,得到假设函数。最后使用剩下的一份作测试,得到经验错误。 |
2)特征选择(Feature selection)
2.1)封装特征选择(wrapper feature selection)
1、 初始化特征集F为空。 2、 扫描i从1到n,如果第i个特征不在F中,那么将特征i和F放在一起作为(即),在只使用中特征的情况下,利用交叉验证来得到的错误率。 4、如果F中的特征数达到了n(即全部特征都包含进去了)或者预设定的阈值(如果有的话),那么输出整个搜索过程中最好的F,没达到转到2 |
既然有前向搜索,那也就有后向搜索。先将F设置为{1,2,..,n},然后每次删除一个特征,并评价,直到达到阈值或者为空,然后选择最佳的F。
2.2)过滤特征选择(Filter feature selection)
过滤特征选择方法的想法是针对每一个特征,i从1到n,计算相对于类别标签的信息量,得到n个结果,然后将n个按照从大到小排名,输出前k个特征。显然,这样复杂度大大降低,为O(n)。
一般情况下,我们使用互信息(Mutual information)度量。当是0/1离散值的时候(很容易推广到是多个离散值的情况),互信息(Mutual information)公式如下:
在对MI进行排名后,最后剩余的问题就是如何选择k值(前k个)。我们继续使用交叉验证的方法,将k从1扫描到n,取最大的F。不过这次复杂度是线性的了。比如,在使用朴素贝叶斯分类文本的时候,词表长度n很大。使用filter特征选择方法,能够增加分类器的精度。
3)贝叶斯统计和规范化(Bayesian Statistics and Regularization)
题目有点绕,说白了就是要找更好的估计方法来减少过度拟合情况的发生。回顾一下:
线性回归中使用的估计方法是最小二乘法;
logistic回归使用条件概率的最大似然估计;
SVM使用二次规划;
朴素贝叶斯使用联合概率的最大似然估计!
3.1)频率学派(frequentist statistics)
以前我们使用的估计方法是最大似然估计(比如在logistic回归中使用的): 。
在该上式中,我们视参数为未知的常数向量。我们的任务就是估计出未知的。这种把看做参数(而不是随机变量)的视角称为频率学派(frequentist statistics),他们认为不是随机变量,而只是一个未知的常量,因此我们没有把写成。
3.2)贝叶斯学派(Bayesian)
他们把看做值未知的随机变量。既然为随机变量,那么就应该满足一定的分布,这样的不同取值就有了不同的概率(称为先验概率),代表我们对特定的的相信度。我们将训练集表示成,i从1到m。我们首先需要求出的后验概率:
然后根据随机变量的分布以一定概率选定,再在给定样本特征上计算出现的概率积:
这种方法称为最大后验概率估计(Maximum a posteriori)方法。
与最大似然估计对比发现,MAP只是将移进了条件概率中,并且多了一项。一般情况下我们认为,实际上,贝叶斯最大后验概率估计相对于最大似然估计来说更容易克服过度拟合问题。我想原因是这样的,过度拟合一般是极大化造成的。而在此公式中多了一个参数,整个公式由两项组成,极大化时,不代表此时也能最大化。相反,是多值高斯分布,极大化时,概率反而可能比较小。因此,要达到最大化需要在两者之间达到平衡,也就靠近了偏差和方差线的交叉点。
4)在线学习(Online Learning)
以前讨论的都是批量学习(batch learning),就是给了一堆样例后,在样例上学习出假设函数h。而在线学习就是要根据新来的样例,边学习,边给出结果。
假设样例按照到来的先后顺序依次定义为。X为样本特征,y为类别标签。我们的任务是到来一个样例x,给出其类别结果y的预测值,之后我们会看到y的真实值,然后根据真实值来重新调整模型参数,整个过程是重复迭代的过程,直到所有的样例完成。这么看来,我们也可以将原来用于批量学习的样例拿来作为在线学习的样例。在在线学习中我们主要关注在整个预测过程中预测错误的样例数。
下面定理阐述了错误率上界:
定理(Block and Novikoff):
给定按照顺序到来的样例。假设对于所有的样例,也就是说特征向量长度有界为D。更进一步,假设存在一个单位长度向量且。也就是说对于y=1的正例,,反例,u能够有的间隔将正例和反例分开。那么感知算法的预测的错误样例数不超过。
根据前面对SVM的理解,这个定理就可以阐述为:如果训练样本线性可分,并且几何间距至少是,样例样本特征向量最长为D,那么感知算法错误数不会超过。这个定理是62年提出的,63年Vapnik提出SVM,可见提出也不是偶然的,感知算法也许是当时的热门。
下面主要讨论这个定理的证明:参见:http://www.cnblogs.com/jerrylead/archive/2011/04/18/2020173.html