Layer-Wise Data-Free CNN Compression

我们的无数据网络压缩方法从一个训练好的网络开始,创建一个具有相同体系结构的压缩网络。这种方法在概念上类似于知识蒸馏[23],即使用预先训练好的“教师”网络来训练“学生”网络。但是知识蒸馏需要训练数据。以前的方法都是通过生成数据来解决这个问题,比如Adversarial Knowledge Distillation(AKD)[6]和Deep Inversion(DI)[51]。然而,这些方法的计算成本很高。

图1。我们的方法概述。我们首先在教师和学生身上进行BatchNorm fusion和Assumption-Free Cross-Layer Equalization(AFCLE,第3.2节)。然后,我们分别训练学生的每一层。我们使用前一层(第3.1节)的BatchNorm统计数据生成数据,然后使用这些数据优化压缩的学生网络以匹配教师。

我们采用图1所示的更简单的方法。我们将学生的每一层视为教师中相应层的压缩近似值。只要每一层的近似值是准确的,整体的学生网络就会产生与教师类似的输出。这个这种方法的计算效率远高于其他生成方法,因为我们的方法不需要训练输入图像,就可以在网络的每一层产生良好的训练信号。

图2。MobileNetV1分析了我们的方法和对抗性知识提取(AKD)的前传次数和训练精度[6]。深度反演[51](未显示)比AKD需要更多的FLOPs ,而且精度较低。

相反,我们为每个层分别生成输入,这不需要生成真实的图像。我们的方法比AKD[6]少14倍的触发器,比DI[51]少450倍的FLOPs (图2),只经过几百次迭代就收敛了。

我们的第一个挑战在于生成用于训练教师层的压缩近似值的数据。我们的第二个挑战在于对网络进行预处理以实现更有效的压缩。我们将在以下小节中讨论这些问题。

3.1. LayerWise Data Generation

我们描述了layer-wise网络输入的方法。我们假设网络由包含卷积的块组成,然后是BatchNorm[25],然后是激活。让 Bi\mathcal B_iBi​代表与索引i块相关联的BatchNorm层。Bi\mathcal B_iBi​的均值和标准差为μBi,σBi\mu_{\mathcal B_i},\sigma_{\mathcal B_i}μBi​​,σBi​​,然后应用权值为γBi\gamma_{\mathcal B_i}γBi​​和bias为βBi\beta_{\mathcal B_i}βBi​​的的通道仿射变换。因此,我们知道BatchNorm的输出通道的标准偏差是γBi\gamma_{\mathcal B_i}γBi​​,均值为βBi\beta_{\mathcal B_i}βBi​​。

我们利用这些信息生成layer-wise输入。设Ci\mathcal C_iCi​表示网络块i中的卷积层,fif_ifi​表示块i中的激活。另外,h(⋅)h(\cdot)h(⋅)代表h层对应输入的输出。考虑块i从由集合K索引的块中接受多个输入张量的情况。让xBi−1x_{\mathcal B_{i-1}}xBi−1​​代表用真实数据训练的训练batch中BatchNorm层 Bi−1\mathcal B_{i-1}Bi−1​的输入。假设这些tensors由加法函数组合而成(如残差网络[22]),卷积Ci的输入xCi为

加法外的其他组合函数也如此。

在没有数据的训练中,我们无法访问xBi−1x_{\mathcal B_{i-1}}xBi−1​​,所以我们估计它。用Gci(⋅)\mathcal G_{c_i}(\cdot)Gci​​(⋅)代表用于生成训练Ci\mathcal C_iCi​层输入的函数,利用我们上面关于BatchNorm层的输出统计的观察,我们估计

其中N(μ,σ)\mathcal N(\mu,\sigma)N(μ,σ)代表高斯分布。在第一个卷积层的情况下,我们从N(0,1)\mathcal N(0,1)N(0,1)生成数据。我们忽略了其他层(如平均池)对统计数据的影响。

我们在第3.3节和第3.4节中描述了如何使用生成的数据来计算学生网络的层。但首先,我们描述了我们的方法的另一个组成部分,该方法旨在对网络进行预处理以改进最终结果。

3.2. AssumptionFree CrossLayer Equalization

