机器学习的应用非常广泛,更为惊人的是,相同的算法可以完成不同的事。在机器学习领域之外,如果你要解决不同的问题,就得编写两个不同的程序。

相同的机器学习算法不仅可以完成无穷无尽且不同的事,而且和被它们替代的传统算法相比,它们要简单得多。多数学习算法可能只有数百行或者数千行。相比之下,传统程序则需几十万甚至上百万行代码。

如果那么少的学习算法就可以做那么多事,那么有一个逻辑上的疑问:单个学习算法可以把所有的事情做完吗?实际上,对所有主要的学习算法——包括最近邻算法、决策树学习算法以及贝叶斯网络——来说,如果你为学习算法提供足够、适当的数据,该算法可以实现任一功能(对学习任何东西来说,都与数学相关)。需要注意的是,“足够数据”也有可能无限。

本书的中心假设就是:

所有知识,无论是过去的、现在的还是未来的,都有可能通过单个通用学习算法来从数据中获得。

作者将该算法称为“终极算法”。

一种算法怎么可能学习那么多不同的事情?实际上,种种证据表明终极算法是存在的,下面来看看它们是什么样的:

来自神经科学的论证

2000年4月,麻省理工学院的神经系统科学家团队在《自然》杂志上发布了一项非同寻常的实验结果。他们对雪貂的大脑进行重新布线,改变了雪貂从眼睛到听觉皮层以及耳朵到视觉皮层之间的连接。你可能觉得实验结果就是雪貂会严重致残,但并没有:听觉皮层学会看,视觉皮层学会听,而且雪貂没事。

大脑中的所有信息都以同样方式(通过神经元的放电模式)来表示。学习机制也相同:记忆通过加强集群放电神经元之间的连接得以形成,涉及一个叫作长时程增强的生物化学过程。

关于大脑是终极算法这个观点的最重要论据,就是大脑负责我们能感知以及想象的一切如果某物存在,但大脑无法对其进行学习,那么我们就不知道它的存在。

来自进化论的证据

生物多样性源于单一机制:自然选择。计算机科学家对该机制非常熟悉:我们通过反复研究尝试许多备选方法来解决问题,选择并改进最优方案,并尽可能多地尝试这些步骤。进化论是一种算法。

来自物理学的证据

在1959年的一篇著名文章中,物理学家、诺贝尔物理学奖得主尤金.维格纳惊叹“数学在自然科学中不可思议的有效性”。由少量的观察推导出规律,是什么神奇的力量让这些规律可以运用到超出其预测范围的领域?这些规律都是基于数据得来的,而为什么这些规律比数据还要准确好几个数量级?最重要的是,为什么简洁、抽象的数学语言能够如此精确地解释我们无限复杂的世界?数学就是如此,而且终极算法就是其逻辑的延伸。

来自统计学的论证

根据统计学流派的观点,所有形式的学习都是基于一个简单的公式——贝叶斯定理。贝叶斯定理会告诉你,每当你看到新的证据后,如何更新你的想法。

贝叶斯定理就是将数据变成知识的机器。据贝叶斯统计学派的观点,贝叶斯定理就是将数据变成知识的唯一正确方法。如果该学派的观点正确,贝叶斯定理要么就是终极算法,要么就是推动终极算法发展的动力。

来自计算机科学的论证

1936年,艾伦.图灵想象出一个奇怪的装置,它有一条纸带和机器头,头可以在纸带上进行阅读和书写,就是现在人们知道的图灵机。每一个可以想得到的、可以用逻辑推理解决的难题,都可以通过图灵机解决。此外,一台所谓的万能图灵机可以通过阅读纸带上的具体要求来模仿所有东西,换句话说,我们能够对图灵机进行编程,用它来做所有的事情。

机器学习算法与知识工程师

当然,有很多人支持终极算法,也有很多人怀疑终极算法。当某方法可以简单解决复杂问题时,存在怀疑符合情理。对终极算法最坚定的反抗来自机器学习永恒的敌人:知识工程。根据知识工程支持者的观点,知识无法自动被学习,必须通过人类专家编入计算机,才能对它进行学习。

