Dynamic Slimmable Network [CVPR 2021]
论文:https://arxiv.org/abs/2103.13258
代码:这是一个指向GitHub存储仓库的链接{https://github.com/changlin31/DS-Net}
最近研究表明,在动态推理领域中,动态剪枝技术与相关网络架构共同展现出巨大的潜力。其中核心的技术机制在于根据输入数据的特征对卷积核进行智能修剪。然而这种离散化的处理方式,在实际硬件实现时往往会导致效率上的瓶颈。这使得理论分析与实际应用之间存在显著的性能差异。
因此作者提出了一种名为Dynamic Slimmable Network的新架构设计(Dynamic Slimmable Network),其主要目标是通过优化设计实现硬件效率的最大化,在推理过程中根据输入特征动态调整网络中卷积核的数量以适应不同的计算需求。同时该架构确保了所有卷积核在硬件存储时保持静态且连续分布从而有效降低了运行时的额外开销和资源消耗。

图一
如图所示, DS-Net主要由超级网络(Supernet)和若干动态门构成,其中超级网络负责实现系统的主要功能,而这些动态门则是一组具有预测功能的模块.在超级网络的不同阶段,这些动态门将根据当前状态将输入路由至不同宽度的子网中.
与现有的其他动态网络训练方法相比,传统的训练方法通常同时结合了Supernet与动态门进行协同优化.然而,该研究则提出了一种解耦化的双阶段优化策略.具体而言,本节将详细阐述这两个关键环节:
1. In-place Ensemble Bootstrapping.
在in-place distillation framework中,将最宽宽度的子网络作为目标网络,并由其生成软标签。然而,在某些情况下(如当最宽宽度子网络中的权重发生剧烈波动时),这可能导致收敛困难。因此研究者们提出了一种基于内在蒸馏机制构建超网的方法。

图二
注:在图2中,最大的网络宽度(L)对应于最优性能;最小化后的网络结构(S)提供了极简设计;若干不同宽度下的优化配置(R)则通过随机搜索获得。
在图2中展示了两种类型的网络安全架构:基于在线技术(Online-Technology)的设计与实现。其中利用模型的指数滑动平均(EMA)算法来定义和构建目标网络安全框架。该安全框架的核心功能之一在于生成可扩展的安全标签,并以动态的方式适应实时数据流的变化。该安全框架的核心功能之一在于生成可扩展的安全标签,并以动态的方式适应实时数据流的变化。以便于安全系统进行实时数据处理与学习。


和

分别代表在线网络和目标网络的权重,而

是控制历史参数比率的动量因子。
在训练过程中,在线学习方法下,在线阶段使用n个不同宽度(即宽度分布在指定区间内的均匀采样)的不同架构分别生成目标模型最宽层输出的概率分布。通过在训练过程中不断优化模型结构,在线阶段采用最精炼架构计算各候选模型输出特征集的概率均值。
公示如下:\hat{y} = \frac{1}{n}\sum_{i=1}^nf_i(x)


2. Sandwich Gate Sparsification
在第二阶段的训练过程中, 保持第一阶段超网络权重参数不变, 并对精简模块进行优化训练.
门函数如下:

如图所示,门函数的作用是将输入信号x依次经过池化层,并通过两层全连接网络处理后,在最后一步使用argmax操作将其转换为one-hot编码表示。

由于argmax不具备可微性特性,在机器学习模型的设计过程中遇到了瓶颈问题。为此研究者建议采用基于Gumbel的软最大值(G-SOFT)方法作为一种替代方案。然而,在优化该方法时会遇到一些挑战性的问题例如该方法可能会导致门函数被转换为静态形式即使在引入Gumbel噪声后仍存在这一问题。为了应对这一挑战研究者设计了一种名为稀疏化夹层的方法旨在解决这一难题
公式如下:

对于这个损失函数,我的理解是:
采用最小化架构处理样本x时:
若输出结果与预期目标匹配,则表明该样本可通过最小化架构进行推断,
其监督指示量T(X)=0(此处T(X)=0表示可由最小化架构实现);
反之,
若输出结果与预期目标不符,
则表明该样本无法通过最小化架构推断,
其监督指示量T(X)=L(此处L代表最大复杂度架构)。特别提示:
在损失函数中,
我们定义了两个基础指标:
即当前生成指标T(X)
以及
缩放因子相关参数,
其中当样本能够被最小化架构实现时,
缩放因子取值为1;
反之,
缩放因子取值为相应的最大复杂度值。
交叉熵损失中涉及的变量X并非直接作为输入使用,在这种情况下认为作者可能存在表述问题。实际上,在这里X应当被理解为由门函数F(x)生成的一一映射one-hot编码,并且这样才能保证后续能够通过交叉熵来计算损失值。否则就无法通过交叉熵来计算损失了。
