《Decoupled Contrastive Learning for Long-Tailed Recognition》阅读笔记

论文标题

《Decoupled Contrastive Learning for Long-Tailed Recognition》

针对长尾识别的解耦对比学习

作者

Shiyu Xuan 和 Shiliang Zhang

来自北京大学计算机学院多媒体信息处理国家重点实验室

初读

摘要

  • 监督对比损失(Supervised Contrastive Loss, SCL)

    • 监督对比损失在视觉表征学习中非常流行。

    • 给定一个锚定图像,SCL 会将两种正样本(即其增强版本和来自同一类的其他图像)拉在一起,同时将负样本推开以优化学习到的嵌入。

  • SCL 在长尾识别中的局限性

    • 在长尾识别的场景中,每个类的样本数量不平衡,将两种正样本平等对待会导致对类内距离的偏向优化。
    • 此外,被 SCL 忽略的负样本之间的相似性关系也呈现出有意义的语义线索。
  • 为了提高长尾识别的性能,本文通过解耦训练目标来解决 SCL 的这两个问题。

    • 具体来说,它将 SCL 中的两种正样本解耦,并针对不同的目标优化它们的关系,以减轻不平衡数据集的影响。
    • 我们进一步提出了一种基于补丁的自我蒸馏方法,将知识从头部类别传递到尾部类别,以缓解尾部类别的代表性不足。
      • 它使用基于补丁的特征来挖掘不同实例之间的共享视觉模式,并利用自我蒸馏过程来传递此类知识。
  • 在不同的长尾分类基准测试上的实验证明了我们方法的优势。

    • 例如,在 ImageNet-LT 数据集上实现了 57.7% 的 top-1 准确率。
    • 结合基于集成的方法,性能可以进一步提升到 59.7%,这大大超过了许多最近的工作。我们的代码将会发布。

结论

  • 为了解决长尾识别的挑战,本文分析了 SCL 中的两个问题,并通过 DSCL 和 PBSD 来解决这些问题。
    • DSCL 解耦了 SCL 中的两种正样本,并针对不同的目标优化它们的关系,以减轻不平衡数据集的影响。
    • PBSD 利用头部类别通过探索补丁级别的相似性关系来促进尾部类别的表征学习。
  • 在不同基准测试上的实验证明了我们方法的有希望性能,其中它超过了使用更昂贵设置的近期工作。
  • 将我们的方法扩展到长尾检测被认为是未来的工作。

再读

Section 1 Introduction

  • 长尾视觉识别

    • 益于强大的深度学习方法,各种视觉任务在手动平衡数据集上的性能已经显著提升。
    • 在现实世界的应用中,训练样本通常表现出长尾分布,其中少数头部类别贡献了大部分的观察结果,而许多尾部类别只与少数样本相关。
    • 长尾分布对视觉识别带来了两个挑战:
      • 为平衡数据集设计的损失函数可能很容易偏向头部类别。
      • 每个尾部类别包含的样本太少,无法代表视觉差异,导致尾部类别的代表性不足。
  • 监督对比损失(Supervised Contrastive Loss, SCL)

    • 通过优化类内-类间距离,SCL 已在平衡数据集上取得了令人印象深刻的性能。

    • 给定一个锚定图像,SCL 将两种正样本(即通过数据增强生成的锚定图像的不同视图,以及来自同一类的其他图像)拉在一起,

    • 这两种正样本指导模型学习不同的表征,

      • 即来自同一类别的图像强制学习语义线索,
      • 而通过外观变化增强的样本主要导致学习低级外观线索。
    • 图1(a)显示,SCL 有效地为头部类别学习语义特征,例如,学习的语义“蜜蜂”对杂乱背景具有鲁棒性。如图1(b)所示,SCL为尾部类别学习的表征对低级外观线索(如形状、纹理和颜色)更具区分性。

      在这里插入图片描述

      • 图片注解:图 1:使用 SCL 在头部类别(a)和尾部类别(b)上学习的特征进行的检索结果示例。在(b)中,SCL 学习的特征偏向于低级外观线索,而我们方法学习的特征对语义线索更具区分性。
  • 解耦对比学习(Decoupled Contrastive Learning,DCL)

    • 我们在概述部分的理论分析表明,SCL 对两种正样本施加了不平衡的梯度,导致对头部和尾部类别的偏向优化。
    • 因此,我们提出了解耦对比学习,它采用解耦监督对比损失(Decoupled Supervised Contrastive Loss,DSCL)来处理这个问题。具体来说,
      • DSCL 解耦了两种正样本,以重新制定类内距离的优化。它减轻了两种正样本的不平衡梯度。
      • 我们还提供了一个理论证明,DSCL 防止了学习偏向的类内距离。在图1(b)中,我们方法学习的特征对语义线索具有区分性,并在尾部类别的检索性能上有了实质性的提升。
  • 基于补丁的自我蒸馏(Patch-based Self Distillation, PBSD)

    • 为了进一步减轻长尾分布的挑战,我们提出了基于补丁的自我蒸馏,以利用头部类别来促进尾部类别的表征学习。
    • PBSD 采用自我蒸馏策略,通过挖掘不同类别之间的共享视觉模式,并将知识从头部类别传递到尾部类别,来更好地优化类间距离。
      • 我们引入了基于补丁的特征来表示来自一个对象的视觉模式。
      • 通过计算基于补丁的特征与实例级特征之间的相似性来挖掘共享的视觉模式,也就是说,如果一个实例与一个基于补丁的特征共享视觉模式,那么它们将具有高相似性。
      • 我们利用自我蒸馏损失来维持样本之间的相似性关系,并将这些知识整合到训练中。
  • 实验结果

    DSCL 和 PBSD 易于实现,并且显著提升了长尾识别的性能。

    • 我们在包括 ImageNet-LT、iNaturaList 2018 和 Places-LT 在内的几个长尾数据集上评估了我们的方法。实验结果表明,我们的方法比 SCL 提高了6.5%,并且与近期工作相比取得了更优的性能。
    • 例如,在 ImageNet-LT 上,它比最近的基于对比学习的方法 TSC 高出5.3%。
    • 我们的方法可以灵活地与例如 RIDE 这种基于集成的方法结合,后者在 iNaturaList 2018 上实现了74.9%的整体准确率,比最近的工作 CR 在整体准确率上高出 1.4%。
  • 本文贡献总结

    • 据我们所知,这是一个原创性贡献,它通过解耦两种正样本,并使用基于补丁的自我蒸馏来提升 SCL 在长尾识别上的性能。提出的 DSCL 解耦了不同类型的正样本,以追求在头部和尾部类别之间更平衡的类内距离优化。
    • 它还引入了相似性关系线索,以利用头部类别中的共享模式来优化尾部类别。
    • 在三个常用数据集上的大量实验已经展示了其有希望的性能。
    • 我们的方法易于实现,并且代码将会发布,以利于未来对长尾视觉识别的研究。