另一个对机器学习持怀疑态度的人是语言学家诺姆.乔姆斯基。乔姆斯基认为,语言必须是与身俱来的,因为孩子听到的合乎语法的句子仅仅是一些例子,不足以学习语法。然而,这种说法仅仅将学习语言的任务交给了进化,它并没有反对终极算法,只是反对“终极算法是大脑”这个观点。

另外一个可能会反对终极算法的观点来自心理学家杰瑞.福多,他认为心理是由一系列模块组成的,这些模块之间只有有限的联系。即使我们相信心理模块理论,这个理论也并没有暗指不同的模块会使用不同的学习算法。


“无论你的算法有多聪明,总有它无法掌握的东西。”除了人工智能和认知科学,反对机器学习的常见观点几乎都可以用这句话概括。

有些事可预料,而有些事却不能预料,这个说法是正确的,而机器学习算法的首要任务就是区别可预测的事与不可预测的事。但终极算法的目标是要学习一切能认知的东西。

在机器学习中,复杂性存在于数据中。终极算法需要做的就是消化复杂性,因此,如果终极算法变得非常简单,那么我们也不用感到惊讶。虽然人类的手很简单,但是它却可以制作并使用无数种工具。终极算法与算法的关系,就如同手指与钢笔、剑、螺丝刀、叉子的关系。


我们不必从零开始寻找终极算法,而有几十年的机器学习研究可以利用。我们寻找终极算法的过程是复杂且活跃的,因为在机器学习领域存在不同思想的学派,主要学派包括符号学派、联结学派、进化学派、贝叶斯学派、类推学派。每个学派都有其核心理念以及其关注的特定问题。

对于符合学派来说,所有的信息都可以简化为操作符号,就像数学家那样,为了解方程,会用其他表达式来代替本来的表达式。他们的主算法是逆向演绎。

对于联结学派来说,学习就是大脑所做的事情,因此我们要做的就是对大脑进行逆向演绎。他们的主算法是反向传播学习算法。

进化学派认为,所有形式的学习都源于自然选择。如果自然选择造就我们,那么它就可以造就一切,我们要做的,就是在计算机上对它进行模仿。他们的主算法是基因编程。

贝叶斯学派最关注的问题是不确定性。所有掌握的知识都有不确定性,而且学习知识的过程也是一种不确定的推理形式。他们的主算法就是贝叶斯定理及其衍生定理。

对于类推学派来说,学习的关键就是要在不同场景中认识到相似性,然后由此推导出其他相似性。他们的主算法就是支持向量机。

每个学派对其中心问题的解决方法都是一个辉煌、来之不易的进步,但真正的终极算法应该把5个学派的5个问题都解决,而不是只解决一个。

本书将综合出一个拥有所有这些功能的终极算法:我们对终极算法的追求之旅让我们了解这5个学派。学派与学派相遇、谈判、冲突的地方,也是这个旅程最艰难的部分。每个学派都有自己不同的观点,我们必须将这些观点集中起来。将所有信息集中起来变成解决方案的方法,并不是很容易找到的,有些人甚至说不可能找到,但这就是我们要做的事情。

参考文献:

终极算法. [美] Pedro Domingos 著. 黄芳萍 译

