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

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

3天内不再提示

利用Tensorlow及其API为例来进行讨论,理解深度学习背后的魅力

nlfO_thejiangme 来源:未知 作者:李倩 2018-03-31 08:42 次阅读

深度学习是一种处理和解读数据的方式,我们需要更深入的理解机器的运作才能更更好的控制和应用它为我们服务,接下来将要详细讨论深度学习得以实现如此优异表现的原因。为了简化讨论的过程,本文将利用Tensorlow及其API为例来进行讨论,从认知论的程度来理解深度学习背后的魅力。

神经网络表现出的缩减效应

对于深度学习的理解有各种不同的观点和层次顺序。我们首先用下面的网络结构作为例子:

上图描述了一张图像经过一个深度学习网络的传播过程,我们在这里先进行一个小小的变换,将最左端看做是底部,而最右端看做是整个网络的顶部。这样我们就可以利用自底向上的方法来对网络进行分析。

上图中我们会看到随着信息向网络顶层传播,数据和复杂度在明显的下降。我们能不能假设这一过程是一种认知的浓缩呢?它是不是将不重要的部分剔除了,如何做到的呢?深度学习模型通过什么方式来判断哪些是显著的特征而哪些不是呢?

对于纯粹的数据缩减来说主要是通过压缩或者随机删除的机制来实现的,但这对于深度学习来说却不是一个好办法。我们需要的是提出那些不显著的部分并在最后留下那些显著的数据和特征。但很多人对于基于重要性的缩减方法没有正确的认识并利用了无损压缩算法来进行评估。

下面让我们用一个实际的例子来自底向上的理解深度学习网络到底进行了什么样的工作。假设我们要建立一个人脸检测系统,我们先构建一个可以理解图像的神经网络并利用很多带标签的照片对它进行监督训练并将网络植入到系统中去,当我们再输入一张包含人脸的照片时系统就能迅速的找出图像中人脸的位置。就这一过程而言,输入数据是RGB彩色照片上的像素值,并在网络中进行了各种计算随后输出结果。我们可以看到网络的输出要比输入少很多,这意味着在处理过程中很多信息被丢弃了。从输入或者低级的抽象进行一定程度的缩减并传递到下一层进行操作。

图片在神经网络中传输的故事里,前面阶段神经网络只能操作一些临近的像素并检测出简单的直线和曲线信息、以及不同的颜色。所以他们描述的主要是基于线条和颜色的基本信息。

而上面的层则会进行更为复杂的处理,他们可能会“看到”某些边缘与先前看到过的边缘很类似属于某一类物体。它们也许会说“这和之前看到的草很类似呀”。甚至没有标签信号的时候,这种高层次的信号也能形成某一种表达向前传播。

在更上一层,神经网络可能会看到更多的草“哇,这么多草叶子,这里一定是草地了”,那么草地的信号会被继续向前传播;

最后顶部的操作会综合这些结果“我们是人脸检测器,并不关心草地,忘了它们吧”。最后将不显著的草地的信息丢弃。

将不是人脸的数据剔除后剩下的是什么呢?

在你知道网络的表达是什么之前是不能丢弃其中的信息的。具体来说就像上面的例子中低层级的草叶检测器不能丢弃草一样,因为它们还不知道更高级的显著性特征草地-不是草地/人脸-不是人脸的线索。

我们能做的仅仅是在理解和抽象的层面上进行操作。每一个层级接收低下传上来的描述、丢弃它认为不相关的部分并将它们自己对于信息的表示向上传递,直到到达真正知道网络所要搜寻的目标的层。

而这也是深度学习之所以深的原因。

这并不是一个新颖的观点,早在1959年Oliver Selfridge就提出了类似的观点称为喧嚣,但长期被人工智能界忽略了,但它却提前60年预言了信息自下向上传递的层状架构,这就是今天广泛使用的深度神经网络。

那么在具体的程序中是否有支持缩减的操作呢?让我们来看看tensorflow中的算子。

我们先来看看池化操作,tensorflow中有超过50个池化操作算子,下图是2*2的最大池化操作:

它将邻近的四个像素中最大值传递给下一个层级。靠近输入端的四个值可能是相互邻近的像素值,但更多通过池化则只选出了其中最重要的一个,可以看做是抛弃了75%不重要的部分,仅仅留下最高的一个值。

