本文由探讨机器学习的本质出发,从连接主义、概率模型以及模型结构三个角度对机器学习算法进行了分类,并探讨了机器学习与相关学科与领域的关系以及如何选择机器学习算法,最后展望了机器学习的未来。

1机器学习的本质

通俗一点说,现有一定数量的数据,想找到一个能够描述这些数据内部规律的模型(也就是一个数学表达式),有了这个模型之后,对于后来的新的数据,通过这个模型,就可以将新的数据映射到学习到的规律中(比如类别,数据对应的响应)。

简洁一点说,现有一定量的数据,假设了一个模型HypothesisFunction(这个模型可以用来描述已有数据到规律的映射关系,它有一些未知参数),并在HypothesisFunction和已有数据下定义了一个CostFunction(用来衡量HypothesisFunction对已有数据内部规律的拟合),通过一些优化策略(数学优化理论和方法)找到HypothesisFunction的参数,使得在已知数据下CostFunction代价最小。这也就是机器学习的本质,最终转化成了一个数学优化问题。

形象一点说,现有一定量的数据,还有一个黑匣子(描述数据内部规律的模型),黑匣子上面有很多按钮(模型参数),现在将已有的数据送入黑匣子中,并通过某种策略(数学优化理论和方法)来调整黑匣子上面的按钮,使得黑匣子的输出和已有数据的类别或响应尽可能的接近。

 

2从连接主义角度对机器学习算法分类

所谓连接主义就是统合了认知心理学、人工智能和心理哲学领域的一种理论。从连接主义角度可将机器学习算法通用的分为:有监督,无监督,半监督以及增强学习。下面分别对不用类别进行介绍。

 

2.1有监督学习

有监督的学习算法进一步可以细分为分类和回归两类,分类和回归最大的区别在于其“老师”,也就是数据已知的“类别”或“响应”,分类的“老师”是离散的,而回归的“老师”是连续的。

常用的分类算法有:Bayes系列(Nave Bayes线性和非线性判别,KNN),SVMLogistic RegressionDecision Tree系列(ID3C4.5C5.0),Bagging系列(Random Forest),Booting系列(AdaptBoost),基于仿生学的Artificial Neural Network系列(MLPDBNsCNNRNN等)。

常用的回归算法有:多元线性回归,CARTCART是分类回归树的意思,也就是既可以做分类也可以做回归。做分类时它和Decision Tree基本相同,只不过CART是统计学家提出,有完美的理论,而Decision Tree是人工智能专家提出。

注:将线性和非线性判别,KNN分到Bayes系列主要原因是认为它们是在Bayes判别函数的启发下形成的。

 

2.2无监督学习

在无监督学习中一个重要的部分就是聚类的,其中基于EM思想的是一个比较常用的系列,常用的算法包括:K-MeansFussy C-MeansGMM等。

了解更多:http://t.cn/R2ZfF9e

 

2.3半监督学习

半监督学习算法的应用有很多。比如它可以辅助实现在线学习,比较好的一个例子就是TLD实时跟踪算法中的PN-Learning。另一个较好的例子就是用于数据降维的DBMs,也就是多个两层的Boltsman Machine叠加在一起,就可以得到一个从数据映射到数据特征的深度网络结构。不管是PN-Learning还是DBMs它们都需要有监督的支持,如单独的一个两层的BM的训练本质还是个有监督的过程,再如PN-Learning中的PN也是要事先知道的,本质上也是一个有监督的过程。如此看来,半监督学习是在有监督学习的支撑下来完成的。

 

2.4增强学习

增强学习是一种评价学习的机器学习算法,常常应用与智能控制,机器人及分析预测等。增强学习的本质就是从环境到行为映射的学习,以使增强信号函数值最大。增强学习不同于主要表现在教师信号上的有监督学习,在增强学习过程中有环境提供的增强信号时对产生动作好坏的一种评价(通常为标量信号),而不是告诉增强学习系统如何去产生正确的动作。由于外部环境提供的信息很少,增强学习系统必须考自身的经历进行学习。通过这种方式,增强学习系统在行动-评价的过程中获得知识,改进行动方案以适应环境。

