阅读更多

0顶
0踩

行业应用
引用
原文:The limitations of deep learning
作者:Francois Chollet
译者:聂震坤
审校:苏宓

深度学习:几何视图

深度学习最令人惊讶的特点便是极易上手。十年以前,没有人可以猜得到经过梯度下降法训练过的简单参数模型可以在机器感知问题上实现如此惊人的结果。现在,事实证明,研究者所需要做的只是使用足够大的梯度下降素材来训练参数模型。正如 Feynman 曾经描述宇宙一样,“它并不复杂,只是里面包含的东西实在太多。”

在深度学习中,所有的东西都是一个向量(任何的东西都是几何空间中的一个点)。模型的输入(可能是文字,图片,等等)和目标首先被向量化(变成了一些初始输入向量空间和目标向量空间)。深度学习模型中的每个层都对通过它的数据进行一个简单的几何变换。同时,模型的层链形成一个非常复杂的几何变换,分解成一系列简单的几何变换。这种复杂的转换尝试将输入空间映射到目标空间,一次一个点。该变换按层级的比重进行参数化,这些层根据模型当前执行的程度进行迭代更新。这种几何变换的一个关键特征是它必须是可微分的,这是为了使我们能够通过梯度下降来学习来获得其参数。更直接一点,这意味着从输入到输出的几何变形必须是平滑和连续的——这是一个显着的约束。

这种复杂的几何变换应用到输入数据的整个过程可以理解为一个试图破坏纸球的人在3D中被可视化。褶皱的纸球可以理解为模型开始时的大量输入数据。每一次人的行为则是数据通过不同层级被处理的过程。完整的不起眼的人的手势序列是整个模型的复杂变换。深度学习模型是用于解决高维数据的复杂流形的数学机器。

这便是深度学习的奥妙:将含义转化为向量,几何空间,然后逐步学习将一个空间映射到另一个空间的复杂几何变换。所以开发者需要有足够高的维度的空间以便拥有原始数据关系的全部范围。

深度学习的局限性

可以通过这种简单策略实现的应用程序空间几乎是无限的。然而到目前为止,更多的应用程序对于当前的深入学习技术是完全无法实现的——即使是大量人为注释的数据。例如,你可以组装一个数据,数十万甚至数百万的英文语言描述软件产品的功能。由产品经理编写,由一个团队开发的相应的源代码并且有工程师满足这些要求。即使有这些数据,也不能训练出一个深入的学习模型来简单地阅读产品描述并生成相应的代码库。这只是其中一个例子。

一般来说,无论投入多少数据,任何需要推理式编程或应用科学方法(长期规划和类似算法的数据操作)都无法使用深度学习模式进行实现。 即使是学习具有深层神经网络的排序算法也是非常困难的。

这是因为一个深入的学习模型是“简单的”连续的几何变换链,将一个向量空间映射到另一个。他所可以做的是将一个数据包X映射到另一个数据包Y,并假设存在从X到Y的可学习的连续变换与X:Y的秘籍采用可用性作的数据。所以即使一个深入的学习模型可以被解释为一种程序,相反的大多数程序不能表示为深度学习模型 - 对于大多数任务,要么没有相应的实际大小的深层神经网络来解决任务,要么即使存在一个,它也可能不可学习,即相应的几何变换可能太复杂,或者可能没有可用的数据来学习它。通过堆叠更多层次和使用更多的培训数据来扩展当前的深度学习技术,只能表面缓解其中的一些问题。 深度学习模式在可以代表的方面是非常有限的,而且大多数希望学习的程序不能被表达为连续几何变形的数据流。

拟人化机器学习模型的隐患

现阶段人工智能的一个不得不面对的问题在于研究者们误解了深度学习模式的做法,并高估了自己的实力。人类思想的一个根本特征是我们的“主观意识”,我们倾向于对我们周围的事物投射意向,信仰和知识。在一个石头上画一个笑脸感觉石头都变高兴了。同样在深度学习中,当我们有能力成功地训练一个模型来创作描述图片的标题时,我们误认为该模型“理解”图片的内容以及它产生的标题。然而,当轻微改变训练数据中存在的图像时,研发者会非常惊讶的发现模型开始创作完全荒谬的字幕。