在像素层面可能是最亮的值,在上面草叶的例子中就会表示“这里至少有一片叶子”。对于丢弃信息的解读是需要根据网络层的实际情况来进行的,事实上神经网络层代表了不同的缩减或者称之为抽象。

现在我们应该对深度神经网络中最为重要的观点有了一定的感受了:缩减需要在不同层次的抽象上进行。在决定哪些需要保留哪些需要丢弃只能在对应的抽象层次上进行。我们不能在仅仅看到深浅不一的绿色就决定丢弃草地的抽象,因为这个层次还没有草地的信号被表达出来。这也对应着一个简单的道理,对于行为的决策只有在对学习产生积极贡献的时候才能做出,不可靠或无用的决策将会通过一些机制被忽略。

接下来我们来观察tensorflow中的卷积操作,手册中是这样介绍卷积操作的:

虽然她被称为卷积操作,但实际上应该严格的成为互相关操作。(编者注:卷积和互相关不同在核是否翻转,如果核对称则相同)

不同的核用于发现不同的互相关和共现关系。共现关系能对图像中不同位置的模式进行学习。就像Hinton举的一个例子嘴总是在鼻子的下面,这种空间关系是深度网络能够从学习过程中发现模式并与标签对应起来。这使得图像理解器可以为图像中鼻子的位置打上鼻子的标签。此外系统还能够学习到物体间相对后面和下面的概念。

传播到深度网络高层次的信息描述的正是这些关系,而不相关的信息则被视为不显著的并被丢弃。在上面的示意图中, 丢弃操作是由卷积+ReLU后面的最大池化层完成的。需要说明的ReLU是一种用于丢弃负值的函数,同时它还为深度学习引入了重要的非线性但这不是此次分析的重点。

由卷积ReLU和池化层组成的模块在深度学习中十分普遍,因为这三者的结合形成了十分可靠的减约过程。他们常常被打包在一起作为深度学习的单元被整合到计算图中去,并用各自不同的方式抽取出数据中显著的特征。

最后再强调一遍,这就是深度学习为何深的原因,因为你只能在你能理解抽象表达相关性的不同层处进行缩减,抛弃不相关的信息,而浅层的网络并没有理解这些表达的能力。

深度学习科学吗?

深度学习一般使用线性代数来进行数学描述,但我们还不能通过这些数学公式解释出深度网络可以形成各种复杂的理解能力。

让我们先来考虑一下卷积操作,卷积层能够发现相关性。例如很多片草叶出现的时候意味着一片草地。模型在训练过程中不断去发现内在的相关性,一旦发现后就会对网络权重进行调整进行正确的缩减,以增加模式被再次发现的概率。但在本质上所有的相关性都会被遗忘随后在下一次训练中重新发现,深度学习向上传输的信号和向下传输的梯度是根据误差的信号来调整权重的,也可以说系统是从错误中学习的。在这一层次上,这种自下而上自顶向下的方式将会在每张图像上重复很多次。

这种上上下下的方式造就了对于图像的理解能力,也有人在文本上应用同样的方法获得成功。其中的过程就和自然学习一样,将生物的神经元和软件中的“神经元”联系了起来。

无论是深度学习算法家族还是自然学习,都在科学上有重要的意义,他们跳过了因果联系的推导过程,而从相关性中去发掘联系。这在经典科学理论中是不成立的,要么是优美的公式要么就什么也不是。很多深度学习程序仅仅包含少量的线索来实现一般的结果,有时候增加层数并不管用,这样的问题在深度学习的日常中并不罕见。没有先验模型没有信息,对于模型的可靠性、正确性或者系统的整体性能我们只有通过不断地的验证才能完成。

但你可能会问为什么我们还要使用这种不能保证给出正确答案的系统呢?因为我们别无选择了。我们在可靠的缩减方法失效的时候仅仅只能使用系统全局的方法,在任务需要理解能力需要自动缩减内容和复杂度的时候只有这样的方法。

难道真没有其他的选择了吗?有啊!我们周围几十亿人类就已经掌握了这种复杂的技能。因为人们生活在丰富多彩的世界里。所以你可以使用理论上未被证明但效果十分显著的方法,一种建立在深度学习之上的全局理解机器来理解世界。这样的机器不能被证明是正确的因为它于通常的计算机不同,它主要的工作是缩减信息,这是一种从前只在动物里拥有的能力——一种全局性(Holistic skill)的能力。