常用的算法有:瞬时差分法,Q-学习算法,自适应启发评价算法等[4]

 

3从概率模型角度对机器学习算法分类

从概率模型的角度可以将机器学习算法分为DiscriminativeGenerative两个类别。先假设X为样本数据,Y为数据对应的状态(数据的类别或者响应)。

Discriminative方法直接对PY|X)建模。通俗一点说就是建立一个对Y之间的区别进行描述的模型,预测时可以直接给出X对应的Y。典型的方法如SVMLogistic Regression等。

Generative方法对PYX)建模。通俗一点说就是对每个Y建立一个模型,预测时选择对应的最大的PY|X)的Y作为X的类别或响应。典型的方法如Nave Bayes

另外概率图模型的中文版已经出来了:

http://www.tup.tsinghua.edu.cn/book/Showbook.asp?CPBH=039921-01&DJ=198

 

4从模型结构角度对机器学习算法分类

从模型结构角度可将机器学习算法分为浅层学习和深度学习两类。在1中已经对学习的本质进行了解释,其本质可以描述成数学优化问题,而深与浅和学习本身是没有关系的,它们是用来修饰被训练的模型的结构的[1]

2中列举出来的除ArtificialNeural Network外的都可以称作浅层学习。深度学习的概念是06年提出来的,神经网络是一种非常适合于构建深度模型的结构,于是有像MLPDBNsDBMsCNN(上世纪90年代左右)等的前馈型网络,以及用于训练RNNLSTM反馈型网络(用于序列标注)。

 

5机器学习相关学科与领域

先给出一副图片(摘自[5])。下面会对部分的学科和领域与机器学习的关系进行介绍。

wKioL1VYqRWThOCNAAD3U13xrXI798.jpg

 

5.1机器学习与数理统计

机器学习在很大程度上是受到了数理统计的启发,就如Decision TreeCART的关系一样。但是机器学习又有别与数理统计,这也是其成为一门独立学科的原因中的一个。我们知道传统的数理统计是有严格的理论基础,但是在大数据时代背景下,传统的数理统计的根基被破坏掉了,如不相关的假设。这使得在大数据时代背景下,机器学习取代传统统计或是必然趋势。由此,广义上来讲,机器学习包含并发展了数理统计。

 

5.2机器学习与模式识别

说到模式识别还得从人工智能说起。早期的人工智能被认为是简单的,认为简单的数理逻辑就能表示出智能。当认识到人工智能是一个极其复杂的问题的时候,人们开始研究解决人工智能中的一个问题,就是模式识别。简单来讲,模式识别就是一个分类任务,这个任务是人工智能这个复杂问题中的一部分。由此看来,模式识别是对人工智能问题妥协的一个产物,而反过来模式识别的发展也就是发展了人工智能。

说到这里,机器学习与模式识别的关系就比较好解释了,模式识别是人工智能问题的一个任务,而机器学习就是辅助完成这个任务的工具。

 

5.3机器学习与数据挖掘

数据挖掘是大数据时代背景下一个相对较新的领域。其涉及领域包括:数据获取技术(传感器),数据管理技术(数据库,数据仓库),数据存储技术(云),数据分析技术(统计学习,机器学习,数据建模),计算技术(高性能计算,分布式计算)以及可视化技术。其中数据分析与处理是一个亟待解决的问题,现状是有大量的数据,而不知道用什么方法去分析,这需要数学领域的科学家来解决了。

从上面可以看出,机器学习也是数据挖掘过程中的一个工具,这个工具用来提供数据分析技术的。

 

5.4机器学习与机器视觉

机器视觉也是一门交叉众多的学科,可以对其进行这样简单的描述:传感器获取数据,使用相应的数据分析技术对数据进行分析,进而帮助机器完成模式识别任务。这似乎与数据挖掘有所重叠,但微妙之处在于,机器视觉领域中的数据大多是图像数据,因此对于数据分析技术大多采用图像处理技术,当然在数据量足够的情况下,选用机器学习技术来做数据分析是更好的选择。

