编译:伯乐在线 - 李大萌,英文:Eren Golge

【导读】:全面介绍机器学习发展的历史,从感知机、神经网络、决策树、SVM、Adaboost到随机森林、Deep Learning。

自科学技术和人工智能最初发展开始,科学家Blaise Pascal和Von Leibniz就思考着如何制造一台像人类一样具有智力的机器。著名作家朱尔斯·凡尔纳,弗兰克·鲍姆(绿野仙踪),玛丽·雪莱(科学怪人),乔治·卢卡斯(George Lucas)(星球大战)梦想着具有人类行为的物种存在,甚至拥有在不同的环境中能战胜人类的技能。

帕斯卡机器执行减法和求和- 1642

机器学习是人工智能最重要发展分支之一,在科研领域和工业界都是非常热门的课题。企业和学校投入大量的资源来做提升知识面。最近,该领域在许多不同任务上取得了非常可观的结果,与人类的表现(交通标志的识别,机器学习达到了98.98% – 已经超过了人类)相当。

在这里,我想分享一下机器学习发展一个粗略的时间表,并且标记了一些里程碑,但并不完整。此外,在阅读本文所有的论断时,都请在前自行脑补一句:“据我所知”。

普遍推广机器学习的第一人是Hebb,他在1949年提出了基于神经心理学习方法,被称为Hebbian学习理论。通过简单的解释,研究递归神经网络(RNN)节点之间的相关性。它记录网络上的共性,像记忆一样工作。这个论点正式地表达是这样:

我们假设反射活动(或“踪迹”)的持续性或重复性会诱导细胞的持续性变化,增加其稳定性…当细胞A的轴突足够接近细胞B时,就能反复或持续刺激细胞B。此时,会在其中一个细胞或者两者中发生一些生长过程或代谢变化,来增加A的效率[1]。

Arthur Samuel

在1952年,IBM的亚瑟·塞缪尔(Arthur Samuel)开发了一个西洋棋的程序。该程序能够通过棋子的位置学习一个隐式模型,为下一步棋提供比较好的走法。塞缪尔与这个程序对局了很多次,并观察到这个程序在经过一段时间的学习后可以发挥得更好。

塞缪尔用这个程序驳倒了机器无法超越书面代码,并像人类一样学习模式的论断。他创造并定义了“机器学习”:

机器学习是一个能使计算机不用显示编程就能获得能力的研究领域。

F. Rosenblatt

1957年,Rosenblatt再次提出以神经科学为背景的第二个机器学习模型——感知器,它与今天的机器学习模型更像。当时,这是非常激动人心的发现,实际上它比Hebbian的想法更容易实现。Rosenblatt用下面几句话介绍了感知器模型:

感知器模型的设计是针对于一般智能系统的一些基本特性,而不会纠缠于一些特定生物体通常情况下未知的特性。[2]

3 年后,Widrow [4]发明的Delta学习规则载入机器学习史册,该规则很快被用作感知器训练的实践程序。它也被称为最小二乘问题。这两个想法的结合创造了一个很好的线性分类器。然而,感知器模型的热度在1969年被Minsky [3]所取代。他提出了著名的XOR问题,感知器无法对线性不可分割的数据进行分类。这是Minsky对神经网络社区的反驳。此后,神经网络的研究一直止步不前,到在80年代才有所突破。

面向不可线性分割数据的 XOR 问题

尽管早在1973年由Linnainmaa [5] 以“反向自动差异化模式”为名提出了BP思想,但是直到1981年,Werbos [6]才提出将神经网络特定反向传播(BP)算法应用到多层感知器(MLP)。BP仍然是当今神经网络架构的关键组成部分。有了这些新想法,神经网络的研究再次加速。1985年至1986年间,神经网络研究人员相继提出了采用BP训练多层感知器(MLP)的理念(Rumelhart,Hinton,Williams [7] – Hetch,Nielsen [8])

From Hetch and Nielsen [8]

另一个学派,在1986年,J.R.Quinlan [9]提出了另一个非常著名的ML算法,我们称之为决策树,更具体地说是ID3算法。这是机器学习另一个主流的闪光点。此外,ID3以软件的形式发布,能够以简单的规则及其明确的推论更好地应用到实际生活中,与黑匣子神经网络模型相反。

在ID3之后,社区探索了很多不同的可用方案和算法改进(例如ID4,回归树,CART …),而且仍然是机器学习中的活跃话题之一。

图:一个简单的决策树

