《Improving Calibration for Long-Tailed Recognition》阅读笔记

论文标题

《Improving Calibration for Long-Tailed Recognition》

改进长尾识别的校准工作

作者

Zhisheng Zhong、 Jiequan Cui、Shu Liu 和 Jiaya Jia

香港中文大学和 SmartMore

初读

摘要

  • 深度神经网络在训练数据集类别极度不平衡时可能会表现不佳。最近,两阶段方法将表示学习和分类器学习解耦以提高性能。但仍然存在一个重要问题,即误校准(miscalibration)
  • 为了解决这个问题,我们设计了两种方法来改善这类场景中的校准和性能。
    • 受到预测类别概率分布与类别实例数量高度相关的启发,我们提出了标签感知平滑(label-aware smoothing)来处理不同类别的过度自信问题,并改进分类器学习
    • 由于这两个阶段使用了不同的采样器,导致数据集之间存在偏差,我们在解耦框架中进一步提出了移位批量归一化(shifted batch normalization)
  • 我们提出的方法在多个流行的长尾识别基准数据集上创造了新的记录,包括 CIFAR-10-LT、CIFAR-100-LT、ImageNet-LT、Places-LT 和 iNaturalist 2018。

结论

  • 在本文中,我们发现相比于在平衡数据集上训练的模型,在长尾数据集上训练的模型更容易出现**误校准和过度自信(miscalibrated and overconfident)**的问题。
  • 因此,我们相应地提出了两种解决方案:
    • 使用 **mixup 和设计标签感知平滑(label-aware smoothing)**来处理不同类别的过度自信问题。
    • 我们注意到在长尾识别的两阶段重采样方法中存在数据集偏差(或域偏移)。为了减少解耦框架中的数据集偏差,我们提出了在批量归一化层上的移位学习(shift learning),这进一步提高了性能。
  • 在各种基准上的大量定量和定性实验表明,我们的 MiSLAS 在 top-1 识别准确性和置信度校准方面都取得了不错的性能,并达到了新的最先进水平。

再读

Section 1 Introduction

  • 背景

    随着众多大规模、高质量的数据集的可用,例如 ImageNet,COCO 和 Places,深度卷积神经网络(CNNs)在各种计算机视觉任务中取得了显著的突破,例如图像识别,目标检测和语义分割。这些数据集通常在每个对象/类别实例数量上是人为平衡的。然而,在许多现实世界应用中,数据可能遵循意料之外的长尾分布,其中不同类别的实例数量严重不平衡。当在这些长尾数据集上训练 CNNs 时,性能显著下降。为了解决这个严重的问题,提出了一系列用于长尾识别的方法。

  • 两阶段方法与一阶段方法

    最近,许多两阶段方法与一阶段方法相比取得了显著的改进。

    • **延迟重采样(Deferred Re-sampling,DRS)和延迟重加权(Deferred Reweighting,DRW)**首先在第一阶段以正常方式训练 CNN。DRS 在第二阶段通过类平衡重采样调整 CNN,而 DRW 在第二阶段通过为不同类别分配不同权重来调整 CNN。
    • Zhou 等人在一阶段提出了双边分支网络(Bilateral Branch Network,BBN),通过动态结合实例平衡采样器和反向平衡采样器来模拟DRS的过程。
    • Kang 等人提出了两个两阶段解耦模型,分类器重新训练(Classifier Retraining,cRT)和学习权重缩放(Learnable Weight Scaling,LWS),以进一步提升性能,其中解耦模型冻结了主干网络,仅在第二阶段使用类平衡重采样训练分类器。
  • 置信度校准(Confidence calibration)

    • 置信度校准是通过估计真实正确可能性的代表性来预测概率。在许多应用中,对于识别模型来说,置信度校准非常重要。

    • **期望校准误差(Expected Calibration Error,ECE)**被广泛用于测量网络的校准程度。为了计算 ECE,首先将所有 N N N 个预测分到 B B B 个等大小的间隔箱中。ECE 定义如下:
      ECE = ∑ b = 1 B ∣ S b ∣ N ∣ acc ( S b ) − conf ( S b ) ∣ × 100 % \text{ECE}=\sum_{b=1}^B\frac{|\mathcal{S}_b|}{N}\left|\text{acc}(\mathcal{S}_b)-\text{conf}(\mathcal{S}_b) \right|\times100\% ECE=b=1BNSbacc(Sb)conf(Sb)×100%

      • 参数字典:
        • S b \mathcal{S}_b Sb 是预测得分属于 B i n − b Bin-b Binb 的样本集。
        • a c c ( ⋅ ) acc(\cdot) acc() c o n f ( ⋅ ) conf(\cdot) conf() 分别是 S b \mathcal{S}_b Sb 的准确度和预测置信度。
  • 误校准和过度自信(miscalibrated and overconfident)

    • 我们的研究表明,由于每个类别的组成比例不平衡,训练于长尾数据集的网络更容易出现误校准和过度自信。

    • 我们在图 1 中绘制了具有 15 个箱子(bins)的可靠性图表,比较了在原始 CIFAR-100 数据集上训练的普通交叉熵(cross-entropy,CE)模型,以及在 CIFAR-100-LT 上训练的普通 CE 模型、cRT 和 LWS,后者具有 100 的不平衡因子(imbalanced factor,IF)。

      在这里插入图片描述

      • 图片注解:ResNet-32 的可靠性图表。从左上角到右下角依次为:
        • 在原始平衡的 CIFAR-100 数据集上训练的普通模型,
        • 以及在具有100的不平衡因子(IF)的 CIFAR-100-LT 上训练的普通模型、
        • cRT 和 LWS。
    • 可以注意到,在长尾数据集上训练的网络通常具有更高的 ECE。两阶段模型 cRT 和 LWS 也遭受过度自信的问题。此外,附录 C 中的图 9 和图 10(前两个图)描述了这种现象在其他长尾数据集上,如 CIFAR-10-LT 和 ImageNet-LT,也同样存在。

  • 两阶段解耦的问题:

    • 另一个问题是,两阶段解耦忽略了两个阶段中的数据集偏差或域偏移(the dataset bias or domain shift)
    • 具体来说,两阶段模型首先在第一阶段在实例平衡数据集 D I \mathcal{D}_I DI 上进行训练。然后,模型在第二阶段在类别平衡数据集 D C \mathcal{D}_C DC 上进行训练。显然, P D I ( x , y ) ≠ P D C ( x , y ) P_{\mathcal{D}_I}(\boldsymbol{x},y) \ne P_{\mathcal{D}_C}(\boldsymbol{x},y) PDI(x,y)=PDC(x,y),且不同采样方式的数据集分布不一致。
    • 受到迁移学习(transfer learning)的启发,我们专注于**批量归一化层(the batch normalization layer)**来处理数据集偏差问题。
  • 本文贡献:

    在这项工作中,我们提出了一个混合移位标签感知平滑模型(Mixup Shifted Label-Aware Smoothing model,MiSLAS),以有效地解决上述问题。我们的主要贡献如下:

    • 我们发现,与在平衡数据上训练的模型相比,在长尾数据集上训练的模型存在更多的误校准和过度自信(miscalibrated and overconfident)问题。两阶段模型也遭受这个问题。
    • 我们发现,mixup 可以缓解过度自信问题,并对表示学习有积极影响,但对分类器学习的负面影响或可以忽略不计。为了进一步强化分类器学习和校准,我们提出了标签感知平滑来处理不同类别的过度自信问题。
    • 这是首次尝试指出长尾识别的两阶段重采样方法中的数据集偏差或域偏移问题。为了在解耦框架中处理这个问题,我们提出了在批量归一化层上的移位学习(shift learning on the batch normalization layer),这可以大大提高性能。

