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

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

3天内不再提示

谷歌MorphNet:它是如何工作的?为什么是MorphNet?

jmiy_worldofai 来源:lq 2019-04-27 18:42 次阅读

深度神经网络(DNN)在解决图像分类、文本识别和语音转换等实际难题方面具有显著的效果。然而,为一个给定的问题设计一个合适的 DNN 体系结构仍然是一个具有挑战性的任务。考虑到架构可能需要巨大的搜索空间,从头开始为特定的应用程序设计一个网络在计算资源和时间方面花销可能非常大。神经网络架构搜索和 AdaNet 等方法利用机器学习来搜索设计空间,以便找到改进架构的方法。另一种选择是将现有的体系结构用于类似的问题,并一次性为手头的任务进行优化。

正对这个问题,谷歌 AI 发布了一篇博文讨论了 MorphNet。MorphNet 是一种复杂的神经网络模型细化技术,它采用了上面说的第二种方法。本文对 MorphNet 的解释是:「深度神经网络的快速、简单的资源受限结构学习」。MorphNet 以现有的神经网络为输入,生成一个更小、更快、性能更好的新神经网络,以适应新的问题。我们已经将这项技术应用于「Google-scale」问题,以设计更小、更准确的生产服务网络。而且,现在我们已经向社区开放了 MorphNet 的 TensorFlow 实现,这样你就可以使用它来提高你的模型的效率。

它是如何工作的

MorphNet 通过收缩和扩展阶段的循环优化神经网络。在收缩阶段,MorphNet 识别效率低下的神经元,并利用稀疏正则化器将其从网络中删去,这样网络的总损失函数就包含每个神经元的成本。然而,MorphNet 并没有对每个神经元使用一样的成本,而是根据目标资源计算神经元成本。随着训练的进行,优化器在计算梯度时会意识到资源成本,从而了解哪些神经元是是节省资源的,哪些神经元可以被移除。

例如,考虑 MorphNet 如何计算神经网络的计算成本,以触发器为例。为了简单起见,让我们考虑一个用矩阵乘法表示的神经网络层。在这种情况下,层有 2 个输入(xn),6 个权重(a,b,…,f)和 3 个输出(yn;神经元)。使用标准教科书中的行和列相乘的方法,可以计算出评估该层需要 6 次相乘。

神经元的计算成本

MorphNet 将其计算为输入计数和输出计数的乘积。注意,尽管左边的例子显示了两个为 0 的权重值,我们仍然需要执行所有的乘法来评估这个层。然而,中间的例子显示了结构化稀疏性,其中神经元 yn 中的所有行权重都为 0。MorphNet 识别出这个层的乘法数从 6 减少到 4,于是这个层的新输出计数是 2。利用这一思想,MorphNet 可以确定网络中每个神经元的增量成本,从而生成一个更有效的模型(右边),其中神经元 y3 已经被移除。

在展开阶段,我们使用宽度乘数来均匀地扩展所有的层大小。例如,如果我们扩大 50%,那么一个以 100 个神经元开始并缩小到 10 个的低效率层只会扩大到 15 个,而一个只缩小到 80 个神经元的重要层可能会扩大到 120 个,并有更多的资源来工作。也就是将计算资源从网络中效率较低的部分重新分配到可能更高效的部分。

在缩减阶段之后,人们可以停止 MorphNet,只需缩减网络以满足更严格的资源预算。这会导致在给定目标成本的时候网络效率更高,但有时也会导致精度下降。另外,用户还可以完成扩展阶段,该阶段将与原始目标资源成本相匹配,但提高了准确性。稍后我们通过一个示例来介绍这个的完整实现过程。

为什么是 MorphNet?

MorphNet 提供了四个关键的有价值的主张:

有针对性的正则化:与其他稀疏的正则化方法相比,MorphNet 采取的正则化方法目的性更强。尤其是,MorphNet 方法进行更好的稀疏化的目的是减少特定的资源。这可以更好地控制由 MorphNet 生成的网络结构,根据应用领域和相关约束,MorphNet 可以有明显的不同。例如,下图的左侧面板显示了一个基线网络,该网络具有在 JFT 上训练的常用 ResNet-101 体系结构。当以触发器(中间图,触发器减少 40%)或模型大小(右图,权重减少 43%)为目标时,MorphNet 生成的结构有很大不同。在优化计算成本时,较低层网络中的高分辨率神经元比低分辨率神经元更容易受到修剪。当模型尺寸较小时,在修剪权衡上正好相反。

