点击下面卡片关注我呀,每天给你送来AI技术干货!

作者|Hecate He

报道|机器之心

来自微软、浙江大学等机构的研究者提出了一种 one-shot DNN 剪枝框架,无需微调即可从大型神经网络中得到轻量级架构,在保持模型高性能的同时还能显著降低所需算力。

大型神经网络学习速度很快,性能也往往优于其他较小的模型,但它们对资源的巨大需求限制了其在现实世界的部署。

剪枝是最常见的 DNN 压缩方法之一,旨在减少冗余结构,给 DNN 模型瘦身的同时提高其可解释性。然而,现有的剪枝方法通常是启发式的,而且只针对特定任务,还非常耗时,泛化能力也很差。

在一篇标题为《 Only Train Once: A One-Shot Neural Network Training And Pruning Framework》的论文中,来自微软、浙江大学等机构的研究者给出了针对上述问题的解决方案,提出了一种 one-shot DNN 剪枝框架。它可以让开发者无需微调就能从大型神经网络中得到轻量级架构。这种方法在保持模型高性能的同时显著降低了其所需的算力。

论文链接:https://arxiv.org/pdf/2107.07467.pdf

该研究的主要贡献概括如下:

  1. One-Shot 训练和剪枝。研究者提出了一个名为 OTO(Only-Train-Once)的 one-shot 训练和剪枝框架。它可以将一个完整的神经网络压缩为轻量级网络,同时保持较高的性能。OTO 大大简化了现有剪枝方法复杂的多阶段训练 pipeline,适合各种架构和应用,因此具有通用性和有效性。

  2. Zero-Invariant Group(ZIG)。研究者定义了神经网络的 zero-invariant group。如果一个框架被划分为 ZIG,它就允许我们修剪 zero group,同时不影响输出,这么做的结果是 one-shot 剪枝。这种特性适用于全连接层、残差块、多头注意力等多种流行结构。

  3. 新的结构化稀疏优化算法。研究者提出了 Half-Space Stochastic Projected Gradient(HSPG),这是一种解决引起正则化问题的结构化稀疏的方法。研究团队在实践中展示并分析了 HSPG 在促进 zero group 方面表现出的优势(相对于标准近端方法)。ZIG 和 HSPG 的设计是网络无关的,因此 OTO 对于很多应用来说都是通用的。

  4. 实验结果。利用本文中提出的方法,研究者可以从头、同时训练和压缩完整模型,无需为了提高推理速度和减少参数而进行微调。在 VGG for CIFAR10、ResNet50 for CIFAR10/ImageNet 和 Bert for SQuAD 等基准上,该方法都实现了 SOTA 结果。

方法及实验介绍

OTO 的结构非常简单。给定一个完整的模型,首先将可训练的参数划分为 ZIG 集,产生了一个结构化稀疏优化问题,通过一个新的随机优化器 (HSPG) 得出高度组稀疏的解。最后通过剪枝这些 zero group 得到一个压缩模型。

团队提出的 HSPG 随机优化算法是针对非光滑正则化问题而设计的,与经典算法相比,该算法在保持相似收敛性的同时,能够更有效地增强群体稀疏性搜索。

为了评估 OTO 在未经微调的 one-shot 训练和剪枝中的性能,研究者在 CNN 的基准压缩任务进行了实验,包括 CIFAR10 的 VGG16,CIFAR10 的 ResNet50 和  ImagetNet (ILSVRC2012),研究者比较了 OTO 与其当前各个 SOTA 算法在 Top-1 精度和 Top-5 精度、剩余的 FLOPs 和相应的 baseline 参数。

表 1:CIFAR10 中的 VGG16 及 VGG16-BN 模型表现。

在 CIFAR10 的 VGG16 实验中,OTO 将浮点数减少了 83.7%,将参数量减少了 97.5%,性能表现令人印象深刻。

在 CIFAR10 的 ResNet50 实验中,OTO 在没有量化的情况下优于 SOTA 神经网络压缩框架 AMC 和 ANNC,仅使用了 12.8% 的 FLOPs 和 8.8% 的参数。

表 2:CIFAR10 的 ResNet50 实验。

在 ResNet50 的 ImageNet 实验中,OTO 减少了 64.5% 的参数,实现了 65.5% 的浮点数减少,与 baseline 的 Top-1/5 精度相比只有 1.4%/0.8% 的差距 。

表 3:ResNet50 的 ImageNet。

总体而言,OTO 在所有的压缩基准实验中获得了 SOTA 结果,展现了模型的巨大潜力。研究者表示,未来的研究将关注合并量化和各种任务的应用上。


投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

记得备注呦

点击上面卡片,关注我呀,每天推送AI技术干货~

整理不易,还望给个在看!

