0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

师法自然 浅谈深度学习的多重角度

mK5P_AItists 来源:电子发烧友网 作者:工程师谭军 2018-07-10 08:46 次阅读

深度学习已经成熟到可以教给高中生了么?

我思考的这个问题,源于不久前我收到的⼀封来自某大公司产品经理的邮件。

我喜欢将私人通讯邮件公开于众,所以我将邮件内容摘在下面:

来自:M.

你好 Ali, ...

你如何训练团队里的年轻成员,使得他们有更好的直觉和预判?我团队里的工程师经常从其他科研员那「借鉴」超参数的值,但他们太担心要自己去调整参数了。...

我对着这封邮件思考了数日,却没有办法找到⼀个有条理的答案。

如果说应该有正确答案的话,我想回复说:也许她的工程师应该要有这种担心。

如果你是个工程师,你拿到了这个神经网络,然后你被要求去改进这个网络在某个数据集上的表现。你也许会假设这每层都是有它自己的作用和功能,但在深度学习领域,我们目前还没有统的语言和词汇去描述这些功效。我们教授深度学习的方法和我们教授其他科学学科的方法很不同。

几年前我迷上了光学。在光学领域,你会堆叠好几层不同的组件以处理输的光源。例如下图,就是相机的镜头:

师法自然 浅谈深度学习的多重角度

要设计这样的系统,你从最简单的组件开始堆叠,这些组件往往以知名的发明者命名。然后通过仿真,你可 以判断你的设计是否符合你的要求,然后再添加不同的组件去修正先前设计的缺陷。

紧接着你会各种数学优化过程去调整这些组件的参数,例如镜面的形状、位置和倾斜角度等等,去最大程度实现你的设计目标。你就重复如此仿真、修改、调优的过程。

这很像我们设计深度网络的过程。

上图里所有的 36 个元素都是故意加⼊这个堆叠的系统,以用于修正某项具体的偏差的。这样的设计需要非常精确的解释模型去描述什么样的元素能够对透过它的光有什么样的效应。这个模型往往是关于这个元素的作用的,例如说折射、反射、衍射、散射和波前校正。

师法自然 浅谈深度学习的多重角度

⼈们不害怕这样的设计过程。每年,美国培养的许多⼯程师都能设计出有的镜头,他们并不为这样的作感到担心害怕。

这并不是因为光学很容易,而是因为我们对光学的模型了然在心。

现代光学是通过抽象出不同层级的知识内容去教授的。

师法自然 浅谈深度学习的多重角度

在最顶级,也是最容易的层级,是几何光学。几何光学是对波光学的抽象,光射线于于表达简单的矢量波光 学的波前矢量。而波光学⼜是对麦克斯韦方程的进⼀步简化。麦克斯韦方程 由能由量子力学推导而出,量子力学则超出了我的理解范围。

每⼀个层级都是通过作出⼀些简化的假定由紧邻的下⼀个层级推导⽽出,所以每⼀个层级能够比上⼀个层级解释更为复杂的现象。

师法自然 浅谈深度学习的多重角度

我花了不少时间在顶四层抽象里设计系统。

这就是当今我们教授光学的方法。但相关理论并非总是如此按层级来组织。在百年前,这些理论还是在⼀个 相互矛盾的状态中共存。实践家们只能依赖于近乎道听途说的光学理论。

但这并没有阻止伽利略打造性能不错的望远镜,而且是在牛顿形式化几何光学前近⼀个世纪的时间点上。因 为伽利略对于如何造出能够放大数⼗倍的望远镜有足够好的解释模型。但他对光学的理解,却不足以让他的望远镜能够修正色差或者获得广视角。

在这些光学理论被抽象总结出来之前,每⼀项理论都需要从光的最基本概念出发。这就牵涉到要作出⼀套涵盖许多也许不切实际的假设。牛顿的几何光学把光假定作⼀束束可以被吸引、排斥的固体粒⼦。惠更斯则⽤ 由「以太」作为介质的纵波去描述光,也就是说用类似声波的方式去构建光。麦克斯韦也假设光经由以太传播。你从麦克斯韦方程的系数的名字也能窥得这种思路的⼀⼆。

愚蠢的模型,确实。但它们可量化且有预测的能力。

这些假设,我们今天听来也许觉得很愚蠢,但它们可量化而且有预测的能力。你可以随意代入数字于其中并得到精准的量化预测。这对于工程师而言极其有用。

寻找用于描述每层深度学习网络作用的模块化语言

如果我们能够像讨论光纤穿越每⼀层镜头元素的作用那样去讨论神经网络每⼀层的作用,那么设计神经网络将会变得更容易。

