Introduction

起源

虽然深度学习似乎是最近几年刚兴起的名词,但它所基于的神经网络模型和用数据编程的核心思想已经被研究了数百年。自古以来,人类就一直渴望能从数据中分析出预知未来的窍门。实际上,数据分析正是大部分自然科学的本质,我们希望从日常的观测中提取规则,并找寻不确定性。

早在17世纪,雅各比·伯努利(1655–1705)提出了描述只有两种结果的随机过程(如抛掷一枚硬币)的伯努利分布。
大约一个世纪之后,卡尔·弗里德里希·高斯(1777–1855)发明了今日仍广泛用在从保险计算到医学诊断等领域的最小二乘法。概率论、统计学和模式识别等工具帮助自然科学的实验学家们从数据回归到自然定律,从而发现了如欧姆定律(描述电阻两端电压和流经电阻电流关系的定律)这类可以用线性模型完美表达的一系列自然法则。

即使是在中世纪,数学家也热衷于利用统计学来做出估计。例如,在雅各比·科贝尔(1460–1533)的几何书中记载了使用16名男子的平均脚长来估计男子的平均脚长。

现代统计学在20世纪的真正起飞要归功于数据的收集和发布。统计学巨匠之一罗纳德·费雪(1890–1962)对统计学理论和统计学在基因学中的应用功不可没。他发明的许多算法和公式,例如线性判别分析和费雪信息,仍经常被使用。即使是他在1936年发布的Iris数据集,仍然偶尔被用于演示机器学习算法。

克劳德·香农(1916–2001)的信息论以及阿兰·图灵 (1912–1954)的计算理论也对机器学习有深远影响。图灵在他著名的论文《计算机器与智能》中提出了“机器可以思考吗?”这样一个问题 [1]。在他描述的“图灵测试”中,如果一个人在使用文本交互时不能区分他的对话对象到底是人类还是机器的话,那么即可认为这台机器是有智能的。时至今日,智能机器的发展可谓日新月异。

另一个对深度学习有重大影响的领域是神经科学与心理学。既然人类显然能够展现出智能,那么对于解释并逆向工程人类智能机理的探究也在情理之中。最早的算法之一是由唐纳德·赫布(1904–1985)正式提出的。在他开创性的著作《行为的组织》中,他提出神经是通过正向强化来学习的,即赫布理论 [2]。赫布理论是感知机学习算法的原型,并成为支撑今日深度学习的随机梯度下降算法的基石:强化合意的行为、惩罚不合意的行为,最终获得优良的神经网络参数。

来源于生物学的灵感是神经网络名字的由来。这类研究者可以追溯到一个多世纪前的亚历山大·贝恩(1818–1903)和查尔斯·斯科特·谢灵顿(1857–1952)。研究者们尝试组建模仿神经元互动的计算电路。随着时间发展,神经网络的生物学解释被稀释,但仍保留了这个名字。时至今日,绝大多数神经网络都包含以下的核心原则。

  • 交替使用线性处理单元与非线性处理单元,它们经常被称为“层”。
  • 使用链式法则(即反向传播)来更新网络的参数。

在最初的快速发展之后,自约1995年起至2005年,大部分机器学习研究者的视线从神经网络上移开了。这是由于多种原因。首先,训练神经网络需要极强的计算力。尽管20世纪末内存已经足够,计算力却不够充足。其次,当时使用的数据集也相对小得多。费雪在1936年发布的的Iris数据集仅有150个样本,并被广泛用于测试算法的性能。具有6万个样本的MNIST数据集在当时已经被认为是非常庞大了,尽管它如今已被认为是典型的简单数据集。由于数据和计算力的稀缺,从经验上来说,如核方法、决策树和概率图模型等统计工具更优。它们不像神经网络一样需要长时间的训练,并且在强大的理论保证下提供可以预测的结果。

发展

互联网的崛起、价廉物美的传感器和低价的存储器令我们越来越容易获取大量数据。加之便宜的计算力,尤其是原本为电脑游戏设计的GPU的出现。