【模型压缩】Only Train Once:微软、浙大等研究者提出剪枝框架OTO,无需微调即可获得轻量级架构...相关推荐

  1. Only Train Once:微软、浙大等研究者提出剪枝框架OTO,无需微调即可获得轻量级架构...

    来源:机器之心 来自微软.浙江大学等机构的研究者提出了一种 one-shot DNN 剪枝框架,无需微调即可从大型神经网络中得到轻量级架构,在保持模型高性能的同时还能显著降低所需算力. 大型神经网络学 ...

  2. Only Train Once!微软浙大提出剪枝新框架OTO:无需微调即可获得轻量级架构!

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 转载自:机器之心  |  作者:Hecate He 来自微软.浙江大学等机构的研究者提出了一种 one-sh ...

  3. 深度学习模型压缩与加速技术(三):低秩分解

    目录 总结 低秩分解 定义 特点 1.二元分解 2.多元分解 参考文献 深度学习模型的压缩和加速是指利用神经网络参数的冗余性和网络结构的冗余性精简模型,在不影响任务完成度的情况下,得到参数量更少.结构 ...

  4. 深度学习模型压缩方法(1)-----综述

    展开 1.研究背景 对模型预测精度无明显影响 压缩模型的参数数量.深度来降低模型空间复杂度 全连接层参数多,模型大小由全连接层主导 不显著提高训练时间复杂度,降低预测时间复杂度(计算量) 卷积层计算量 ...

  5. 【机器学习】模型压缩大杀器!详解高效模型设计的自动机器学习流水线

    作者丨科技猛兽 编辑丨极市平台 导读 本文首先对模型压缩进行了综述,论述目前深度学习存在的挑战,同时对三种高效自动机器流水线方法ProxyLessNAS.AMC和AMC进行了详细的介绍.最后探讨了如何 ...

  6. 模型转换、模型压缩、模型加速工具汇总

    点击上方"计算机视觉工坊",选择"星标" 干货第一时间送达 编辑丨机器学习AI算法工程 一.场景需求解读   在现实场景中,我们经常会遇到这样一个问题,即某篇论 ...

  7. 深度学习模型压缩技术概览

    背景介绍 目录 背景介绍 什么是模型压缩? 剪枝 非结构化剪枝 结构化剪枝 量化 低秩近似(Low-rank approximation) 知识蒸馏(Knowledge distillation) 神 ...

  8. 深度学习模型压缩与加速技术(二):参数量化

    目录 总结 参数量化 参数量化定义 参数量化特点 1.二值化 二值化权重 二值化权重与激活函数 2.三值化 3.聚类量化 4.混合位宽 手工固定 自主确定 训练技巧 参考文献 深度学习模型的压缩和加速 ...

  9. 深度学习模型压缩与加速

    深度神经网络在人工智能的应用中,包括语音识别.计算机视觉.自然语言处理等各方面,在取得巨大成功的同时,这些深度神经网络需要巨大的计算开销和内存开销,严重阻碍了资源受限下的使用.模型压缩是对已经训练好的 ...

  10. 深度学习模型压缩与加速技术(七):混合方式

    目录 总结 混合方式 定义 特点 1.组合参数剪枝和参数量化 2.组合参数剪枝和参数共享 3.组合参数量化和知识蒸馏 参考文献 深度学习模型的压缩和加速是指利用神经网络参数的冗余性和网络结构的冗余性精 ...

最新文章

  1. 人脑动态功能网络连接模式能够鉴别个体并预测其认知功能
  2. ZStack源码剖析之核心库鉴赏——FlowChain
  3. Erlang入门(二)—并发编程
  4. [问题解决] File /struts-tags not found
  5. python字符计数怎样去除空格_去除python中的字符串空格的简单方法
  6. 信息系统项目管理师论文考试汇总(2010~2021年)
  7. javaScript语法基础
  8. ubuntu 14.04 nginx php mysql_Ubuntu 14.04安装Nginx+PHP+MySQL
  9. android 点击,触摸事件
  10. python数字转换成中文大写_Python将阿拉伯数字转化为中文大写
  11. Nature子刊:大脑在局部区域的结构-功能耦合的遗传度与个体差异
  12. Android Studio入门到精通
  13. Elasticsearch系列——(1.2)倒排索引 的实现
  14. logo免费设计app有哪些?好用的logo设计app分享
  15. 在c语言中 不可表示的字符是什么,C 语言易错点综合
  16. 玩转iOS开发:iOS 10 新特性《Siri Kit Intents Extension UI》
  17. 什么是 ASP.NET?
  18. 你好,女神节有个给你的惊喜请查收
  19. Win32汇编:过程与宏调用
  20. Java大数据方向学习路径导航

热门文章

  1. async await 的用法
  2. [bzoj1031][JSOI2007]字符加密Cipher
  3. 《sqoop实现hdfs中的数据导出至mysql数据库》
  4. iOS:菜单控制器和菜单项:UIMenuController和UIMenuItem
  5. 你确信你了解时间吗?
  6. JSON Assertion(JSON断言)
  7. mysql transaction 实践小问题
  8. # 20162312 2017-2018 《程序设计与数据结构》第7周学习总结
  9. 你不得不知道的流程规范@多方配合的需求质量控制
  10. Failed to initialize storage module: user 的解决方式