超越 SOTA BNNs:BiDense在密集预测任务中的性能突破 !

向量数据库大模型机器学习

点击下方卡片,关注 「AI视界引擎」 公众号

( 添加时备注:方向+学校/公司+昵称/姓名 )

picture.image

picture.image

密集预测是计算机视觉中的一个关键任务。然而,以往的方法通常需要大量的计算资源,这限制了它们在实际应用中的使用。

在本文中,作者提出了BiDense,一种通用的二进制神经网络(BNN),旨在实现高效、准确的密集预测任务。

BiDense融合了两个关键技术:分布适应二进制化器(DAB)和通道适应全精度绕过(CFB)。DAB能够自适应地计算二进制化阈值和缩放因子,有效地保留更多信息在BNN中。

同时,CFB便于二进制卷积层在经历各种通道大小变换时实现全精度绕过,从而增强实值信号的传播并最小化信息损失。

通过利用这些技术,BiDense在BNN中保留了更多的实值信息,从而实现更准确、更详细的密集预测。

大量实验表明,作者的框架在降低内存使用和计算成本的同时,实现了与全精度模型相当的表现水平。

项目代码:https://github.com/frickyinn/BiDense

1 Introduction

密集预测涉及对图像中每个像素的目标结果进行估计,包括分类任务(如语义分割)、回归任务(如单目深度估计)等。传统上,用于密集预测的神经网络遵循UNet类似的架构[46],包括编码器和解码器。现有方法使用卷积神经网络(CNNs)或 Transformer ,采用更多的参数和计算操作,以实现更准确和详细的估计。然而,日益增长的计算资源需求对实际应用产生了重大障碍,尤其是在资源受限的边缘设备上。

为了压缩和加速神经网络,已经提出了许多方法。在这些方法中,模型量化[9, 23]脱颖而出,因为它能将网络的权重和激活值压缩成低位表示。作为最极端的形式,模型二进制化将所有变量限制为二进制值,从而导致二进制神经网络(BNNs)。通过使用1位表示,BNNs在内存压缩比上达到32倍,在计算上达到58倍,与全精度32位网络相比。尽管模型二进制化可以带来巨大的节省资源,但通常会导致严重的性能降低。由于实值变量被二进制化,BNNs失去了全精度信息,导致准确率下降。为了缓解这个问题,已经提出了各种方法[3, 19, 30, 34, 44, 52]在二进制化过程中保留实值信息。这些方法在训练阶段引入了有限数量的全精度可学习参数,以将二进制变量与实值信息相结合。然而,由于参数在训练阶段后是固定的,它们只能在训练集中实现最优解。因此,在面临未见过的案例或波动的异常输入时,它们可能表现出劣性能。

尽管一些BNNs [68, 69]侧重于资源密集型稠密预测任务,它们主要针对语义分割和增强表示能力。然而,对于通用的像素级估计,关键挑战在于最小化信息损失,并有效地将细粒度特征集成到BNN中,以产生更详细和准确的结果。以前的工作[3]提出了专门的二进制卷积层,允许在输入和输出通道不匹配时进行全精度跳过,传播实值细粒度信号。然而,只有在通道大小减半或翻倍时才适用,在许多其他情况下无效。因此,有必要开发通用技术,以实现所有通道转换中的实值跳过,从而最小化信息损失。

为了应对上述挑战,作者提出了一种通用 Dense 预测任务(BiDense)的 Binarization 框架。BiDense 包括两种技术:

分布适应二进制化器(DAB) 和 通道适应全精度绕路(CFB)。DAB 利用全精度输入的平均值和平均绝对偏差(MAD)动态确定二进制化阈值和缩放因子,这捕获了实值变量的分布信息,使其能够适应未见过的案例并保留更多的信息。同时,CFB 引入了最小操作来构建各种通道大小变换的全精度绕路,从而在二进制密集预测网络中最小化实值信息损失。通过集成这两种技术,BiDense 优于所有先前的 BNNs,并在密集预测任务的语义分割和单目深度估计中,接近全精度方法的性能,同时参数和操作增加的最小化。