Section 2 Related Work

  • 长尾识别(Long-tailed recognition)
    • 长尾识别旨在解决在少数类别拥有大量样本而其他类别只与少量样本相关的情况下模型训练的问题。当前的研究可以分为四大类,分别是重新平衡方法(re-balancing)、解耦方法(decoupling)、迁移学习方法(transfer learning)和基于集成的方法(ensemble-based)。
    • 重新平衡方法使用重新采样(re-sampling)或重新加权(re-weighting)来处理长尾识别问题。
      • 重新采样方法通常包括对尾部类别的过采样或对头部类别的欠采样。
      • 除了重新采样,损失函数的重新加权也是一种有效的解决方案。
        • 例如,Balanced-Softmax (Ren et al. 2020) 基于贝叶斯估计提出了Softmax的无偏扩展。
      • 重新平衡方法可能会损害学习到的主干网络的区分能力。
    • 因此,解耦方法提出了两阶段训练,以解耦表征学习和分类器训练。
    • 迁移学习方法通过从头部类别转移知识到尾部类别来增强模型的性能。
      • BatchFormer 引入了一个单层 Transformer来通过学习每个小批量中的样本关系来转移知识。
    • 基于集成的方法利用多个专家来解决长尾视觉学习问题。RIDE 提出了一个多分支网络来并行学习多样化的分类器。尽管基于集成的方法取得了优越的性能,但引入多个专家增加了参数数量和计算复杂性。
  • 对比学习(Contrastive learning)
    • 对比学习因其在表征学习上的优越性能而受到了广泛关注。对比学习的目标是找到一个能够通过将正样本对拉近同时将负样本对推开来编码语义相似性的特征空间。
    • 一些研究者已经在长尾识别中利用了对比学习。
      • 例如,KCL 发现基于对比学习的自监督学习可以学习到一个平衡的特征空间。为了利用有用的标签信息,他们通过引入k-正采样方法扩展了 SCL。
      • TSC 通过使不同类的特征收敛到预定义的均匀分布目标来改善特征分布的均匀性。
      • 一些方法(Yun et al. 2022; Zhang et al. 2023)通过结合局部化信息来扩展对比学习,以利于密集预测任务。
  • 本文工作与之前的工作在几个方面有所不同:
    • 现有的使用对比学习的长尾识别工作平等对待两种正样本。据我们所知,这是最早揭示平等对待两种正样本会导致跨类别优化偏差的工作之一。因此,我们提出了一个解耦的监督对比损失,以追求平衡的类内距离优化。
    • 我们进一步通过引入基于补丁的自我蒸馏来扩展对比学习,以在类别之间转移知识,减轻尾部类别的代表性不足,并导致对类间距离的更有效优化。
    • 与其他迁移学习方法不同,PBSD 利用基于补丁的特征来挖掘不同类别之间的共享模式,并设计一个自我蒸馏过程来转移知识。自我蒸馏过程不依赖于大型教师模型或多专家模型(Li et al. 2022),使其效率更高。
    • 与仅从图像的不同视图挖掘相似补丁的基于补丁的对比学习方法相比,PBSD 在不同的图像之间转移知识。这些差异以及在大量实验中的有希望性能突出了这项工作的贡献。

Section 3 Methodology