终极算法【2】——终极算法相关推荐

  1. 推荐算法的先验算法的连接_数据挖掘专注于先验算法

    推荐算法的先验算法的连接 So here we are diving into the world of data mining this time, let's begin with a small ...

  2. 条件随机场(CRF) - 4 - 学习方法和预测算法(维特比算法)

    声明: 1,本篇为个人对<2012.李航.统计学习方法.pdf>的学习总结,不得用作商用,欢迎转载,但请注明出处(即:本帖地址). 2,由于本人在学习初始时有很多数学知识都已忘记,所以为了 ...

  3. SURF算法与SIFT算法的性能比较——图像特征点检测与提取算法分析

    图像特征点提取算法的算法研究(SURF和SIFT算法) 1. 摘要 计算机视觉中,很大一部分研究集中在图像特征提取和特征生成算法上.对图像的优化,不同于一般数学问题的优化方法,图像的优化是对像素点,在 ...

  4. 数据结构与算法(5)字符串(BF算法、KMP算法及KMP算法优化)

    目录 一.BF算法(暴力算法) 二.KMP算法 三.KMP算法优化 一.BF算法(暴力算法) 一个一个往后匹配,匹配失败继续从母串下一个和头(子串的头)往后继续匹配. 虽然简单,但是需要较多的时间复杂 ...

  5. 标准K-means算法的缺陷、K-mean++初始化算法、初始化算法步骤、Kmeans++算法实现

    标准K-means算法的缺陷.K-mean++初始化算法.初始化算法步骤.Kmeans++算法实现 目录 标准K-means算法的缺陷.K-mean&

  6. Apriori算法、FP-Growth算法、顺序分析、PrefixSpan算法

    Apriori算法.FP-Growth算法.顺序分析.PrefixSpan算法 目录 Apriori算法.FP-Growth算法.顺序分析.PrefixSpan算法 Apriori算法 FP-Grow ...

  7. Java-JVM虚拟机内存垃圾回收机制gc入门:引用类型,对象标记算法,回收算法,常见的 garbage collector

    文章目录 GC的优缺点 引用的四种类型 对象标记算法 引用计数法 可达性分析法 回收算法 标记-清除算法(Mark-Sweep) 复制算法 标记-整理算法(Mark-Compact) 分代收集算法 常 ...

  8. 「AI科技」机器学习算法之K-means算法原理及缺点改进思路

    https://www.toutiao.com/a6641916717624721933/ 2019-01-03 08:00:00 K-means算法是使用得最为广泛的一个算法,本文将介绍K-mean ...

  9. floyd算法_最短路径的算法:Floyd算法

    点击箭头处"蓝色字",关注我们哦!! 算法 最短路径的算法-Floyd算法 ● ○ ● Shortest Path Algorithm - Floyd Algorithm ● ○ ...

  10. 【算法】模拟退火算法解决TSP问题的matlab实现

    [算法]模拟退火算法解决TSP问题的matlab实现 参考文章: (1)[算法]模拟退火算法解决TSP问题的matlab实现 (2)https://www.cnblogs.com/wenyehoush ...

最新文章

  1. 【黑客免杀攻防】读书笔记4 - 壳在免杀中的应用
  2. java添加删除用户信息泄露_java删除用户404错误!!神奇!增改查都没问题啊!!...
  3. Android使用NDK---函数参数传递-基本类型和数组
  4. ios3怎么取消长按弹出菜单_苹果:iOS13取消3D-Touch重压改为长按只是个BUG~
  5. 自我价值感缺失的表现_不同类型的缺失价值观和应对方法
  6. 70 include指令
  7. javaScript——内置函数1
  8. Mongodb -(3) replica set+sharding
  9. [机器学习-回归算法]Sklearn之线性回归实战
  10. java方法中的循环里的变量_Java中循环声明变量方法
  11. ad域用户和计算机搭建,Windows Server 6分钟搭建AD域
  12. cnn stride and padding_经典CNN网络解析
  13. 软件测试——软件开发过程
  14. 荣耀路由器w831刷linux,华为荣耀路由器登录入口:荣耀路由器WS831设置指南【图解】...
  15. matlab disp输出换行,matlab输出语句disp
  16. Sketch实例教程:制作一个时钟
  17. yml格式(list)
  18. 交换机日志删除_锐捷交换机记录日志到flash功能详解 | 19号系统
  19. DQL 数据查询语⾔
  20. 音视频开发---音视频同步算法

热门文章

  1. 精密星历卫星钟差插值程序
  2. Mysql查询(基于某酒店2000w条数据)
  3. 千脑——您的在线电脑
  4. 从零开始学android
  5. 安装MiniTools后,不能识别USB的问题
  6. 提取小米主题内部的桌面锁屏壁纸图片步骤
  7. bxp客户端手工PNP基本过程(转)
  8. RecyclerView学习(二)之缓存探索
  9. 搭建接口自动化测试框架详细过程
  10. Exception processing template “admin/table“: Could not parse as expression: “(thymeleaf与layui冲突)