作者的贡献可以总结如下:

  1. 作者提出BiDense,这是一个通用的二值化框架,用于高效的密集预测。据作者所知,这是首次将二值化应用于单目深度估计任务的工作。
  2. 作者提出了分布自适应二值化器(DAB),它根据实值变量输入的分布自适应地二值化激活,同时保留全精度信息。
  3. 作者提出了自适应全精度旁路(CFB),在卷积神经网络(CNNs)中实现各种通道大小的变换,从而最小化实值信息损失。
  4. 作者在语义分割和单目深度估计的密集预测任务中评估了BiDense,并表明作者的框架在降低计算资源的同时,实现了与全精度网络相当的表现,超越了当前最先进的BNNs。

2 Related Work

Dense Prediction

密集预测任务涉及图像像素级的估计,包括语义分割,单目深度估计,关键点检测等。为密集预测设计的神经网络通常由编码器和解码器组成。编码器将图像下采样以提取高层语义信息,而解码器则将特征上采样并集成细粒度细节以进行最终预测。全卷积方法采用已建立的卷积神经网络模型作为 Backbone 网络。相比之下,最近的一些框架已经开始利用先进的基于注意力的模型作为编码器,以进一步提高准确性。

虽然这些方法已经导致了越来越令人满意的性能,但它们通常需要大量的计算资源来进行精确估计,这对移动设备来说可能具有挑战性。作为一种补救措施,作者提出了一种模型二进制化方法,以减少密集预测任务中的内存和计算成本,同时尽可能保持准确性。

Binary Neural Networks

作为模型量化的最极端形式,模型二进制化要求神经网络将权重和激活值约束为+1或-1[9, 23]。这种方法用位运算代替浮点运算,用1比特参数代替全精度参数,从而显著加速推理并减少内存使用。然而,二进制化过程会消除全精度信息,导致准确率大幅度下降。为了解决这个问题,已有几种方法提出,在二进制化过程中保留更多的实值信息,从而提高BNNs的性能。

例如,ReActNet[30]使用学习到的参数对激活值进行平移,以实现更好的二进制化分布;BiT[34]为二进制变量引入缩放因子;

BiSRNet[3]使用可学习的线性函数重新分配激活值。虽然这些方法已经显示出改进,但它们并不适应未见过的输入分布,这可能导致性能不佳。此外,尽管之前的BNNs在低级视觉任务[3, 26, 56, 64]和简单的较高级任务如图像分类和目标检测上表现出色,但只有少数研究关注了更耗资源的密集预测。因此,作者提出BiDense,以促进密集预测BNNs的实值信息的适应性保留,从而提高密集预测BNNs的准确性和泛化能力。

3 Methods

在本节中,作者首先简要概述了之前的一些二进制化方法。在现有方法的基础上,作者接着引入了BiDense,这是一种用于密集预测任务的二进制神经网络。

BiDense 结合了两种技术:分布自适应二进制化器(DAB)和通道自适应全精度旁路(CFB),它们旨在自适应地促进实值、细粒度信息的保留和传播,从而提高密集预测任务的表现。最后,作者将详细阐述实现细节。BiDense 架构的概述如图2 所示。

picture.image### Preliminaries

BNNs需要将权重和激活值约束为+1或-1[9, 23]。为了实现这一目标,通常使用符号函数对实值变量进行二进制化,得到二进制化后的值:

picture.image

根据[39],全精度参数的信息熵可以表示为:

picture.image

其中表示值等于的概率,。二进制权重或激活的熵作为变量的信息丰富程度的度量。为了保留更多信息,应等于0.5,最大熵,导致二进制值分布均匀。理想情况下,这意味着最优二进制阈值对应于实值输入的中位数。然而,通过比较获得中位数对BNNs来说可能过于资源消耗。