3.1 Analysis of SCL

  • 长尾图像分类任务的公式化描述:

    • 给定一个训练数据集 D = { x i , y i } i = 1 n \mathcal{D}=\{x_i,y_i\}^n_{i=1} D={xi,yi}i=1n,其中 x i x_i xi 表示一个图像, y i ∈ { 1 , … , K } y_i\in\{1,\dots,K\} yi{1,,K} 是其类别标签。
    • 假设 n k n^k nk 表示类 k k k D \mathcal{D} D 中的基数(即样本数量),并且类的索引按基数降序排序,即如果 a < b a<b a<b,则 n a ≥ n b n^a\ge n^b nanb
    • 在长尾识别中,训练数据集是不平衡的,即 n 1 ≫ n K n^1\gg n^K n1nK,不平衡比定义为 n 1 / n K n^1/n^K n1/nK
    • 对于图像分类任务,算法旨在学习一个特征提取主干网络 v i = f θ ( x i ) v_i=f_θ(x_i) vi=fθ(xi),和一个线性分类器,
      • 它首先将图像 x i x_i xi 映射到一个全局特征图 u i u_i ui,并使用全局池化得到一个 d d d 维特征向量 v i v_i vi
      • 然后,它将特征向量分类到一个 K K K 维的分类得分。通常,测试数据集 T \mathcal{T} T 是平衡的。
  • 监督对比学习(Supervised Contrastive Learning, SCL)通常被用来学习特征提取主干网络。

    • 给定一个锚定图像 x i x_i xi,定义 z i = g γ ( v i ) z_i=g_\gamma(v_i) zi=gγ(vi) 为通过主干网络和一个额外的投影头 g γ g_\gamma gγ 提取的归一化特征, z i + z^+_i zi+ 为通过数据增强生成的 x i x_i xi 的正样本的归一化特征。
    • 我们使用 M M M 来表示可以通过记忆队列获取的样本特征集合,并使用 P i P_i Pi 来表示从 M M M 中提取的 x i x_i xi 的正特征集合,其中 P i = { z t ∈ M : y t = y i } P_i=\{z_t\in M:y_t=y_i\} Pi={ztM:yt=yi}
  • SCL 通过将锚定图像及其正样本拉近来减小类内距离,同时通过将不同类标签的图像推开来增大类间距离,即:
    L s c l = − 1 ∣ P i ∣ + 1 ∑ z t ∈ { z i + ∪ P i } log ⁡ p ( z t ∣ z i ) , ( 1 ) \mathcal{L}_{scl}=\frac{-1}{|P_i|+1}\sum_{\mathrm{z}_t\in\{\mathrm{z}_i^+\cup P_i\}}\log p(\mathrm{z}_t|\mathrm{z}_i),\qquad(1) Lscl=Pi+11zt{zi+Pi}logp(ztzi),(1)

    • 其中 ∣ P i ∣ |P_i| Pi P i P_i Pi 的基数(即集合中元素的数量)。

    • 使用 τ \tau τ 表示一个预定义的温度参数,条件概率 p ( z t ∣ z i ) p(z_t|z_i) p(ztzi) 计算如下:
      p ( z t ∣ z i ) = exp ⁡ ( z t ⋅ z i / τ ) ∑ z m ∈ { z i + ∪ M } exp ⁡ ( z m ⋅ z i / τ ) . ( 2 ) p(\mathrm{z}_t|\mathrm{z}_i)=\frac{\exp(\mathrm{z}_t\cdot\mathrm{z}_i/\tau)}{\sum_{\mathrm{z}_m\in\{\mathrm{z}_i^+\cup M\}}\exp(\mathrm{z}_m\cdot\mathrm{z}_i/\tau)}.\qquad(2) p(ztzi)=zm{zi+M}exp(zmzi/τ)exp(ztzi/τ).(2)

    • 等式(1)可以表述为一个分布对齐任务,
      L a l i g n = ∑ z t ∈ { z i + ∪ M } − p ^ ( z t ∣ z i ) log ⁡ p ( z t ∣ z i ) , ( 3 ) \mathcal{L}_{align}=\sum_{\mathrm{z}_t\in\{\mathrm{z}_i^+\cup M\}}-\hat{p}(\mathrm{z}_t|\mathrm{z}_i)\log p(\mathrm{z}_t|\mathrm{z}_i),\qquad(3) Lalign=zt{zi+M}p^(ztzi)logp(ztzi),(3)

      • 其中 p ^ ( z t ∣ z i ) \hat{p}(z_t|z_i) p^(ztzi) 是目标分布的概率。

      • 对于 z i + z^+_i zi+ z t ∈ P i z_t\in P_i ztPi,SCL 将它们平等地视为正样本,并将它们的目标概率设置为 1 / ( ∣ P i ∣ + 1 ) 1/(|P_i|+1) 1/(Pi+1)

      • 对于 M M M 中不同类标签的其他图像,SCL 将它们视为负样本,并设置它们的目标概率为 0。

  • 关于梯度:

    • 对于锚定图像 x i x_i xi 的特征 z i z_i zi,SCL 的梯度为:
      ∂ L s c l ∂ z i = 1 τ { ∑ z j ∈ N i z j p ( z j ∣ z i ) + z i + ( p ( z i + ∣ z i ) − 1 ∣ P i ∣ + 1 ) + ∑ z t ∈ P i z t ( p ( z t ∣ z i ) − 1 ∣ P i ∣ + 1 ) } , ( 4 ) \frac{\partial\mathcal{L}_{scl}}{\partial\mathrm{z}_{i}}=\frac{1}{\tau}\Bigg\{\sum_{\mathrm{z}_{j}\in N_{i}}\mathrm{z}_{j}p(\mathrm{z}_{j}|\mathrm{z}_{i}) +\mathrm{z}_{i}^{+}\left(p(\mathrm{z}_{i}^{+}|\mathrm{z}_{i})-\frac{1}{|P_{i}|+1}\right)+\sum_{\mathrm{z}_{t}\in P_{i}}\mathrm{z}_{t}\left(p(\mathrm{z}_{t}|\mathrm{z}_{i})-\frac{1}{|P_{i}|+1}\right)\Bigg\},\qquad(4) ziLscl=τ1{zjNizjp(zjzi)+zi+(p(zi+zi)Pi+11)+ztPizt(p(ztzi)Pi+11)},(4)

      • 其中 N i N_i Ni x i x_i xi 的负集合,包含从 { z j ∈ M : y j ≠ y i } \{\mathrm{z}_j\in M:y_j\ne y_i\} {zjM:yj=yi} 中提取的特征。
    • SCL 涉及两种类型的正样本 z i + z^+_i zi+ z t ∈ P i z_t\in P_i ztPi。我们将锚定图像与两种类型的正样本拉近的梯度计算为:
      ∂ L s c l ∂ z i ∣ z i + = z i + ( p ( z i + ∣ z i ) − 1 ∣ P i ∣ + 1 ) , ∂ L s c l ∂ z i ∣ z t = z t ( p ( z t ∣ z i ) − 1 ∣ P i ∣ + 1 ) , z t ∈ P i . ( 5 ) \begin{align} \left.\frac{\partial\mathcal{L}_{scl}}{\partial\mathrm{z}_{i}}\right|_{\mathrm{z}_{i}^{+}}&=\mathrm{z}_{i}^{+}\left(p(\mathrm{z}_{i}^{+}\mid\mathrm{z}_{i})-\frac{1}{|P_{i}|+1}\right), \\ \frac{\partial\mathcal{L}_{scl}}{\partial\mathrm{z}_{i}}\Bigg|_{\mathrm{z}_{t}}&=\mathrm{z}_{t}\left(p(\mathrm{z}_{t}|\mathrm{z}_{i})-\frac{1}{|P_{i}|+1}\right),\mathrm{z}_{t}\in P_{i}. \end{align}\qquad(5) ziLscl zi+ziLscl zt=zi+(p(zi+zi)Pi+11),=zt(p(ztzi)Pi+11),ztPi.(5)

    • 在训练开始时,两种正样本的梯度 L 2 L_2 L2 范数之比为,
      ∥ ∂ L s c l ∂ z i ∥ z i + ∑ z t ∈ P i ∥ ∂ L s c l ∂ z i ∥ z t ≈ 1 ∣ P i ∣ . ( 6 ) \frac{\left\|\frac{\partial\mathcal{L}_{scl}}{\partial\mathbf{z}_{i}}\right\|_{\mathbf{z}_{i}^{+}}}{\sum_{\mathbf{z}_{t}\in P_{i}}\left\|\frac{\partial\mathcal{L}_{scl}}{\partial\mathbf{z}_{i}}\right\|_{\mathbf{z}_{t}}}\approx\frac{1}{|P_{i}|}.\qquad(6) ztPi ziLscl zt ziLscl zi+Pi1.(6)

  • 当 SCL 收敛时, z i + z^+_i zi+ 的最优条件概率为,
    p ( z i + ∣ z i ) = 1 ∣ P i ∣ + 1 . ( 7 ) p(\mathrm{z}_i^+|\mathrm{z}_i)=\frac{1}{|P_i|+1}.\qquad(7) p(zi+zi)=Pi+11.(7)