Section 2 Related Work

  • 重采样和重加权(Re-sampling and re-weighting)

    • 有两种重采样策略:一种是过采样尾部类别的图像,另一种是欠采样头部类别的图像。

      • 过采样(over-sampling)通常在大数据集上有效,但在小数据集上可能会特别容易过度拟合尾部类别
      • 对于欠采样(under-sampling),它丢弃了大量的数据,这不可避免地导致深度模型泛化能力的下降
    • **重加权(Reweighting)**是另一种显着的策略。

      • 它为不同的类别甚至实例分配不同的权重。传统的重加权方法根据类别的样本数量成反比分配类别权重。

      • 然而,在大型数据集上,重加权使得深度模型在训练过程中难以优化

        • Cui 等人使用有效数量来计算类别权重,从而缓解了这个问题。
        • 另一项工作是自适应地重加权每个实例。例如,焦点损失(focal loss)为易于分类的样本分配较小的权重。
  • 置信度校准和正则化(Confidence calibration and regularization)

    • 在许多应用中,校准的置信度对于分类模型非常重要。现代神经网络的校准问题首先在 [9] 中讨论。作者发现,模型容量、规范化和正则化对网络校准有强烈的影响
    • mixup 是一种正则化技术,通过输入和标签的插值进行训练。
      • mixup 启发了后续的 manifold mixup、CutMix 和 Remix,这些技术都显示出显著的改进。Thulasidasan 等人发现,使用 mixup 训练的 CNN 更好地校准了。
    • **标签平滑(label smoothing)**是另一种正则化技术,它鼓励模型减少过度自信。
      • 与在地面真实(ground truth)标签上计算损失的交叉熵不同,标签平滑在标签的软化版本上计算损失。它减轻了过拟合,并增加了校准和可靠性。
  • 两阶段方法(Two-stage methods)

    • Cao 等人提出了延迟重加权(Deferred Reweighting,DRW)和延迟重采样(Deferred Re-sampling,DRS),这些方法比传统的单阶段方法效果更好。它的第二阶段从更好的特征开始,调整决策边界并进行局部特征调整。
    • 最近,Kang 等人和 Zhou 等人得出结论,尽管类别重新平衡对于联合训练表示和分类器很重要,但实例平衡采样提供了更一般的表示。基于这一观察,Kang 等人通过分解表示学习和分类器学习实现了最先进的结果。
      • 它首先使用实例平衡采样训练深度模型,然后在与表示学习参数固定的情况下,使用类别平衡采样微调分类器。
    • 类似地,Zhou 等人将 mixup 训练集成到提出的累积学习策略中
      • 它桥接了表示学习和分类器重新平衡。累积学习策略需要实例平衡和反向实例平衡的双重采样器。

Section 3 Main Approach

3.1.Study of mixup Strategy

mixup 策略研究

  • 相关工作与实验目的

    在两阶段学习框架中,Kang 等人和 Zhou 等人发现,实例平衡采样为长尾识别提供了最一般的表示。此外,Thulasidasan 等人展示了对 mixup 进行训练的网络具有更好的校准。基于这些发现,在使用实例平衡采样的情况下,我们探索了 mixup 在两阶段解耦框架中的作用,以实现更高的表示泛化和减少过度自信。

  • 实验

    • 实验设置

      • 我们在 ImageNet-LT 上训练了一个普通的交叉熵模型,以及两个两阶段模型 cRT 和 LWS,第一阶段训练 180 个周期,第二阶段分别微调 10 个周期。

      • 我们变化训练设置(是否使用 mixup α = 0.2 \alpha=0.2 α=0.2)对两个阶段都进行了实验。这些变体的 Top-1 准确率列于表 1 中。

        在这里插入图片描述

        • 图片注解:对于 ImageNet-LT 验证集,分类器权重范数,其中类别按 N j N_j Nj 的降序排列, N j N_j Nj 表示 Class- j j j 的训练样本数量。
          • 左图:cRT 模型使用或不使用 mixup 的权重范数。
          • 右图:LWS 模型使用或不使用 mixup 的权重范数。
          • 浅色阴影:真实范数。
          • 深色线条:平滑版本。最好在屏幕上查看。
    • mixup 有效性分析

      它揭示了以下几点。

      1. 应用 mixup 时,CE 模型的改进可以忽略不计。但对于 cRT 和 LWS,性能得到了极大的提升
      2. 在第二阶段应用额外的 mixup 并没有带来明显的改进,甚至可能损害性能。原因是 mixup 鼓励表示学习,但对分类器学习有不利或可忽略的影响。
    • 分类器权重范数分析

      • 此外,我们在图 2 中绘制了这些变体的最终分类器权重范数。我们展示了所有类别的权重向量的 L 2 L_2 L2 范数,以及按实例数量降序排列的训练数据分布。

        在这里插入图片描述

        • 图片注解:展示了 ImageNet-LT 验证集上分类器权重范数的图表,其中类别按照 N j N_j Nj 的降序排列, N j N_j Nj 表示 Class- j j j 的训练样本数量。
          • 左图:显示了 cRT 模型在有无 mixup 情况下的权重范数。
          • 右图:显示了 LWS 模型在有无 mixup 情况下的权重范数。
          • 浅色阴影区域代表真实的权重范数。
          • 深色线条代表平滑后的版本。最好在屏幕上查看。
      • 我们观察到,应用 mixup(橙色)时,尾部类别的权重范数倾向于变大,而头部类别的权重范数减小。这意味着 mixup 可能对尾部类别更友好

    • 期望校准误差分析

      我们还列出了上述模型的 ECEs 于表 1 中。

      • 仅在第一阶段添加 mixup 时,cRT 和 LWS 模型能够一致地获得更好的 Top-1 准确率和更低的 ECEs,适用于不同的主干网络(第 4 行和第 6 行)。
      • 由于对分类器学习(通过在第二阶段添加 mixup)的 Top-1 准确率提升不满意且 ECE 下降不稳定,我们提出了一个标签感知平滑来进一步改善校准和分类器学习。

