论文笔记 Dynamic Network Pruning with Interpretable Layerwise Channel Selection

Dynamic Network Pruning with Interpretable Layerwise Channel Selection


0. Abstract

  • 本文提出了一种动态网络剪枝的算法框架,可以根据输入的不同动态地确定剪枝所用到的mask,并且体现了剪枝过程的可解释性。
  • 两大contribution:
    1. 将决策的路径"可视化",剪枝过程更具有可解释性
    2. 提出了adversarial example detection算法。可以根据不同的决策路径来判断normal/adversarial example。

1. Introduction

  • 静态剪枝技术:对预先训练好的模型剪去多余的参数或结构。
  • 动态剪枝技术:保留完整的网络结构,加入计算单元,根据运行时不同的输入使用不同的mask,以完成前向传播过程。
  • 本文方法的核心思想:每一个卷积层都对应一个计算单元,这个计算单元存储m个masks,针对不同的input,得到对这m个masks的概率,取概率最大的mask用于通道剪枝。注意:根据上文来看,需要用到argmax函数,但是argmax本身是不可微的,因此作者采用 连续松弛技术(continuous relaxation technique) 解决该问题,后文会提到。简单来说就是不单纯取概率最大的mask,而是所有mask都使用,但是系数不同。

1.1 算法的一些特点

  • 每一层的计算单元根据不同的input会做出不同的决策路径,这与输入的语义信息有较大关系。可以根据决策路径的明显差异判断normal/adversarial examples。
    adversarial detection可以用于检测攻击。

2. Methodology

2.1 整体训练目标

算法整体框架如下:
在这里插入图片描述

解释:第l个卷积层以xl−1\textbf{x}_{l-1}xl1为输入,输出xl。xl−1\textbf{x}_{l}。\textbf{x}_{l-1}xlxl1首先进入决策单元。决策单元分为两部分:Action Head和Channel Selection Masks。Channel Selection Masks 当中有m个masks。首先xl−1\textbf{x}_{l-1}xl1经过Action Head输出对这m个masks的概率分布,取概率最大的mask,即G[i]G[i]G[i],作用于卷积层,只激活权值非零的卷积核。经过mask激活后的卷积层对xl−1\textbf{x}_{l-1}xl1做卷积操作得到xl\textbf{x}_{l}xl,然后xl\textbf{x}_{l}xl再与G[i]G[i]G[i]相乘得到最终输出。

Cl−1C_{l-1}Cl1代表第l-1层输出的通道数

整体的目标函数如下
在这里插入图片描述

假设CNN一共有L层,Θ\ThetaΘ为全部卷积层的参数,Φ\PhiΦ为L个卷积层的Action Heads与对应的Masks{Gl}L\{G_l\}_L{Gl}L的全部参数。Lent\mathcal{L}entLent为交叉熵损失,fΘ(Xk)f_\Theta(\textbf{X}_k)fΘ(Xk)表示第k个卷积层(应用了剪枝后)的输出,yky_kyk为标签。{Gl}\{G_l\}{Gl}是第l层的mask,Ω\OmegaΩ是正则化项,用于保证mask的稀疏性。γ\gammaγ为平衡因子。

2.2 决策单元

还是假设CNN有L层,xl∈RN×Co×Ho×Wo,xl−1∈RN×Ci×Hi×Wi\textbf{x}_l \in \mathbb{R}^{N \times C_o \times H_o \times W_o},\textbf{x}_{l-1} \in \mathbb{R}^{N \times C_i \times H_i \times W_i}xlRN×Co×Ho×Woxl1RN×Ci×Hi×WiNNNbatch_size\textrm{batch\_size}batch_size,kkk为卷积核尺寸,CCC为通道数,下标i,oi,oio代表输入输出,θl\theta_lθl代表第lll个卷积层的参数,conv为卷积操作。
在这里插入图片描述

每一个卷积层都有一个决策单元π(⋅)\pi(·)π()
在这里插入图片描述

其中ϕ\phiϕ为决策单元的参数,G={gi∈RCl∣i=1,2,...,m},G=\{g_i \in \mathbb{R}^{C_l} | i = 1,2,...,m\},G={giRCli=1,2,...,m}为该决策单元中masks的集合。每个gig_igi包含ClC_lCl个值,对应每个输出通道的权重。
A(⋅)\mathcal{A}(·)A()为Action Head,输出m个通道的概率p∈Rm,p=[p1,p2,...,pm]p \in \mathbb{R}^m,p=[p_1,p_2,...,p_m]pRmp=[p1,p2,...,pm],用于判断选择哪一个mask。
最终第l个卷积层输出公式如下
在这里插入图片描述

*代表按每个通道做乘法。对于A(⋅)\mathcal{A}(·)A()可以根据如下方式实现:
在这里插入图片描述

2.3 解决Action Head不可微的问题

由于argmaxargmaxargmax不可微,使用连续松弛技术,对Index重参数化(这里Index\textrm{Index}Index就是概率最大的mask的索引)。
在这里插入图片描述

其中GiG_iGi为服从Gumbel分布的随机变量,pip_ipi代表对第i个mask的概率,t\mathcal{t}t 可以理解为温度。
针对每一个mask计算对应的III,得到I=[I1,I2,...,Im]I=[I_1,I_2,...,I_m]I=[I1,I2,...,Im],最终xl\textbf{x}_lxl为:

xl=∑i=1mIigixl \textbf{x}_l = \sum\limits_{i=1}^m I_i g_i x_{l} xl=i=1mIigixl

2.4 Mask权重的学习(正则项的计算)

对正则项求解:
在这里插入图片描述

这里采用了L1正则化,其中GiG_iGi应该对应每一层所使用的mask,CiC_iCi为对应的输出通道数,r\mathcal{r}r为压缩比。


问题:


词语释义

adversarial 对立的,敌对的
on the fly 在运行中
perturbation 扰动
scheme 方案,计划
agent 实施者
data manifold 数据流形
formulation 阐述


符号释义

参考链接:

https://www.cnblogs.com/chenbong/p/13472036.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值