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

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

3天内不再提示

一个基于任务的深度循环网络,加入循环单元可以解决更困难的视觉问题

zhKF_jqr_AI 来源:未知 作者:李倩 2018-07-08 09:48 次阅读

编者按:深度卷积神经网络对视觉系统来说是个不错的模型,但这些静态系统不能解释现实视觉反应中的短暂动态行为。于是神经科学家们建造了一个基于任务的深度循环网络,加入循环单元可以解决更困难的视觉问题。以下是论智的编译。

摘要

前馈卷积神经网络(CNN)是目前最先进的目标分类任务工具,例如ImageNet。另外,他们是灵长类动物大脑中视觉系统中精准定量平均响应时间的模型。然而,生物视觉系统的两种普遍存在的结构特征是典型CNN不具备的,即皮质区域内的局部循环,以及下游区域到上游区域的远距离反馈。在这篇文章中,我们研究了循环结构在提高分类性能时的作用,我们发现,在ImageNet任务中,标准的循环形式(vanilla RNN和LSTM)无法在深度CNN中达到良好表现。相反,能将两种结构特征——bypassing和gating——结合起来的结构能将任务精确度极大地提升。

我们将这些设计原则应用在数千个模型中的自动搜索上,它们确定了局部循环单元和远距离反馈连接对目标辨认很有用。另外,这些经过任务优化的卷积RNN能比反馈网络更好地解释灵长类动物神经系统中神经元的活动,说明大脑的循环连接在执行不同的视觉动作时非常重要。

背景介绍

大脑的传感器系统必须在含有噪音的复杂感知数据中检测出有意义的模式。视觉环境可以揭示物体正面或负面的价值,例如食物种类、危险的信号或难忘的人。然而这些信号在不同场景中的位置、姿势、背景和前景都相差很大,所以从低属性图像中很难辨别出目标物体。

最近的研究表明,针对任务优化的深度卷积神经网络(CNN)是灵长类动物大脑的视觉编码精确的量化模型。CNN经过训练,可以识别ImageNet中的物体,并且能比其他模型更好地解释视觉系统中的神经元反馈。模型的各个卷积层分辨提供不同视觉区域的线性预测。

但是,灵长动物的视觉系统有些结构并没有被前馈CNN完全模仿,即皮质区域的局部循环连接和不同区域的远距离连接。目前还不清楚循环的作用,有科学家猜想循环是用来填补缺失的数据,或进行从上到下基于注意力的特征调整。

虽然经过增强的有循环结构的CNN可以用来解决相对简单的遮挡或预测任务,但这些模型既不能适应复杂的任务(前馈CNN可以解决),也不能解释神经反馈。事实上,由于目标识别的复杂性和多样性,ImageNet中的很多图片质量都参差不齐,所以有可能要用到上述的循环处理机制。而且最近很多对ImageNet高效的解决方法都提出在多个图层之中用同样的结构基序。于是我们选择研究循环结构究竟能否提高模型在ImageNet数据集上的分类表现。虽然其他工作用CNN的输出最为RNN的输入解决视觉任务,在这里我们将循环结构和CNN本身结合,因为这类结构在神经科学中是非常常见的。

模型结构

为了研究卷积RNN的空间结构,我们用TensorFlow库增强标准的、有局部和远距离循环结构的CNN,如图所示:

卷积循环网络中含有局部循环和远程前馈连接的结合

在卷积RNN的每个图层中,来自较高层的前馈输入被重新修改尺寸,以匹配前馈输入的空间维度。两种类型的输入都由标准的2D卷积处理。如果该层有任何局部循环,则输出会输入到下一个循环单元。

在这项工作中,所有形式的循环都向前馈基础模型中添加了参数。由于这样可以提升模型的性能,我们训练了两种与卷积RNN相对照的模型:

有更多卷积过滤层的前馈模型(更宽)或者更多层的模型(更深),以匹配循环模型中参数的数量;

将卷积模型展开后进行复制,其中的参数数量和原始的卷积RNN一样。

实验结果

新型RNN结构提高了任务处理性能

我们首先测试了有着标准RNN单位的增强CNN(例如vanilla RNN和LSTM)能够提高在ImageNet目标物体辨认上的表现。二者对比如图所示:

结果发现在类似AlexNet这样的六层前馈上,精确度稍有提升。

但这里的循环结构存在两个问题,首先,由于单一参数数量的增多,这些卷积RNN并没有检测性能提升了多少。其次,将前馈模型做得更宽或更深,比单纯地增加标准RNN单元性能提升得更多,参数却更少。这说明标准RNN结构虽然适用于很多种任务,但是不适合深度CNN中的任务。

我们研究后发现这是因为标准RNN中缺少两种关键属性:

Gating,即隐藏状态的值决定下一步的输入有多少能通过、保留或丢弃;

Bypassing,即一个零初始化的隐藏状态允许前馈输入通过下一层。

