原文:Brief History of Machine Learning
第一次看到这篇文章应该是在去年,觉得很不错。收藏了很久,最近才想到把它翻译成中文。文中没有太多理论和技术的细节,对机器学习和人工智能感兴趣的可以当作茶余饭后的消遣了解一下。本文没有包括参考文献,如需要,请阅读原文。水平有限,欢迎指正。
自从科技和人工智能发源以来,科学家们追随帕斯卡和莱布尼茨的脚步,思考着机器是否能像人类一样具备智能这一命题。儒勒·凡尔纳、法兰克·鲍姆(《绿野仙踪》)、玛丽·雪莱(《弗兰肯斯坦》)、乔治·卢卡斯(《星球大战》)都设想了能够模仿人类行为,甚至在不同情境下都具备类人技能的人造物。
机器学习是实现人工智能的一个重要途径,如今在学术界和工业界都是炙手可热。公司和高校都投入了大量资源来拓展这一领域的知识。最新的成果在多种不同任务中都表现非常不错,足以媲美人类(识别交通标志的准确率高达98.80%,超过了人类)。
我接下来要讲的,是机器学习发展历程的一条粗略时间线,我会指出其中一些具有里程碑意义的节点,但这并不是全部。另外,在文中每个观点的前面,都应该加上“据我所知”四个字。
1949年,Hebb在一个神经心理学学习方程的基础上,向如今盛行于世的机器学习迈出了第一步。该理论被称为“赫布理论”。简单来讲,赫布理论研究的是循环神经网络(Recurrent Neural Network)中节点之间的相关性。RNN在网络中记忆共性特征,起到类似记忆的作用。赫布理论的形式化表述如下:
假定反射行为的持续和重复(或称作“痕迹”)能够引起细胞的永久改变,进而提高该行为的稳定性...如果细胞A的轴突距离近到可以激发细胞B,并且反复或持续的参与到细胞B的激活中,两个细胞其中之一或者两者皆会进行增长或发生代谢性变化,使得A激活B的效率得到提升。
1952年,IBM的Arthur Samuel开发了一个玩西洋跳棋的程序。这个程序可以观察棋子的位置并构建一个隐式的模型,用来改进之后下棋的策略。Samuel和这个程序玩了很多局,发现它随着时间的推移玩得越来越好。
Samuel用这个程序推翻了机器的能力不能超越其代码且不能像人类一样学习的论断。他以如下方式定义了“机器学习”这一概念:
不需要显式编程就可以赋予机器某项能力的研究领域。
1957年,同样具备神经科学背景的Rosenblatt提出了第二个模型:感知机(Perceptron),它更接近如今的机器学习模型。这在当时是一个让人激动的发现,实际上感知机也比赫布的理论更加容易应用。Rosenblatt是这样介绍感知机的:
感知机用来从总体上描述智能系统的一些基本属性,而不必过多纠缠于具体生物组织的那些特殊的、通常未知的条件。
3年之后,Widrow提出了差量学习规则,随即被用于感知机的训练。这也被称为“最小平方”问题。结合感知机和差量学习,可以创建出很好的线性分类器。然而,Minsky在1969年给感知机的热潮泼了一盆冷水。他提出了著名的“异或”问题,指出感知机无法处理像这样线性不可分的数据分布。这是Minsky对神经网络社区的致命一击。此后,神经网络研究陷入停滞直到80年代。
尽管Linnainmaa在1970年曾以 “ reverse mode of automatic differentiation ” 这个名字提出过反向传播的想法,但是并没有得到太多关注,直到Werbos在1981年提出了多层感知机(Multi-Layer Perceptron)的设想和针对神经网络的反向传播算法(Backpropagation)。反向传播至今仍是神经网络架构的关键算法。有了这些想法,神经网络的研究再次提速。1985到1986年之间,多位研究者先后提出了MLP的想法和具有使用价值的BP算法。
与此同时,J. R. Quinlan在1986年提出了一个非常著名的机器学习算法,我们称之为“决策树”,具体来讲就是ID3算法。这是机器学习另一个主流分支的起点。不仅如此, 作为一个发行软件 ,ID3的简单规则和清晰预测可以找到更具实际意义的使用场景,这点不同于还是黑盒的神经网络模型。
在ID3之后,研究社区提出了很多变体和改进(例如ID4、回归树、CART等等),至今仍是机器学习领域里的一个活跃分支。
机器学习的最重要的突破之一是Vapnik和Cortes在1995年提出的支持向量机(Support Vector Machine),它同时具备坚实的理论基础和亮眼的实验结果。从那时开始,机器学习社区分裂成了拥护神经网络和SVM的两个派别。然而,当SVM的核化版本在2000年左右被提出之后(我找不到第一篇关于这个话题的论文了),神经网络开始在竞争中处于下风。SVM在此前被神经网络模型占据的很多任务中都取得了最佳成绩。并且,SVM可以利用在凸优化、综合边际理论和核函数方面的丰富研究成果来超越神经网络。因此,它可以从不同学科汲取养分从而极大的推动了理论和实践的发展。
Hochreiter在1991年的学位论文和2001年发表的论文又给了神经网络沉重的一击,这些论文表明,应用BP学习在神经网络的单元饱和时将遭遇梯度损失。简而言之,由于单元会饱和,在超过一定循环次数之后继续训练神经网络是画蛇添足的,因为神经网络很可能在少数训练循环之后就产生了过拟合。
在此之前不久,Freund和Schapire在1997年提出了另一个有效的机器学习模型,这种名为Adaboost的模型组合多个弱分类器来提升性能。这项研究在当时为作者赢得了Godel奖。Adaboost构建一组易于训练的弱分类器,同时对其中相对较难训练的个体赋予较高的重要性。这一模型现在也是很多不同任务的基础,比如面部识别和检测。它也是“可能近似正确”(PAC)学习理论的实现。一般来讲,所谓的弱分类器被选作简单的决策桩(决策树中的单个节点)。他们如此介绍Adaboost:
我们研究的模型可以被解释为在一般决策场景下对已经充分研究的在线预测模型的一种广泛的、抽象的扩展。
Breiman在2001年研究了另一种使用多个决策树的组合模型,其中每棵树都是用训练样例的一个随机子集训练得到的,树的每个节点都来自一组随机选择的特征子集。由于这一特点,该算法被称作“随机森林(Random Forest)”。理论和实践都证明RF可以避免过拟合。AdaBoost在面临过拟合和异常数据时表现不佳,但是RF在这方面这更加健壮。(RF的更多细节请参考我以前的文章)。RF在Kaggle竞赛等很多任务上都有不错的表现。
随机森林是一组树形预测器的组合,每棵树取决于独立随机采样的向量值且该向量值对森林中所有树具有相同分布。当森林中树的数目很大时,泛化误差收敛于某个极限值。
时至今日,神经网络已经进入了“深度学习”的新时代。“深度学习”一词是指具备多个级联层次的神经网络模型。2005年前后,依靠Hinton、LeCun、Bengio、Andrew Ng以及其他很多资深研究人员在以往和当时的各种研究成果,神经网络开始了第三次崛起。我列出了其中一些重要的标题(我想我以后可能会专门写篇文章讨论深度学习)。
- GPU编程
- 卷积神经网络(CNN)
- Deconvolutional Networks
- 最优化算法
- 随机梯度下降(Stochastic Gradient Descent)
- BFGS和L-BFGS
- 共轭梯度下降(Conjugate Gradient Descent)
- 反向传播
- 整流单元(Rectifier Units)
- 稀疏性(Sparsity)
- Dropout网络
- Maxout Nets
- 无监督神经网络
- 深度置信网络(Deep Belief Networks)
- Stacked Auto-Encoders
- Denoising NN models
基于这些以及其他没有列出的成果,神经网络模型在诸多不同任务上都击败了当时最先进的算法,例如物体识别,语音识别,自然语言处理等等。然而,值得说明的是,这绝不表示机器学习的其他分支就此终结。尽管深度学习声名鹊起,对这些模型仍然有很多关于训练成本和外生参数调优的批评。同时,SVM凭借其简洁性仍然得到了更多的应用。(据说如此,但存在争议)。
结束本文之前,我想谈谈机器学习领域里另一个相对新兴的研究趋势。随着万维网和社交媒体的增长,大数据这个新概念开始崭露头角并且对机器学习的研究产生了重大影响。由大数据引发的大问题,让很多强大的机器学习算法在现实系统中毫无用武之地(当然,科技巨头们除外)。因此,研究人员提出了一类被称为“土匪算法”(官方名称是“在线学习”)的简单模型,这让学习变得更加简单以适应大规模问题。
这篇不成熟的机器学习简史就到此为止了。如果你发现了错误,不足和没有引用文献的地方,欢迎不择手段的向我发出警告。