热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

相关论文总结

目录1.PruningFiltersforEfficientConvNets2.LearningStructuredSparsityinDeepNeuralNetworks3.Le

目录

  • 1. Pruning Filters for Efficient ConvNets
  • 2. Learning Structured Sparsity in Deep Neural Networks
  • 3. Learning Efficient Convolutional Networks through Network Slimming
  • 4. Channel Pruning for Accelerating Very Deep Neural Networks
  • 5. HRank:Filter Pruning using High-Rank Feature Map
  • 6. Channel Pruning via Automatic Structure Search
  • 7. DropNet: Reducing Neural Network Complexity via Iterative Pruning
  • 8. DMCP: Differentiable Markov Channel Pruning for Neural Networks
  • 9. Rethinking the Value of Network Pruning


1. Pruning Filters for Efficient ConvNets
题目Pruning Filters for Efficient ConvNets
作者与单位ICLR2016 美国马里兰大学 Hao Li
方法和要解决的问题过滤器剪枝(基于feater map通道的剪枝)
基于幅度的权重修剪减少了来自完全连接层的大量参数,并且由于修剪网络中的不规则稀疏性,可能不能充分降低卷积层中的计算成本。
idea1.对每层的滤波器进行取范数并对比大小,删除其排名靠后的滤波器。主要还考虑了对应特征映射上为0的位置,一并删去。
2.提出了敏感度的概念。即剪枝某层过滤器时对准确度影响小,就是敏感度小,可以参看:图a
3.也重点介绍了对于resnet网络的修剪,所要关注的点。
讨论这种结构化的剪枝方式,不引入不规则的稀疏性。为了简化修剪,使用了一次性的修剪在训练的策略。
结果1.VGG-16 34%加速
2.ResNet-110 38%加速
3.同时通过对网络进行再训练,可以恢复到接近原始精度的水平.
备注代码开源,已经阅读对vgg剪枝的代码

2. Learning Structured Sparsity in Deep Neural Networks
题目Learning Structured Sparsity in Deep Neural Networks
作者与单位NIPS2016 匹兹堡大学 Wei Wen
方法和要解决的问题神经网络学习参数冗余,学习更加稀疏的权值。
1.训练更加紧凑的模型,节省计算开销。
2.硬件友好的结构化稀疏,易于加速。
3.提供了正则化,有更好的泛化能力,提升精度。
idea1. 借鉴lasso group提出了一种正则化损失函数用于对卷积层,通道,过滤器趋于0。
讨论仅仅是一种L1正则化方法,让更多的权值为0,在移除实现模型的压缩。
结果这种方法可以在CPU/GPU上对AlexNet分别达到平均5.1和3,1倍的加速。在CIFAR10上训练ResNet,从20层减少到18层,并提高了精度
备注代码开源,caffe代码
1.得到的结构化稀疏矩阵用于加速,但是训练的引入的损失函数项目比较多,这个方法需要额外计算新引入的和所有filters有关的梯度项,这是一个问题。
2. 仅仅实验了LeNet and AlexNet.
3. 损失函数变化,需要从头训练,耗费时间。

论文详细介绍 在这里插入图片描述

3. Learning Efficient Convolutional Networks through Network Slimming
题目Learning Efficient Convolutional Networks through Network Slimming
作者与单位ICCV2017 清华大学
方法和要解决的问题模型压缩要解决的问题
1.减小模型的大小
2.减小运行时内存的时间
3.不影响精度的同时,提高计算的操作数。

目前存在的问题是:上篇论文提出的SSL方法缺点看备注。
ideaL=∑(x,y)l(f(x,W),y)+λ∑γ∈Γg(γ)L=\sum_{(x, y)} l(f(x, W), y)+\lambda \sum_{\gamma \in \Gamma} g(\gamma)L=(x,y)l(f(x,W),y)+λγΓg(γ)1.我们的方法是将L1正则化施加到BN层的缩放因子上,L1正则化推动BN层的缩放因子趋向于零,这使得我们能够鉴别出不重要的通道或者神经元,因为每一个缩放因子都和一个特定的CNN卷积通道(或者全连接层的一个神经元)相关联。
2.对跳跃连接也提出了方法
讨论这是结构化稀疏或者剪枝不需要特别的库来实现加速
结果该方法能够在不损失精度的情况下显著降低现有网络的计算代价(最高可达20倍)。更重要的是,该方法同时减少了模型规模、运行时内存和计算运算量,同时给训练过程带来了最小的开销,并且所得到的模型不需要专门的库/硬件来进行有效的推理。
备注代码开源,pytorch代码
代码好写,但是仅仅训练过程变得简单(损失函数变得不多),但是在精度上没有特别大的进步

论文详细介绍 在这里插入图片描述