上述计算的详细证明可以在补充材料中找到。

  • SCL 的偏向性:

    • 在 SCL 中,记忆队列 M M M 是从训练集中均匀采样的,这导致 ∣ P i ∣ ≈ n y i n ∣ M ∣ |P_i|\approx\frac{n^{y_i}}{n}|M | PinnyiM。在一个平衡的数据集中, n 1 ≈ n 2 ≈ ⋯ ≈ n K n_1\approx n_2 \approx\cdots\approx n_K n1n2nK,从而使得不同类别之间的 ∣ P i ∣ |P_i| Pi 保持平衡。
    • 对于一个具有不平衡 ∣ P i ∣ |P_i| Pi 的长尾数据集,由于方程 (4) 中的第三项主导了梯度,SCL 使得头部类别更加关注将锚定特征 z i z_i zi P i P_i Pi 中的特征拉近。
  • 头类与尾类的不同特征表示:

    • 如图 2 所示,两种正样本拉扯的梯度 L 2 L_2 L2 范数之比是不平衡的。

      在这里插入图片描述

      • 图片注解:图 2:在 ImageNet-LT 上,根据方程 (6) 计算的拉扯锚定图像与两种正样本的平均梯度 L2 范数比。‘*’ 表示理论比值。SCL 平等对待两种正样本,导致优化不平衡。两种正样本指的是数据增强和其他同类的图像。
    • 当 SCL 的训练收敛时, p ( z i + ∣ z i ) p(\mathrm{z}^+_i|\mathrm{z}_i) p(zi+zi) 的最优值也受到 ∣ P i ∣ |P_i| Pi 的影响,如图 7 所示。不同类别间学习到的特征不一致性在图 1 (a) 和 (b) 中得到了说明。

    • 这一现象也被 (Wei et al. 2020) 所验证,即通过与 z i + z^+_i zi+ P i P_i Pi 中的样本拉扯 z i z_i zi 会导致学习到不同的表示,即分别对尾部类别和头部类别学习外观特征和语义特征。

  • 方程 (4) 也表明,SCL 平等地推开所有负样本来增大类间距离。这种策略忽略了不同类别之间有价值的相似线索。为了寻求更好地优化类内和类间距离的方法,我们提出了解耦监督对比损失(DSCL)来解耦两种正样本以防止偏置优化,以及基于补丁的自我蒸馏(PBSD)来利用类别之间的相似线索。

3.2 Decoupled Supervised Contrastive Loss

