原文链接: https://tangshusen.me/Dive-into-DL-PyTorch/#/chapter01_DL-intro/deep-learning-intro

机器学习与深度学习

通俗来说,机器学习是一门讨论各式各样的适用于不同问题的函数形式,以及如何使用数据来有效地获取函数参数具体值的学科。深度学习是指机器学习中的一类函数,它们的形式通常为多层神经网络。近年来,仰仗着大数据集和强大的硬件,深度学习已逐渐成为处理图像、文本语料和声音信号等复杂高维度数据的主要方法。

绝大多数神经网络都包含以下的核心原则:交替使用线性处理单元与非线性处理单元,它们经常被称为“层”;使用链式法则(即反向传播)来更新网络的参数。

发展

下面的列表仅仅涵盖了近十年来深度学习长足发展的部分原因。

  • 优秀的容量控制方法,如丢弃法,使大型网络的训练不再受制于过拟合(大型神经网络学会记忆大部分训练数据的行为) [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 采用,后者也正是本书用来教学深度学习的工具。

成功案例

长期以来机器学习总能完成其他方法难以完成的目标。例如,自20世纪90年代起,邮件的分拣就开始使用光学字符识别。实际上这正是知名的MNIST和USPS手写数字数据集的来源。机器学习也是电子支付系统的支柱,可以用于读取银行支票、进行授信评分以及防止金融欺诈。机器学习算法在网络上被用来提供搜索结果、个性化推荐和网页排序。虽然长期处于公众视野之外,但是机器学习已经渗透到了我们工作和生活的方方面面。直到近年来,在此前认为无法被解决的问题以及直接关系到消费者的问题上取得突破性进展后,机器学习才逐渐变成公众的焦点。这些进展基本归功于深度学习。

苹果公司的Siri、亚马逊的Alexa和谷歌助手一类的智能助手能以可观的准确率回答口头提出的问题,甚至包括从简单的开关灯具(对残疾群体帮助很大)到提供语音对话帮助。智能助手的出现或许可以作为人工智能开始影响我们生活的标志。

智能助手的关键是需要能够精确识别语音,而这类系统在某些应用上的精确度已经渐渐增长到可以与人类比肩 [14]。

物体识别也经历了漫长的发展过程。在2010年从图像中识别出物体的类别仍是一个相当有挑战性的任务。当年日本电气、伊利诺伊大学香槟分校和罗格斯大学团队在ImageNet基准测试上取得了28%的前五错误率 [15]。到2017年,这个数字降低到了2.25% [16]。研究人员在鸟类识别和皮肤癌诊断上,也取得了同样惊世骇俗的成绩。

游戏曾被认为是人类智能最后的堡垒。自使用时间差分强化学习玩双陆棋的TD-Gammon开始,算法和算力的发展催生了一系列在游戏上使用的新算法。与双陆棋不同,国际象棋有更复杂的状态空间和更多的可选动作。“深蓝”用大量的并行、专用硬件和游戏树的高效搜索打败了加里·卡斯帕罗夫 [17]。围棋因其庞大的状态空间被认为是更难的游戏,AlphaGo在2016年用结合深度学习与蒙特卡洛树采样的方法达到了人类水准 [18]。对德州扑克游戏而言,除了巨大的状态空间之外,更大的挑战是游戏的信息并不完全可见,例如看不到对手的牌。而“冷扑大师”用高效的策略体系超越了人类玩家的表现 [19]。以上的例子都体现出了先进的算法是人工智能在游戏上的表现提升的重要原因。

机器学习进步的另一个标志是自动驾驶汽车的发展。尽管距离完全的自主驾驶还有很长的路要走,但诸如Tesla、NVIDIA、 MobilEye和Waymo这样的公司发布的具有部分自主驾驶功能的产品展示出了这个领域巨大的进步。完全自主驾驶的难点在于它需要将感知、思考和规则整合在同一个系统中。目前,深度学习主要被应用在计算机视觉的部分,剩余的部分还是需要工程师们的大量调试。

以上列出的仅仅是近年来深度学习所取得的成果的冰山一角。机器人学、物流管理、计算生物学、粒子物理学和天文学近年来的发展也有一部分要归功于深度学习。可以看到,深度学习已经逐渐演变成一个工程师和科学家皆可使用的普适工具。

特点

机器学习研究如何使计算机系统利用经验改善性能。它是人工智能领域的分支,也是实现人工智能的一种手段。在机器学习的众多研究方向中,表征学习关注如何自动找出表示数据的合适方式,以便更好地将输入变换为正确的输出,而本书要重点探讨的深度学习是具有多级表示的表征学习方法。在每一级(从原始数据开始),深度学习通过简单的函数将该级的表示变换为更高级的表示。因此,深度学习模型也可以看作是由许多简单函数复合而成的函数。当这些复合的函数足够多时,深度学习模型就可以表达非常复杂的变换。

  • 深度学习可以逐级表示越来越抽象的概念或模式
  • 深度学习的一个外在特点是端到端的训练
  • 从含参数统计模型转向完全无参数的模型
  • 对非最优解的包容、对非凸非线性优化的使用,以及勇于尝试没有被证明过的方法

小结

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

《动手学深度学习》笔记——深度学习简介相关推荐

  1. STM32 HAL库学习笔记1-HAL库简介

    STM32 HAL库学习笔记1-HAL库简介 HAL库 SPL 库 和 HAL 库两者相互独立,互不兼容.几种库的比较如下 目前几种库对不同芯片的支持情况如下 ST 中文官网上有一篇<关于ST库 ...

  2. 【小猫爪】AUTOSAR学习笔记01-AUTOSAR架构简介

    [小猫爪]AUTOSAR学习笔记01-AUTOSAR架构简介 前言 1 背景介绍 2 基本概念 3 方法论 4 分层软件架构 4.1 Application Layer(APP) 4.2 Basic ...

  3. StatQuest学习笔记23——RNA-seq简介

    StatQuest学习笔记23--RNA-seq简介 前言--主要内容 这篇笔记是StatQuest系列笔记的第58节,主要内容是讲RNA-seq的原理.StatQuest系列教程的58到62节是协录 ...

  4. ASP.Net学习笔记001--ASP.Net简介1

    ASP.Net学习笔记001--ASP.Net简介1 2016/1/10 以前写的课程都没有附上源码,很抱歉! 课程中的源码可以加qq索要:1606841559 也可以自己下载: ASP.Net学习笔 ...

  5. C#.NET学习笔记1---C#.NET简介

    C#.NET学习笔记1---C#.NET简介 技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:www.credream.com -------------- ...

  6. 【小猫爪】AUTOSAR学习笔记02-Communication Stack简介

    [小猫爪]AUTOSAR学习笔记02-Communication Stack简介 前言 1 简介 2 CAN消息的传播路径 2.1 Com服务 2.2 Dcm服务 2.3 SM服务和NM服务 3 补充 ...

  7. SilverLight学习笔记--进一步学习Isolated Storage独立存储一(理论篇)

    在"silverlight如何在客户端读取文件"以及"silverlight如何在客户端写入文件"两篇文章中我们初步接触了Isolated Storage概念. ...

  8. Python3学习笔记之-学习基础(第三篇)

    Python3学习笔记之-学习基础(第三篇) 文章目录 目录 Python3学习笔记之-学习基础(第三篇) 文章目录 一.循环 1.for循环 2.while循环 3.break,continue 二 ...

  9. 强化学习笔记-强化学习概述

    强化学习笔记-强化学习概述 机器学习分类 强化学习与监督学习的异同点 强化学习基本原理 强化学习解决的是什么样的问题 强化学习分类 请分别解释随机性策略和确定性策略 回报.值函数.行为值函数三个指标的 ...

  10. Metro UI CSS 学习笔记之一:简介和Metro UI CSS 环境搭建

    简介: Metro UI CSS 是一套用来创建类似于Windows 8 Metro UI风格网站的样式. 这组风格被开发成一个独立的解决方案.Metro UI CSS包含两种类型的许可证: MIT和 ...

最新文章

  1. php-cgi.sock 权限,php-fpm sock文件权限设置
  2. Linux下如何查看文档的内容
  3. C#验证:正则表达式 验证类和界面处理(手机号码,邮箱,IP地址)
  4. windows 10 python哪个版本的好-自学python用什么系统好
  5. python 三元表达式 if for 构建List 进阶用法
  6. 谈谈一些有趣的CSS题目(十七)-- 不可思议的颜色混合模式 mix-blend-mode
  7. 思考:固态硬盘的普及,是否影响到了存储引擎的设计?
  8. python-base64编码与解码
  9. Codeforces 898E Squares and not squares
  10. cte sql_为什么我的CTE这么慢?
  11. 数据库服务器备份日志文件,数据库服务器备份日志文件
  12. Android给力模拟器,秒杀原生模拟器到渣
  13. CleanMyMac v4.10.1支持Monterey 12.x
  14. OpenGL游戏程序设计——————关于这本书
  15. Ubuntu安装ssh远程连接服务
  16. C语言写程序注意,单片机C语言编程应注意的若干问题
  17. java中HashMap与Hash表详解
  18. 基于springboot的网上零食购物系统
  19. SL8100 3.6V~100V降压型大功率LED恒流驱动器
  20. 【Python实战】批量爬取微博素材,一分钟百张大图自动下载

热门文章

  1. 把网站网址放到桌面,创建网址桌面快捷方式
  2. 离散数学实践一编程判断主析取范式和主合取范式【java实现】
  3. 怎么在ZBrush中插入多网格
  4. android魅族手机目录获取,根据ANDROID 10的魅族手机FLYME 8.1已公布:下列是达标机器设备的目录...
  5. 哈尔滨工业大学 计算机系 张红,面向TDT的动态多文档文摘研究-哈尔滨工业大学学报.PDF...
  6. 网速不稳定怎么办?快来看看
  7. uniCloud - 云存储及文件上传
  8. SQLserver数字转换为大写汉字
  9. lvds接口屏线安装图解_LVDS屏连屏线识别方法的详细资料介绍
  10. 软件工程考研 选什么方向比较好