AI认识论中有一个十分有力的结果:我们将会再次遇到曾经遇见的事物。这种缩减和抽象的能力将会成为人工智能领域必不可少的功能。

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

    关注

    42

    文章

    4774

    浏览量

    100894
  • 深度学习
    +关注

    关注

    73

    文章

    5507

    浏览量

    121274

原文标题:自底向上看深度学习网络的工作原理

文章出处:【微信号:thejiangmen,微信公众号:将门创投】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    2017全国深度学习技术应用大会

    技术自然语言理解和机器翻译带来了哪些新的发展机遇?它又是如何解决自然语言理解和机器翻译问题?下一步发展方向是什么?本报告将就这些问题展开讨论。  10、报告题目:
    发表于 03-22 17:16

    了解AI人工智能背后的科学?

    的机器学习模型时,这些数据由一组属性和特征进行定义。 由机器学习模型确定如何理解所有这些属性。那么该模型如何决定哪些属性是建立最好模型的关
    发表于 09-25 10:03

    深度学习与数据挖掘的关系

    理解,但是在其高冷的背后,却有深远的应用场景和未来。深度学习是实现机器学习的一种方式或一条路径。其动机在于建立、模拟人脑
    发表于 07-04 16:07

    【NanoPi K1 Plus试用体验】搭建深度学习框架

    近几年各种深度学习框架涌现,大家可能很难从众多的深度学习框架中选择一个合适的框架进行学习。对于
    发表于 07-17 11:40

    利用ECS进行深度学习详细攻略

    ECS:利用ECS进行深度学习详细攻略
    发表于 12-24 11:47

    labview实现深度学习,还在用python?

    算法。其编程特点是上手快,开发效率高,兼容性强,能快速调用c++,c#等平台的dll类库。如何将labview与深度学习结合起来,解决视觉行业越来越复杂的应用场景所遇到的困难。下面以开关面板
    发表于 07-23 20:33

    深度学习是什么

    创客们的最酷“玩具”  智能无人机、自主机器人、智能摄像机、自动驾驶……今年最令硬件创客们着迷的词汇,想必就是这些一线“网红”了。而这些网红的背后,几乎都和计算机视觉与深度学习密切相关。  
    发表于 07-19 06:17

    深度学习介绍

    的网络最终实现更通用的识别。这些多层的优点是各种抽象层次的学习特征。例如,若训练深度卷积神经网络(CNN)对图像进行分类,则第一层
    发表于 11-11 07:55

    什么是深度学习?使用FPGA进行深度学习的好处?

    准确的模型。有了上述机制,现在可以通过让神经网络模型学习各种问题来自动解决问题,创建高精度模型,并对新数据进行推理。然而,由于单个神经网络只能解决简单的问题,人们尝试通过构建深度神经网络 (DNN
    发表于 02-17 16:56

    如何理解深度学习深度学习的理论探索分析

    普林斯顿大学计算机科学系教授Sanjeev Arora做了深度学习理论理解探索的报告,包括三个部分:
    的头像 发表于 10-03 12:41 3702次阅读

    深度学习处理器系统的设计实例介绍

    2010年1月9日,Deephi的Yi Shan在法兰克福的2018年XDF的Edge Track中提供了一个用演示.Yi Shan讨论深度学习的成功,并分享了他们的全栈
    的头像 发表于 11-21 06:16 2587次阅读

    深度学习:四种利用少量标注数据进行命名实体识别的方法

    整理介绍四种利用少量标注数据进行命名实体识别的方法。 面向少量标注数据的NER方法分类 基于规则、统计机器学习深度学习的方法在通用语料上能
    的头像 发表于 01-03 09:35 1w次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>学习</b>:四种<b class='flag-5'>利用</b>少量标注数据<b class='flag-5'>进行</b>命名实体识别的方法

    基于深度学习的行为识别算法及其应用

    基于深度学习的行为识别算法及其应用
    发表于 06-16 14:56 20次下载

    深度学习框架的作用是什么

    深度学习框架的作用是什么 深度学习是一种计算机技术,它利用人工神经网络模拟人类的
    的头像 发表于 08-17 16:10 1587次阅读

    如何利用AI进行提升自我呢?

    利用AI进行学习是一个高效且富有创新性的过程。以下是一些建议,帮助你充分利用AI进行学习: 选择
    的头像 发表于 07-19 10:46 573次阅读