通常,这类行为被强调为对抗例子,是通过向深度学习网络输出错误的样本来欺骗模型进行分类。通过梯度上升,可以稍微修改图像,以便最大化给定类的预测。 通过拍摄一只熊猫,并添加一个“长臂猿”梯度,我们可以得到一个神经网络将这只熊猫分类为长臂猿。 这证明了这些模型的脆弱性,以及它们运行的输入到输出映射与我们自己的人类感知之间的深刻差异。

简而言之,深度学习模式对他们的输入没有任何理解,至少不是从人的意义上来说。我们对图像,声音和语言的理解是基于我们的运动感觉体验。然而机器人却没有这种经验,因此不能以任何以人为本的方式理解他们的驶入。通过输入大量的培训示例来训练我们的模型,我们让他们学习一个几何变换,将数据映射到这个特定的一组示例上的人类概念,但是这个映射只是我们思想中原始模型的简单草图, 从我们的体验中发展出来的假想——就像一面镜子中的一个昏暗的形象。

作为一名机器学习从业者,始终要注意这一点,不要陷入陷阱,认为神经网络了解他们所执行的任务(并不会) - 至少不会对我们有意义。 他们接受了不同于我们教导,进行了不同的,更窄的任务的训练:即将训练投入与训练目标进行比较。 如果向他们展示偏离训练数据的任何东西,机器将以最荒谬的方式打破以前的结论。

局部泛化与极端泛化

在深度学习模型所做的输入与输出之间的简单的几何变形以及人类思考和学习的方式之间似乎存在着根本的区别。人类不仅仅是从亲身体验中进行学习,还提供了明确的学习方法。除了不同的学习过程外,底层的特性有着根本的却别。

人类的能力远不止对刺激做出回应,因为深网或者昆虫也可以。人会对目前的情况形成抽象复杂的模型,并根据这些模型来预测不同的未来,且进行长期的规划。人类有能力将已知的概念融合在一起,来表现以前从未经历过的事情,比如穿着牛仔裤的马,或者想象如果中了彩票会做什么。这种处理假设的能力,使我们的心理模型空间远远超过了我们可以直接体验到的一切。这种行为被称为极端泛化。

这与深层网络的局部泛化形成了鲜明的对比:如果训练时间内新的输入信息差异甚微,则停止从输入到输出的映射。假设使用机器来学习适当的发射参数以解决火箭登陆月球的问题,在使用深网进行此项任务时,无论是使用监督学习还是强化学习进行培训,都需要数以千万次的启动试验作为补充,以便学习从入空间到输出空间的可靠映射。相比之下,人类可以利用抽象能力来提出物理模型——火箭科学,并得到一个精确地解决方案,只需要一次或几次时间即可以让火箭成功登月。同理,如果开发一款控制人体的深网,并希望他学会安全的在城市里行驶。那么在在这种情况下则需要现在各种情况下死掉数千次直到可以推断出危险的行车路线并制定合适的回避行为。当进入一个新的城市,深网有需要重新学习大部分知识。相反,人类能够直接学习安全行为而不用经历死亡,这都要归功于人脑的抽象建模。

简而言之,尽管我们在机器感知方面取得了不小的进步,但是我们仍然离人类级别的人工智能有很大区别。我们的模型只能执行局部泛化,在过去中学习来适应最新的情况。而人类可以极端泛化,迅速适应大胆新奇的情况,或为长期未来的情况进行规划。

总结

作为一个开发者应当记住:迄今为止,深入学习的唯一真正的成功是使用大量的人为注释的数据让机器使用连续的几何变换将空间X映射到空间Y。 做好这一切,则可以改变行业的游戏规则。但想让AI拥有人类的智慧,仍然有很长的路要走。

