让神经网络更快更小更高效的模型优化技术MorphNet

作者: 鱼羊 2019-04-19 08:18:37

 想要调整你的神经网络来完成特定任务?这件事并没有想象中那么简单。

深度神经网络(DNN)是块好砖,不过想要搬动它,需要耗费的计算资源和时间成本可能非常昂贵。

现在,Google AI放出了MorphNet。他们用流行的图像分类神经网络Inception V2对其进行测试之后发现,在不牺牲精度的情况下,神经网络变得更快更小,算力消耗还减少了!

MorphNet是什么

MorphNet是一种神经网络模型优化( refinement)技术,走的是利用现有架构,针对特定任务优化的路线。

也就是说这是一个迁移学习问题。迁移学习的难点在于找出不变量,模型需要处理许多与此前训练的任务目标相近,但又不完全一样的任务,这会使模型性能大打折扣甚至崩溃。

而MorphNet的成功之处在于,只要将针对类似问题构建的神经网络作为输入,就能为新任务创造更小、更快、更合身的新架构。

MorphNet通过循环收缩和扩展两个阶段来优化神经网络。

收缩阶段

在收缩阶段,MorphNet会识别出低效神经元,并运用稀疏正则化器来修剪它们。

需要说明的是MorphNet会在考虑目标资源的情况下来计算一个神经元的损失,因此在训练过程之中,优化器能够意识到资源损失,从而认识到哪些神经元是高效的,哪些又是可以被移除的。

有些不明白?那么来看看下面这个例子,看MorphNet是如何计算神经网络的计算成本(如FLOPs,即每秒浮点运算次数)的:

假设一个表示为矩阵乘法的神经网络层,该层具有 2 个输入(Xn),6 个权重(a, b, …, f)以及 3 个输出(Yn;神经元)。也就是说评估这一层需要 6 次乘法。

MorphNet将乘法数视作输入数和输出数的乘积。在左侧的示例当中,虽然有两个权重为0,进行评估时仍然需要执行所有的乘法。但中间的示例显示了结构的稀疏性,MorphNet能够识别它的输出数为 2,并且该层的乘法数从 6 减少到了4。按照这个想法,MorphNet可以确定网络中每一个神经元的增量成本,以产生右侧这样更为有效的模型。

扩展阶段

在扩展阶段,MorphNet使用宽度乘数来均匀地扩展所有层的大小。

举个例子,如果扩展50%,那么对于低效层来说,神经元从 100 个收缩到 10 个之后,只会重新扩展到15个;而对于重要层来说,神经元只会从 100 个收缩到 80 个,重新扩展后则可能达到 120 个,并且获得更多可支配的资源。

也就是说,MorphNet的最终效果是将计算资源从网络中效率低的部分重新分配到效率高的部分。

Google AI出品:让神经网络更快更小更高效的模型优化技术MorphNet

 MorphNet优化AI模型

效果怎么样

Google AI团队用MorphNet对Inception V2网络模型进行了训练。

Google AI出品:让神经网络更快更小更高效的模型优化技术MorphNet

 图片截自论文MorphNet论文

基线方法是使用宽度乘数,通过均匀缩小每个卷积的输出数量来权衡精度和算力消耗(红色)。

MorphNet方法则直接以算力消耗为目标,在收缩模型时生成更好的权衡曲线(蓝色)。

在同等精度之下,MorphNet方法将算力消耗降低了11%到15%。

在对Inception V2的优化上MorphNet表现出色,对于其他的网络模型,MorphNet也同样好用。

Google AI出品:让神经网络更快更小更高效的模型优化技术MorphNet

 图片截自论文MorphNet论文

既成功压缩了模型尺寸/ FLOPs,在质量上又几乎没有损失,果然Google出品,必属精品。

这么好用的东西,Google已经自己用起来了。Google AI团队表示,MorphNet已应用于Google多个生产规模的图像处理模型。

传送门

MorphNet现已开源。

GitHub地址:

https://github.com/google-research/morph-net

论文地址:

https://arxiv.org/pdf/1711.06798.pdf

神经网络 数据 图形
上一篇:未来人工智能时代,我们的孩子能做什么工作? 下一篇:感知人工智能操作系统
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

华为全场景 AI 计算框架MindSpore开源!

华为Mindspore AI计算框架正式开源,标志着华为向自己的AI梦想,迈出了新的一步,而深度学习开源领域,又迎来了一位重量级的玩家。

佚名 ·  1天前
腾讯和清华发表新基建领域最新成果:数据中心电池设备AI诊断服务

近日,腾讯数据中心与清华大学自动化系智网中心团队的贾庆山老师合作论文被第21届IFAC国际自动控制世界大会录取。

佚名 ·  3天前
宫崎骏动画里的新垣结衣见过没?这个开源动漫生成器让你的照片秒变手绘日漫

随手拍张照片,顺势转换为宫崎骏、新海诚等日漫大师的手绘风格作品,这个专门生成动漫图像的 GAN,实测很好用。

肖清、思 ·  4天前
从零开始构建简单人工神经网络:1个隐藏层

我们在本文中将构建一个有1个输入层、1个隐藏层和1个输出层的神经网络。我们会看到,我们构建的神经网络能够找到非线性边界。

布加迪 ·  2020-03-26 09:00:00
DeepCode 为 C/C ++ 添加基于 AI 的静态代码分析支持

人工智能代码审查平台 DeepCode 方面宣布,将为 C 和 C ++ 添加基于 AI 的静态代码分析支持。

白开水不加糖 ·  2020-03-25 10:25:03
AI芯片之卷积神经网络原理

卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。 它包括卷积层(convolutional layer)和池化层(pooling layer)。

人人都是极客 ·  2020-03-25 09:48:10
从零开始构建简单人工神经网络:1个输入层和1个输出层

本上下篇将介绍仅使用numpy Python库从零开始构建人工神经网络(ANN)。上篇将介绍构建一个很简单的ANN,只有1个输入层和1个输出层,没有隐藏层。下篇将介绍构建一个有1个输入层、1个隐藏层和1个输出层的ANN。

布加迪 ·  2020-03-25 09:00:00
每秒处理240万帧游戏画面,AI训练成本降低80%,谷歌开源RL并行计算框架

最近,不差钱的谷歌,开源了一种SEED RL框架,可以更容易地将AI训练放在几千台机器上运行,效果比之前的方法最高提升近4倍。

晓查 ·  2020-03-24 15:08:07
Copyright©2005-2020 51CTO.COM 版权所有 未经许可 请勿转载