近十年来深度学习长足发展的部分原因。

  • 优秀的容量控制方法,如丢弃法,使大型网络的训练不再受制于过拟合(大型神经网络学会记忆大部分训练数据的行为) [3]。这是靠在整个网络中注入噪声而达到的,如训练时随机将权重替换为随机的数字 [4]。

  • 注意力机制解决了另一个困扰统计学超过一个世纪的问题:如何在不增加参数的情况下扩展一个系统的记忆容量和复杂度。注意力机制使用了一个可学习的指针结构来构建出一个精妙的解决方法 [5]。也就是说,与其在像机器翻译这样的任务中记忆整个句子,不如记忆指向翻译的中间状态的指针。由于生成译文前不需要再存储整句原文的信息,这样的结构使准确翻译长句变得可能。

  • 记忆网络 [6]和神经编码器—解释器 [7]这样的多阶设计使得针对推理过程的迭代建模方法变得可能。这些模型允许重复修改深度网络的内部状态,这样就能模拟出推理链条上的各个步骤,就好像处理器在计算过程中修改内存一样。

  • 另一个重大发展是生成对抗网络的发明 [8]。传统上,用在概率分布估计和生成模型上的统计方法更多地关注于找寻正确的概率分布,以及正确的采样算法。生成对抗网络的关键创新在于将采样部分替换成了任意的含有可微分参数的算法。这些参数将被训练到使辨别器不能再分辨真实的和生成的样本。生成对抗网络可使用任意算法来生成输出的这一特性为许多技巧打开了新的大门。例如生成奔跑的斑马 [9]和生成名流的照片 [10] 都是生成对抗网络发展的见证。

  • 许多情况下单个GPU已经不能满足在大型数据集上进行训练的需要。过去10年内我们构建分布式并行训练算法的能力已经有了极大的提升。设计可扩展算法的最大瓶颈在于深度学习优化算法的核心:随机梯度下降需要相对更小的批量。与此同时,更小的批量也会降低GPU的效率。如果使用1,024个GPU,每个GPU的批量大小为32个样本,那么单步训练的批量大小将是32,000个以上。近年来李沐 [11]、Yang You等人 [12]以及Xianyan Jia等人 [13]的工作将批量大小增至多达64,000个样例,并把在ImageNet数据集上训练ResNet-50模型的时间降到了7分钟。与之对比,最初的训练时间需要以天来计算。

  • 并行计算的能力也为至少在可以采用模拟情况下的强化学习的发展贡献了力量。并行计算帮助计算机在围棋、雅达利游戏、星际争霸和物理模拟上达到了超过人类的水准。

  • 深度学习框架也在传播深度学习思想的过程中扮演了重要角色。Caffe、 Torch和Theano这样的第一代框架使建模变得更简单。许多开创性的论文都用到了这些框架。如今它们已经被[TensorFlow(经常是以高层API Keras的形式被使用)、CNTK、Caffe 2和[Apache MXNet所取代。第三代,即命令式深度学习框架,是由用类似NumPy的语法来定义模型的 Chainer所开创的。这样的思想后来被 PyTorch和MXNet的Gluon API采用,后者也正是本书用来教学深度学习的工具。

系统研究者负责构建更好的工具,统计学家建立更好的模型。这样的分工使工作大大简化。举例来说,在2014年时,训练一个逻辑回归模型曾是卡内基梅隆大学布置给机器学习方向的新入学博士生的作业问题。时至今日,这个问题只需要少于10行的代码便可以完成,普通的程序员都可以做到。

年代 数据样本个数 内存 每秒浮点计算数
1970 100(Iris) 1 KB 100 K(Intel 8080)
1980 1 K(波士顿房价) 100 KB 1 M(Intel 80186)
1990 10 K(手写字符识别) 10 MB 10 M(Intel 80486)
2000 10 M(网页) 100 MB 1 G(Intel Core)
2010 10 G(广告) 1 GB 1 T(NVIDIA C2050)
2020 1 T(社交网络) 100 GB 1 P(NVIDIA DGX-2)

机器学习与深度学习的关系,区别?

人工智能在1956年由约翰·麦卡锡(John McCarthy)首次定义,涉及可以执行人类智能特征任务的机器。虽然这很普遍,但它包括规划,理解语言,识别物体和声音,学习和解决问题等内容。

科学家将人工智能分为两类,一般和狭义。人工智能,即能够做任何人类能力的计算机。这与人工智能的局限性形成了鲜明对比。在人工智能中,计算机可以做人类能做的事情,但只能在很窄的范围内 - 本·汤普森(Ben Thompson),战略研究员。

根据machine learnings.co给出的定义,一般人工智能具有人类智能的所有特征,包括上述能力。狭窄的人工智能展示了人类智慧的一些方面,并且可以做得非常好,但在其他方面缺乏。一台擅长识别图像的机器,但没有别的东西,就是狭窄AI的一个例子。

机器学习的核心只是实现人工智能的一种方式

阿瑟·塞缪尔(Arthur Samuel)将其定义为“没有明确编程就能学习的能力。”您可以在不使用机器学习的情况下获得AI ,但这需要使用复杂的规则和决策树来构建数百万行代码。

因此,机器学习不是手动编码具有特定指令的软件例程来完成特定任务,而是一种“训练”算法的方式,以便它可以学习如何。“训练”涉及向算法提供大量数据并允许算法自我调整和改进。

举一个例子,机器学习已经被用来大大改进计算机识别图像或视频中的对象的能力。你收集了数十万甚至数百万张图片,然后让人类标记它们。例如,人类可能会标记其中包含猫的图片与不包含猫的图片。然后,该算法尝试构建一个模型,该模型可以准确地将图片标记为包含猫或不包含人类。一旦准确度达到足够高,机器现在就“学会”了猫的样子。

深度学习是机器学习的众多方法之一。其他方法包括决策树学习,归纳逻辑编程,聚类,强化学习和贝叶斯网络等。

深度学习的灵感来自大脑的结构和功能,即许多神经元的互连。人工神经网络(ANN)是模拟大脑生物结构的算法。

小结

  • 机器学习研究如何使得计算机的性能有所改善。它是人工智能的一个分支,同时也是一个手段
  • 作为机器学习的一类,表征学习关注如何自动找出表示数据的合适方式。
  • 深度学习是具有多级表示的表征学习方法。它可以逐级表示越来越抽象的概念或模式。
  • 深度学习所基于的神经网络模型和用数据编程的核心思想实际上已经被研究了数百年。
  • 深度学习已经逐渐演变成一个工程师和科学家皆可使用的普适工具。

Dive into Deep Learning加州大学伯克利分校2019年春学期“Introduction to Deep Learning”第一章 Introduction相关推荐

  1. 加州大学伯克利分校计算机科学夏校,加州大学伯克利分校2019年夏校申请攻略...

    (作者:黄德容老师团队) 作为加州大学创始校区的伯克利分校(UCB),一直处于美国工程科学领域的最前沿,与斯坦福大学和麻省理工学院并驾齐驱,培养了多位学术巨匠. 前段时间火爆网络的"虎妈&q ...

  2. 加州大学伯克利分校是如何培养计算机学生的

    本文共9000多字,预计阅读时间16min 原文链接 加州大学伯克利分校电子工程和计算机科学系(EECS)是世界知名的院系,计算机领域在2020 USNews排名第一.EECS的使命是教育.创新和服务 ...

  3. cs python课程 加州大学_加州大学伯克利分校是如何培养计算机学生的

    Photo by Anthony Hall / Unsplash 加州大学伯克利分校电子工程和计算机科学系(EECS)是世界知名的院系,计算机领域在2020 USNews排名第一.EECS的使命是教育 ...

  4. 美国三院院士、加州大学伯克利分校统计系主任Michael I. Jordan介绍[推荐的机器学习书单等] (公号可下载PDF)

    美国三院院士.加州大学伯克利分校统计系主任Michael I. Jordan介绍[推荐的机器学习书单等] (公号可下载PDF) 原创: 秦陇纪 科学Sciences 今天 科学Sciences导读:论 ...

  5. 线上计算机科学课程,关于加州大学伯克利分校2021年春季线上课程(计算机科学方向)申请通知...

    UC Berkeley(加州大学伯克利分校)开设2021年春季学期线上BGA(Berkeley Global Access)Remote课程-计算机科学方向(Computer Science Trac ...

  6. 加州大学伯克利分校7门最受欢迎的MOOC课程

    加州大学伯克利分校成立于1868年.它是加州大学系统中最古老的校园,同时也是美国大学协会的创始成员之一.加州大学伯克利分校共有107名诺贝尔奖得主,25名图灵奖获得者,14名菲尔兹奖获得者,28名沃尔 ...

  7. 李沐亲授加州大学伯克利分校深度学习课程移师中国,现场资料新鲜出炉

    2019 年 9 月 5 日,AI ProCon 2019 在北京长城饭店正式拉开帷幕.大会的第一天,以亚马逊首席科学家李沐面对面亲自授课完美开启! "大神",是很多人对李沐的印象 ...

  8. Nature子刊:加州大学伯克利分校Banfield组发现某些淡水湖泊中的大噬菌体或能加速好氧甲烷氧化...

    某些淡水湖泊中的大噬菌体或能加速好氧甲烷氧化 Large Freshwater Phages with the Potential to Augment Aerobic Methane Oxidati ...

  9. 伯克利的电气工程和计算机科学专业,2021年加州大学伯克利分校电气工程与计算机科学专业入学要求高吗?...

    在工程和计算机领域,加州大学伯克利分校为美国乃至世界培养了大量人才,并与私立的斯坦福大学.加州理工学院撑起了美国东部常春藤大学比肩的西部学术脊梁,因此,越来越多的学生去加州大学伯克利分校攻读电气工程与 ...

最新文章

  1. mysql第四章_MySQL必知必会--第二章~第四章--MySQL简介
  2. 最短路---dijsktra--邻接矩阵
  3. Android JNI入门第五篇——基本数据类型使用
  4. 创建三个并发进程linux,Linux下几种并发服务器的实现模式(详解)
  5. 真就卖爆了!两分钟破万台:1999元实在无敌
  6. 【Luogu】P1607庙会班车Fair Shuttle(线段树+贪心)
  7. 实用工具类APP,海外大有可为
  8. (转载)ARM的字对齐问题总结
  9. 解决文件不显示后缀名的问题
  10. 引擎开发-图形渲染器开发
  11. 软件工程阶段性总结(一)——概述
  12. 操作系统--03内存管理
  13. 当代中国最贵的汉字是什么?
  14. 代号夏娃在电脑上怎么玩 代号夏娃PC版玩法教程
  15. 某建筑设计研究院“综合布线管理软件”应用实践
  16. python_习题练习_5_小游戏《唐僧大战白骨精》
  17. 非隔离开关电源相关知识理解汇总
  18. Vector3类详解
  19. 【论文阅读】An LSTM-Based Deep Learning Approach for Classifying Malicious Traffic at the Packet Level
  20. 《软件工程导论第6版》--张海藩 牟永敏 课后答案及其详解 第5章 总体设计

热门文章

  1. plt.rcParams[]详解
  2. 掌握华为IPV6的ospfv3路由配置
  3. 敲代码指向光标会覆盖下一个字符,无法用空格换行,无法打字或打字会把后面的文字覆盖解决方法
  4. 这下果粉有福了,苹果2020年将换用高通基带了
  5. ZZNUOJ_用Java编写程序实现1527:简单加法(附源码)
  6. 高数考研归纳 - 级数 - 幂级数
  7. Windows10开启Linux子系统WSL
  8. 史上最系统的算法与数据结构书籍推荐!!!!!吐血整理!!
  9. hyperledger-cello-h3c改造版本支持多机多节点部署
  10. 公众号主都在用什么写作软件写稿?