4. Channel Pruning for Accelerating Very Deep Neural Networks
题目Channel Pruning for Accelerating Very Deep Neural Networks
作者与单位ICCV2017 旷视科技
方法和要解决的问题模型存在冗余
ideaarg⁡min⁡β,W12N∥Y−∑i=1cβiXiWi⊤∥F2subject to ∥β∥0≤c\begin{array}{l}\underset{\beta, W}{\arg \min } \frac{1}{2 N}\left\|Y-\sum_{i=1}^{c} \beta_{i} X_{i} W_{i}^{\top}\right\|_{F}^{2} \\\text {subject to }\|\beta\|_{0} \leq c\end{array}β,Wargmin2N1Yi=1cβiXiWiF2subject to β0c1. 提出了一种基于最小化特征重建误差的算法用于通道的裁制。
2. 作者对这种方法提出了两步迭代的优化算法
3. 对应用于多分支结构和和跳跃连接的也提出了额方法。
讨论该方法是逐层进行剪枝的,比较复杂,其中也有需要手工的感觉,而且训练阶段繁琐。
结果修剪过的vgg16实现了5倍的加速和只有0.3%的误差增加比起最先进的结果。更重要的是,该方法能够加快ResNet、Xception等现代网络的速度,在2倍的速度提升下,精度损失分别只有1.4%和1.0%,
备注代码开源,咖啡框架组会讲解

训练比较繁琐,而且是两步迭代,而且训练时间很长,需要微调 在这里插入图片描述

5. HRank:Filter Pruning using High-Rank Feature Map
题目HRank:Filter Pruning using High-Rank Feature Map
作者与单位CVPR2020 厦门大学
方法和要解决的问题总结了以往的剪枝主要分为两类
1. 通过判断属性的重要性
2. 通过适应性的属性
它们的区别是:第一种在训练之后进行剪枝,虽然时间的复杂度降低,但是也限制了加速比和压缩比。第二种方法需要将剪枝的要求嵌入到网络训练的损失,但是需要重新训练,比较花时间。
作者提出的了一种有效且高效的滤波器剪枝方法,该方法探索每一层特征图的高矩阵秩(HRank)。它是一种基于属性的修剪方法(第一种,不用重重新训练,简化了剪枝的复杂性)。
idea
min⁡δij∑i=1K∑j=1niδij(wji)∑t=1gRank⁡(oji(t,:,:))\min _{\delta_{i j}} \sum_{i=1}^{K} \sum_{j=1}^{n_{i}} \delta_{i j}\left(\mathbf{w}_{j}^{i}\right) \sum_{t=1}^{g} \mathbf{R} \operatorname{ank}\left(\mathbf{o}_{j}^{i}(t,:,:)\right)minδiji=1Kj=1niδij(wji)t=1gRank(oji(t,:,:))
s.t.∑j=1niδij=ni2s . t . \sum_{j=1}^{n_{i}} \delta_{i j}=n_{i 2}s.t.j=1niδij=ni2
1. 在大量统计验证的基础上,证明了单个滤波器生成的特征图的平均秩几乎没有变化。
2. 从数学上证明,具有较低秩特征图的过滤器信息量较小,因此对保持准确性不太重要,可以首先删除这些准确性。
3. 广泛的实验证明了HRank模型压缩和加速在各种最新技术状态下的效率和效果
讨论我感觉这一种方法是训练之后进行操作,可以进行实现,可以参考
结果文章在小数据集和大数据集上进行了实验,即CIFAR-10和ImageNet。研究了不同算法在主流CNN模型上的性能,包括VGGNet、GoogLeNet、ResNet和DenseNet。
例如:使用ResNet-110,通过删除59.2%的参数,我们实现了58.2%的FLOPS减少,而CIFAR-10的TOP-1准确率仅有0.14%的微小损失。使用ResNet-50,通过删除36.7%的参数,我们实现了43.8%的Flops减少,而ImageNet上的TOP1准确率仅损失了1.17%。
备注pytorch代码开源,可以下一步实验。

论文详细介绍
在这里插入图片描述

6. Channel Pruning via Automatic Structure Search
题目Channel Pruning via Automatic Structure Search
作者与单位IJCAI_2020 厦门大学 Mingbao Lin
方法和要解决的问题现有的剪枝方法大多侧重于通过重要性/最优化或基于经验规则设计的正则化来选择通道(滤波器),这是次优剪枝的缺陷。
ideaRethinking the value of network pruning. In ICLR, 2019论文表明,通道修剪的实质在于找到最优的修剪结构,即每层的通道数,而不是选择“重要”的通道。