机器学习领域最重要突破之一是Vapnik和Cortes [10]在1995年提出的支持向量机(网络)(SVM),它具有非常强的理论论证和实证结果。SVM将机器学习社区分为NN(神经网络)和SVM两个派别。然而在2000年左右,SVM内核化版本提出之后,NN在这两个派别之间的竞争并不容易(我无法找到关于该主题的第一篇文章)。SVM在很多之前用NN模型解决的问题上得出了最佳结果。此外,与NN模型相比,SVM能够充分利用凸优化,泛化边际理论和内核化的所有深奥知识。因此,它可以从不同学科中获得巨大的推动力,促进理论和实践的快速发展。

From Vapnik and Cortes [10]

NN模型受到的另一次重创是1 9 9 1年Hochreiter的论文[40]和2001年Hochreiter等人的论文[11],表明在使用BP算法时,NN单位饱和后会发生梯度损失。简单来说,训练NN模型时由于单位饱和,在迭代超过一定数量后冗余,因此NN非常倾向于在短时间的时期过度拟合。

不久之前,Freund和Schapire在1997年提出了另一个实体机器学习模型,该模型采用增强的弱分类器组合,称为Adaboost。当时给这项工作的作者颁发了戈德尔奖。Adaboost通过易于训练的弱分类器进行训练,给那些难的样本更高的权重。这种模型是许多不同任务的基础,如面部识别和检测。它也是PAC(Probably Approximately Correct)理论的一种实现。通常,所谓的弱分类器被Adaboost选为简单的判决树(单个决策树节点)。他们这样介绍Adaboost;

我们研究的模型可以解释为一个广泛的,抽象的扩展的研究在线预测模型到一般决策理论的设置[11]