解耦监督对比损失

  • DSCL 的提出是为了确保对不同类别之间的类内距离进行更均衡的优化。它解耦了两种正样本,并为它们添加不同的权重,使得梯度 L2 范数比和 p ( z i + ∣ z i ) p(\mathrm{z}^+_i|\mathrm{z}_i) p(zi+zi) 的最优值不受每个类别样本数量的影响。我们表示 DSCL 为:
    L d s c l = − 1 ∣ P i ∣ + 1 ∑ z l ∈ { z i + ∪ P i } log ⁡ exp ⁡ w t ( z t ⋅ z i / τ ) ∑ z m ∈ { z i + ∪ M } exp ⁡ ( z m ⋅ z i / τ ) , ( 8 ) \mathcal{L}_{dscl}=\frac{-1}{|P_{i}|+1}\sum_{\mathrm{z}_{l}\in\{\mathrm{z}_{i}^{+}\cup P_{i}\}}\log\frac{\exp w_{t}(\mathrm{z}_{t}\cdot\mathrm{z}_{i}/\tau)}{\sum_{\mathrm{z}_{m}\in\{\mathrm{z}_{i}^{+}\cup M\}}\exp(\mathrm{z}_{m}\cdot\mathrm{z}_{i}/\tau)},\qquad(8) Ldscl=Pi+11zl{zi+Pi}logzm{zi+M}exp(zmzi/τ)expwt(ztzi/τ),(8)

    • 其中
      w t = { α ( ∣ P i ∣ + 1 ) , z t = z i + ( 1 − α ) ( ∣ P i ∣ + 1 ) ∣ P i ∣ , z t ∈ P i ( 9 ) w_t=\begin{cases}\alpha(|P_i|+1),&\mathrm{z}_t=\mathrm{z}_i^+\\\frac{(1-\alpha)(|P_i|+1)}{|P_i|},&\mathrm{z}_t\in P_i\end{cases}\qquad(9) wt={α(Pi+1),Pi(1α)(Pi+1),zt=zi+ztPi(9)

      • 其中 α ∈ [ 0 , 1 ] \alpha\in[0,1] α[0,1] 是一个预定义的超参数。
    • 所提出的 DSCL 是 SCL 在平衡和不平衡两种情况下的广义化。如果数据集是平衡的,通过设置 α = 1 / ( ∣ P i ∣ + 1 ) \alpha=1/(|P_i|+1) α=1/(Pi+1),DSCL 就等同于 SCL。

  • 接下来我们将说明为什么公式 (8) 能带来更均衡的优化。

    • 在训练开始时,两种正样本的梯度 L2 范数比为:
      ∥ ∂ L d s c l ∂ z i ∣ z i + ∥ 2 ∑ z t ∈ P i ∥ ∂ L d s c l ∂ z i ∣ z t ∥ 2 ≈ α 1 − α . ( 10 ) \frac{\left\|\frac{\partial\mathcal{L}_{dscl}}{\partial\mathrm{z}_i}|_{\mathrm{z}_i^+}\right\|_2}{\sum_{\mathrm{z}_t\in P_i}\left\|\frac{\partial\mathcal{L}_{dscl}}{\partial\mathrm{z}_i}|_{\mathrm{z}_t}\right\|_2}\approx\frac{\alpha}{1-\alpha}.\qquad(10) ztPi ziLdsclzt 2 ziLdsclzi+ 21αα.(10)

    • 当 DSCL 收敛时, z i + \mathrm{z}^+_i zi+ 的最优条件概率为 p ( z i + ∣ z i ) α p(\mathrm{z}^+_i|\mathrm{z}_i)\alpha p(zi+zi)α,详细证明见补充材料。

    • 如图 2 所示,方程(10)表明,两种正样本的梯度比不受 ∣ P i ∣ |P_i| Pi 的影响。DSCL 还确保 p ( z i + ∣ z i ) p(\mathrm{z}^+_i|\mathrm{z}_i) p(zi+zi) 的最优值不受 ∣ P i ∣ |P_i| Pi 的影响,从而减轻了头部和尾部类别之间不一致的特征学习问题。

3.3 Patch-based Self Distillation

基于补丁的自我蒸馏

  • 共享视觉模式:

    • 视觉模式可以在不同类别之间共享,例如,“轮子”的视觉模式被“卡车”、“汽车”和“公共汽车”这些类别共享。尾类中许多视觉模式的特征可以从共享这些视觉模式的头类中学习到,从而降低尾部类别表征学习的难度。SCL 在特征空间中将不同类别的两个实例推开,即使它们共享有意义的视觉模式。

    • 如图 4 所示,我们从黄色边界框中提取查询补丁特征,并从数据集中检索出最相似的前 3 个样本。SCL 的检索结果(“w/o PBSD”表示没有 PBSD)与查询补丁在语义上无关,这表明 SCL 在学习和利用补丁级别的语义线索方面并不奏效。

      在这里插入图片描述

      • 图片注解:图 4:在 ImageNet-LT 上的基于补丁的图像检索结果(返回前 3 个)。查询补丁用黄色边界框突出显示。查询补丁特征在检索图像上的响应图也进行了说明。
  • 受细粒度图像识别中基于补丁的方法的启发,我们引入了基于补丁的特征来编码视觉模式。

    • 给定由主干网络提取的图像 x i \mathrm{x}_i xi 的全局特征图 u i \mathrm{u}_i ui,我们首先随机生成一些补丁框。这些补丁框的坐标表示为 { B i [ j ] } j = 1 L \{\mathrm{B}_i[j]\}^L_{j=1} {Bi[j]}j=1L,其中 L L L 是补丁框的数量。

    • 我们根据这些补丁框的坐标应用 ROI 池化,并将池化特征送入一个投影头,以获得归一化的嵌入特征 c i [ j ] j = 1 L {\mathrm{c}_i[j]}^L_{j=1} ci[j]j=1L
      c i [ j ] = g γ ( R O I ( u i , B i [ j ] ) ) . ( 11 ) \mathrm{c}_i[j]=\mathrm{g}_\gamma\left(\mathrm{ROI}\left(\mathrm{u}_i,\mathrm{B}_i[j]\right)\right).\qquad(11) ci[j]=gγ(ROI(ui,Bi[j])).(11)

    • 与公式 (2) 类似,利用条件概率来计算实例之间的相似性关系,
      p ( z t ∣ c i j ) = exp ⁡ ( z t ⋅ c i [ j ] / τ ) ∑ z m ∈ { z i + ∪ M } exp ⁡ ( z m ⋅ c i [ j ] / τ ) . ( 12 ) p(\mathrm{z}_t|\mathrm{c}_i^j)=\frac{\exp(\mathrm{z}_t\cdot\mathrm{c}_i[j]/\tau)}{\sum_{\mathrm{z}_m\in\{\mathrm{z}_i^+\cup M\}}\exp(\mathrm{z}_m\cdot\mathrm{c}_i[j]/\tau)}.\qquad(12) p(ztcij)=zm{zi+M}exp(zmci[j]/τ)exp(ztci[j]/τ).(12)

    • 如果 z t \mathrm{z}_t zt 所对应的图像与基于斑块的特征具有共同的视觉模式,则 z t \mathrm{z}_t zt c i [ j ] \mathrm{c}_i[j] ci[j] 将具有很高的相似性。因此,公式(12)编码了每对实例之间的相似性线索。

    • 我们将相似性线索作为监督训练过程的知识。为了维持这种知识,我们还根据 B i [ j ] j = 1 L {\mathrm{B}_i[j]}^L_{j=1} Bi[j]j=1L 从图像中裁剪多个图像补丁,并使用主干网络提取它们的特征嵌入 s i [ j ] j = 1 L {\mathrm{s}_i[j]}^L_{j=1} si[j]j=1L
      s i [ j ] = g γ ( f θ ( C r o p ( x i , B i [ j ] ) ) ) . ( 13 ) \mathrm{s}_i[j]=\mathrm{g}_\gamma\left(\mathrm{f}_\theta\left(\mathrm{Crop}(\mathrm{x}_i,B_i[j])\right)\right).\qquad(13) si[j]=gγ(fθ(Crop(xi,Bi[j]))).(13)

    • PBSD 通过以下损失强制图像补丁的特征嵌入产生与基于补丁的特征相同的相似度分布:
      L p b s d = 1 L ∑ j = 1 L ∑ z t ∈ { z i + ∪ M } − p ( z t ∣ c i [ j ] ) log ⁡ p ( z t ∣ s i [ j ] ) , ( 14 ) \mathcal{L}_{pbsd}=\frac{1}{L}\sum_{j=1}^{L}\sum_{z_{t}\in\{z_{i}^{+}\cup M\}}-p(\mathrm{z}_{t}|\mathrm{c}_{i}[j])\log p(\mathrm{z}_{t}|\mathrm{s}_{i}[j]),\qquad(14) Lpbsd=L1j=1Lzt{zi+M}p(ztci[j])logp(ztsi[j]),(14)
      注意, p ( z t ∣ c i [ j ] ) p(\mathrm{z}_t|\mathrm{c}_i[j]) p(ztci[j]) 已经从计算图中分离出来以阻止梯度传播。

  • 对象的局部视觉模式可以被不同的类别共享。

    • 因此,我们使用基于补丁的特征来表示视觉模式。通过计算 p ( z t ∣ c i [ j ] ) p(\mathrm{z}_t|\mathrm{c}_i[j]) p(ztci[j]) 来挖掘图像之间共享模式的关系。
    • 最小化方程(14)可以保持共享模式,以传递知识并减轻尾部类别的代表性不足。
    • 图 4 中展示的检索结果表明,我们的方法有效地加强了补丁级特征和补丁到图像相似性的学习,使得能够挖掘不同类别之间的共享视觉模式。实验也验证了 PBSD 损失对性能提升的重要性。
  • 多裁剪技巧在自监督学习中常用,用于生成锚定图像的更多增强样本。

    • 它引入低分辨率裁剪以减少计算复杂性。我们的动机和损失设计及多裁剪策略不同。

    • PBSD 的动机是利用头部和尾部类别之间的共享模式来辅助尾部类别的学习。

    • 通过 ROI 池化获得的基于补丁的特征来表示共享模式。方程(14)执行自我蒸馏以保持共享模式。

    • 我们进行了一项实验,通过用多裁剪技巧替换 PBSD。如表 1 所示,在 ImageNet-LT 上的性能从 57.7% 下降到 56.1%,这表明 PBSD 比多裁剪策略更有效。

      在这里插入图片描述

      • 图片注解:表 1:我们方法中每个组件在 ImageNet-LT 上的有效性。SCL 作为基准。 ∗ * 表示使用全局视图的特征而不是基于补丁的特征来计算方程(14)。 † \dagger 表示使用多裁剪技巧而不是 PBSD。

3.4 Training Pipeline

训练流程

  • 我们在图 3 中展示了我们的方法。

    在这里插入图片描述

    • 图片注解:图 3:所提出方法的说明。对训练图像进行数据增强以获得两个全局视图。然后从全局视图中裁剪出一个小补丁。使用主干网络和指数移动平均(EMA)主干来提取归一化特征。这些特征用于计算与记忆队列 M 的相似度分布。 L d s c l \mathcal{L}_{dscl} Ldscl 通过拉近锚定图像与其正样本并推开锚定图像与其负样本来优化特征空间。 L p b s d \mathcal{L}_{pbsd} Lpbsd 通过模仿两个相似度分布来传递知识。
  • 为了维护一个记忆队列,我们使用了如 (He et al. 2020) 所述的动量更新模型。训练是由两种损失监督的,即解耦的监督对比损失和基于补丁的自我蒸馏损失。整体训练损失表示为:
    L o v e r a l l = L d s c l + λ L p b s d , ( 15 ) \mathcal{L}_{overall}=\mathcal{L}_{dscl}+\lambda\mathcal{L}_{pbsd},\qquad(15) Loverall=Ldscl+λLpbsd,(15)

    • 其中, λ \lambda λ 是损失重量。
  • 我们的方法专注于表征学习,可以通过拼接他们的损失应用于不同的任务。

    • 遵循 (Li et al. 2021; Kang et al. 2020) 的做法,在主干网络的训练完成后,我们丢弃了学习的投影头 g γ ( ⋅ ) g_\gamma(\cdot) gγ(),并在学习的主干网络上使用标准的交叉熵损失和类平衡采样策略训练一个线性分类器。
    • 下一节将介绍我们对所提出方法的评估。

Section 5 Experiments

5.1 Experimental Setup

  • 数据集:

    我们使用三个流行的数据集来评估长尾识别性能。

    • ImageNet-LT 包含1,000个类别的115,846张训练图像,这些图像是从ImageNet-1K 中采样而来的,类基数从 5 到 1,280 不等。
    • iNaturaList 2018 是一个真实世界中的长尾数据集,包含 8,142 个类别的 437,513 张训练图像,类基数从 2 到 1,000 不等。
    • Places-LT 包含 365 个类别的 62,500 张训练图像,这些图像是从 Places 中采样而来的,类基数从 5 到 4,980 不等。
  • 评估指标

    • 我们遵循标准评估指标,在测试集上评估我们的模型,并报告所有类别的整体 top-1 准确率。
    • 为了进行详细分析,我们遵循 (Liu et al. 2019) 的做法,根据类别的图像数量将类别分组为多个部分:许多(Many,> 100),中等(Medium,20 - 100),以及少数(Few,< 20)。
  • 实现细节

    • 为了公平比较,我们遵循 TSC 和 KCL 的实现,
      • 首先在第一阶段训练主干网络,然后在第二阶段使用冻结学习的 backbone 训练线性分类器。
      • 除了使用在 ImageNet1K 上预训练的 ResNet-152 用于 Places-LT 外,我们在所有实验中都采用 ResNet-50 作为主干网络。
      • 方程(9)中的 α \alpha α 设置为 0.1,方程(15)中的损失权重 λ \lambda λ 设置为 1.5。
    • 在第一阶段,基本框架与 MoCoV2 相同,
      • 用于更新 EMA 模型的动量值为 0.999,温度 τ \tau τ 设置为 0.07,记忆队列 M M M 的大小为 65536,投影头的输出维度为 128。
      • 数据增强与 MoCoV2 相同。
      • 从全局视图中随机采样补丁特征的位置,其缩放比例为 (0.05, 0.6)。从全局视图中裁剪的图像补丁被调整大小到 64。
      • 每个锚定图像的基于补丁的特征 L L L 为 5。
      • 使用 SGD 优化器,学习率从 0.1 开始,通过余弦调度器在 200 个 epoch 中从 0.1 衰减到 0,批次大小为 256,使用 2 张 Nvidia RTX 3090 进行训练。
      • 对于 Places-LT,我们只对主干网络的最后块进行微调,训练 30 个 epoch。
    • 在第二阶段,参数与 (Li et al. 2021) 相同。
      • 使用 SGD 优化器,ImageNet-LT, iNaturaList 2018, 和 Places-LT 数据集上学习率分别初始化为 10, 30, 2.5 ,且分别在 epoch 20 和 30 乘以 0.1,
      • 使用 CE 损失和类平衡采样训练线性分类器,批次大小为 2048,训练 40 个 epoch。

5.2 Ablation Study

消融实验

  • 组件分析(Components analysis)

    • 我们在表 1 中对每个提出的组件在 ImageNet-LT 上的有效性进行了分析。SCL 被用作基准。
    • 与 SCL 基线相比,DSCL 提高了 top-1 准确率 1.4%。这个结果已经比最近基于对比学习的 TSC 方法更好。
    • 许多用于长尾分类的方法可以提高尾部类别的性能,但会牺牲头部类别的性能。与那些工作不同,PBSD 提高了头部和尾部类别的性能。
    • 表 1 清楚地表明,DSCL 和 PBSD 的组合实现了最佳性能。引入基于补丁的特征对 PBSD 非常重要。我们进行了实验,使用全局视图的特征来计算方程(14)。这导致整体准确率下降了约 1.5%。
    • 此外,我们的方法也比多裁剪技巧更有效,即它比多裁剪技巧提高了 1.6% 的整体准确率。
    • 总的来说,我们方法中的每个组件都有助于提高性能。
  • 不同主干网络的组件分析(Components analysis on different backbones)

    • 为了验证我们的方法在不同主干网络上都能很好地推广,我们在 ImageNet-LT 上进一步进行了使用 ResNeXt50 作为主干网络的实验。

    • 结果总结在表 2 中,其中我们的提出的组件在 ResNext50 上也有效。DSCL 和 PBSD 都可以带来性能提升。它们的组合实现了最佳性能。

      在这里插入图片描述

      • 图片注解:表 2:在不同主干网络上对我们方法中每个组件的消融研究。
  • α \alpha α 在方程(9)中的影响(The impact of α \alpha α in Eq)

    • α \alpha α 在方程(9)中的影响在图 5(a)中进行了调查

      在这里插入图片描述

      • 图片注解:图5:在 ImageNet-LT 上,分别对方程(9)中的 α \alpha α、每个锚定图像的基于补丁的特征数量 L L L,以及损失权重 λ \lambda λ 进行评估,如图(a)、(b)和(c)所示。图(a)中的绿色虚线表示基线 SCL。
    • α \alpha α 决定了拉锚定图像与其数据增强的样本的权重。

    • α = 0 \alpha=0 α=0 意味着只拉锚定图像与其同一类的其他图像。

      • 这种设置将准确率从 57.7% 降低到 56.8%,显示了涉及两种正样本的重要性。
      • 此外,这种设置仍然优于 SCL 基线,如图中的绿色虚线所示。这表明防止偏差特征是重要的。
    • α = 1 \alpha=1 α=1 会使损失退化为自监督损失。

      • 由于缺乏标签信息,准确率仅为 39.8%。我们设置 α \alpha α 为 0.1,这得到了最佳性能。
      • α \alpha α 设置为 0.1 也在不同数据集上取得了有竞争力的性能,如图随后的实验所示。
  • 每个锚定图像的基于补丁的特征数量的影响(The impact of the number of patch-based features)

    • 每个锚定图像的基于补丁的特征数量的影响在图 5(b)中显示。
    • 模型受益于将更多基于补丁的特征纳入训练。
    • 当将 L L L 从 1 增加到 5 时,top-1 准确率从 55.0% 提高到 57.7%。
      • 我们设置 L L L 为 5,以在训练成本和准确率之间取得合理的权衡。
  • 损失权重 λ \lambda λ 的影响(The impact of the loss weight λ \lambda λ

    • 损失权重 λ \lambda λ 的影响在图 5(c)中显示。
    • 因为 λ \lambda λ 权重 PBSD 的影响,该图显示 PBSD 很重要。
      • λ \lambda λ 从 1 增加到 2 获得相似的性能。
      • 我们为不同数据集将其设置为 1.5。

5.3 Comparison with Recent Works

与近期工作的比较

  • 我们将我们的方法与 ImageNet-LT、iNaturaList 2018 和 Places-LT 上的最近工作进行了比较。比较的方法包括:

    • 重新平衡方法(Ren et al. 2020)

    • 解耦方法(Kang et al. 2019; Zhang et al. 2021)

    • 基于迁移学习的方法(Hou, Yu, and Tao 2022)

    • 扩展 SCL 方法(Kang et al. 2020; Li et al. 2021; Cui et al. 2021; Zhu et al. 2022)

    • 基于集成的方法(Li et al. 2022; Zhang et al. 2022; Wang et al. 2020)

    • 实验结果总结在表3中。

      在这里插入图片描述

      • 图片注解:表 3:在 ImageNet-LT、iNaturaList2018 和 Places-LT 上与最近方法的比较。CE 表示使用交叉熵损失训练模型。 ∗ ∗ 表示我们方法的第二阶段学习率初始化为 2.5。 ‡ ‡ 表示模型训练没有使用 RandAug 并且为了公平比较,训练了 200 个 epoch。 † \dagger 表示模型使用了 RandAug 并且训练了 400 个 epoch,这比我们的训练设置更昂贵。
  • 如表 3 所示,直接使用交叉熵损失会导致尾部类别的性能较差。

    • 大多数长尾识别方法可以提高整体性能,但会牺牲“许多”部分的准确性。
    • 与重新平衡方法相比,解耦方法在训练后调整分类器,并取得了更好的性能,展示了两阶段训练策略的有效性。
    • 与上述工作相比,基于迁移学习的方法在头部类别上取得了更好的性能。例如,BatchFormer 在“许多”部分比与它具有相同整体准确率的 DisAlign 获得了更高的准确性。
  • 我们的方法在 ImageNet-LT 上实现了最高的整体准确率 57.7%。它还超过了使用更强数据增强和两倍训练周期的 PaCo。

    • 为了公平比较,我们使用与我们的方法相同的数据增强和训练周期来训练 PaCo,这使得其准确率从 57.0% 下降到 53.6%。
    • 我们还发现,第二阶段线性分类器训练的学习率可以改变“许多”、“中等”和“少数”部分的准确性分布,同时保持相同的整体准确率。
      • 例如,在第二训练阶段使用 2.5 的学习率,少数部分的准确性从 35.4% 增加到 38.7%,而整体准确率仅下降了约 0.3%。
      • 因此,我们注意到,整体准确率可能比每个部分的准确率更有意义,这可以通过超参数进行调整。
  • 我们的方法还可以与基于集成的方法相结合,以进一步提高其性能。

    • 与 RIDE 结合后,我们的方法在 ImageNet-LT 上实现了 59.7% 的整体准确率,优于所有比较的基于集成的方法。
    • 我们的方法在 iNaturaList 2018 上也取得了优越的性能,其表现与使用更强数据增强和两倍训练周期的 NCL 相当。
    • 仅使用单个模型,我们的方法在 Places-LT 上取得了最佳性能。

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

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

相关文章

《米小圈动画古诗》—“诗情画意”也不是很难嘛!

创新是一个民族的灵魂和希望&#xff0c;是一个国家兴旺发达的不竭动力&#xff0c;而学习古诗词就是丰富孩子想象力、培养学生创新精神最有效的方法。因为&#xff0c;诗的韵律&#xff0c;情绪跌宕&#xff0c;可以让孩子在大脑中形成一幅完整的图画。 诗歌带给人最美妙的体…

MacOS搭建docker本地私有镜像库

相关环境 macOS: bigsur 11.7.8 docker desktop: 4.22.0 docker engine: 24.0.5 准备工作 本机已经安装好docker desktop&#xff0c;未安装的自行参考其他教程。如果不能翻墙&#xff0c;可以修改本地的镜像地址&#xff0c;可在docker desktop 设置中的docker engine中修…

最新AI实景自动无人直播软件:智能讲解、一键开播,享受24小时自动专业直播体验

在现今数字化时代&#xff08;ai无人直播下载&#xff1a;hzzxar&#xff09;直播行业越来越受到人们的关注和喜爱。随着人工智能的不断发展&#xff0c;AI实景自动无人直播软件应运而生&#xff0c;为商家提供了更便捷、高效的直播方式。本文将介绍如何利用这一创新技术&#…

活动预告 | 5月16日 Streaming Lakehouse Meetup · Online 与你相约!

随着 Apache Flink 技术社区的不断成熟和发展&#xff0c;越来越多企业开始利用 Flink 进行流式数据处理&#xff0c;从而提升数据时效性价值&#xff0c;获取业务实时化效果。与此同时&#xff0c;在大数据领域数据湖架构也日益成为新的技术趋势&#xff0c;越来越多企业开始采…

源码部署与SaaS账号:企业软件选择的自建房与租赁公寓之辩

在数字化运营的时代&#xff0c;企业选择软件解决方案就如同在选择住所&#xff1a;源码部署类似于“自建房屋”&#xff0c;而SaaS账号则更像是“租赁公寓”。 自建房屋&#xff08;源码部署&#xff09; 当你选择自建房屋时&#xff0c;你需要投入大量的时间和资金来购买土地…

Vue3---router(安装、路由跳转、路由守卫、本地存储)

Vue3—router&#xff08;安装、路由跳转、路由守卫、本地存储&#xff09; 目录 Vue3---router&#xff08;安装、路由跳转、路由守卫、本地存储&#xff09;基础使用安装创建路由 路由跳转无参跳转js写法html写法 有参跳转queryparams 路由守卫额外&#xff1a;本地存储sessi…

百度云内容审核快速配置 (java)

为什么要选择百度云 &#xff1f; 因为他免费用一年 首先要先开通百度云内容安全服务 按照操作指引走完整套 ContentCensor Java SDK目录结构** com.baidu.aip├── auth //签名相关类├── http //Http通…

SpringCloudAlibaba:4.2云原生网关higress的基本使用

概述 简介 Higress是基于阿里内部的Envoy Gateway实践沉淀、以开源Istio Envoy为核心构建的下一代云原生网关&#xff0c; 实现了流量网关 微服务网关 安全网关三合一的高集成能力&#xff0c;深度集成Dubbo、Nacos、Sentinel等微服务技术栈 定位 在虚拟化时期的微服务架构…

力扣HOT100 - 74. 搜索二维矩阵

解题思路&#xff1a; 两次二分&#xff0c;第一次定位行&#xff0c;第二次定位列。 class Solution {public boolean searchMatrix(int[][] matrix, int target) {int m matrix.length, n matrix[0].length;int l 0, r m - 1;//定位行int row -1;while (l < r) {in…

Amazon Bedrock 托管 Llama 3 8B70B

Amazon Bedrock 托管 Llama 3 8B&70B&#xff0c;先来体验&#xff1a;&#xff08;*实验环境账号有效期为1天&#xff0c;到期自动关停&#xff0c;请注意重要数据保护&#xff09; https://dev.amazoncloud.cn/experience/cloudlab?id65fd86c7ca2a0d291be26068&visi…

AnaTraf:一款功能强大的网络流量分析工具,助您实现高效网络管理

在当下迅速发展的网络时代&#xff0c;网络流量分析已经成为网络管理和维护的关键环节。 AnaTraf网络流量分析仪&#xff1a;全面把控网络状况 AnaTraf 是一款高性能的实时网络流量分析工具,能够帮助您全面了解网络状况,提高网络运维效率。其主要功能包括: 全流量回溯分析&am…

Django框架之请求生命周期流程图

一、引言 WSGI、wsgiref、uwsgi三者是什么关系? WSGI是协议&#xff0c;小写的wsgiref和uwsgi是实现该协议的功能模块 缓存数据库 提前已经将你想要的数据准备好了&#xff0c;需要的时候直接拿就可以&#xff0c;提高了效率和响应时间。 eg:当你在修改你的数据的时候&…

Java -- (part23)

一.网络编程 1.概述 在网络通信协议下,不同计算机上运行的程序,进行数据传输 2.软件架构 CS架构:客户端和服务端 BS架构:浏览器和服务端 3.服务器概念 安装了服务器软件的计算机 4.通信三要素 IP地址 a.概述 计算机的唯一标识,用于两台计算机之间的链接 b.特殊的IP…

labview技术交流-将时间字符串转换成时间格式

应用场景 我们在数据库中设计了datetime类型的字段&#xff0c;比如字段名就叫“保存时间”&#xff0c;当我们使用labview将表中数据读取出来后datetime类型的数据是以字符串的格式显示的。而我们想计算两条数据“保存时间”的间隔时间时&#xff0c;用字符串类型自然是没法计…

vue 路由url中去掉#

修改前效果 想要去掉/# 如何实现&#xff1f; 1、typeScript中去掉url中# 找到项目中的router/index.ts-----------去掉createWebHashHistory中的Hash 将createWebHashHistory修改为createWebHistory 2、javaScript中去掉url中# 找到项目中的router/index.js-----------添加…

SAP 长文本语言代码维护

在SAP中&#xff0c;我们发现长文本都是有语言代码的&#xff0c;如果需要新增一个语言代码的话&#xff0c;需要通过程序RSCPCOLA进行维护处理 具体实现步骤如下&#xff1a; 1. 输入事务码SE38&#xff0c;输入程序名RSCPCOLA&#xff0c;然后点击执行按钮 2. 维护信函语言…

SpringBoot:SpringBoot:实战项目TILAS智能学习辅助系统1.3

登录认证 需求:输入登录请求服务器判断用户的用户名和密码 //控制层 PostMapping("/login")public Result login(RequestBody Emp emp);Overridepublic Result login(Emp emp) {Emp emp1 empService.selectLogin(emp);if(emp1 null){System.out.println("用…

旋转矩阵(将坐标轴旋转)

旋转矩阵&#xff08;将坐标轴旋转&#xff09; 在二维空间中&#xff0c;旋转可以用一个单一的角 定义。作为约定&#xff0c;正角表示逆时针旋转。把笛卡尔坐标的列向量关于原点逆时针旋转的矩阵是&#xff1a; 原坐标系下 坐标系逆时针旋转β 补充 sin(-a) -sin(a) co…

RuntimeError: Tensor must have a last dimension with stride 1

我在使用torch.view_as_complex将weight转化为复数时&#xff0c;遇到了这样一个错误&#xff1a;由于我在对weight使用view_as_complex之前使用了F.interpolate函数进行了分辨率调整&#xff0c;因此只需对张量weight添加.contiguous()即可。

【操作系统】进程与线程概念基础知识

进程与线程概念基础知识 进程进程的概念进程控制块进程状态进程三状态模型挂起进程模模型进程的上下文切换进程控制 线程为什么引入线程线程的概念线程与进程的比较线程的上下文切换线程的实现 进程 进程的概念 1. 进程的定义&#xff1a; 进程是指一个具有一定独立功能的程序…
最新文章