因此,IR-Net [39] 提出将权重阈值设置为全精度变量的平均值。而ReActNet [30] 将阈值学习为二进制激活的参数:

尽管可学习的参数可以实现最优阈值和在整个训练集上最大化信息熵,但它们在训练后的固定性质可能导致局部环境中存在次优解或处理来自不同分布的输入时产生不准确的结果[19]。如图3所示,固定学习的阈值在应用于未见数据时可能导致信息损失,即熵的降低。为了解决分布变化并保留更多信息,作者提出两种旨在根据输入自适应地保持实值信号的技术,从而促进更精确的稠密预测。

picture.image### Distribution-adaptive Binarizer

实值变量在不同图像输入下表现出不同的分布。如图3所示,使用固定阈值二值化激活函数可能导致在二值化后信息丰富度出现波动,当输入分布发生变化时。为此,作者提出了一种动态方法来确定二值化阈值β,该方法根据输入分布自适应地重新分配和二值化实值激活:

基于[39],作者使用平均值来计算阈值,以有效地捕获输入分布的信息。学习整个数据集上的平均 Baseline ,类似于[30]。同时,衡量当前输入的影响率,从而在全局和局部分布之间平衡阈值。如图3所示,自适应地确定阈值在BiDense的归一化后有效增强了信息丰富度。

参考[34],作者在激活的binarization函数中引入了一个缩放因子α∈[34]。Bit[34]将α和阈值β视为可训练的参数:

然而,在训练之后,方程(6)中的仍然保持不变,这阻止了它从原始全精度值中动态恢复缩放信息。因此,作者提出了一种适应性方法,基于原始实值数据的分布来自适应地获取。一个潜在的解决方案是计算以最小化误差:

picture.image

其中 是 的元素个数。本质上, 保留了二进制化前后变量的均方绝对偏差(MAD)。然而,将二进制化后的激活值的尺度设置为 MAD 可能导致 1 位变量中出现显著的数值波动。因此,作者引入了一个可学习的参数,以便作者控制其影响,并将完整的 DAB 版本呈现为:

picture.image

确保保持大于0,同时当输入接近1时,近似呈现线性行为。picture.image

这段线性关系保持了原始标度比例关系。输入影响的权重控制了原始标度信息的抑制或放大。当初始化为0时,在训练阶段可以使用初始值为1的来计算,从而逐步提高 Baseline 性能。DAB根据均值和MAD的分布特征自适应地二进制化实值变量,从而增强了对未见输入的信息保留能力。

Channel-adapative Full-precision Bypass

神经网络在密集预测任务中通常由编码器和解码器组成,以实现像素 Level 的分类或回归。这两个阶段都包含多个下采样或上采样模块,导致特征通道尺寸的减少或增加。通道尺寸的变化导致输入和输出维度不匹配,阻碍了全精度 Shortcut ,并导致实际值信息损失和预测性能显著下降。为了在采样和上采样模块的各种通道尺寸变换之间实现全精度跳过,作者提出了通道自适应全精度跳过(CFB)。

如图2所示,作者提出两种简单的技术:fusion-down和fusion-up,它们可以根据需要自适应地改变全精度特征的通道大小,同时保留和聚合实值信息,且不需要额外的浮点运算。对于fusion-down,作者在通道维度上应用一维自适应平均池化以减小通道大小。与标准做法不同,由于通道之间没有空间关系,作者设置核大小和步长相等,以避免重叠区域的冗余计算。其余的输入通道合并到最终的目标通道。在fusion-up中,作者利用重复来增加通道大小,并使用fusion-down操作来获得剩余的目标通道并集成先前的信息。具体而言,对于一个全精度输入,其中、和分别表示输入通道大小、高度和宽度,以及目标通道大小,每个通道重复的次数可以计算如下:

在执行重复操作后,平均池化的核大小和步长可以通过以下方法确定:

picture.image