2001年,Breiman [2001]探索了另一个综合模型,该模型集合了多个决策树,其中每个决策树的训练集都是从实例集合中随机选择的,每个节点的特征都是从特征集合随机选择的。基于这些特性,该模型被称为随机森林(RF)。RF从理论上和实际上都证明不会产生过拟合。甚至AdaBoost在数据集中有过拟合和离群点时,随机森林能有更好的鲁棒性(有关RF的更多详细信息,请参阅我的旧帖子http://www.erogol.com/randomness-randomforests/)。随机森林在许多不同的领域,如Kaggle比赛中也有很出色的表现。

随机森林是树预测因子的组合,每棵树取决于独立采样的随机向量,并且森林中的所有树都具有相同的分布。森林的泛化误差a随着森林中树木数量增多而收敛[12]

随着时间向今天靠近,神经网络(NN)的一个新时代——深度学习已经被商业化了。这个短语只是指具有许多广泛连续层的NN模型。三层的NN模型崛起大致在2005年,由近期和现在的Hinton,LeCun,Bengio,Andrew Ng和诸多大师结合了许多不同的发现。下面我列举了一些机器学习领域重要的概念(我猜,我将专门为深度学习写一篇文章);

  • GPU编程

  • 卷积NN [18] [20] [40]

  • 解卷积网络[21]

  • 算法优化

  • 随机梯度下降[19] [22]

  • BFGS和L-BFGS [23]

  • 共轭梯度下降[24]

  • 反向传播[40] [19]

  • 整流器单元

  • 稀疏性[15] [16]

  • Dropout网 [26]

  • Maxout网[25]

  • 无监督的NN模型[14]

  • 深度信念网[13]

  • 堆叠式自动编码器[16] [39]

  • 去噪NN模型[17]

结合所有这些想法和未列出的想法,NN 模型能够在对象识别、语音识别、NLP等不同的任务中击败之前的技术。但是应该注意的是,这并不意味着其他ML流派的结束。虽然深度学习的成功故事还在接二连三的上演,但是它在训练成本和调整模型的外部参数方面还有很多争议。此外,由于其简单性,SVM的使用依然非常普遍。(据说可能会引起很大争议)

在结束之前,我需要再介绍一个比较前沿的 ML 趋势。随着WWW和社交媒体的发展,一个新的术语——大数据出现了,并大大影响了ML研究。由于大数据的数据规模都很大,许多强大的ML算法在相当多的系统中(当然对大型技术公司来说不是这样)是无用的。因此,研究人员提出了一套新的简单模型——dubbed Bandit Algorithms,被称为强盗算法[27 – 38](通常都基于在线学习),使学习更容易,适应大规模问题。

我只是总结了机器学习的发展史。如果你发现错误,不足或没有添加引用的地方,请不要犹豫,可以通过各种方式告诉我。

看完本文有收获?请转发分享给更多人

往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑温州大学《机器学习课程》视频
本站qq群851320808,加入微信群请扫码:

【机器学习】如果你不了解机器学习的简史,请看这篇文章相关推荐

  1. 推荐系统(五)——SIGIR‘21用反事实推断缓解点击诱饵,还在为标题党烦躁吗?请看这篇文章

    Clicks can be Cheating: Counterfactual Recommendation for Mitigating Clickbait Issue https://dl.acm. ...

  2. python入门书籍推荐,看这篇文章就够,请!

    python入门书籍推荐,看这篇文章就够,请! 事实上,有关python的书籍很多很多,就当当网就有50000件和python有关的书籍,我特地去了当地的新华书店,蹲了大半天,回来给大家推荐,适合想学 ...

  3. 如果你看不懂KMP算法,那就看一看这篇文章( 绝对原创,绝对通俗易懂)

    如果你看不懂KMP算法,那就看一看这篇文章(绝对原创,绝对通俗易懂) KMP算法,俗称"看毛片"算法,是字符串匹配中的很强大的一个算法,不过,对于初学者来说,要弄懂它确实不易.整个 ...

  4. 男孩,请用几分钟看这篇文章(女孩别看,会哭)

    [转] 男孩,请用几分钟看这篇文章(女孩别看,会哭) 这是一个真实的故事,从网上看到,我被女孩的行为感动了,所以才转到我的空间来.是男孩就一定必须要看,只用你几分钟的时间,看完后要深深的思考" ...

  5. 本地计算机用户改名,win10本地账户管理员怎么改名,详细操作步骤请看本篇

    win10用户能否将桌面上的Administrator管理员账户名(即Administrator文件夹名)更名为自己的名字,使自己的电脑更具有个性?答案是肯定的.哪如何实现呢?请看下面具体的操作步 聚 ...

  6. 男孩,请用几分钟看这篇文章(女孩别看,会哭 )

    这是一个真实的故事,从网上看到,我被女孩的行为感动了,所以才转到我的空间来.是男孩就一定必须要看,只用你几分钟的时间,看完后要深深的思考"责任"这两个字,记住你们对女孩说过的话,要 ...

  7. 面试官再问你优先级队列,请把这篇文章丢给他

    程序员常用的IDEA插件:https://github.com/silently9527/ToolsetIdeaPlugin 完全开源的淘客项目:https://github.com/silently ...

  8. 【机器学习】舍友居然偷偷在看这篇文章·入门机器学习

  9. 饮冰l于 2021-02-05 15:16:54 发布 1288收藏 11分类专栏: 图 文章标签: 算法 数据挖掘 机器学习 深度学习版权图 专栏收录该内容66 篇文章 23 订阅订

    前言: 本文的作者认为对于 GNN 的可解释性不足.基于此,作者在节点分类任务上提出可以通过将忽略图结构的浅层模型与两个利用标签结构中相关性的后处理方法相结合,超越或匹配最先进的 GNN .具体如下: ...

最新文章

  1. oracle 隐藏视图定义,【学习笔记】show hidden parameter 创建查看隐藏参数视图
  2. linux shell read 从键盘或标准输入中读取文本
  3. JEECG弹出框提交表单
  4. bzoj 4921: [Lydsy六月月赛]互质序列
  5. 【职场】如何才能成功的创业,创业成功的本质是什么
  6. jbl css-h15,JBL CSS8006BM 天花音箱
  7. 微型计算机除具有计算机的一般特点外,10秋学期《计算机应用基础》第1次在线作业答案免费6/15...
  8. HTML元素和标签的区别
  9. springcloud工作笔记093---springcloud封装按钮权限控制_思路和实现_根据用户拥有的权限控制是否显示某个按钮
  10. c:\Program Files (×86)\Microsoft VS Code\unins000.exe 尝试在目标目录创建文件时发生一个错误:拒绝访问。
  11. textcnn模型实践
  12. jspx学习笔记(一)
  13. ADRC自抗扰控制,有手就行
  14. oracle wire protocol,WMB 8.0.0.2 在linux下面怎么配置连接ORACLE数据库
  15. 如何一次将蓝牙耳机连接到多个设备
  16. 2016 杭州云栖大会随笔
  17. 性能测试线上培训班怎么选 3点教你在线选好培训班
  18. 使用SQLiteSpy用sql语句操作数据库
  19. python—networkx:画随机几何图,找出中心节点并按路径长度染色
  20. HTML,JS与CSS

热门文章

  1. phpcms v9的url优化
  2. oracle学习之三--多表查询
  3. 序列表转换成横向菜单
  4. FJOI2018二试游记
  5. 配置Memcache服务器并实现主从复制功能(repcached)
  6. TKinter的常用组件
  7. 嵌入式Linux学习笔记(0)基础命令。——Arvin
  8. 《JavaScript高级程序设计》读书笔记 ---基本概念小结
  9. 第二届360杯全国大学生信息安全技术大赛部分解题思路(逆向分析)
  10. ASP.NET 开发实践--性能与缓存