为了解决深层网络中难以处理的巨大剪枝结构组合问题,首先提出将保留通道限制在特定空间内的组合缩小,从而大大减少剪枝结构的组合。然后,将最优剪枝结构的搜索问题转化为优化问题,并结合ABC算法进行自动求解,以减少人为干扰。ABCPruner已经被证明是更有效的,它还能够以端到端的方式高效地进行微调。
讨论这个方法不同于先前选择那些重要的通道,而是选择通道数目为优化目标,也是探究的方向
结果在CIFAR-10上进行的实验表明,ABCPruner减少了73.68%的FLOP和88.68%的参数,而VGGNet-16的准确度甚至提高了0.06%。在ILSVRC-2012上,它减少了62.87%的FLOP,并去除了60.01%的参数,而ResNet-152的准确度损失却微不足道。
备注pytorch代码开源,可以下一步实验。

论文详细介绍
在这里插入图片描述

7. DropNet: Reducing Neural Network Complexity via Iterative Pruning
题目DropNet: Reducing Neural Network Complexity via Iterative Pruning
作者与单位ICML_2020 新加坡
John Tan Chong
Min1Mehul Motani
方法和要解决的问题DropNet迭代地删除所有训练样本中具有最低平均postactivation value的节点/滤波器。
idea1.提出的DropNet,是一种带重新初始化权重的迭代节点/滤波器剪枝方法,它迭代地删除所有训练样本(无论是分层的还是全局的)激活后平均值最低的节点/滤波器,从而降低了网络复杂度。

2与几个基准指标相比,DropNet在广泛的场景中实现了有较好的鲁棒性。DropNet实现了与Oracle类似的性能,后者一次贪婪地删除一个节点/滤波器,以最大限度地减少训练损失。

3.DropNet不需要特殊的权重和偏差初始化(与(Frankle&Carbin,2018)不同)。在随后的实验中表明,剪枝模型的随机初始化将与原始初始化一样好。这意味着可以使用现成的机器学习库和硬件轻松部署DropNet删减的体系结构。
讨论作者提出的实验是探究性的,只是自身的对比,采用的网络也是较小的神经网络。但是是第一个提出以样本平均激活值进行剪枝的文章。
结果实验表明,高达90%的节点/滤波器可以被移除,而不会有任何明显的精度损失。即使在重新初始化权重和偏差的情况下,最终修剪后的网络也表现良好
备注tf2.0代码开源。

论文详细介绍

8. DMCP: Differentiable Markov Channel Pruning for Neural Networks
题目DMCP: Differentiable Markov Channel Pruning for Neural Networks
作者与单位CVPR_2020 旷视
Shaopeng Guo
方法和要解决的问题作者提出了一种新颖的通道剪枝方法,叫做Differentiable Markov Channel Pruning (DMCP),去有效搜索最优子结构。
idea方法是可微的,可以通过标准任务损失(交叉熵损失)和预算正则化(FLOPs和latcy限制)的梯度下降来直接优化。在DMCP中,将通道剪枝建模为马尔可夫过程,其中每个状态表示在剪枝过程中保留相应的通道,状态之间的转换表示剪枝过程。最后,能够通过优化转移概率后的马尔可夫过程隐式地选择每一层中合适的通道数目。为了验证该方法的有效性,作者使用ResNet和MobilenetV2在Imagenet上进行了大量的实验
讨论作者采用的是空间搜索的方法,利用马尔科夫过程使有效解的数量得到了下降,并构造出了预算条件下的损失函数并使其变得可微,采用梯度下降的方法求解。
结果实验结果表明,在不同的FLOPs设置下,该方法比最新的剪枝方法都能获得相当的改进。
备注代码开源tf1.x

论文详细介绍

在这里插入图片描述

9. Rethinking the Value of Network Pruning
题目Rethinking the Value of Network Pruning
作者与单位ICLR_2019 伯克利分校
刘壮
idea1.对于已经预定义网络结构(每层的通道数已知)的修剪,我们可以直接训练出一个小网络,所以这时候训练一个过参数化的大模型没有什么必要。
2.作者做了很多对比实验说明了从头训练(随机初始化)的网络(结构化得剪枝)可以获得与剪枝、微调这种方法相当的精度(甚至更好)。这阐明了一个结论,就是我们做剪枝是为了学习网络的结构(每一层的宽度),而不是“重要的”权重。
3.作者与The Lottery Ticket Hypothesis做了对比,发现在最优学习率下,Frankle&Carbin(2019年)使用的“中奖彩票”初始化并没有带来比随机初始化更好的效果。
讨论作者的实验打脸很多的结构化剪枝方法。可以把剪枝作为结构搜索。
备注代码开源

论文详细介绍

在这里插入图片描述

推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • IhaveconfiguredanactionforaremotenotificationwhenitarrivestomyiOsapp.Iwanttwodiff ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
author-avatar
駱宏艷_230
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有