我们描述了均衡(equalizing)网络层的方法。为了便于描述,W∈Rco,ciW\in \mathbb R^{c_o,c_i}W∈Rco​,ci​代表一个具有coc_oco​输出维度和cic_ici​输入维度的矩阵。

我们的方法将无数据网络压缩问题分解为压缩单个层的子问题。有两个问题使从压缩后的单个层组装压缩网络的问题变得复杂。

第一个问题是关于BN层,BN层具有参数μ,σ,γ,β\mu,\sigma,\gamma,\betaμ,σ,γ,β。给定一个偏置为b的线性层W,线性层的输出,后跟BatchNorm

⨀\bigodot⨀代表elementwise multiplication。如果W的某一行c乘以比例因子α\alphaα,如果b和μ\muμ的第c个元素乘以α\alphaα,如果γ\gammaγ的第c个元素乘以标量因子1/α1/\alpha1/α,则函数f(x)保持不变。因此,W的权重的相对重要性取决于BatchNorm参数的值。在修剪或量化W时,这是有问题的,因为我们希望权重值的大小能反映其重要性。BatchNorm层内隐藏的比例因子可以防止这种情况的发生。为了解决这个问题,我们融合BN层的参数μ,σ,γ,β\mu,\sigma,\gamma,\betaμ,σ,γ,β到之前的线性层。以使BatchNorm参数对权重大小的有效影响得到考虑。一旦这种融合发生,BatchNorm可以被忽略。公式3中使用的BatchNorm统计量必须在该融合步骤之前收集。它们将保持有效,因为BatchNorm参数的变化会被W和b的变化所补偿。

将无数据网络压缩分解为layer-wise压缩子问题的第二个复杂性是,各层的权重相对大小可能不一致。考虑一对具有权重W1W_1W1​和W2W_2W2​以及偏置b1b_1b1​和b2b_2b2​的线性层的输出。假设网络使用ReLU激活[1],这样层对的输出是

如果W2W_2W2​的第c行乘上一个缩放因子α\alphaα,且如果b2b_2b2​对应的第c个元素乘上α\alphaα,且W1W_1W1​相对应的列乘上1/α1/\alpha1/α,输出f(x)f(x)f(x)保持不变。换句话说,层间权重的相对重要性在先验上是不一致的。有相似重要性的权重需要在整个网络中具有相似的值,否则一些层将被修剪得太重,而一些层将被修剪得不够。不一致也会导致次优的量化范围,如[38]所述。

为了解决这种缩放不一致的问题,我们采用了一种方法,我们称之为Assumption-Free Cross-Layer Equalization(AFCLE),它是DFQ[38]中描述的Cross-Layer Equalization方法的扩展。对于每一个权重为Wj∈Rco×ciW_j\in\mathbb R^{c_o\times c_i}Wj​∈Rco​×ci​,偏置为bj∈Rcob_j\in\mathbb R^{c_o}bj​∈Rco​的线性层Lj\mathcal L_jLj​,我们把一对向量vji∈Rcj,vjo∈Rcov_j^i\in\mathbf R^{c_j},v_j^o\in\mathbf R^{c_o}vji​∈Rcj​,vjo​∈Rco​联系起来。(扩展到卷积层是同样的)这些向量将在AFCLE中使用,之后将保持固定。我们计算线性层的输出为

在AFCLE之前,vjiandvjov_j^i\ and\ v_j^ovji​ and vjo​的所有元素初始化为1。设W2W_2W2​的第c行W2cW^c_2W2c​,和W1W_1W1​对应的列W1cW_1^cW1c​。我们计算比例因子scs_csc​,并将网络更新为