引用
由中国人工智能学会、阿里巴巴集团 & 蚂蚁金服主办,CSDN、中国科学院自动化研究所承办的第三届中国人工智能大会(CCAI 2017)将于 7 月 22-23 日在杭州召开。作为中国国内高规格、规模空前的人工智能大会,本次大会由中国科学院院士、中国人工智能学会副理事长谭铁牛,阿里巴巴技术委员会主 席王坚,香港科技大学计算机系主任、AAAI Fellow 杨强,蚂蚁金服副总裁、首席数据科学家漆远,南京大学教授、AAAI Fellow 周志华共同甄选出在人工智能领域本年度海内外最值得关注的学术与研发进展,汇聚了超过 40 位顶级人工智能专家,带来 9 场权威主题报告,以及“语言智能与应用论坛”、“智能金融论坛”、“人工智能科学与艺术论坛”、“人工智能青年论坛”4 大专题论坛,届时将有超过 2000 位人工智能专业人士参与。

目前,大会火热报名中,扫描下方图片中的二维码或直接点击链接火速抢票。
  • 大小: 158 KB
  • 大小: 370.3 KB
  • 大小: 115.9 KB
  • 大小: 126.6 KB
  • 大小: 263.4 KB
0
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 一文带你深入了解,什么是深度学习及其工作原理

    ​深度学习是机器学习(ML)和人工智能(AI)的一种,它模仿人类获取某些类型的知识的方式。深度学习是数据科学的重要元素,其中包括统计和预测模型。对于负责收集,分析和解释大量数据的数据科学家而言,这是极为...

  • 原来ReLU这么好用?一文带你深度了解ReLU激活函数

    在神经网络中,激活函数负责将来自节点的加权输入转换为该输入的节点或输出的激活。...1、Sigmoid 和 Tanh 激活函数的局限性 2、ReLU(Rectified Linear Activation Function) 3、如何实现ReLU 4、ReLU的优点 ..

  • 一文看懂深度学习——人工智能系列学习笔记

    深度学习有很好的表现,引领了第三次人工智能的浪潮。目前大部分表现优异的应用都用到了深度学习,大红大紫的 AlphaGo 就使用到了深度学习。 本文将详细的给大家介绍深度学习的基本概念、优缺点和主流的几种算法。 &...

  • 一文梳理深度学习算法演进

    有个笑话说的是你可能分不清一些深度学习模型结构到底是bug还是feature,修复了“bug”反而导致模型的效果下降。 当时TensorFlow写个BatchNorm还需要通过加减乘除来拼接。我碰到一个神奇的问题就是ResNet加到1001层...

  • 一文解读深度学习中的Normalization模型

    BN是深度学习进展中里程碑式的工作之一,无论是希望深入了解深度学习,还是在实践中解决实际问题,BN及一系列改进Normalization工作都是绕不开的重要环节。

  • 一文读懂深度学习时序分析

    近日,发表在《DataScience》上的一篇文章,使用深度学习方法,从数据处理、循环网络、RNN上的LSTM、CNN-LSTMs等方面介绍了时间序列分析,同时解释了时间序列的概念以及为什么选择深度学习的方法等问题。 什么是时间...

  • 【AI广延 | GAN】一文带你了解生成对抗网络

    近年来,深度学习在很多领域的都取得了突破性进展,但大家似乎发现了这样的一个现实,即深度学习取得突破性进展的工作基本都与判别模型相关。什么意思呢?也就是说,生成模型并没有被好好地运用以释放其潜能。生成...

  • 深度学习 | 一文掌握CNN卷积神经网络(4.3)

    最近在恶补深度学习基础知识,以下为根据公众号“ 阿力阿哩哩”的《一文掌握CNN卷积神经网络》而总结的内容。可以结合作者在哔哩大学的视频。

  • 一文带你了解爆火的Chat GPT

    如ChatGPT自己所述,他还有很多局限性比如给出看起来没问题其实挺离谱的答案,例如回答自己公司的成果还夹杂私人感情,把竞争对手DeepMind的AlphaGo功劳都据为己有。 做一个小节,其实网上有特别多有趣的案例,这里...

  • 一文了解线性代数--深度学习入门之数学基础

    一文了解线性代数–深度学习入门之数学基础本文将简单且形象的对线性代数进行介绍,与传统的线性代数教材不同,我不想聚焦于具体的数学命题和技术,而是想探究线性代数的现实意义与哲学本质。本文主要记录我为了深入...

  • 一文探讨可解释深度学习技术在医疗图像诊断中的应用

    本文依托于综述性文章,首先回顾了可解释性方法的主要分类以及可解释深度学习在医疗图像诊断领域中应用的主要方法。然后,结合三篇文章具体分析了可解释深度学习模型在医疗图像分析中的应用。 作为一种领先的...

  • 一文让你通俗理解奇异值分解

    同时也可申请加入我们的细分方向交流群,目前主要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪...

  • 一文看尽深度学习中的20种卷积

    局限性 不好优化 虽然引入空洞卷积可以在参数不变的情况增大感受野,但是由于空间分辨率的增大,所以在实际中常常会不好优化,速度方面是一个诟病,因此在工业上对实时性有要求的应用更多的还是类FCN结构。...

  • 入门 | 一文简述深度学习优化方法——梯度下降

    点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达本文是一篇关于深度学习优化方法——梯度下降的介绍性文章。作者通过长长的博文,简单介绍了梯度下降的概念、优势以及两大挑战。文中还配有...

  • 一文读懂深度学习:从神经元到BERT

    从简易的神经元到当前最复杂的BERT模型,深入浅出地介绍了深度学习在 NLP 领域进展,并结合工业界给出了未来的 NLP 的应用方向,相信读完这篇文章,你对深度学习的整体脉络会有更加深刻认识。 一个神经网络结构...

  • springboot(酒店管理系统)

    开发语言:Java JDK版本:JDK1.8(或11) 服务器:tomcat 数据库:mysql 5.6/5.7(或8.0) 数据库工具:Navicat 开发软件:idea 依赖管理包:Maven 代码+数据库保证完整可用,可提供远程调试并指导运行服务(额外付费)~ 如果对系统的中的某些部分感到不合适可提供修改服务,比如题目、界面、功能等等... 声明: 1.项目已经调试过,完美运行 2.需要远程帮忙部署项目,需要额外付费 3.本项目有演示视频,如果需要观看,请联系我 4.调试过程中可帮忙安装IDEA,eclipse,MySQL,JDK,Tomcat等软件 重点: 需要其他Java源码联系我,更多源码任你选,你想要的源码我都有! 需要加v19306446185

  • BP神经网络matlab实例.doc

    数学模型算法

  • 设计.zip

    设计.zip

  • 基于 Spring Cloud 组件构建的分布式服务架构

    Java SSM项目是一种使用Java语言和SSM框架(Spring + Spring MVC + MyBatis)开发的Web应用程序。SSM是一种常用的Java开发框架组合,它结合了Spring框架、Spring MVC框架和MyBatis框架的优点,能够快速构建可靠、高效的企业级应用。 1. Spring框架:Spring是一个轻量级的Java开发框架,提供了丰富的功能和模块,用于开发企业级应用。它包括IoC(Inverse of Control,控制反转)容器、AOP(Aspect-Oriented Programming,面向切面编程)等特性,可以简化开发过程、提高代码的可维护性和可测试性。 2. Spring MVC框架:Spring MVC是基于Spring框架的Web框架,用于开发Web应用程序。它采用MVC(Model-View-Controller,模型-视图-控制器)的架构模式,将应用程序分为模型层、视图层和控制器层,提供了处理请求、渲染视图和管理流程的功能。 3. MyBatis框架:MyBatis是一个持久层框架,用于与数据库进行交互。它提供了一种将数据库操作与Java对象映射起来的方式,避免了手动编写繁琐的SQL语句,并提供了事务管理和缓存等功能,简化了数据库访问的过程

Global site tag (gtag.js) - Google Analytics