因此,机器学习在机器视觉应用中起到的仍然是工具的作用,用于帮助机器完成模式识别任务。

 

5.5总结

机器学习发展了数理统计,是辅助完成模式识别,数据挖掘,机器视觉等上层应用强有力的工具。

 

6如何选择机器学习算法

下面的内容是原文[7]的翻译,翻译摘自[8]

你知道如何为你的分类问题选择合适的机器学习算法吗?当然,如果你真正关心准确率,那么最佳方法是测试各种不同的算法(同时还要确保对每个算法测试不同参数),然后通过交叉验证选择最好的一个。但是,如果你只是为你的问题寻找一个“足够好”的算法,或者一个起点,这里有一些我这些年发现的还不错的一般准则。

 

6.1你的训练集有多大?

如果训练集很小,那么高偏差/低方差分类器(如朴素贝叶斯分类器)要优于低偏差/高方差分类器(如k近邻分类器),因为后者容易过拟合。然而,随着训练集的增大,低偏差/高方差分类器将开始胜出(它们具有较低的渐近误差),因为高偏差分类器不足以提供准确的模型。

你也可以认为这是生成模型与判别模型的区别。

 

6.2一些特定算法的优点

朴素贝叶斯的优点:超级简单,你只是在做一串计算。如果朴素贝叶斯(NB)条件独立性假设成立,相比于逻辑回归这类的判别模型,朴素贝叶斯分类器将收敛得更快,所以你只需要较小的训练集。而且,即使NB假设不成立,朴素贝叶斯分类器在实践方面仍然表现很好。如果想得到简单快捷的执行效果,这将是个好的选择。它的主要缺点是,不能学习特征之间的相互作用(比如,它不能学习出:虽然你喜欢布拉德·皮特和汤姆·克鲁斯的电影,但却不喜欢他们一起合作的电影)。

逻辑回归的优点:有许多正则化模型的方法,你不需要像在朴素贝叶斯分类器中那样担心特征间的相互关联性。与决策树和支撑向量机不同,你还可以有一个很好的概率解释,并能容易地更新模型来吸收新数据(使用一个在线梯度下降方法)。如果你想要一个概率框架(比如,简单地调整分类阈值,说出什么时候是不太确定的,或者获得置信区间),或你期望未来接收更多想要快速并入模型中的训练数据,就选择逻辑回归。

决策树的优点:易于说明和解释(对某些人来说—我不确定自己是否属于这个阵营)。它们可以很容易地处理特征间的相互作用,并且是非参数化的,所以你不用担心异常值或者数据是否线性可分(比如,决策树可以很容易地某特征x的低端是类A,中间是类B,然后高端又是类A的情况)。一个缺点是,不支持在线学习,所以当有新样本时,你将不得不重建决策树。另一个缺点是,容易过拟合,但这也正是诸如随机森林(或提高树)之类的集成方法的切入点。另外,随机森林往往是很多分类问题的赢家(我相信通常略优于支持向量机),它们快速并且可扩展,同时你不须担心要像支持向量机那样调一堆参数,所以它们最近似乎相当受欢迎。

SVM的优点:高准确率,为过拟合提供了好的理论保证,并且即使你的数据在基础特征空间线性不可分,只要选定一个恰当的核函数,它们仍然能够取得很好的分类效果。它们在超高维空间是常态的文本分类问题中尤其受欢迎。然而,它们内存消耗大,难于解释,运行和调参也有些烦人,因此,我认为随机森林正渐渐开始偷走它的“王冠”。

 

6.3然而…

尽管如此,回忆一下,更好的数据往往打败更好的算法,设计好的特征大有裨益。并且,如果你有一个庞大数据集,这时你使用哪种分类算法在分类性能方面可能并不要紧(所以,要基于速度和易用性选择算法)。

重申我上面说的,如果你真的关心准确率,一定要尝试各种各样的分类器,并通过交叉验证选择最好的一个。或者,从Netflix Prize(Middle Earth)中吸取教训,只使用了一个集成方法进行选择。

 

