NTUML 32. 结束曲

特征变换技术

关于特征变换,最开始讲的是核技巧。核技巧将可能非常多的特征变换都埋藏在了一个核操作中,包含了多项式核、高斯核和决策树桩核等。核需要满足Mercer条件,所有满足该条件的函数都可以做核函数,值得一提的是,两个核的和/积都还是核。核的应用非常广泛,无论是常见的方法诸如SVM、SVR还是概率SVM,或者是少见的模型例如核岭回归和核Logistic回归,其核心都是核方法的应用。它们都延伸了原有的线性模型,通过核得到复杂的特征

运用特征变换的第二种方法是模型聚合,这种方法的基本思想是将一些比较基础的预测模型\(g\)都看作是一种特征变换,将预测得到的结果聚合起来,使用一些聚合技术,得到一个更大的模型\(G\)。常见的\(g\)包括决策树桩、决策树、(高斯)RBF等等。如果已经有了若干个\(g\),就可以做模型混合,比如公平投票法(均匀混合)、带权重的投票法(非均匀混合)和有条件的混合等等。如果没有\(g\),可以使用诸如bagging的方法得到不一样的\(g\)让它们投票,例如随机森林;也可以一步步找到非常不一样的\(g\),这样就是使用AdaBoost或者梯度Boost;而决策树和KNN有点类似于有条件混合的策略。从另一个角度,概率SVM也有一点模型混合的味道,只不过是先学到SVM,然后将其与一个常数模型做线性聚合

第三种方法是找出潜藏特征,把特征看作是一些隐藏的变量,然后使用传统的权重法将其组合起来。优化时,寻找特征和最后组合特征的过程是一起优化的,而特征的寻找有时还要借助一些无监督学习的方法。这部分常见的方法包括神经网络(神经元的权重)、RBF网络(找到中心点)和矩阵分解(例如找到用户/电影的隐藏特征)。其中RBF网络会使用k均值聚类方法,神经网络会使用自动编码器或PCA等方法

这些模型里还有一个共同的特点,但是容易被人所忽略,即它们都做了一些“特征降维”的方法,例如将特征从高维度到低维度的投影。例如决策树桩是把特征投影到\(\mathbb{R}\)上,PCA或者自动编码器是在最大程度保留信息的基础上做特征压缩,矩阵分解是把特征从抽象特征(用户ID)变换到具体特征上。而随机森林不仅做了一些随机的低维投影,还通过一些特征选择的方法选出最有用的若干特征

误差优化技术

接着,从最优化的角度来对前面学过的知识做一总结。最基本的最优化方法是梯度下降,即如果能够(大致)知道某个梯度的方向,就能把这个方向作为误差函数的一次逼近:往负梯度方向走一小步就可以。梯度下降及其变种随机梯度下降在很多模型中都有应用,例如Logistic回归、神经网络等。梯度下降的延伸方法,函数梯度下降+最陡下降(steepest descent)则是在AdaBoost和梯度Boost中使用

一些更困难的最优化问题需要经过一些数学推导,变型成已知的最优化问题。例如在对偶SVM中,是通过对偶方法推出对偶问题,并说明其等价于凸二次规划问题。而在核Logistic回归和核岭回归中,使用的是表示定理。PCA则是使用了特征值与特征向量方面的知识

另外一些比较困难的方法则是将其分解为一些子问题,分别求解。例如模型混合法,通常是先求解\(g\),再求解\(G\)。自动编码器则是一层一层地推进。K均值聚类和矩阵分解使用的是交替求解法,而决策树则是使用了“分而治之”的思想

过拟合的避免

最后,再来看一个很重要的问题,就是如何消除或减小过拟合的影响。当模型很复杂时,这个步骤就更加重要。避免过拟合的一种方法是使用正则化,这种方法在很多算法中都有使用。例如SVM和AdaBoost是使用大边界的分类器(AdaBoost是隐含了这方面的思想),SVR、核模型等使用的是L2正则项,模型混合法加入了模型投票的机制,自动编码器使用的是降噪机制(类似于人类接种疫苗),决策树的剪枝,神经网络的dropout或提早停止(其中后者可以应用到任何基于梯度下降的算法),以及对模型做一些预设的限制,例如限制RBF网络的中心点数量

避免过拟合的另一种方法是验证法。例如随机森林使用OOB来做类似的检查,SVM和SVR可以检查支持向量的数量

机器学习实战

首先来看一下台大队在过去几次KDD Cup中使用的方法

  • 2010年KDD Cup,使用了模型混合的方法。混合的基模型一部分是Logistic回归,其输入为大量经过编码的原始特征;另一部分是随机森林,其输入为人类运用领域知识设计出来的特征
  • 2011年KDD Cup Track 1,基模型为矩阵分解模型(包括概率PCA)、受限玻尔兹曼机(自动编码器的一种扩展)、KNN、概率LSA、线性回归、神经网络、GBDT。对这些基模型,先使用非线性模型混合(例如神经网络和决策树),最后使用一次线性混合
  • 2012年KDD Cup Track 2,基模型为线性回归及其变种(例如SVR)、Logistic回归及其变种、矩阵分解及其变种。对这些基模型,先使用非线性模型混合(例如神经网络和GBDT),最后使用一次线性混合
  • 2013年KDD Cup Track 1,基模型为随机森林(使用了很多树)、GBDT变种,使用线性混合。对这次比赛,还投入了大量的精力来设计特征

总之,台大队经常获胜的秘诀就是精心设计领域知识+使用模型混合防止过拟合

ICDM在2006年给出过十大数据挖掘算法

  • C4.5(决策树的另一种方法)
  • K均值聚类
  • SVM
  • Apriori(一种典型数据挖掘的算法,找出频繁出现项)
  • EM算法(可以看作是交替优化法的一种特例)
  • PageRank(Google最原始分析网站重要性的方法,类似与矩阵分解)
  • AdaBoost
  • KNN
  • 朴素贝叶斯(一种简单的线性模型,权重通过数据的统计特性决定)
  • C&RT

(当然现在最火的就是深度学习了:-P)


到此为止,台大林轩田老师的机器学习课笔记全部连载完毕,感谢您的阅读。当然,更感谢林轩田老师的精彩授课。在我看来,这是一门不可多得的中文机器学习课程,无论是深度和广度都是恰到好处。另外,这门课的作业设计也非常出色,如果能把这些作业做完,无疑能进一步地加深对这些知识点的理解,不管是从理论的角度,还是实现的角度,都是如此。本系列课程的永久网址可见 https://www.csie.ntu.edu.tw/~htlin/course/ml15fall/

坚持原创技术分享,您的支持将鼓励我继续创作!