合并了第K+(C_{in}\bmod K)个通道后,进行池化操作。池化操作的输出将与重复结果(如果适用)的输出进行 ConCat ,允许进行自适应的通道大小变换。通过执行自适应通道大小变换,CFB可以促进实值信号的传播,保留细粒度、全精度信息。同时,二进制卷积专注于学习残差,从而最大限度地提高信息利用率。

Implementation Details

作者基于RecActNet [30]中的卷积层构建了BiDense卷积层,采用相同的逼近函数和缩放二进制权重技术。如图2所示,在每个BiDense层内使用批量归一化来归一化二进制卷积的输出,有效地将这些输出的分布与CFB中的实值变量对齐。为了确保实值信息的最小损失,作者在所有二进制化模块中应用了全精度旁路。作者使用AdamW [36]优化器以及OneCycle [49]学习率调度器在作者的设备上训练作者的框架,该设备配备了四块RTX 3090 GPU。

4 Experiments

在本节中,作者首先在两个密集预测任务上评估BiDense:语义估计和单目深度估计。然后,作者进行消融研究,并展示可视化结果以进一步验证其有效性。

Baseline : 对于全精度32位(FP32) Baseline ,作者选择ConvNeXt-Tiny [33]作为 Backbone 编码器,UPerNet [57]作为解码器。分类和回归头源自DPT [43]。在这个FP32 Baseline 之上,作者利用之前的高级BNN方法,以及作者提出的技术建立1位 Baseline ,同时使用BiDense。

为了进行公平的比较,作者提供了两种版本的FP32 Baseline 的结果:一种是在ImageNet [10]上预训练的权重,称为ConvNeXt*,另一种是仅在目标数据集上进行训练,初始化随机权重的ConvNeXt。为了使ConvNeXt适应二进制化,作者在每个卷积层后添加了 BatchNorm ,以减轻连续二进制运算引起的数据稳定性问题。这种调整可能会导致参数和计算操作的轻微增加。

评估协议:对于每个任务,作者报告了以前工作中使用的准确性和错误指标来评估和比较有效性。作者还提供了参数数量(Params)和计算操作(OPs)。遵循[23]中的方法,BNN的OPs计算为,其中表示全精度操作。同样,BNN的参数计算为,其中表示全精度参数。模型的总计算和内存成本可以计算为和。

Semantic Segmentation

作者使用语义分割评估BiDense,这是一种基于像素级的分类任务。

设置: 遵循[43],作者在ADE20K[67]和PASCAL VOC 2012[14]训练集上训练并比较多个方法,因为它们的测试集不公开。作者按照[15]对图像进行预处理,将输入图像大小设置为480×480像素用于ADE20K,500×375像素用于PASCAL VOC,在训练和推理过程中都如此。批量大小设置为32,调度器的最大学习率配置为1×10^-4。作者在ADE20K上训练模型50个周期,在PASCAL VOC上训练200个周期,使用标准交叉熵损失函数。评估指标,包括像素精度(pix-Acc)和平均交并比(mIoU),按照[43]中的指南计算。

结果: 如图1所示,BiDense在ADE20K数据集上优于其他BNN Baseline ,在pixAcc和mIoU方面表现出色,同时保持了与FP32 Baseline 相当的数量参数和运算量。与FB32 Baseline 相比,BiDense的参数数量为4.06%,运算量为1.86%,分别降低了3.56%和1.64%的pixAcc和mIoU。此外,与之前的BNN相比,BiDense在pixAcc和mIoU方面分别取得了4.40%和9.01%的显著改善,而参数和运算量的增加却相对有限。表2进一步展示了BiDense在PASCAL VOC数据集上的优越性能。BiDense在语义分割方面超越了所有先前的量化和方法,接近FP32 Baseline ,突显了作者的框架在保留语义内容和实值信息方面的有效性。语义分割的定性结果也在图4中得到展示,与其它 Baseline 相比,BiDense展示了非常细致和准确的结果。

picture.image### Monocular Depth Estimation