Deep Neural Networks are Easily Fooled High Confidence Predictions for Unrecognizable Images相关推荐

  1. Deep Neural Networks are Easily Fooled: High Confidence Predictions for Unrecognizable Images

    论文原文:Deep Neural Networks are Easily Fooled: High Confidence Predictions for Unrecognizable Images  ...

  2. [论文阅读笔记]Deep Neural Networks are Easily Fooled:High Confidence Predictions for Unrecognizable Images

    Deep Neural Networks are Easily Fooled:High Confidence Predictions for Unrecognizable Images(CVPR201 ...

  3. 论文-Deep Neural Networks are Easily Fooled: High Confidence Predictions for Unrecognizable Images

    Deep Neural Networks are Easily Fooled: High Confidence Predictions for Unrecognizable Images Deep N ...

  4. Deep Neural Networks are Easily Fooled:High Confidence Predictions for Unrecognizable Images

    在卷积神经网络如日中天的现在,重要会议上的论文自然成了广大学者研究的对象.苦苦寻觅,然而并不能搜到"大家们"对论文的见解.痛定思痛,决定对自己看过的论文写点小感.只是个人看法,如有 ...

  5. [转载]Deep Neural Networks are Easily Fooled: High Confidence Predictions for Unrecognizable Images

    论文内容总结 首次提出假反例攻击,即:生成人类无法识别的图片,却能够让神经网络以高置信度分类成某个类别 使用了多种不同的方法生成图片,称为"fooling images" 普通的E ...

  6. [论文笔记]Deep Neural Networks are Easily Fooled: High Confidence Predictions for Unrecognizable Images

    作者:Anh Nguyen, Jason Yosinski, Jeff Clune 链接:https://arxiv.org/pdf/1412.1897.pdf 摘要: 本文的工作基于Christia ...

  7. [深度学习论文笔记][Adversarial Examples] Deep Neural Networks are Easily Fooled: High Confidence Predictions

    Nguyen, Anh, Jason Yosinski, and Jeff Clune. "Deep neural networks are easily fooled: High conf ...

  8. 对抗样本论文学习:Deep Neural Networks are Easily Fooled

    近日看了一些对抗样本(adversarial examples)方面的论文,在这里对这些论文进行一下整理和总结. 以下仅代表个人理解,本人能力有限难免有错,还请大家给予纠正,不胜感激.欢迎一起讨论进步 ...

  9. 2.Deep Neural Networks are Easily Fooled

    DNN识别图片,已经可以达到和人类相近的水平,但改变一小部分,它也会以一种很高的自信度来产生人类无法识别的图像.本文使用了三种算法,前两种都是进化算法(EA)衍生的,一个是每一个像素点随机生成值,另一 ...

最新文章

  1. 2-Tenor AF AFT400-实战-Lync Server 2010-集成-2012-01-19
  2. C#操作快捷方式(获取快捷方式属性、创建快捷方式)
  3. SCOI2020游记
  4. MVC 中Simditor上传本地图片
  5. C# 大数组赋值给小数组,小数组赋值给大数组
  6. 黑客高手是这样上网的!Vimer是如何用快捷键浏览网页的?
  7. 小米 10 年再创业,高端 5G 手机和 AIoT 有多少机会?
  8. 很久很久之前的一道面试题(老师的生日是那一天?)~
  9. Caffe官方例程之 特征可视化python代码 (filter visualization notebook)
  10. node-red 可视化_可视化与注意-第1部分
  11. 传感器原理与应用复习—电阻式应变传感器部分
  12. win10系统打开/解压缩文件时出现文件名乱码
  13. 一个简单的矩阵乘法计算器
  14. js 56个民族 数据
  15. J-link 报错解决方法
  16. 【聚沙成塔】Linux环境下NodeJs升级
  17. 【加密算法】3DES加密算法
  18. MyEclipse10 激活
  19. Java~List-son
  20. Java大数据培训学校全套教程-AJAX(27)-马克-专题视频课程

热门文章

  1. Redis(十一) -- Redis数据结构(八) -- Geo
  2. Mac 配置 docker 基本操作
  3. 学计算机西电和中南,放弃中南大学等985高校,去南航、西电的强势专业到底值不值得呢?...
  4. 天池案例-贷款违约预测(lgb)
  5. 学习C++复合数据类型
  6. 逆向工程实验——lab8(C/C++反逆向、Java字节码反逆向)
  7. Jetson Nano 从入门到实战(案例:Opencv配置、人脸检测、二维码检测)
  8. Oracle数据库练习2
  9. vue集成svg-sprite-loader
  10. 苹果xsmax怎么开机_苹果XSMAX进水不开机苹果售后维修