非结构化剪枝算法的巧妙利用:非结构化掩码的后处理
Structure-LTH
论文标题:
Coarsening the Granularity: Towards Structurally Sparse Lottery Tickets
ICML 2022
https://proceedings.mlr.press/v162/chen22a/chen22a.pdf
https://github.com/VITA-Group/Structure-LTH
彩票假说(Lottery Ticket Hypothesis)及其变种已经有了很多研究,然而有一个问题仍然很有挑战性:由于获胜的彩票网络由 IMP 剪枝算法发现,剪枝后的子网络只有非结构化稀疏度。由于高度不规则的稀疏掩码对硬件加速非常不友好,非结构化剪枝一般是很难在实际上应用的,这使得彩票假说获得的稀疏模型难以运用到实际项目。另外如果直接将 IMP 中的非结构化剪枝替换为结构化剪枝,这回带来严重的性能下降。
1.2 方法
1.2.1 重新填充机制
核心步骤:
1. 根据选择的评价指标在非结构剪枝后的子网中寻找重要的通道;
2. 重要的元素重新生长(Regrow),具体数值选择为随机初始化或类似彩票假说选择早期未剪枝前对应位置的权重数值;
3. 剩下在不重要的通道的元素会被移除。
评估指标多样,可以是通道内剩下权重数量,通道内权重统计特征,特征统计特征或显著性分数。
这里给出了另一个较弱的版本,Refilling+,对清楚所有剩余通道元素做出补偿。具体方法是重新激活额外的一部分通道用于减缓网络容量下降速度。
重新分组机制主要目标即在未剪枝的元素中寻找密集块(dense block)。与原始的稀疏矩阵比较,密集块尺度小得多。
具体方法是:寻找相似的行和列,将他们聚在一起。这里使用 Jaccard 相似度计算非零元素所在行的相似度。比如 kernel 1,kernel 2 在八个非零列中有三个相同的,则他们的相似度为 3/8。
这里使用超图划分算法生成密集块。这里将每一行作为超图的一个节点,每一列作为超图一条边。这里的超图划分使用 hMETIS(http://glaros.dtc.umn.edu/gkhome/metis/hmetis/overview)算法。划分后将缺失的元素重新填充,剩余不包括在密集块的元素将被置 0。
1.3 实验
本文方法在 Tiny-ImageNet 和 ImageNet 数据集和 ResNet 模型上的实验结果。在 Tiny-ImageNet 上获得的结果:
1. 结构化获胜彩票网络有 IMP-Refill 和 IMP-Regroup 算法获得 60% 的结构化通道稀疏度和 74% 的组稀疏度,该结果验证了本文方法的有效性;
2. 从相同的非结构化子网出发,在高稀疏度条件下(>50%),IMP-Refill+超过了 IMP-Refill。然而在大部分稀疏度条件下,IMP-Refill 超过了 IMP-Refill+性能。可能的一个解释是 IMP-Refill+带入了不希望的通道;
3. IMP-Regroup 在高稀疏度条件下获得了表现较好;
4. 极端的通道(45%-50%)/组稀疏度(74%)条件下,取得了 57.53% ∼ 61.79% / 64.84% 的 GPU 推断时间减少。
ImageNet 数据集上结果:
1. Refill 和 Refill+策略几乎没有差别,且不能找到通道级别的获胜彩票子网。
CIFAR 数据集上结果:
1. 在 (WRN-32-2,C10), (WRN-32-2,C100), (MBNet-v1,C10), (MBNet-v1,C100), (VGG-16,C10), (VGG-16,C100), (RN-18,C10), (RN-18,C100) 的数据集和深度模型组合上分别在 {53%, 28%, 67%, 0%, 60%, 40%, 50%, 0%} 的通道稀疏度与 {66%, 36%, 72%, 56%, 80%, 80%, 78%, 78%} 的组稀疏度上获得了获胜彩票子网;
Shuffled Block Sparse Training
论文标题:
Exposing and Exploiting Fine-Grained Block Structures for Fast and Accurate Sparse Training
NeurIPS 2022
https://openreview.net/pdf?id=sFapsu4hYo
https://github.com/HPC-Research-Lab/shuffled-block-sparse-training
2.1 简介
目前的稀疏学习一般可以分为静态方法与动态方法。动态稀疏学习只需要随机初始化的参数,经过少量训练周期后,丢弃一部分不重要的元素并激活一部分新参数。通过探索更大的参数组合,动态稀疏学习一般可以比静态方法取得更高的性能。
本文是一种基于动态稀疏学习的网络剪枝算法。之前动态稀疏学习算法关注于非结构化剪枝任务,剪枝后的参数分散且没有结构化约束。尽管非结构化剪枝一般可以在较少的参数条件下获得更高的精度,然而难以获得硬件上的加速。
2.2 相关论文
动态稀疏学习:包含两个主要操作:丢弃和再生(drop, grow)。丢弃即舍弃模型中一些权重,再生即重新加回一些权重。稀疏学习算法一般在丢弃和再生阶段使用不同的权重重要性评价指标。
RigL(Rigging the lottery: Making all tickets winners)丢弃较小幅度值的权重,再生阶段选择较大梯度的权重。Top-kast(Top-kast: Top-k always sparse training.)选择一部分一直激活的权重,根据幅度值选择丢弃和再生的权重。
2.3 方法
ResNet50 和 ResNet18 模型与不同剪枝策略在 ImageNet 数据集上的实验结果:
图 7 给出了 WideResNet, ResNet 和 VGG 与不同剪枝策略在 CIFAR10 数据集上的性能。可以看出本文方法 DSB 在 50% 和 60% 稀疏度条件下也能恢复原始模型精度。类似算法 SSLT 有明显精度下降。图 8 给出了在 CIFAR100 数据集上的性能。类似地,本文方法 DSB 也在 50% 和 60% 稀疏度条件下恢复了原始模型地精度。另外精度差异也随着稀疏度增大明显增大。
总结
本文关注于两篇近期提出的将非结构化掩码转为结构化掩码的算法。
第一篇关注于通道剪枝与组剪枝。通过重新填充算法得到通道级别稀疏度,即根据评价指标选择重要的通道,用之前学习的权重数值填充相应位置的权重,移除剩下权重。通过重新分组算法得到组级别稀疏度,核心思想是计算行列相似度,并聚集相似的行,具体使用超图划分算法生成密集快。
第二篇关注于细粒度块剪枝。通过改进现有的动态剪枝算法,通过与第一篇类似的权重分块步骤保留幅度值较大的元素,通过块感知丢弃和重生策略确定最终掩码。
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:[email protected]
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
微信扫码关注该文公众号作者