7机器学习的发展 

要谈谈机器学习的发展,人工神经网络的发展历程的确是一个不错的例子。人工神经网络作为机器学习一个非常重要的分支,可以追溯到上世纪的40年代。下面的这段话摘自清华大学胡晓林[2],个人认为是对人工神经网络发展史最好的简述。

第一个神经元模型是1943McCullochPitts提出的,称为thresholdlogic,它可以实现一些逻辑运算的功能。自此以后,神经网络的研究分化为两个方向,一个专注于生物信息处理的过程,称为生物神经网络;一个专注于工程应用,称为人工神经网络。这里主要介绍后者。1958Rosenblatt提出了感知机(perceptron),它本质上是一个线性分类器,1969MinskyPapert写了一本书“Perceptrons”,他们在书中指出:单层perceptron不能实现XOR功能;计算机能力有限,不能处理神经网络所需要的长时间运行过程。这本书为人工神经网络带来了长达十多年的“冬天”。事实上,如果把单层感知机堆成多层(称为multilayer perceptronMLP),是可以求解线性不可分问题的,但当时缺乏有效的算法。尽管1974年哈佛大学的博士生Paul Werbos提出了比较有效的BP算法,但没有引起学界的重视。直到1986年多伦多大学的Geoff Hinton等人重新发现这一算法,并在“Nature”上发表,人工神经网络才再次受到重视。与此同时,带反馈的神经网络开始兴起,其中以Stephen GrossbergJohn Hopfield的工作最具代表性。很多复杂的认知现象比如联想记忆都可以用反馈神经网络进行模拟和解释。所有这些因素促成了上世纪80年代神经网络的研究热潮。但是BP算法在神经网络的层数增多时很容易陷入局部最优,也很容易过拟合。上世纪90年代,Vladimir Vapnik提出了SVM,虽然其本质上是一特殊的两层神经网络,但因其具有高效的学习算法,且没有局部最优的问题,使得很多神经网络的研究者转向SVM。多层前馈神经网络的研究逐渐变得冷清。直到2006年深度网络(deep network)和深度学习(deep learning)概念的提出,神经网络又开始焕发一轮新的生命。

    对于浅层机器学习的应用,一般分为两个步骤:数据特征表达;机器学习模型选择。其中数据特征表达是非常关键的一个部分,而且经验也证实一个好的特征表达往往比机器学习模型对于上层应用能够产生较好效果要重要的多,因此多数研究者都将重心放在了数据特征表达的研究上。然而传统的特征表达方法具有手工性和局部领域性,这也就要求研究者有足够的经验而且对应用领域的知识比较熟悉,而且大数据时代背景下,数据的多样性又对数据特征表达提出了新的要求。目前在工业界和学术界普遍认同的一种方法就是采用端到端(end-to-end[3]的系统来学习数据内部规律,也就是将数据直接映射到类别或响应,而人工神经网络结构就非常适合构造端到端的系统。从没有感知域(Receptive Field)的深度神经网络,到固定感知域的卷积神经网络,再到可变感知域的递归神经网络,深度学习模型在各种应用中不断演进,在没有出现新的有效的对大数据分析的技术出现之前,工业界和学术界对数据直接映射到类别或响应的这种“暴力”方法的认同,会使得人工神经网络成为大数据分析技术研究的热点,正如下图-机器学习算法TimeLine表现出来的趋势。图片来自[6]。


wKioL1VYqd7gVsT3AAIAYPFi7eI728.jpg 


Reference

[1] 对话深度学习专家雅恩·乐昆:让深度学习摆脱束缚

[2] 深度学习--人工神经网络再掀研究热潮

[3] 基于深度学习的图像识别进展--百度的若干实践

[4] 强化学习理论、算法及应用

[5] http://www.open-open.com/lib/view/open1420615208000.html

[6]http://www.kdnuggets.com/2014/10/deep-learning-make-machine-learning-algorithms-obsolete.html

[7] http://blog.echen.me/2011/04/27/choosing-a-machine-learning-classifier/

[8] http://blog.jobbole.com/67671/