IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> GDP: Network Pruning -> 正文阅读

[人工智能]GDP: Network Pruning

GDP: Stabilized Neural Network Pruning via Gates with Differentiable Polarization

https://arxiv.org/abs/2109.02220icon-default.png?t=L9C2https://arxiv.org/abs/2109.02220

Background and Related work and Limitation

通道裁剪作为作为一种常用的神经网络压缩方法,目前受到广泛关注。目前的通道裁剪方法,文中将其主要归结为两大类:基于重要性(importance-based)的裁剪方法,和基于采样(sampling-based)的方法。

基于重要性的裁剪方法,主要通过找出预训练模型中重要性较低的通道进行裁剪,从而只造成最小的精度损失。关于如何定义重要性,催生出了很多的相关方法,利于基于权重大小,一/二阶信息,激活特征等,也有基于Lasso的稀疏训练相关方法。但这些稀疏训练方法,一般都很难获得严格的稀疏解,在裁剪norm较低的通道时会造成网络精度的降低,因而需要后续的finetune过程来恢复精度,甚至需要迭代的 “稀疏训练-裁剪-finetune" 操作来实现较高精度的裁剪。

基于采样的裁剪方法,主要使用Gambul-softmax来实现可微稀疏采样,或者利用STE,或Bernoulli distribution策略等进行采样。但是采样的方法一般都会造成网络训练的不稳定,因为采样方法要么存在较大随机性,要么因为确定性策略而容易收敛于局部最优。这些问题导致了子网络采样过程可能涉及较多的人工参数设定,不易操作。

Motivation

本文希望提出一种新的平滑可微的采样方法,能够解决以上问题。文中提出了一种可微极化门(GDP, Gates with Differentiable Polarization)的操作,能够简单地插入到卷积操作之前。该门的实现不像部分基于稀疏训练的方法一样,通过BN等参数来实现门的控制,而是直接对每一层的不同通道,添加了一个可训练的门函数,在训练过程中该门函数会向着 严格的0或者远离0的方向学习。从而在训练结束之后,简单地裁剪掉0门所对应的通道,而把非0的系数吸收到相应通道中,从而实现了从大网络向子网络的无损sample。如下图所示,以前的稀疏训练方式,希望通过训练将各通道的权值向0的方向发展,形成的数据分布在近0的区间有较大的占比,这中分布对于裁剪的超参有着很敏感的响应,而本文所提出的GDP,能够让分布向0和1的两极变化,从而能够实现无损的裁剪。

?

?

Method

首先,文中希望直接在每一层之前嵌入一个门函数,来控制各个通道的开闭状态,如下图所示。文中提出了很有意思的一个观点,就是只在常规卷积前使用门函数,而不对depth-wise卷积使用。文中认为depthwise卷积没有进行各个通道的信息融合,无法确定当前层看起来不重要的通道是否会在下一层中有较重要作用,因此保留其全部通道特征。

核心来介绍门函数GDP的函数结构,如下图所示。文中采用引入了结构参数a, 然后通过一个门函数g来控制各个通道。该函数有着一些非常好的特征,符合于目标的极性可微的目标。该门函数的值域在[0,1]之间,而在0和1之间的位置,数值梯度有利于参数向0和1进行更新。而在0.1处该函数梯度为0,数值稳定,因此该函数拥有非常好的极性特征。

此外,文中加入了资源限制搜索的约束,直接使用各层通道数及当前门函数的0范数来精确表示当前结构的计算量,整体优化目标如下所示。但由于0范数的不可微问题,将其松弛近似为1范数进行优化,并且通过实验也发现近端1范数的收敛更加稳定。具体的优化描述部分,有兴趣的可以直接参考论文。

?其中

Experiments

实验结果非常突出,文中对于Cifar,Imagenet,VOC等数据集及任务,在MobileNet v1/v2, ResNet等网络上进行了非常充分的实验,并且与大量的方法进行了结果对比,具体的参数不一一罗列,粘贴一张ImageNet-Res50的结果如下。GDP能够在裁剪接近50%FLOPs时保持77以上的精度,在裁剪80%时保持74%以上的精度,这都是非常惊人的结果。

此外,文中还通过其他一系列实验,讨论了GDP对于网络训练中门参数的极化,及网络sample前后一致性等问题。还通过消融实验研究了直接加入结构参数来实现门函数,比将其加入正则更加友好。同时讨论了使用GDP直接裁减训练一个scratch模型,能够更快地压缩更深,但是精度上有所降低。

Thoughts

总体来说,本文是一篇不错的文章。idea清晰,实验充沛,结果突出。小的瑕疵可能就是对于针对问题的描述其实有点含糊,针对性不是太强。严格来说,本文本质是采用一种可训练的sample方式,来解决了稀疏训练问题中各通道权值非严格解,阈值选取困难的问题。GDP函数的极性特征非常的抢眼。但是不知道对于训练的影响有多大,如果能够证明其实验稳定性的话,可能会是一种在离散采样问题中,代替Gambul-softmax的有效方式。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-18 17:24:05  更:2021-10-18 17:24:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 8:24:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码