MorphNet 有针对性的正则化。矩形宽度与层中的通道数成正比。底部的紫色条是输入层。左图:基线网络用作 MorphNet 的输入。中图:输出应用触发器调节器。右图:输出应用大小调整器。

MorphNet 是为数不多的能够针对特定参数进行优化的解决方案之一。这使它能够针对特定实现的参数。例如,可以通过结合特定于设备的计算时间和内存时间,将延迟作为一阶优化参数。

拓扑变形:当 MorphNet 学习每层神经元的数量时,算法在一个层中稀疏所有神经元的过程中可能会遇到一种特殊的情况。当一个层有 0 个神经元时,通过切断网络中受影响的分支,可以有效地改变网络的拓扑结构。例如,当遇到 ResNet 体系结构时,MorphNet 可能保留 skip-connection,但删除残差块,如下左图所示。对于 Inception 样式的架构,MorphNet 可能会删除整个平行的塔,如右图所示。

左图:MorphNet 可以删除 ResNet 样式网络中的残差连接。右图:它还可以删除 Inception 样式的网络中的平行塔。

可扩展性:MorphNet 在一次训练中学习新的结构,在培训预算有限时,它是一个很好的方法。MorphNet 也可以直接应用于昂贵的网络和数据集。例如,在上面的比较中,MorphNet 直接应用于 ResNet-101,而它最初是在 JFT 上花费了 100 个 GPU 月训练的。

可移植性:MorphNet 产生的网络是「可移植的」,从这个意义上说,它们是打算从头开始重新训练的,并且权重与体系结构学习过程无关。你不必担心复制检查点或遵循特殊的训练规则,而只需像平时一样训练你的新网络!

变形网络

作为一个演示,我们将 MorphNet 应用于在 ImageNet 上通过目标定位 FLOPs 训练的 Inception V2(见下文)。基线方法是使用一个宽度倍增器,通过均匀地缩小每个卷积(红色)的输出数量来权衡精度和触发器。MorphNet 方法的目标是直接 FLOPs,并在缩小模型时产生更好的权衡曲线(蓝色)。在这种情况下,与基线相比,触发器成本降低了 11% 到 15%,而精确度相同。

MorphNet 应用于 ImageNet 上的 Inception V2。单独使用 FLOP 正则化器(蓝色)可将性能相对于基线(红色)提高 11-15%。在一个完整的周期中,正则化器和宽度乘法器在相同的成本(「x1」;紫色)下提高了精度,并在第二个周期(「x2」;青色)持续改进。

此时,您可以选择一个 MorphNet 网络来满足较小的 FLOP 预算。或者,您可以通过将网络扩展回原始的 FLOP 成本来完成这个周期,从而在相同的成本(紫色)下获得更好的准确性。再次重复变形网缩小扩展循环会导致另一个精度增加(青色),使总精度增加 1.1%。

结论

我们已经将 MorphNet 应用到了谷歌的几个量产级图像处理模型中。使用 MorphNet 可以在质量几乎没有损失的情况下显著减少模型大小。

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

    关注

    27

    文章

    6171

    浏览量

    105466
  • 神经网络
    +关注

    关注

    42

    文章

    4772

    浏览量

    100834
  • 机器学习
    +关注

    关注

    66

    文章

    8421

    浏览量

    132710

原文标题:谷歌 MorphNet:让你的神经网络更小但更快

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