重要的是,这两种特征都是为了解决梯度消失的问题。于是我们将两种特征部署到循环结构中。具体结果如图:

之后经过对更深的循环结构进行超参数优化后,我们用卷积RNN模拟了灵长类动物腹流(参与物体识别)神经。

结语

实际上,这篇论文详细介绍了CNN中的循环单元能在目标识别中有效提高性能,我们的发现能提高不同的局部循环结构对应大脑中不同的行为的概率。我们相信通过将该方法应用到CNN上,我们能提高现有的很多方法的性能。未来的实验将探寻不同的任务是否能在卷积RNN对神经的反馈上取代监督目标辨别。另外还将测试模型能否低于其他形式的噪声。

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

    关注

    2513

    文章

    47519

    浏览量

    738273
  • 神经网络
    +关注

    关注

    42

    文章

    4532

    浏览量

    98352
  • 视觉系统
    +关注

    关注

    3

    文章

    308

    浏览量

    30537

原文标题:任务导向的视觉系统卷积循环模型

文章出处:【微信号:jqr_AI,微信公众号:论智】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    什么是RNN (循环神经网络)?

    循环神经网络 (RNN) 是一种深度学习结构,它使用过去的信息来提高网络处理当前和将来输入的性能。RNN 的独特之处在于该网络包含隐藏状态和
    发表于 02-29 14:56 265次阅读
    什么是RNN (<b class='flag-5'>循环</b>神经<b class='flag-5'>网络</b>)?

    067. while循环:5.2 了解循环

    循环
    充八万
    发布于 :2023年07月05日 15:48:56

    循环次数中,如何加入停止循环功能?

    循环次数放在while循环内,而while又放在事件框中,通过触发发送多指令控件来实现循环;while循环中加入停止控件或循环次数结束来停止
    发表于 11-16 13:45

    请教,while循环中的布尔为真时如何触发另一个DAQ任务的开始?

    部分的布尔为True时,触发 底下的for循环开始任务,经过n次循环后自动停止。当布尔再次为真时,for循环再次被触发并开始。其中圆圈部分的布尔只有在某
    发表于 11-21 20:34

    深度学习中的机器视觉网络压缩、视觉问答、可视化等)

    于捕获长距离依赖的常用技巧,也可以用于看图说话。在解码网络中,每个时刻,除了预测下一个词外,还需要输出二维注意力图,用于对
    发表于 07-21 13:00

    linux的循环定时任务

    linux循环定时任务
    发表于 05-20 14:59

    循环灯电路

    循环灯电路一、实验任务和目的:1、实验任务设计并组装产生循环灯所需的下列状态序列的电路。   1001→ 0011→ 0110→ 1011
    发表于 04-07 23:15 6389次阅读
    <b class='flag-5'>循环</b>灯电路

    循环码,循环码是什么意思

    循环码,循环码是什么意思 循环码是
    发表于 03-18 14:00 9733次阅读

    一种门控循环单元兴趣点推荐算法

    兴趣点推荐算法多数易受时间因素与地理位置因素的影响,造成兴趣点的相关文本信息具有不完整性和模糊性。从地理位置与时间相关性岀发,提岀基于时序和距离的门控循环单元兴趣点推荐算法。利用门控循环单元
    发表于 05-13 16:19 6次下载

    C语言循环的比较

    一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。内嵌的循环体中还可以嵌套循环,这就是多层
    的头像 发表于 03-09 11:16 471次阅读

    Verilog中循环语句简介

    在这篇文章中,我们讨论了可以在verilog中使用的不同类型的循环 - for循环,while循环,forever循环和repeat
    的头像 发表于 04-15 09:19 1767次阅读

    PyTorch教程10.2之门控循环单元(GRU)

    电子发烧友网站提供《PyTorch教程10.2之门控循环单元(GRU).pdf》资料免费下载
    发表于 06-05 18:15 0次下载
    PyTorch教程10.2之门控<b class='flag-5'>循环</b><b class='flag-5'>单元</b>(GRU)

    python最简单for循环例子

    Python是一种简单而又强大的编程语言,通过其清晰的语法和丰富的功能库,我们可以实现各种各样的任务。其中一个最基本的语法结构就是for循环,让我们来看一下如何使用for循环来编写一个
    的头像 发表于 11-21 14:53 341次阅读

    python怎么设置循环次数

    在Python中,可以使用循环语句来重复执行一段代码多次。要设置循环次数,可以使用循环的计数器来控制循环
    的头像 发表于 11-23 15:50 1070次阅读

    循环指令loop规定循环次数

    循环指令是计算机编程中非常重要的概念,它允许程序重复执行一段代码块,使得程序可以更有效地处理大量数据和重复性任务。在本文中,我们将详尽、详实、细致地介绍循环指令的相关概念、语法和应用场
    的头像 发表于 02-14 16:10 308次阅读