3.2.Label-aware Smoothing

标签感知平滑

在本小节中,我们分析和解决过度自信以及分类器学习改进受限这两个问题。

  • 过度自信(over-confidence)

    • 假设分类器的权重为 W ∈ R M × K \boldsymbol{W}\in\R^{M\times K} WRM×K,其中 M M M 是特征的数量, K K K 是类别的数量。

    • 交叉熵损失函数会导致网络对头部类别产生过度自信。经过 softmax 激活后的交叉熵损失为 l ( y , p ) = − log ⁡ ( p y ) = − w y ⊤ x + log ⁡ ( ∑ exp ⁡ ( w i ⊤ x ) ) l(y,\boldsymbol{p})=−\log(\boldsymbol{p}_y)=−\boldsymbol{w}^⊤_y\boldsymbol{x}+\log(\sum\exp(\boldsymbol{w}^⊤_i\boldsymbol{x})) l(y,p)=log(py)=wyx+log(exp(wix)),其中 y ∈ { 1 , 2 , … , K } y\in\{1, 2,\dots,K\} y{1,2,,K} 是标签。 x ∈ R M x\in\R^M xRM 是发送到分类器的特征向量, w i \boldsymbol{w}_i wi W \boldsymbol{W} W 的第 i i i 列向量。最优解是 w y ∗ T x = inf \boldsymbol{w}^{∗T}_y\boldsymbol{x}=\text{inf} wyTx=inf,而其他 w i T x ,   i ≠ y \boldsymbol{w}^T_i\boldsymbol{x},\ i\ne y wiTx, i=y 足够小。

    • 因为头部类别包含更多的训练示例,网络会使头部类别的权重范数 ‖ w ‖ ‖w‖ w 变大以接近最优解。这导致预测概率主要接近 1.0(参见 Fig. 3,上半部分浅蓝色部分)。

      在这里插入图片描述

      • 图片注解:在 CIFAR-100-LT 上,当 IF 为 100 时,不同类别部分(头部(每个类 100+ 张图像)、中部(每类 20-100 张图像)和尾部(每类少于 20 张图像))的预测概率分布的提琴图。
        • 上半部分浅蓝色表示“LWS + 交叉熵”。
        • 下半部分深蓝色代表“LWS + 标签感知平滑”。
    • 另一个事实是,预测概率的分布与实例数量有关。与平衡识别不同,为了解决长尾问题,对这些类别应用不同的策略是必要的。

  • 标签感知平滑(label-aware smoothing)

    • 标签感知平滑的表达式

      在这里,我们提出了标签感知平滑(label-aware smoothing)来解决交叉熵中的过度自信问题以及预测概率分布不均的问题。它被表达为:
      l ( q , p ) = − ∑ i = 1 K q i log ⁡ p i , l(\boldsymbol{q},\boldsymbol{p})=-\sum_{i=1}^K\boldsymbol{q}_i\log\boldsymbol{p}_i, l(q,p)=i=1Kqilogpi,

      q i = { 1 − ϵ y = 1 − f ( N y ) , if  i = y , ϵ K − 1 = f ( N K − 1 ) / ( K − 1 ) , otherwise, ( 1 ) \begin{align} q_i=\begin{cases}1-\epsilon_y=1-f(N_y),&\text{if } i = y, \\ \epsilon_{K-1} = f(N_{K-1}) / (K-1), & \text{otherwise,} \end{cases}\qquad\qquad(1) \end{align} qi={1ϵy=1f(Ny),ϵK1=f(NK1)/(K1),if i=y,otherwise,(1)

      • 参数字典:

        其中 ϵ y \epsilon_y ϵy 是类别 y y y 的小标签平滑因子,与它的类别数量 N y N_y Ny 相关。

      现在最优解变成了(证明见附录E):
      w i ∗ T x = { log ⁡ ( ( K − 1 ) ( 1 − ϵ y ) ϵ y ) + c , i = y , c , otherwise, ( 2 ) w^{*T}_ix = \begin{cases} \log\left( \frac{(K-1)(1-\epsilon_y)}{\epsilon_y} \right) + c, &i = y, \\ c, & \text{otherwise,} \end{cases}\qquad\qquad(2) wiTx={log(ϵy(K1)(1ϵy))+c,c,i=y,otherwise,(2)

      • 其中 c c c 是一个任意实数。

      与交叉熵中的最优解相比,标签感知平滑鼓励有限的输出,更加一般化,并且可以缓解过拟合。

    • 相关函数(related function)

      • 我们假设长尾数据集中的标签是按照实例数量降序分配的,即 $N_1\ge N_2\ge\cdots\ge N_K $。因为头部类别包含更多样化的示例,所以预测概率比尾类更有希望。

      • 因此,我们要求实例数量较大的类别使用更强的标签平滑因子——即相关函数 f ( N y ) f(N_y) f(Ny) 应该与 N y N_y Ny 负相关。我们定义了三种相关函数 f ( N y ) f(N_y) f(Ny) 如下:

        • 凹形式(Concave form):
          f ( N y ) = ϵ K + ( ϵ 1 − ϵ K ) sin ⁡ [ π ( N y − N K ) 2 ( N 1 − N K ) ] ; ( 3. a ) f(N_y)=\epsilon_K+(\epsilon_1-\epsilon_K)\sin\left[\frac{\pi\left(N_y-N_K\right)}{2(N_1 - N_K)}\right];\qquad(3.a) f(Ny)=ϵK+(ϵ1ϵK)sin[2(N1NK)π(NyNK)];(3.a)

        • 线性形式(Linear form):
          f ( N y ) = ϵ K + ( ϵ 1 − ϵ K ) N y − N K N 1 − N K ; ( 3. b ) f(N_y)=\epsilon_K+(\epsilon_1-\epsilon_K)\frac{N_y-N_K}{N_1-N_K}\qquad; (3.b) f(Ny)=ϵK+(ϵ1ϵK)N1NKNyNK;(3.b)

        • 凸形式(Convex form):
          f ( N y ) = ϵ 1 + ( ϵ 1 − ϵ K ) sin ⁡ [ 3 π 2 + π ( N y − N K ) 2 ( N 1 − N K ) ] ; ( 3. c ) f(N_y)=\epsilon_1+(\epsilon_1-\epsilon_K)\sin\left[\frac{3\pi}{2}+\frac{\pi\left(N_y-N_K\right)}{2(N_1-N_K)}\right];\qquad(3.c) f(Ny)=ϵ1+(ϵ1ϵK)sin[23π+2(N1NK)π(NyNK)];(3.c)

        • 参数字典:

          其中 ϵ 1 \epsilon_1 ϵ1 ϵ K \epsilon_K ϵK 是两个超参数。

      • 这些函数的说明在图 6 中展示。如果我们将 ϵ 1 ≥ ϵ K \epsilon_1\ge\epsilon_K ϵ1ϵK,则得到 ϵ 1 ≥ ϵ 2 ≥ ⋯ ≥ ϵ K \epsilon_1 \ge\epsilon_2 \ge\cdots\ge\epsilon_K ϵ1ϵ2ϵK。对于类别 y y y 的大实例数量 N y N_y Ny,标签感知平滑分配了一个强平滑因子。它降低了拟合概率,缓解过度自信,因为头部和中部类别比尾类别更容易过度自信(见图3)。

  • 特定的通用分类器学习框架

    • 由于标签感知平滑(label-aware smoothing)的形式比交叉熵(cross-entropy)更复杂,我们提出了一种通用的分类器学习框架来适应它。

    • 相关工作回顾:

      在这里,我们快速回顾一下 cRT 和 LWS。

      • cRT 学习一个包含 K   M K\ M K M 个可学习参数的分类器权重,而 LWS 则限制于学习一个只有K个可学习参数的权重缩放向量 s ∈ R K s\in\R^K sRK
      • 相比之下,cRT 具有更多的可学习参数和更强的表示能力。LWS 倾向于在大型数据集上获得更好的验证损失和性能(请参阅[15]中的实验部分)。因此,LWS 具有更好的泛化性质。
    • 分类器框架:

      为了结合 cRT 和 LWS 的优势,我们在第二阶段设计了分类器框架如下:
      z = diag ( s ) ( r W + Δ W ) ⊤ x . ( 4 ) z=\text{diag}(\boldsymbol{s}) (r\boldsymbol{W}+\boldsymbol{\Delta W})^\top x.\qquad\qquad(4) z=diag(s)(rW+ΔW)x.(4)

      • 在等式(4)中,我们在第二阶段固定了原始分类器权重 W \boldsymbol{W} W
      • 如果我们使可学习的缩放向量 s \boldsymbol{s} s 固定,设置 s = 1 \boldsymbol{s}=1 s=1 和保留因子 r = 0 r=0 r=0,并且只学习新的分类器权重 Δ W ∈ R M × K \boldsymbol{\Delta W}\in\R^{M\times K} ΔWRM×K,等式(4)将退化为 cRT。
      • 因为 LWS 固定了原始分类器权重 W \boldsymbol{W} W 并只学习缩放 s \boldsymbol{s} s,如果我们设置 r = 1 r=1 r=1 Δ W = 0 \boldsymbol{\Delta W}=0 ΔW=0,等式(4)将退化为 LWS。
      • 在大多数情况下,LWS 在大型数据集上取得了更好的结果。因此,我们使 s \boldsymbol{s} s 可学习并设置 r = 1 r=1 r=1
      • 我们还使 Δ W \boldsymbol{\Delta W} ΔW 可学习,以提高表示能力并使用不同的学习率来优化 Δ W \boldsymbol{\Delta W} ΔW
        • Δ W \boldsymbol{\Delta W} ΔW 可以被视为 W \boldsymbol{W} W 上权重向量 w \boldsymbol{w} w 的位移变换。它改变了 W \boldsymbol{W} W 中权重向量 w \boldsymbol{w} w 的方向,这是 LWS 无法实现的。

3.3.Shift Learning on Batch Normalization

批量归一化移位学习

  • 概述

    • 在两阶段训练框架中,模型首先在第一阶段使用实例平衡采样进行训练,然后在第二阶段使用类别平衡采样进行训练。
    • 由于该框架涉及两个采样器,或者两个数据集——实例平衡数据集 D I \mathcal{D}_I DI 和类别平衡数据集 D C \mathcal{D}_C DC,我们将这个两阶段训练框架视为迁移学习的一种变体。
    • 如果我们从迁移学习的角度来看待这个两阶段解耦训练框架,固定主干部分并在第二阶段仅调整分类器显然是不合理的,尤其是对于批量归一化(batch normalization,BN)层。
  • 均值/方差分析

    具体来说,我们假设网络的输入是 x i x_i xi,某个批量归一化(BN)层的输入特征是 g ( x i ) g(x_i) g(xi),且迷你批次的大小是 m m m。这两个阶段中,通道 j j j 的均值和运行方差分别为:

    • 对于第一阶段(实例平衡采样):
      x i ∼ P D I ( x , y ) , μ I ( j ) = 1 m ∑ i = 1 m g ( x i ) j , σ I 2 ( j ) = 1 m ∑ i = 1 m [ g ( x i ) ( j ) − μ I ( j ) ] 2 ( 5 ) \begin{align} &\boldsymbol{x}_i\sim P_{\mathcal{D}_I}(\boldsymbol{x},y),\quad\boldsymbol{\mu}^{(j)}_I=\frac{1}{m}\sum_{i=1}^m g(\boldsymbol{x}_i)^j,\\ &\boldsymbol{\sigma}^{2(j)}_I=\frac{1}m\sum_{i=1}^m[g(\boldsymbol{x}_i)^{(j)}-\boldsymbol{\mu}^{(j)}_I]^2\qquad\qquad(5) \end{align} xiPDI(x,y),μI(j)=m1i=1mg(xi)j,σI2(j)=m1i=1m[g(xi)(j)μI(j)]2(5)

    • 对于第二阶段(类别平衡采样):
      x i ∼ P D C ( x , y ) , μ C ( j ) = 1 m ∑ i = 1 m g ( x i ) j , σ C 2 ( j ) = 1 m ∑ i = 1 m [ g ( x i ) ( j ) − μ C ( j ) ] 2 ( 6 ) \begin{align} &\boldsymbol{x}_i\sim P_{\mathcal{D}_C}(\boldsymbol{x},y),\quad\boldsymbol{\mu}^{(j)}_C=\frac{1}{m}\sum_{i=1}^m g(\boldsymbol{x}_i)^j,\\ &\boldsymbol{\sigma}^{2(j)}_C=\frac{1}m\sum_{i=1}^m[g(\boldsymbol{x}_i)^{(j)}-\boldsymbol{\mu}^{(j)}_C]^2\qquad\qquad(6) \end{align} xiPDC(x,y),μC(j)=m1i=1mg(xi)j,σC2(j)=m1i=1m[g(xi)(j)μC(j)]2(6)

  • 分析与解决

    • 由于不同的采样策略,头部、中部和尾部类别的组成比例也不同,这导致 P D I ( x , y ) ≠ P D C ( x , y ) P_{\mathcal{D}_I}(\boldsymbol{x},y)\ne P_{\mathcal{D}_C}(\boldsymbol{x},y) PDI(x,y)=PDC(x,y)。通过等式(5)和(6),在两种采样策略下均值 μ \boldsymbol{\mu} μ 和方差 σ \boldsymbol{\sigma} σ 存在偏差,即 μ I ≠ μ C \boldsymbol{\mu}_I\ne\boldsymbol{\mu}_C μI=μC σ I 2 ≠ σ C 2 \boldsymbol{\sigma}^2_I\ne\boldsymbol{\sigma}^2_C σI2=σC2。因此,对于解耦框架来说,BN 在两个具有不同采样策略的数据集之间共享均值和方差是不可行的。
    • 受到 AdaBN 和 TransNorm 的启发,我们在第二阶段更新运行均值 μ \boldsymbol{\mu} μ 和方差 σ σ σ,同时固定可学习的线性变换参数 α \alpha α β \beta β,以实现更好的标准化

Section 4 Experiments

4.1.Datasets and Setup

我们的实验设置,包括实现细节和评估协议,主要遵循[4]用于 CIFAR10-LT 和 CIFAR-100-LT,以及[15]用于 ImageNet-LT、PlacesLT 和 iNaturalist 2018。更多有关训练和超参数设置的详细信息,请参见附录A。

4.1.1 Datasets Explanation
  • CIFAR-10 和 CIFAR-100

    • CIFAR-10 和 CIFAR-100 都包含 60,000 张图像,其中 50,000 张用于训练,10,000 张用于验证,分别有 10 个类别和 100 个类别。
    • 为了公平比较,我们使用与[4]中相同设置的长尾版本的 CIFAR 数据集。这是通过控制数据不平衡的程度,使用不平衡因子 KaTeX parse error: Got function '\max' with no arguments as subscript at position 28: …\boldsymbol{N}_\̲m̲a̲x̲}{\boldsymbol{N…,其中 KaTeX parse error: Got function '\max' with no arguments as subscript at position 16: \boldsymbol{N}_\̲m̲a̲x̲KaTeX parse error: Got function '\min' with no arguments as subscript at position 16: \boldsymbol{N}_\̲m̲i̲n̲ 是最多和最少频繁类别的训练样本数量。
    • 遵循 Cao 等人[4]和Zhou等人[39]的方法,我们进行了 IF 为100、50 和 10 的实验。
  • ImageNet-LT 和 Places-LT

    • ImageNet-LT 和 Places-LT 是由 Liu 等人提出的。ImageNet-LT 是大规模物体分类数据集 ImageNet 的长尾版本,通过遵循帕累托分布(Pareto distribution)采样一个子集,幂值 α = 6 \alpha=6 α=6。它包含来自 1,000 个类别的 115.8 K 张图像,类别的基数从 5 到 1,280 不等。
    • Places-LT 是大规模场景分类数据集 Places 的长尾版本。它由来自 365 个类别的 184.5 K 张图像组成,类别的基数从 5 到 4,980 不等。
  • iNaturalist 2018

    iNaturalist 2018 是一个大规模的分类数据集,并且遭受极其不平衡的标签分布。它由来自 8,142 个类别的 437.5 K 张图像组成。此外,在 iNaturalist 2018 数据集上,我们还面临着细粒度问题。

4.1.2 Implementation Details

实现细节

  • 对于所有实验,我们使用带有动量 0.9 的 SGD 优化器来优化网络。
  • 对于 CIFAR-LT,
    • 我们主要遵循 Cao 等人的方法。我们在一个 GPU 上训练所有 MiSLAS 模型,并使用多步学习率计划,在第一阶段的 160 个和 180 个周期时将学习率降低 0.1。
  • 对于 ImageNetLT、Places-LT 和 iNaturalist 2018,
    • 我们主要遵循 Kang 等人的方法,并使用余弦学习率计划来训练所有 MiSLAS 模型,后端网络分别为 ResNet-10、50、101 和 152,在四个 GPU 上进行训练。

4.2.Ablation Study

  • 校准性能(Calibration performance)

    • 在这里,我们在图 4 中展示了我们的方法在 CIFAR-100-LT 上 IF 为 100 的 15 个箱子的可靠性图。与图 1 相比,mixup 和标签感知平滑不仅可以大大提高网络的校准性能(即使是低于平衡数据集的 ECE),还可以大大提高长尾识别的性能。

      在这里插入图片描述

      • 图片注解:图 4 展示了在 CIFAR-100-LT 上 IF 为 100 的 ResNet-32 模型的可靠性图。从左至右依次为:使用 mixup 的 cRT、使用 mixup 的 LWS、使用 mixup 和 移位 BN 的 LWS,以及 MiSLAS(符合图 1 的设置)。
    • 类似的趋势也可以在 CIFAR-10-LT、ImageNet-LT 和 Places-LT 上观察到(具体细节请参见表 1 和附录 C 中的图),这证明了所提出方法在校准方面的有效性。

      在这里插入图片描述

      • 图片注解:表 1 展示了在 ImageNet-LT 数据集上训练的 ResNet 系列模型的普通交叉熵(CE)模型,以及 cRT(左)和 LWS(右)解耦模型的 Top-1 准确率(%)和 ECE(%)。我们在两个阶段上变化增强策略,包括使用 α = 0.2 \alpha=0.2 α=0.2 ✓ \checkmark )或不使用( × \times ×)mixup。
    • 所有实验结果表明,在非平衡数据集上训练网络会导致严重的过度自信。由于传统的 mixup 和标签平滑都包含了软化地面真实标签(softening the ground truth labels)的操作,这可能表明,使用硬标签进行训练可能是导致网络过度自信的另一个促成因素。

  • 比较标签感知平滑与重加权(re-weighting with label-aware smoothing)

    在这里,我们比较了提出的标签感知平滑(LAS)与重加权方法。

    • 主要的区别在于标签转换。特别是,标签感知平滑根据标签分布将硬标签转换为软版本(参见等式(1)的其他情况: q i = f ( N y ) ( K − 1 ) ,   i ≠ y \boldsymbol{q}_i=\frac{f(\boldsymbol{N}_y)}{(K−1)},\ i\ne y qi=(K1)f(Ny), i=y)。而重加权方法不包含这种关键转换,只是通过 q i = 0 , i ≠ y \boldsymbol{q}_i=0,i\ne y qi=0,i=y 将值设置为零。

    • 此外,由于标签的转换,LAS 中 w i ∗ ⊤ x w^{∗\top}_i\boldsymbol{x} wix 的最优解变成了等式(2)。相比之下,重加权的最优解与交叉熵相同,即 w i ∗ ⊤ x = inf ⁡ w^{∗\top}_i\boldsymbol{x}=\inf wix=inf,这无法适当改变预测分布并导致过度自信。

    • 根据我们在表 2 中的实验结果,在第二阶段使用重加权方法会比使用LAS的情况降低性能和校准。

      在这里插入图片描述

      • 图片注解:表 2 展示了标签感知平滑(LAS)与重加权方法在第二阶段基于类平衡交叉熵(CB-CE)的测试准确率(%)/ ECE(%)的比较。两个模型都基于 ResNet-32,并在 CIFAR-100-LT 上进行了训练,不平衡因子(IF)为 100、50 和 10。
  • ϵ 1 \epsilon_1 ϵ1 ϵ K \epsilon_K ϵK 如何影响标签感知平滑?

    • 在我们的标签感知平滑中,等式(3.a)、(3.b)和(3.c)中有两个超参数。它们是 ϵ 1 \epsilon_1 ϵ1 ϵ K \epsilon_K ϵK,它们控制类别的惩罚。

    • 在一个识别系统中,如果类别 y y y 的预测概率大于 0.5,分类器会将输入分类为类别 y y y。因此,为了使其合理,我们限制 0 ≤ ϵ 1 ≤ ϵ K ≤ 0.5 0\le\epsilon_1\le\epsilon_K\le0.5 0ϵ1ϵK0.5

    • 在这里,我们在 CIFAR-10-LT 上进行了实验,IF 为 100,并变化了 ϵ 1 \epsilon_1 ϵ1 ϵ K \epsilon_K ϵK 都在 0.0 到 0.5 之间。我们绘制了所有可能变体的性能矩阵,以 ϵ 1 \epsilon_1 ϵ1 ϵ K \epsilon_K ϵK 为横纵坐标,如图 5 所示。

      在这里插入图片描述

      • 图片注解:标签感知平滑中两个超参数 ϵ 1 \epsilon_1 ϵ1 ϵ K \epsilon_K ϵK 的消融研究。热图可视化在 CIFAR-10-LT(左)和 CIFAR100-LT(右)上,IF 为 100 的情况。
    • 结果显示,

      • 当我们选择 ϵ 1 = 0.3 \epsilon_1=0.3 ϵ1=0.3 ϵ K = 0.0 \epsilon_K=0.0 ϵK=0.0 (橙色方块)进行标签感知平滑时,与传统的交叉熵(绿色方块, ϵ 1 = 0 \epsilon_1=0 ϵ1=0 ϵ K = 0 \epsilon_K=0 ϵK=0 )相比,分类准确率提高了 3.3%。
      • 当选择 ϵ 1 = 0.4 \epsilon_1=0.4 ϵ1=0.4 ϵ K = 0.1 \epsilon_K=0.1 ϵK=0.1 进行标签感知平滑时,在 CIFAR-100-LT 上,IF 为 100,一致地提高了 0.9% 的准确率。
  • f ( ⋅ ) f(\cdot) f() 如何影响标签感知平滑?

    • 正如第 3.2 节讨论的,相关函数 f ( ⋅ ) f(\cdot) f() 对于最终模型性能可能发挥重要作用。我们在图 6 中绘制了等式(3.a)、(3.b)和(3.c)的说明。

      在这里插入图片描述

      • 图片注解:函数说明以及等式(3.a)、(3.b)和(3.c)的测试性能。凹形式取得了最佳结果。
    • 对于 CIFAR-100-LT,IF 为 100,我们设置 K = 100 K=100 K=100 N 1 = 500 N_1=500 N1=500 N 100 = 5 N_{100}=5 N100=5。基于上述关于 ϵ 1 \epsilon_1 ϵ1 ϵ K \epsilon_K ϵK 的消融研究结果,我们在这里设置 ϵ 1 = 0.4 \epsilon_1=0.4 ϵ1=0.4 ϵ 100 = 0.1 \epsilon_{100}=0.1 ϵ100=0.1

    • 在第二阶段的第 10 个周期调整后,凹模型(convex model)的准确率最佳。

    • 我们还探索了其他形式,例如 f ( ⋅ ) f(\cdot) f() 的指数形式,具体见附录 B。与改变 ϵ 1 \epsilon_1 ϵ1 ϵ K \epsilon_K ϵK 相比,改变形式带来的收益非常有限。

  • 标签感知平滑(label-aware smoothing)如何影响预测分布?

    • 为了可视化预测概率分布的变化,我们在 CIFAR-100-LT 上 IF 为 100 训练了两个 LWS 模型,一个使用交叉熵,另一个使用标签感知平滑。
    • 交叉熵基础的头部、中部和尾部类别的分布显示在图 3 上方的浅蓝色部分。基于标签感知平滑的分布显示在下半部分的深蓝色中。
    • 我们观察到,使用标签感知平滑时,头部和中部类别的过度自信大大减少,尾部类别的整个分布略有向右移动。这些经验结果与我们在第 3.2 节的分析一致。
  • 进一步分析移位学习(shift learning)

    在这一部分,我们进行了实验来展示在 BN 上进行移位学习的效果和适用性。

    • 我们在 CIFAR100-LT 上 IF 为 100 训练了 LWS 模型。

    • 在第二阶段的 10 个周期微调后,使用 BN 移位的模型达到了 45.3% 的准确率,比不使用 BN 移位的模型高出 1.1%。

    • 我们还可视化了 BN 的变化。如图 7 所示,使用不同采样策略的数据集之间存在 μ \mu μ σ 2 \sigma^2 σ2 的偏差。

      在这里插入图片描述

      • 图片注解:展示了 BN 中运行均值 μ \mu μ 和方差 σ 2 \sigma^2 σ2 的变化的可视化。该图基于在 CIFAR-100-LT 上 IF 为 100 训练的 ResNet-32 模型。
        • 左图显示了 ResNet-32 中的第一个 BN 层,该层包含 16 个通道的 μ \mu μ σ 2 \sigma^2 σ2
        • 右图显示了 ResNet-32 中的最后一个 BN 层,该层包含 64 个通道的 μ \mu μ σ 2 \sigma^2 σ2
    • 由于头部、中部和尾部类别的组成比例不同,统计均值 μ \mu μ 和方差 σ 2 \sigma^2 σ2 也会变化。我们还在图 7 中注意到了一些有趣的现象:

      1. 方差 σ 2 \sigma^2 σ2 的变化大于均值 μ \mu μ 的变化。
      2. 深层 BN 层中的 μ \mu μ σ 2 \sigma^2 σ2 的变化远小于浅层 BN 层。
  • 总结

    • 总体而言,表 3 展示了关于 mixup(在第一阶段添加 mixup,MU)、批量归一化上的移位学习(SL)和标签感知平滑(LAS)的消融研究。

      在这里插入图片描述

      • 图片注解:表 3 展示了所有提出的模块在 CIFAR-100-LT 上的消融研究。顶部是准确率(%),底部是ECE(%)。
        • MU:仅在第一阶段应用 mixup。
        • SL:在 BN 上进行移位学习。
        • LAS:标签感知平滑。
    • 我们注意到,每个提出的模块不仅提高了准确率(表 3 顶部),而且显著减轻了在 CIFAR-100LT 上的过度自信问题(表 3 底部),对于所有常用的不平衡因子,即 100、50 和 10都是如此。这充分证明了它们的有效性。

4.3.Comparison with State-of-the-arts

与最先进技术的比较

  • 为了验证有效性,我们将所提出的方法与之前的一阶段方法 Range Loss,LDAM Loss,FSLwF 和 OLTR 进行比较,并与之前的两阶段方法进行比较,包括 DRS-like、DRWlike,LFME,cRT 和 LWS。为了公平比较,我们在 LWS 和 cRT 模型上添加了 mixup。Remix 是一种最近提出的用于长尾识别的增强方法。由于 BBN具有双重采样器和以类似 mixup 的方式进行训练,我们直接将我们的方法与它进行比较。

  • CIFAR-LT 的实验结果

    我们在 CIFAR-10-LT 和 CIFAR-100-LT 上进行了大量实验,不平衡因子分别为 100、50 和 10,使用与之前工作[4, 39]相同的设置。结果总结在表 4 中。与之前的方法相比,我们的 MiSLAS 在 top-1 准确率和 ECE 方面都明显优于所有之前的方法,并且这种优势在所有不平衡因子(即 100、50 和 10)上都是成立的,无论是在 CIFAR-10-LT 还是 CIFAR-100-LT 上。

    在这里插入图片描述

    • 图片注解:表 4 展示了基于 ResNet-32 的模型在 CIFAR-10-LT 和 CIFAR-100-LT 上的训练结果,包括 Top-1 准确率(%)和ECE(%)。
  • 大规模数据集的实验结果

    我们进一步在三个大规模不平衡数据集上验证了我们方法的有效性,即 ImageNet-LT、iNaturalist2018和Places-LT。表 5 列出了在 ImageNet-LT(左)、iNaturalist 2018(中)和 Places-LT(右)上的实验结果。值得注意的是,我们的 MiSLAS 超越了其他方法,并在几乎所有三个大规模长尾基准数据集上都取得了更好的准确性和置信度校准,从而设定了新的最先进水平。关于这三个数据集上的拆分类别准确率和不同主干网络的更多结果列在附录 D 中。

    在这里插入图片描述

    • 图片注解:表 5 展示了在 ImageNet-LT(左)、iNaturalist 2018(中)和 Places-LT(右)上的 Top-1 准确率(%)和 ECE(%)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/428371.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

010 Linux 进程间通信_匿名管道

前言 本文将会向你介绍匿名管道的原理以及用法,以及管道的使用存在的情况和管道的特性 文章重点 重点:匿名管道的原理,使用情况,以及特性 进程间通信 进程间通信的本质: 让不同的进程先看到同一份资源&#xff0c…

换个角度看境外支付系统:警惕金融风险之安全测试实践

【面试突击班】1. 性能测试主要关注哪些指标? ,这个名词相信生活在当下社会的大家应该都不在陌生了吧,他时时刻刻充斥在我们的日常生活中,哪里有交易发生,哪里就有它的身影。 其实直白的来说,支付系统是扮…

数组传参调试小技巧

数组传参调试小技巧 前言正文 前言 亲爱的小伙伴们&#xff0c;你们好呀&#xff01;我是莹莹&#xff0c;今天我来给大家分享关于数组传参调试的技巧&#xff0c;希望能够帮助你们&#xff01; 正文 首先&#xff0c;我们先来看一段数组传参代码 #include<stdio.h>v…

《汇编语言》- 读书笔记 - 第16章-直接定址表

《汇编语言》- 读书笔记 - 第16章-直接定址表 16.1 描述了单元长度的标号&#xff08;数据标号&#xff09;检测点 16.1 16.2 在其他段中使用数据标号assume通过标号取地址检测点 16.2 16.3 直接定址表&#xff08;Direct Addressing Table&#xff09;例1分析代码效果 例2分析…

深入了解 Android 中的 FrameLayout 布局

FrameLayout 是 Android 中常用的布局之一&#xff0c;它允许子视图堆叠在一起&#xff0c;可以在不同位置放置子视图。在这篇博客中&#xff0c;我们将详细介绍 FrameLayout 的属性及其作用。 <FrameLayout xmlns:android"http://schemas.android.com/apk/res/androi…

Tomcat常见配置(基础功能、虚拟主机、搭建博客)

目录 一、Tomcat基础功能 1、自动解压war包 2、Tomcat工具界面 2.1 Server Status (服务器状态) 2.1.1 本地登录状态页 2.1.2 远程登录状态页 2.2 Manager App (管理应用程序) 2.3 Host Manager (主机管理器) 3、Context 配置 二、配置虚拟主机 三、搭建 JPress 博客…

就业班 2401--2.29 Linux Day8--存储管理2(LVM)+swap+磁盘阵列raid

&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;小伙伴们一定要看到最后&#xff0c;有彩蛋呢^--^ 一、存储管理Ⅱ 逻辑卷LVM &#xff08;Logical Volume Manager&#xff08;逻辑卷管理&#xff09;的简写&#xff09; LVM管理 lvm概念&#xf…

网络编程作业day4

广播模型&#xff1a; 发送端&#xff1a; #include <myhead.h> int main(int argc, const char *argv[]) {//创建套接字int sfdsocket(AF_INET,SOCK_DGRAM,0);if(sfd-1){perror("socket error");return -1;}//设置套接字允许广播属性int broadcast1;if(sets…

MySQL 用户账号迁移

文章目录 前言1. 工具安装1.1 下载安装包1.2 编译安装 2. 用户迁移后记 前言 有一个典型的使用场景&#xff0c;就是 RDS 下云大多数都是通过 DTS 进行数据传输的&#xff0c;用户是不会同步到自建数据库的。需要运维人员在自建数据库重新创建用户&#xff0c;如果用户数量很多…

springboot,druid动态数据源切换

关键字&#xff1a;springboot&#xff0c;druid数据库连接池&#xff0c;两个数据源&#xff08;可以切换成多个&#xff09;&#xff0c;事务管理 关于druid简介传送门&#xff1a;https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98 具体分为四…

LeetCode148.排序链表

题目 给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 示例 输入&#xff1a;head [4,2,1,3] 输出&#xff1a;[1,2,3,4] 输入&#xff1a;head [-1,5,3,4,0] 输出&#xff1a;[-1,0,3,4,5] 输入&#xff1a;head [] 输出&#xff1a;[] 思路…

STM32CubeIDE基础学习-新建STM32CubeIDE基础工程

STM32CubeIDE基础学习-新建STM32CubeIDE基础工程 前言 有开发过程序的朋友都清楚&#xff0c;后面开发是不需要再新建工程的&#xff0c;一般都是在初学时或者有特殊需要的时候才需要新建项目工程的。 后面开发都是可以在这种已有的工程上添加相关功能就行&#xff0c;只要前…

sylar高性能服务器-日志(P43-P48)内容记录

文章目录 P43&#xff1a;Hook01一、HOOK定义接口函数指针获取接口原始地址 二、测试 P44-P48&#xff1a;Hook02-06一、hook实现基础二、class FdCtx成员变量构造函数initsetTimeoutgetTimeout 三、class FdManager成员变量构造函数get&#xff08;获取/创建文件句柄类&#x…

华工的各类型PPT模板

华工的各类型PPT模板&#xff0c;包括原创的PPT及改良内容的PPT&#xff0c;适合科研/比赛/组会汇报等 前言各种毕业答辩夏令营答辩复试答辩奖学金答辩比赛/项目答辩组会汇报 前言 设计不易&#xff0c;排版不易&#xff0c;内容编排不易 待更新项目1 原创声明&#xff1a;不经…

17 easy 290. 单词规律

//给定一种规律 pattern 和一个字符串 s &#xff0c;判断 s 是否遵循相同的规律。 // // 这里的 遵循 指完全匹配&#xff0c;例如&#xff0c; pattern 里的每个字母和字符串 s 中的每个非空单词之间存在着双向连接的对应规律。 // // // // 示例1: // // //输入: patte…

Kubernetes 学习总结(46)—— Pod 不停重启问题分析与解决

我们在做性能测试的时候&#xff0c;往往会发现我们的pod服务&#xff0c;频繁重启&#xff0c;通过kubectl get pods 命令&#xff0c;我们来逐步定位问题。 现象:running的pod&#xff0c;短时间内重启次数太多。 定位问题方法:查看pod日志 kubectl get event …

攻防世界 php_rce

已经给了开发框架了用的是ThinkPHP V5 所以我们直接搜这个框架爆出来的漏洞就好了 可以得到这里面有个远程rce payload url/index.php?s/index/\think\app/invokefunction&functioncall_user_func_array&vars[0]system&vars[1][]dir 然后我们就可以命令执行了…

【大厂AI课学习笔记NO.63】模型的维护

说是模型的维护&#xff0c;其实这堂课都是在讲“在工业环境中开发和部署机器学习模型的流程”。 上图来自于我的笔记思维脑图&#xff0c;已经上传&#xff0c;要链接的访问的主页查看资源。 一路走来&#xff0c;我们学习了数据管理、模型学习、模型验证、模型部署等重要的步…

Elixir 依赖 (deps) 调试的小技巧

最近使用 Elixir 有点多, 经常需要观察一些依赖 (Deps) 的实现, 比如想加个日志打印点 IO.inspect 啥的观察下某个变量&#xff0c;才能更好的理解某个 Elixir 的依赖。这里介绍下一些调试的方式: 这里以 yeshan333/ex_integration_coveralls 为例子. 我们先 clone 项目到本地…

每日五道java面试题之mysql数据库篇(四)

目录&#xff1a; 第一题&#xff1a; Hash索引和B树所有有什么区别或者说优劣呢?第二题&#xff1a;数据库为什么使用B树而不是B树&#xff1f;第三题&#xff1a;B树在满足聚簇索引和覆盖索引的时候不需要回表查询数据&#xff1f;第四题&#xff1a;什么是聚簇索引&#xf…
最新文章