我们说卷积层就像在输⼊上滑动相应滤波器,然后说池化是处理了对应的非线性。但这只是非常低层次的描述,就像用麦克斯韦方程去解释镜头的作用。

也许我们应该依赖于更高级抽象描述,具体表达某个量被神经网络的层级如何改变了,好比我们用镜头的具 体作用去解释它如何弯曲光线那样。

如果这种抽象也能够量化,使得你只需要代⼊具体数值到某个公式里,它就能告诉你⼀个大概的量化分析,这样你就能更好地设计你的网络了。

我们离这样的语言还很远。我们先从简单点的开始

上⾯也许只是我被自己的幻想带跑了。

我们从简单点的开始。我们对深度学习的运作方式有很多解释模型。下⾯我会罗列⼀系列值得解释的现象,然后我们看看⼀些现有的模型对这些现象解释的能力有多强。

在开始之前,我得承认这种努力也许最后是徒劳的。光学花了 300 年在打磨自己的模型之上,而我只花了⼀ 个周六下午,所以这只能算是博客上的⼀些个⼈观点和想法。

现象:随机梯度下降 (SGD) 的随机初始化足够好了。但细微的数字错误或者步长会使 SGD 失效。

很多⼈在实践中发现,对于如何累积梯度的细微调整,可以导致对整个测试集表现的巨大变化。例如说你只用GPU而不是 CPU 去训练,结果可能会截然不同。

现象:浅的局部最优值意味着比深的局部最优值更好的泛化能力。

这种说法很时髦。有些⼈认为它是真的。有些⼈则用实际数据反驳。另外也有⼈给出了这个现象的变种 。众说纷纭,争议目前不断。

这个现象也许有争议性,但我还是先放在这里。

现象:批标准化层 (Batch Norm) 可以给 SGD 提速。

这个基本无争议,我只能提供⼀个小例外。

现象:即使有很多局部最优和鞍点,SGD 也表现卓越。

这个说法也包含了几个小的点。经常有人声称深度学习的损失表面充斥着鞍点和局部最优。也有不同的 说法,要不就认为梯度下降可以遍历这些区域,要不就认为梯度下降可以不遍历这些区域,但都能给出泛化能力不错的答案。也有说损失表面其实也没那么不堪。

现象:Dropout 胜于其他随机化策略。

我不知道如何正确分类类似 Dropout 的做法,所以我就称之为「随机化策略」了。

现象:深度网络能够记忆随机标签,但它们能泛化。

证据很直白,我的朋友们亲自见证并主张这种说法。

对这些现象的解释

对应上面列举的这些现象,我在下面列举我觉得最能解释这些现象的理论,这些理论均来自我上面引用的论文。

师法自然 浅谈深度学习的多重角度

先别激动,原因如下:

1. 我们尝试解释的这些现象部分有争议。

2. 我没办法把这些解释按照抽象层级组织好。光学好教学的特性也没办法在这⾥重现。

3. 我怀疑部分我引用的理论不正确。

我想说的是

有很多人正在加⼊这个领域,然而我们能够给他们传授的不过是近乎道听途说的经验和⼀些预训练好的深度网络,然后就叫他们去继续创新。我们甚⾄都不能认同我们要解释的这些现象。所以我认为我们离能够在高中教授这些内容还有很远的距离。

那我们如何才能离这⼀步近点?

最好的不过是我们能够就每⼀层深度网络的功能作用,按照不同层级的抽象,给出对应的解释模型。例如 说,神经网络里的折射、散射和衍射会是怎么样的?也许你早就用具体的功能去思考神经网络,但我们就这些概念还没有统⼀的语言。

我们应该把⼀系列确认的现象组织起来,然后才来进行理论上的解释。例如说神经网络里的牛顿环、磁光克 尔效应和法拉第现象会是怎样的?

我和一小批同事已经开始了⼀项重大的实践工作,尝试去分类构建适合我们领域的解释模型,去形式化它 们,并且用实验去验证它们。这项工作是巨大的,我认为第⼀步应该是构建⼀个分层级的深度学习解释模 型,以用于高中的教学。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4762

    浏览量

    100520
  • 牛顿
    +关注

    关注

    0

    文章

    6

    浏览量

    6328
  • 深度学习
    +关注

    关注

    73

    文章

    5491

    浏览量

    120958

原文标题:解释深度学习的新角度,来自光学的启发