收藏 人收藏

    评论

    相关推荐

    压印光刻技术是什么 它是如何工作

    压印光刻是许多新兴应用的关键技术,例如微光学、增强现实、MEMS和光电传感器;但它是什么以及它是如何工作的?
    发表于 07-25 16:15 1557次阅读
    压印光刻技术是什么 <b class='flag-5'>它是</b>如何<b class='flag-5'>工作</b>的

    使用正弦发生器怎么检查它是如何工作

    大家好!我是Android开发者,MCU只是我的爱好。我有DSIC30F3012,我正在尝试实现音频信号的FFT。我的采样率是2048赫兹,样品的数量是128。我使用正弦发生器来检查它是如何工作
    发表于 09-18 09:40

    请问虚拟仪器是什么?它是怎样工作的?

    虚拟仪器是什么?它是怎样工作的?虚拟仪器的优势有哪些?与传统仪器相比,虚拟仪器有哪些不足?虚拟仪器能解决什么问题和达到什么效果?
    发表于 04-15 06:30

    什么是备用电源?它是如何进行工作的?

    什么是备用电源?它是如何进行工作的?备用电源的作用是什么?有哪些分类?
    发表于 10-21 08:07

    打印机的原理是什么?它是如何工作的?

    打印机的原理是什么?它是如何工作的?
    发表于 11-11 06:30

    计算机总线起什么作用?它是如何工作

    什么是计算机?计算机的主要特征有哪些?计算机总线起什么作用?它是如何工作的?
    发表于 12-27 06:50

    实时时钟 (RTC)如何验证它是否正常工作

    我想我已完成实时时钟 (RTC) 的设置,但如何验证它是否正常工作?有没有办法输出时间戳或检查文件?我正在使用 STM32WB55 Nucleo 开发板,目前使用的是 STM32 IDE。
    发表于 01-05 08:11

    “ One STM instance (STM_7) is tied to Timestamp ”是什么意思,它是如何工作的?

    Q1:“ One STM instance (STM_7) is tied to Timestamp ”是什么意思,它是如何工作的?Q2:“STM_TS”与其他STM实例有什么区别吗?
    发表于 04-19 08:21

    疯狂的谷歌谷歌收购了多少公司?

    说起谷歌,中国网友都知道它是一个外国的好用的搜索引擎,有的时候搞点黑科技。但大家可能不知道,谷歌有多壕。
    的头像 发表于 01-02 15:36 1.7w次阅读

    谷歌提出MorphNet:网络规模更小、速度更快!

    谷歌已经将 MorphNet 应用到其多个生产级图像处理模型中。MorphNet 可带来模型大小/FLOPs 的显著降低,且几乎不会造成质量损失。
    的头像 发表于 04-22 16:15 1886次阅读
    <b class='flag-5'>谷歌</b>提出<b class='flag-5'>MorphNet</b>:网络规模更小、速度更快!

    底层技术决定 人工智能“跑速”

    钱童心 从DeepMind的人工智能围棋高手AlphaGo到基因测序高手AlphaFold,再到近期GoogleAI放出了一种叫做MorphNet神经网络模型优化技术,谷歌总在技术的最前沿不断挑战
    发表于 07-03 10:08 345次阅读

    什么是以太坊它是如何工作

    以太坊是一个全新开放的区块链平台,它允许任何人在平台中建立和使用通过区块链技术运行的去中心化应用。就像比特币一样,以太坊不受任何人控制,也不归任何人所有——它是一个开放源代码项目,由全球范围内的很多人共同创建。
    发表于 05-15 11:17 2726次阅读

    谷歌计划停止Messages在未经认证的Android上工作

    应用在未经认证的 Android 设备上工作。 运行 Android 系统的设备如果想要被正式认定为“Android”,需要在发布之前通过谷歌的认证程序。经过认证的设备可以预装谷歌的应用套件,包括
    的头像 发表于 01-21 15:57 1641次阅读

    什么是能量跟踪 它是如何工作

    套件【Link】 什么是能量跟踪,它是如何工作的? 产品开发过程中分析和记录系统功耗是非常重要的,特别是对于电池供电类产品,而另一方面,精确测量功耗的设备又非常的昂贵并且不容易掌握。用于
    的头像 发表于 01-20 15:13 1362次阅读

    锁相环PLL是什么?它是如何工作的?

    今天想来聊一下芯片设计中的一个重要macro——PLL,全称Phase lock loop,锁相环。我主要就介绍一下它是什么以及它是如何工作的。
    的头像 发表于 12-06 15:21 1913次阅读