论文提出二值化多任务密集预测器
Bi-MTDP
,通过二值神经网络(BNNs
)显著加速多任务密集预测模型,同时保持甚至提高模型性能。为了避免信息严重退化而导致二值化带来性能下降,论文引入了深度信息瓶颈层,在前向传播时强制要求下游任务表示满足高斯分布;此外,还引入知识蒸馏机制来纠正反向传播中信息流方向来源:晓飞的算法工程笔记 公众号
论文: Efficient Multitask Dense Predictor via Binarization
Introduction
在计算机视觉领域,有一个日益增长的趋势,即以多任务学习的方式处理密集预测任务,例如语义分割、单眼深度估计和人体解析。由于多任务模型中通过交叉连接结构进行信息补充机制的收益,一系列密集预测任务的整体性能得到了极大提升(见图1
)。然而,处理多个复杂像素级任务的当前最先进(SoTA
)多任务密集预测模型具有相当大的计算需求,这种高计算要求限制了它们在资源受限环境中(如自动驾驶、机器人技术和虚拟现实等领域)的应用。论文旨在优化这些庞大的SoTA
模型以适用于边缘设备,在速度和性能之间取得平衡。
已经不是研究探索神经网络压缩策略,包括剪枝、网络量化和知识蒸馏。值得注意的是,网络二值化作为一种量化形式,将权重和激活最小化为 ± 1 \pm 1 ±1 ,从而能够用二值神经网络(BNNs
)中更高效的XNOR-Bitcount
操作替代全精度网络中计算密集型的内积运算。理论上,二值化可以将存储成本降低32
倍,并将推断速度提高64
倍,使得BNNs
适用于边缘设备。
虽然二值神经网络(BNNs
)在图像分类方面取得了令人印象深刻的成果,几乎达到了全精度ResNet
级别的准确性,但其应用主要局限于小规模模型,无法用于其他计算密集型的计算机视觉任务。将BNNs
扩展到更大的模型应该是下一步的研究,但这种扩展受到过拟合和信息降级等问题的阻碍。在全精度模型中有效的技术,如标签平滑、dropout
和mixup
,在BNNs
上效果较差。此外,最先进的多任务密集预测任务通常需要深层复杂模型并配备多模态融合结构,加剧了有效实施二值化所面临的挑战。
在应用二值化进行多任务密集预测任务时,主要障碍是在深度模型中信息流的显著降级,导致性能下降。为了解决这个问题,论文提出了一个Binary Multitask Dense Predictor
(Bi-MTDP
)基线,通过二值化模块构建了一个多任务密集预测器。基于对这个基线的彻底评估,论文得出结论:二值化操作破坏了多任务模型中的信息流,因此与其全精度对应物相比,下游任务的表示不够丰富。为解决这一问题,论文通过两个方向上额外的信息流校准机制更新Bi-MTDP
- 在正向传播中实施变分信息瓶颈机制,使嵌入遵循具有稀疏性质的高斯分布以过滤掉与任务无关的因素。
- 在反向传播中利用现有全精度模型通过基于特征的知识蒸馏来校准二值网络梯度。
Bi-MTDP
的好处可以从两个正交的角度进行分析:
- 从网络二值化的角度来看,通过将二值化与多任务密集预测框架相结合,
Bi-MTDP
的成功证明了它可以有效地补充信息,从而提高了各个二值模型的性能。 - 从多任务密集预测任务的角度来看,加速这些繁琐的模型有利于在其中设计更有效和高效的交叉模块,如图
1
所示。由于现有的密集预测模型在建模交叉模块方面存在严重限制,因为它们过度依赖卷积操作,所以对于多任务密集预测来说,通过交叉机制学习涵盖多任务上下文各个范围的交互和推理是至关重要的。
Multitask Network Binarization
Binary Neural Network
首先,简要回顾二值神经网络(BNNs
)的一般思想,详细阐述二值化的加速机制和信息流退化问题。定义一个具有 K K K 个层的全精度(FP
)神经网络, f ( x ) = ( W K × σ × W K − 1 ⋯ σ × W 1 ) ( x ) f(\mathbf{x}) = (\mathbf{W}^{K}\times\sigma\times \mathbf{W}^{K-1} \cdots \sigma\times \mathbf{W}^{1})(\mathbf{x}) f(x)=(WK×σ×WK−1⋯σ×W1)(x) ,其中 x \mathbf{x} x 是输入样本, W k : R d k − 1 ⟼ R d k ( k = 1 , . . . , K ) \mathbf{W}^{k}:\mathbb{R}^{d_{k-1}} \longmapsto \mathbb{R}^{d_{k}}(k=1,...,K) Wk:Rdk−1⟼Rdk(k=1,...,K) 代表连接第 ( k − 1 ) (k-1) (k−1) 层和第 k k k 层的权重矩阵, d k − 1 d_{k-1} dk−1 和 d k d_{k} dk 分别表示第 k k k 层网络输入和输出的大小,函数 σ ( ⋅ ) \sigma(\cdot) σ(⋅) 对特征图执行逐元素激活。
BNNs
在前向操作和反向梯度逼近方面与FP
神经网络有所不同。具体而言,在前向传播过程中,BNN
保持FP
潜在权重 W F \mathbf{W}_F WF 用于梯度更新,第 k k k 个权重矩阵 W F k \mathbf{W}_F^k WFk 被二值化为 ± 1 \pm 1 ±1 ,通过二值化函数 sign ( ⋅ ) \textit{sign}(\cdot) sign(⋅) 得到二值权重矩阵 W B k \mathbf{W}_B^k WBk ,即 W B k = sign ( W F k ) \mathbf{W}_B^k = \textit{sign}(\mathbf{W}_F^k)