文章出处:【微信号:AItists,微信公众号:人工智能学家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    NPU在深度学习中的应用

    随着人工智能技术的飞速发展,深度学习作为其核心驱动力之一,已经在众多领域展现出了巨大的潜力和价值。NPU(Neural Processing Unit,神经网络处理单元)是专门为深度学习
    的头像 发表于 11-14 15:17 267次阅读

    GPU深度学习应用案例

    能力,可以显著提高图像识别模型的训练速度和准确性。例如,在人脸识别、自动驾驶等领域,GPU被广泛应用于加速深度学习模型的训练和推理过程。 二、自然语言处理 自然语言处理(NLP)是
    的头像 发表于 10-27 11:13 324次阅读

    AI大模型与深度学习的关系

    AI大模型与深度学习之间存在着密不可分的关系,它们互为促进,相辅相成。以下是对两者关系的介绍: 一、深度学习是AI大模型的基础 技术支撑 :深度
    的头像 发表于 10-23 15:25 353次阅读

    利用Matlab函数实现深度学习算法

    在Matlab中实现深度学习算法是一个复杂但强大的过程,可以应用于各种领域,如图像识别、自然语言处理、时间序列预测等。这里,我将概述一个基本的流程,包括环境设置、数据准备、模型设计、训练过程、以及测试和评估,并提供一个基于Mat
    的头像 发表于 07-14 14:21 1882次阅读

    深度学习中的时间序列分类方法

    的发展,基于深度学习的TSC方法逐渐展现出其强大的自动特征提取和分类能力。本文将从多个角度深度学习在时间序列分类中的应用进行综述,探讨常用
    的头像 发表于 07-09 15:54 698次阅读

    深度学习中的无监督学习方法综述

    深度学习作为机器学习领域的一个重要分支,近年来在多个领域取得了显著的成果,特别是在图像识别、语音识别、自然语言处理等领域。然而,深度
    的头像 发表于 07-09 10:50 481次阅读

    深度学习在视觉检测中的应用

    能力,还使得机器能够模仿人类的某些智能行为,如识别文字、图像和声音等。深度学习的引入,极大地推动了人工智能技术的发展,特别是在图像识别、自然语言处理、语音识别等领域取得了显著成果。
    的头像 发表于 07-08 10:27 616次阅读

    深度学习与nlp的区别在哪

    深度学习自然语言处理(NLP)是计算机科学领域中两个非常重要的研究方向。它们之间既有联系,也有区别。本文将介绍深度学习与NLP的区别。
    的头像 发表于 07-05 09:47 806次阅读

    深度学习的基本原理与核心算法

    随着大数据时代的到来,传统机器学习方法在处理复杂模式上的局限性日益凸显。深度学习(Deep Learning)作为一种新兴的人工智能技术,以其强大的非线性表达能力和自学习能力,在图像识
    的头像 发表于 07-04 11:44 1642次阅读

    深度学习常用的Python库

    深度学习常用的Python库,包括核心库、可视化工具、深度学习框架、自然语言处理库以及数据抓取库等,并详细分析它们的功能和优势。
    的头像 发表于 07-03 16:04 559次阅读

    深度学习与卷积神经网络的应用

    自然语言处理,深度学习和CNN正逐步改变着我们的生活方式。本文将深入探讨深度学习与卷积神经网络的基本概念、工作原理及其在多个领域的应用,并
    的头像 发表于 07-02 18:19 798次阅读

    深度解析深度学习下的语义SLAM

    随着深度学习技术的兴起,计算机视觉的许多传统领域都取得了突破性进展,例如目标的检测、识别和分类等领域。近年来,研究人员开始在视觉SLAM算法中引入深度学习技术,使得
    发表于 04-23 17:18 1236次阅读
    <b class='flag-5'>深度</b>解析<b class='flag-5'>深度</b><b class='flag-5'>学习</b>下的语义SLAM

    为什么深度学习的效果更好?

    导读深度学习是机器学习的一个子集,已成为人工智能领域的一项变革性技术,在从计算机视觉、自然语言处理到自动驾驶汽车等广泛的应用中取得了显著的成功。深度
    的头像 发表于 03-09 08:26 590次阅读
    为什么<b class='flag-5'>深度</b><b class='flag-5'>学习</b>的效果更好?

    什么是深度学习?机器学习深度学习的主要差异

    2016年AlphaGo 击败韩国围棋冠军李世石,在媒体报道中,曾多次提及“深度学习”这个概念。
    的头像 发表于 01-15 10:31 1015次阅读
    什么是<b class='flag-5'>深度</b><b class='flag-5'>学习</b>?机器<b class='flag-5'>学习</b>和<b class='flag-5'>深度</b><b class='flag-5'>学习</b>的主要差异

    深度学习如何训练出好的模型

    算法工程、数据派THU深度学习在近年来得到了广泛的应用,从图像识别、语音识别到自然语言处理等领域都有了卓越的表现。但是,要训练出一个高效准确的深度
    的头像 发表于 12-07 12:38 1052次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>学习</b>如何训练出好的模型