机器学习算法发展历程详解

在科学技术刚刚萌芽的时候,科学家blaise pascal和von leibniz就想到了有朝一日能够实现人工智能。即让机器拥有像人一样的智能。
机器学习是ai中一条重要的发展线,在工业界和学术界都异常火爆。企业、大学都在投入大量的资源来做机器学习方面的研究。最近,机器学习在很多任务上都有了重大的进步,达到或者超越了人类的水平(例如,交通标志的识别[1],ml达到了98.98%,已超越了人类)。图1中展示了ml的一个粗略的时间线,标记了很多里程碑。熟悉该图,阅读下文会觉得顺畅很多。
图 1 机器学习时间线
推动机器学习流行化的第一个舵手是hebb,1949年他提出了神经心理学学习范式——hebbian学习理论。经过简单的扩展,该理论就开始研究递归神经网络的节点之间的相关度,它记录下网络上的共性然后像记忆一样工作,正式的表达是这样:
假设反射活动的持久性或重复性可以诱导细胞发生变化,以适应这种活动…当神经元细胞a距离神经元细胞b足够近时,它就可以持续重复的激活b,那么这两个细胞之一或者全部就会发生一些代谢过程或生长变化来提高效率[1]。
1952年,ibm的arthur samuel写出了西洋棋程序,该程序可以通过棋盘状态学习一个隐式的模型来为下一步给出较好的走法。samuel和程序对战多局后,觉得这个程序经过一定时间的学习后可以达到很高的水平。
用这个程序,samual驳倒了机器不能像人类那样可以学习显式代码之上的模式。他定义并解释了一个新词——机器学习。
机器学习是给计算机一种不用显式编程就能获得能力的领域。 1957年,rosenblatt的感知器算法是第二个有着神经系统科学背景的机器学习模型,它与今天的ml模型已经很像了。在当时,感知器的出现引起了不小的轰动,因为它比hebbian的想法更容易实现。rosenblatt用下面的话向大家阐释感知器算法:
感知器算法的作用是,在不用深入理解只对一些特定生物有机体有效的未知条件的前提下,说明了通用智能系统一些基础特点[2]。
3年之后,widrow [4] 因发明delta学习规则而载入ml史册,该规则马上就很好的应用到了感知器的训练中,对,没错,就是现在常见的最小二乘问题。感知器和delta学习规则的联姻着实构造了一个极好的线性分类器。但是,根据后浪拍死前浪的历史规律,感知器的热度在1969被minskey[3]一盆冷水泼灭了。他提出了著名的xor问题,论证了感知器在类似xor问题的线性不可分数据的无力。对神经网络(nn)社区来说,形成了几乎当时看来几乎不可逾越的鸿沟,史称“明斯基之印”。然而无论如何,在10年的19世纪80年代,nn学者们还是打破了这个紧箍咒。
图 2 xor问题-线性不可分数据示例
被封印后,ml的发展几乎停滞,尽管bp的思想在70年代就被linnainmaa [5] 以“自动微分的翻转模式”被提出来,但直到1981年才被werbos [6]应用到多层感知器(mlp)中,直到现在仍是神经网络架构的关键组成部分。多层感知器和bp算法的出现,促成了第二次神经网络大发展,1985-1986年nn研究者们成功的实现了实用的bp算法来训练mlp。(rumelhart, hinton, williams [7]- hetch, nielsen[8])
图 3 来自hetch和nielsen
花开并蒂,各表一枝。另一个同样很著名的ml算法在1986年被j. r. quinlan[9]提出,即决策树算法,具体来说是id3算法。这是机器学习的另一条主流中一个灯塔式的成就。id3以其简单的规则和明确的推理,解决了很多现实世界的问题,实际上,它就是以一个实用软件的姿态出现的,相对于黑箱子般的nn算法。
id3之后,很多其他的算法或改进如雨后春笋般的出现,例如id4,回归树,cart等等)。直到现在,决策树仍然是ml界中的热点。
图 4 一个简单的决策树
接下来就是ml领域最重要的一个突破——支持向量机(svm)。svm由大师vapnik and cortes[10] 在1995年提出,它有很强的理论论证和实证结果。自此之后,ml社区就楚河汉界划分为nn和svm两派。2000年左右,随着核方法的提出,svm大占上风,在很多领域上都超过了nn模型。除此之外,svm还发展了一系列的针对nn模型的基础理论,包括凸优化、泛化间隔理论和核方法。可以说,在这个时段,svm的发展无论是理论还是实践都占尽天时地利,因而发展速度极快。
图 5 from vapnik and cortes [10]
不仅在外部遭到了巨大的挑战,nn内部也发生了问题。1991年的hochreiter[40]和2001年的hochreiter[11]的工作,都表明在使用bp算法时,nn单元饱和之后会发生梯度损失。简单来说,训练nn模型时,超过一定的迭代次数后,再迭代nn模型就很容易过拟合。
再往前一点点,另一个坚实的ml模型adaboost在1997被freund和schapire提出,该算法最大的特点在于组合弱分类器形成强分类器。这个成果为它的作者赢得了godel奖。adaboost通过给那些难的样例更高的权重来对那些容易训练的分类器进行训练。该模型在脸部识别和检测方面应用的很广。它还是pac(概率近似正确理论)的一种实现。通常来说,所谓的弱分类器都被adaboost用来当树桩——即单个的决策树节点。他们这样来描述adaboost:
作为一个良好的在线预测模型的抽象扩展,adaboost可以被解释为一个通用的决策理论设置…[11]
另外一个可以将多个决策树组合起来的模型在2001年被breiman[12]提出。该模型被称为随机森林(rf),因为它的每个组成节点都是随机的选择一组示例和一组特征。rf也拥有理论上和实验上的抗过拟合的证据。甚至有些数据adaboost都不能很好的克服过拟合和离群点的时候,rf都能有很好的鲁棒性。rf在很多其他不同领域比如kaggle比赛上都有很成功的表现。
随机森林是一个树预测器的组合体,每棵树都取决于一个独立同分布的随机向量。因而整个森林的泛化误差随着森林数目的增多而收敛[12]。
时间终于走到了当下,一个新的nn领域——深度学习出现了。在这个阶段,nn模型可以拥有多层。3层的nn模型在2005年被hinton,lecun, bengio, andrew ng等诸多大师一一实现。下面列举了一些深度学习上的重要概念:
gpu programming
convolutional nns [18][20][40]
deconvolutional networks [21]
optimization algorithms
stochastic gradient descent [19][22]
bfgs and l-bfgs [23]
conjugate gradient descent [24]
backpropagation [40][19]
rectifier units
sparsity [15][16]
dropout nets [26]
maxout nets [25]
unsupervised nn models [14]
deep belief networks [13]
stacked auto-encoders [16][39]
denoising nn models [17]
将上面列举的这些技术和想法综合到一起,nn模型迎来了又一个春天,在物体识别、语音识别、自然语言处理等方面,均击败之前的最高水平的技术。但重要的事,这并不意味着其他ml流派的终结,即使现在深度学习的成功故事还在一个接一个的上演,仍然有着参数众多、训练花费巨大的缺陷。而且,svm由于其简单性仍然被广泛使用。
在结束之前,我们再介绍一个相对年轻的ml趋势,随着www和社会媒体的发展,大数据出现且影响了很多ml的研究。因为大数据中的问题数据量都极大,很多强大的ml算法在机器性能的限制下都变得有些无用(对大公司来说自然不是这样)。因此,研究人员提出了一套简单模型——dubbed bandit algorithms[27-38],这些算法都是在线学习算法,都能适应大规模问题。
这只是一个简单的ml历史的介绍,若有问题,欢迎指出。

现在3d电视怎么样?不受待见厂商都不再生产
比亚迪增资60亿用于扩大锂电池业务
面对NVIDIA新一代RTX20系列显卡 AMD有望在年底推出7nmAPU处理器
光纤实现功率驱动PWM的远距离传送
SiC碳化硅二极管、SiC碳化硅肖特基势垒二极管常用规格介绍
机器学习算法发展历程详解
记录一下自己用过的几款音频功率放大电路
Modbus TCP转Profinet网关在水处理系统中应用
光照二氧化碳温湿度传感器的优势介绍
光耦新手入门必读下篇
咖啡机缺水提醒功能是如何实现的
华为荣耀8评测:对比红米4X,颜值担当花落谁家?
全美达处理器
【新品推送-CSM32RV20】基于RISC-V核的低功耗MCU芯片,3折抢开发板!
金属膜电阻的结构原理 金属膜电阻和碳膜电阻哪个好
激光雷达在智能化工厂的应用正在凸显!
华为机器视觉协力共助安防行业智能化升级
1-9月全国工业机器人的产量分析
中端PCB设计工具加入高端功能有什么技巧
压敏电阻表面保护层为什么用环氧树脂呢?