作者还评估了BiDense在单目深度估计方面的性能,这是一个像素级回归任务,涉及密集预测。

  1. 未见输入的熵分布,在BiDense中进行二进制化后,会降低特征的信息丰富度。
  2. 移除CFB会导致显著的准确率下降,因为这将消除在密集预测网络中经历各种通道大小变换的卷积层保留实值信息的可能,从而导致大量信息损失。然而,在使用DAB的情况下,BiDense仍然超过了其1比特的 Baseline ReActNet。
  3. 移除阈值β 防止了变量重新分配,这破坏了二分化后的信息丰富性,导致准确性下降。
  4. 将阈值β 设置为可学习参数,类似于[30],无法捕获输入分布中的信息,导致未见输入的二分化阈值不 optimal。
  5. 如果没有b,将阈值β()设置为,由于受异常值影响的均值导致二分化阈值波动,从而导致不 optimal 的阈值值。
  1. 通过移除缩放因子**,网络在保持不同尺度下的关键实值信息方面存在困 难,导致准确率下降。

  2. 将尺度设置为MAD引入了从实值到1比特的重大波动,这使得变量转换过程复杂化,从而使训练过程变得困难,并阻碍了稳健性能。

  3. 使成为可学习参数,类似于[34],导致验证集上的准确率降低,因为固定参数对未见数据具有次优值。拆分研究结果验证了所提出的CFB和DAB的有效性。通过将这两种技术集成,BiDense实现了自适应实值信息保留,从而在密集预测中实现优越的整体性能。

Visualization

在图6中,作者可视化了BiDense的统计数据,展示了可学习参数的分布情况,并比较了不同方法的信息熵。

picture.image可学习参数:首先,作者报告了DAB中提出的三个可学习参数k、b和a的价值分布。由于ConvNeXt Backbone 包括三种类型的卷积,每种卷积在ConvNeXt块内都发挥不同的作用,作者分别使用三种不同的颜色来可视化这些参数的统计数据。图6a、6b和6c说明了这些参数在ConvNeXt Backbone 的18个块(从浅层到深层)中的分布。这些分布在不同块内的不同卷积模块以及不同网络层之间存在变化,表明参数在网络中的不同位置进行了优化,以实现更好的二进制化。三个参数在块内的分布呈现出 Bottleneck 形状,这与 Backbone 的整体架构相呼应。

信息熵: 图6d展示了在不同的二进制网络中,经过第一次二进制化后激活信息熵。总体而言,BNN、ReActNet、BiDense的熵水平依次增加,表明随着方法的发展,信息丰富度逐渐提高。借助DAB,BiDense动态地设置二进制化阈值以适应不同输入值分布,从而提高信息保留。

5 Conclusion

本文提出了一种名为BiDense的广义二值化框架,用于高效的密集预测任务。BiDense将两种技术集成在一起:分布自适应二值化器(DAB)和通道自适应全精度绕过(CFB)。

为了适应性地保留更多的实值信息以便处理未见过的数据,DAB利用均值和均方根偏差来推导二值化阈值和缩放因子,这有效地捕获了输入分布的实值信息。

同时,为了在二值卷积层中的通道变换导致输入和输出特征维度不匹配时,便于全精度绕过,CFB通过调整全精度特征的通道大小进行最小化操作,将实值信号通过各种二值模块传播,从而最小化信息损失。

作者证明,在语义分割和单目深度估计的密集预测任务中,BiDense优于当前最先进的SOTA BNNs,在需要与全精度网络相当准确的同时,显著降低了计算资源需求。

参考文献

[0]. BiDense: Binarization for Dense Prediction.

点击上方卡片,关注 「AI视界引擎」 公众号

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
字节跳动 XR 技术的探索与实践
火山引擎开发者社区技术大讲堂第二期邀请到了火山引擎 XR 技术负责人和火山引擎创作 CV 技术负责人,为大家分享字节跳动积累的前沿视觉技术及内外部的应用实践,揭秘现代炫酷的视觉效果背后的技术实现。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论