当前位置: 首页 > news >正文

YoloV9改进策略:归一化改进| ContraNormYoloV8中的创新应用(全网首发)

论文介绍

  • ContraNorm提出背景:过平滑是图神经网络(GNNs)和Transformer中普遍存在的一种现象,随着层数的增加,性能会恶化。现有方法多从表征完全收敛到单一点的视角来刻画过平滑,但论文深入到一个更一般的维度坍缩视角,其中表征位于一个狭窄的锥体中。
  • ContraNorm的提出:受对比学习在防止维度坍缩方面有效性的启发,论文提出了一种新的归一化层,称为ContraNorm。该层在嵌入空间中隐式地分散表征,导致更均匀的分布和更轻微的维度坍缩。
  • 实验验证:论文在各种真实数据集上的实验证明了ContraNorm的有效性,并展示了其可以轻松集成到GNNs和Transformer中,且参数开销可忽略不计。

创新点

  • 新的维度坍缩视角:论文没有从完全坍缩的角度看待过平滑,而是提出了一个更一般的维度坍缩视角,为理解过平滑现象提供了新的思路。
  • ContraNorm归一化层:受对比学习启发,设计了ContraNorm归一化层,该层能够隐式地分散表征,缓解维度坍缩问题。
  • 广泛的应用场景:ContraNorm可以轻松地集成到GNNs和Transformer中,为各种任务提供了性能提升的可能。

方法

  • 对比学习启示:论文首先分析了对比学习中的对齐损失和均匀性损失,并指出均匀性损失有助于通过使表征在嵌入空间中均匀分布来解决维度坍缩问题。
  • ContraNorm设计:基于对比学习的启示,论文设计了ContraNorm归一化层。该层通过优化诱导的方式,使表征在嵌入空间中更加均匀分布,从而缓解维度坍缩。
  • 理论分析与实验验证:论文对ContraNorm进行了理论分析,证明了其在某些条件下可以缓解完全坍缩和维度坍缩。同时,在各种任务上的实验验证了ContraNorm的有效性。

模块作用

  • 替代BatchNorm:在YoloV9中,使用ContraNorm模块替换了原有的BatchNorm模块。BatchNorm主要用于加速训练过程并稳定模型表现,但可能无法完全防止维度坍缩。
  • 增强表征能力:ContraNorm通过隐式地分散表征,使模型在训练过程中能够学习到更加丰富的特征信息,从而增强模型的表征能力。
  • 提升模型性能:在YoloV9中引入ContraNorm后,模型在目标检测任务上的性能得到了显著提升。这得益于ContraNorm对维度坍缩的有效缓解以及增强的表征能力。

改进的效果

  • 性能提升:在YoloV9中引入ContraNorm后,模型在目标检测任务上的准确率、召回率等关键指标上均有所提升。
  • 训练稳定性:ContraNorm的引入还提高了模型的训练稳定性,使模型在训练过程中更加鲁棒,不易受到噪声等因素的影响。
  • 泛化能力增强:由于ContraNorm能够学习到更加丰富的特征信息,因此模型的泛化能力也得到了显著增强。在未见过的数据上,模型仍然能够保持较好的性能表现。

论文翻译:《CONTRANORM:从对比学习的角度看待过平滑现象及其以外的问题》

过平滑是图神经网络(GNNs)和Transformer中普遍存在的一种现象,随着层数的增加,性能会恶化。我们没有从表征完全收敛到单一点的完全坍缩视角来刻画过平滑,而是深入到一个更一般的维度坍缩视角,其中表征位于一个狭窄的锥体中。因此,受对比学习在防止维度坍缩方面有效性的启发,我们提出了一种新的归一化层,称为ContraNorm。直观上,ContraNorm在嵌入空间中隐式地分散表征,导致更均匀的分布和更轻微的维度坍缩。在理论分析上,我们证明了ContraNorm在某些条件下可以缓解完全坍缩和维度坍缩。我们提出的归一化层可以轻松地集成到GNNs和Transformer中,且参数开销可忽略不计。在各种真实数据集上的实验证明了我们提出的ContraNorm的有效性。我们的实现可在https://github.com/PKU-ML/ContraNorm获取。

1 引言

近年来,图神经网络(GNNs)的兴起在图学习的各个领域都取得了重要突破(Ying等人,2018;Senior等人,2020)。在另一条道路上,尽管摆脱了定制的卷积算子,Transformer(Vaswani等人,2017)也在多个自然语言处理(NLP)任务中取得了巨大成功(Lan等人,2020;Liu等人,2019;Rajpurkar等人,2018),并且已成功转移到计算机视觉(CV)领域(Dosovitskiy等人,2021;Liu等人,2021;Strudel等人,2021)。尽管它们的模型架构不同,但GNNs和Transformer都受到了过平滑问题的阻碍(Li等人,2018;Tang等人,2021),即层数的深度堆叠会导致表征难以区分和性能显著下降。

为了摆脱过平滑,我们需要深入其内部模块,并首先了解过平滑是如何发生的。然而,我们注意到现有的过平滑分析未能充分描述学习到的特征的行为。过平滑的一个典型度量是平均相似度(Zhou等人,2021;Gong等人,2021;Wang等人,2022)。相似度收敛到1的趋势表明表征收缩到单一点(完全坍缩)。然而,这个度量不能描述一个更一般的坍缩情况,即表征在嵌入空间中跨越一个低维流形,并且牺牲了表达能力,这被称为维度坍缩(图1左图)。在这种情况下,相似度度量无法量化坍缩程度。因此,我们需要超越现有的度量,并将这种所谓的维度坍缩考虑在内。实际上,这种维度坍缩行为在对比学习文献中被广泛讨论(Jing等人,2022;Hua等人,2021;Chen和He,2021;Grill等人,2020),这可能有助于我们刻画GNNs和Transformer的过平滑问题。对比学习的主要思想是通过对比损失最大化相同数据示例的不同增强视图(即正对)之间的一致性。常见的对比损失可以分解为对齐损失和均匀性损失(Wang和Isola,2020)。
在这里插入图片描述

这两个成分对应于不同的目标:对齐损失期望正对之间的距离更近,而均匀性损失衡量嵌入分布的均匀性。仅使用对齐损失进行纯训练可能导致所有表征收缩到单一点的平凡解。幸运的是,均匀性损失的存在自然有助于通过使表征在嵌入空间中均匀分布来解决这个问题。

鉴于过平滑问题和表征坍缩问题之间的相似性,我们建立了它们之间的联系。我们没有直接将均匀性损失添加到模型训练中,而是设计了一个归一化层,该层可以开箱即用,且几乎没有参数开销。为了实现这一点,我们首先将用于训练的均匀性损失转移到定义在图节点表征上的损失上,从而可以优化表征本身而不是模型参数。直观上,该损失满足了绘制均匀节点分布的需求。遵循最近在结合优化方案和模型架构方面的研究(Yang等人,2021;Zhu等人,2021;Xie等人,2021;Chen等人,2022),我们将转换后的均匀性损失作为我们提出的归一化层的基础能量函数,以便沿着它进行的下降步骤对应于前向传递。通过分析原则性均匀性损失的展开迭代,我们设计了一个新的归一化层ContraNorm。作为概念验证,图1表明ContraNorm使特征彼此远离,从而缓解了维度坍缩。在理论上,我们证明了ContraNorm增加了表征的平均方差和有效秩,从而有效地解决了完全坍缩和维度坍缩。我们还对ContraNorm在各种任务上进行了综合评估。具体而言,ContraNorm在通用语言理解评估(GLUE)数据集(Wang等人,2019)的验证集上将BERT(Devlin等人,2018)的平均性能从82.59%提高到83.54%,并将具有24个块的DeiT(Touvron等人,2021)在ImageNet 1 K(Russakovsky等人,2015)数据集上的测试准确率从77.69%提高到78.67%。对于GNNs,我们在完全监督的图节点分类任务上进行了实验,我们提出的模型在所有深度设置上都优于原始的图卷积网络(GCN)(Kipf和Welling,2017)。我们的贡献总结如下:

  • 我们剖析了现有过平滑分析的局限性,并强调了将维度坍缩问题纳入考虑的重要性。
  • 受对比学习技术测量和解决过平滑的启发,我们提出了ContraNorm作为优化诱导的归一化层,以防止维度坍缩。
  • 在各种任务上的实验表明,ContraNorm可以有效地缓解各种模型变体中的维度坍缩,并在三个不同场景(用于图像分类的ViT、用于自然语言理解的BERT和用于节点分类的GNNs)中显示出明显的优势。

2 背景与相关工作

图神经网络中的信息传递。在图神经网络(GNNs)的文献中,信息传递图神经网络(MP-GNNs)得到了广泛研究。它通过与邻居交换信息来逐步更新表示。第 l l l层中节点 i i i的表示更新形式化为 h i ( l ) = UPDATE ⁡ ( h ( l − 1 ) , AGGREGATE ⁡ ( h i ( l − 1 ) , { h j ( l − 1 ) ∣ j ∈ N ( i ) } ) ) \boldsymbol{h}_{i}^{(l)}=\operatorname{UPDATE}\left(\boldsymbol{h}^{(l-1)}, \operatorname{AGGREGATE}\left(\boldsymbol{h}_{i}^{(l-1)},\left\{\boldsymbol{h}_{j}^{(l-1)} \mid j \in \mathcal{N}(i)\right\}\right)\right) hi(l)=UPDATE(h(l1),AGGREGATE(hi(l1),{hj(l1)jN(i)})),其中 N ( i ) \mathcal{N}(i) N(i)表示节点 i i i的邻居集合, AGGREGATE ⁡ ( ⋅ ) \operatorname{AGGREGATE}(\cdot) AGGREGATE()是节点交换信息的过程, UPDATE ⁡ ( ⋅ ) \operatorname{UPDATE}(\cdot) UPDATE()通常是一个多层感知器(MLP)。一个经典的MP-GNNs模型是GCN(Kipf & Welling, 2017),它在单跳邻居之间传播信息。

Transformer中的自注意力。Transformer使用自注意力作为关键成分,以全局方案编码信息(Vaswani等,2017)。自注意力模块通过聚合语义上相近的邻居来重新加权中间表示。形式上,它估计键和查询之间的相似性,即自注意力矩阵,表示为 A ‾ = softmax ⁡ ( Q K ⊤ ) \overline{\boldsymbol{A}}=\operatorname{softmax}\left(\boldsymbol{Q} \boldsymbol{K}^{\top}\right) A=softmax(QK),其中 Q = X W Q \boldsymbol{Q}=\boldsymbol{X} \boldsymbol{W}_{Q} Q=XWQ K = X W K \boldsymbol{K}=\boldsymbol{X} \boldsymbol{W}_{K} K=XWK X \boldsymbol{X} X W Q \boldsymbol{W}_{Q} WQ W K \boldsymbol{W}_{K} WK分别是输入、查询和键的权重矩阵。具有残差连接的多头自注意力模块可以形式化为 attn ⁡ ( X ) = X + ∑ k = 1 h A ‾ k X V k W k ⊤ \operatorname{attn}(\boldsymbol{X})=\boldsymbol{X}+\sum_{k=1}^{h} \overline{\boldsymbol{A}}_{k} \boldsymbol{X} \boldsymbol{V}_{k} \boldsymbol{W}_{k}^{\top} attn(X)=X+k=1hAkXVkWk,其中 h h h是头的数量, V \boldsymbol{V} V W \boldsymbol{W} W是值和最终输出的权重。

信息传递与自注意力之间的联系。注意到自注意力矩阵可以看作是相应图的规范化邻接矩阵(Shi等,2022)。考虑一个加权完全图 G G G,其邻接矩阵表示为 A ^ \hat{\boldsymbol{A}} A^,我们将节点映射到标记表示,并将节点 i i i和节点 j j j之间的边权重设置为 exp ⁡ ( Q i ⊤ K j ) \exp \left(\boldsymbol{Q}_{i}^{\top} \boldsymbol{K}_{j}\right) exp(QiKj)。然后,规范化邻接矩阵的 ( i , j ) (i, j) (i,j)项是 A ~ i j = A ^ i j / D ^ i j = exp ⁡ ( Q i ⊤ K j ) / ∑ k exp ⁡ ( Q i ⊤ K k ) \tilde{\boldsymbol{A}}_{i j}=\hat{\boldsymbol{A}}_{i j} / \hat{\boldsymbol{D}}_{i j}=\exp \left(\boldsymbol{Q}_{i}^{\top} \boldsymbol{K}_{j}\right) / \sum_{k} \exp \left(\boldsymbol{Q}_{i}^{\top} \boldsymbol{K}_{k}\right) A~ij=A^ij/D^ij=exp(QiKj)/kexp(QiKk),其中对角矩阵 D ^ i i = ∑ j A ^ i j \hat{\boldsymbol{D}}_{i i}=\sum_{j} \hat{\boldsymbol{A}}_{i j} D^ii=jA^ij。显然, A ~ \tilde{\boldsymbol{A}} A~与Transformer中定义的自注意力矩阵形式相同。同时, A ~ \tilde{A} A~在信息传递方案中起着主要作用,决定了哪些节点进行信息交换。

GNNs和Transformer中的过平滑。过平滑这一术语首先由Li等(2018)在GNNs的研究中提出。直观上,当层数趋于无穷时,表示通过与邻居反复交换信息而收敛到一个常数。Zhou等(2020)从数学上证明,在某些条件下,收敛点仅携带图拓扑的信息。巧合的是,Transformer中也观察到了类似过平滑的现象。与卷积神经网络(CNNs)不同,Transformer不能通过简单地加深层数来获得收益,甚至随着深度的增加而出现饱和。早期工作从经验上将其归因于注意力/特征坍塌或补丁/标记一致性(Tang等,2021;Zhou等,2021;Gong等,2021;Yan等,2022)。具体来说,后层的注意力图趋于过于相似,从而导致特征在最终阶段未能充分交换信息并失去多样性。纯Transformer(即没有跳跃连接或MLP的注意力)的输出也被观察到收敛到一个秩1矩阵(Dong等,2021)。为了说明起见,我们也将Transformer中的退化问题称为过平滑。

维度坍塌的白化方法。白化方法确保规范化输出的协方差矩阵是对角矩阵,从而使维度相互独立,并隐式地解决维度坍塌问题。Huang等(2018;2019);Siarohin等(2018);Ermolov等(2021)都采用了白化的思想,但在白化矩阵的计算细节和应用领域上有所不同。与他们相比,我们避免了逆协方差矩阵平方根的复杂计算以及为了可微性而精心设计的反向传播。此外,Huang等(2018;2019)是为卷积操作提出的,Siarohin等(2018)是为生成对抗网络(GAN)提出的,而Ermolov等(2021)适用于自监督学习。相比之下,我们借鉴了对比学习的思想,解决了神经网络的过平滑问题。

3 从对比学习的角度缓解过平滑问题

在本节中,我们首先通过实证表明当前的相似性度量无法表征维度坍缩,从而忽视了过平滑问题的一个关键部分。为了解决这个问题,我们从对比学习中获得灵感,其均匀性属性自然排除了维度坍缩。具体来说,我们将均匀性损失转换为一个直接作用于表征的损失。通过沿着这一损失展开优化步骤,我们引入了一个称为ContraNorm的归一化层。从理论上,我们证明了所提出的层有助于缓解维度坍缩。

3.1 过平滑的表征

在本部分中,我们首先指出当前度量在表征过平滑方面的局限性。这些局限性促使我们采用有效秩度量,该度量已被证明在捕捉对比学习中维度坍缩的程度方面非常有效。

以Transformer的过平滑问题为例,不失一般性,一种流行的度量方法是评估注意力图相似性(Wang等人,2022;Gong等人,2021;Shi等人,2022)。直观上,随着注意力图相似性趋近于1,特征相似性增加,这可能导致表征表达能力丧失和性能下降。然而,通过对ViT和BERT等Transformer结构化模型进行实验,我们发现高注意力图相似性并不一定对应于高特征相似性。如图2a和图2b所示,尽管注意力图相似性接近0.8甚至更高,但在大多数情况下,特征相似性仍低于0.5。这意味着即使特征相似性较低,过平滑问题仍然会发生。这一发现表明,相似性无法完全描述表征的质量和过平滑问题。
在这里插入图片描述

直观地,我们可以考虑一个潜在嵌入空间中的表征没有收缩到单个点而是跨越一个低维空间的情况。在这种情况下,特征相似性可能相对较低,但表征仍然会失去表达能力。这种表征退化问题被称为维度坍缩,在对比学习的文献中被广泛讨论。在对比学习中,描述维度坍缩的常用做法是奇异值分布的消失(Gao等人,2019;Ethayarajh,2019;Jing等人,2022)。为了研究Transformer中是否发生维度坍缩,我们绘制了12层BERT最后一个块的特征奇异值分布。如图2c所示,在BERT基础模型的深层中,不显著的(接近零)值主导了奇异值分布,这表明表征位于低维流形上,发生了维度坍缩。为了显示沿层索引的坍缩趋势,我们将奇异值分布简化为一个简洁的标量有效秩(erank)(Roy和Vetterli,2007),它覆盖了完整的奇异值谱。

定义3.1(有效秩)。考虑矩阵 X ∈ R m × n \boldsymbol{X} \in \mathbb{R}^{m \times n} XRm×n,其奇异值分解为 X = U Σ V \boldsymbol{X}=\boldsymbol{U} \boldsymbol{\Sigma} \boldsymbol{V} X=UΣV,其中 Σ \boldsymbol{\Sigma} Σ是一个对角矩阵,对角线上的奇异值为 σ 1 ≥ σ 2 ≥ ⋯ ≥ σ Q ≥ 0 \sigma_{1} \geq \sigma_{2} \geq \cdots \geq \sigma_{Q} \geq 0 σ1σ2σQ0,且 Q = min ⁡ m , n Q=\min {m, n} Q=minm,n。奇异值的分布定义为 L 1 L_{1} L1归一化形式 p i = σ i / ∑ k = 1 Q ∣ σ k ∣ p_{i}=\sigma_{i} / \sum_{k=1}^{Q}\left|\sigma_{k}\right| pi=σi/k=1Qσk。矩阵 X \boldsymbol{X} X的有效秩,记为erank( X \boldsymbol{X} X),定义为KaTeX parse error: Expected '}', got '\right' at position 83: …, \cdots, p_{Q}\̲r̲i̲g̲h̲t̲}\right),其中 H ( p 1 , p 2 , ⋯ , p Q ) H\left(p_{1}, p_{2}, \cdots, p_{Q}\right) H(p1,p2,,pQ)是由 H ( p 1 , p 2 , ⋯ , p Q ) = − ∑ k = 1 Q p k log ⁡ p k H\left(p_{1}, p_{2}, \cdots, p_{Q}\right)=-\sum_{k=1}^{Q} p_{k} \log p_{k} H(p1,p2,,pQ)=k=1Qpklogpk给出的香农熵。

基于有效秩,我们在图2d中重新审视了Transformer的过平滑问题。我们可以看到,有效秩随着层索引的增加而下降,表明在更深层中奇异值分布越来越不平衡。这一发现不仅验证了Transformer中确实发生了维度坍缩,还表明了有效秩在检测该问题方面的有效性。

3.2 从对比学习中的均匀性损失获得的启示

对比学习的核心思想是最大化同一示例的增强视图(即正对)之间的一致性,并最小化不同样本的视图(即负对)之间的一致性。对比学习的一种流行形式是使用包含有限负样本的损失函数来优化特征表征(Chen等人,2020)。具体来说,给定一批随机采样的示例,对于每个示例,我们生成其增强的正视图,并最终得到总共 N N N个样本。考虑一个编码器函数 f f f,正对 ( i , i + ) (i, i^{+}) (i,i+)的对比损失为

L ( i , i + ) = − log ⁡ exp ⁡ ( f ( x i ) ⊤ f ( x i + ) / τ ) ∑ k = 1 N exp ⁡ ( f ( x i ) ⊤ f ( x k ) / τ ) − exp ⁡ ( f ( x i ) ⊤ f ( x i ) / τ ) \mathcal{L}\left(i, i^{+}\right)=-\log \frac{\exp \left(f\left(\boldsymbol{x}_{i}\right)^{\top} f\left(\boldsymbol{x}_{i^{+}}\right) / \tau\right)}{\sum_{k=1}^{N} \exp \left(f\left(\boldsymbol{x}_{i}\right)^{\top} f\left(\boldsymbol{x}_{k}\right) / \tau\right)-\exp \left(f\left(\boldsymbol{x}_{i}\right)^{\top} f\left(\boldsymbol{x}_{i}\right) / \tau\right)} L(i,i+)=logk=1Nexp(f(xi)f(xk)/τ)exp(f(xi)f(xi)/τ)exp(f(xi)f(xi+)/τ)

其中 τ \tau τ表示温度。该损失可以分解为对齐损失和均匀性损失:

L align  ( i , i + ) = − f ( x i ) ⊤ f ( x i + ) / τ L uniform  ( i ) = log ⁡ ∑ k = 1 N exp ⁡ ( f ( x i ) ⊤ f ( x k ) / τ ) \mathcal{L}_{\text {align }}\left(i, i^{+}\right)=-f\left(\boldsymbol{x}_{i}\right)^{\top} f\left(\boldsymbol{x}_{i+}\right) / \tau \quad \mathcal{L}_{\text {uniform }}(i)=\log \sum_{k=1}^{N} \exp \left(f\left(\boldsymbol{x}_{i}\right)^{\top} f\left(\boldsymbol{x}_{k}\right) / \tau\right) Lalign (i,i+)=f(xi)f(xi+)/τLuniform (i)=logk=1Nexp(f(xi)f(xk)/τ)

对齐损失鼓励正对的特征表征相似,从而对不必要的噪声保持不变。然而,仅使用对齐损失进行训练会导致所有表征都相同的平凡解。换句话说,发生了完全坍缩。虽然批量归一化(Ioffe和Szegedy,2015)有助于避免这个问题,但它不能完全防止维度坍缩,这仍然会对学习产生负面影响(Hua等人,2021)。

得益于均匀性损失的性质,维度坍缩可以得到有效解决。回顾式(2)中的均匀性损失形式,它最大化所有样本之间的平均距离,使得嵌入在潜在空间中大致均匀分布,从而保留了更多信息。在训练过程中包含均匀性损失有助于缓解维度坍缩。直观地,它还可以作为缓解GNN和Transformer等模型中过平滑问题的有力工具。
解决过平滑问题的另一种方法是将均匀性损失直接纳入训练目标。然而,我们的实验表明,这种方法的有效性有限(更多详情见附录B.2)。相反,我们提出了一种可以轻松融入各种模型的归一化层。我们的方法将均匀性损失用作所提出层的潜在能量函数,使得沿着能量函数的下降步长对应于该层的前向传递。或者,我们也可以将该层视为优化函数的展开迭代。这一观点被用于阐释图神经网络(GNN)(Yang等人,2021;Zhu等人,2021)、Transformer(Yang等人,2022)和经典的多层感知器(MLP)(Xie等人,2021)。

请注意,均匀性损失通过优化模型参数来发挥作用,而归一化层直接更新的是表示本身。因此,我们首先将作为训练损失的均匀性损失转换为一种架构损失。考虑一个节点数量受限的全连接图,其中节点 h i \boldsymbol{h}_{i} hi被视为随机样本 x i \boldsymbol{x}_{i} xi的表示。类似于 L uniform  \mathcal{L}_{\text {uniform }} Luniform ,我们在图的所有节点上定义 L ^ uniform  \hat{\mathcal{L}}_{\text {uniform }} L^uniform 

L ^ uniform  = ∑ i L uniform  ( i ) = ∑ i log ⁡ ∑ j e h i ⊤ h j / τ \hat{\mathcal{L}}_{\text {uniform }}=\sum_{i} \mathcal{L}_{\text {uniform }}(i)=\sum_{i} \log \sum_{j} e^{\boldsymbol{h}_{i}^{\top} \boldsymbol{h}_{j} / \tau} L^uniform =iLuniform (i)=ilogjehihj/τ

这种形式的均匀性损失直接定义在表示上,并且我们稍后会将其用作表示更新的潜在能量函数。

3.3 提出的ContraNorm

到目前为止,我们能够在层设计和展开的均匀性最小化迭代之间建立联系。具体来说,我们对节点表示上的 L ^ uniform  \hat{L}_{\text {uniform }} L^uniform 取导数:

∂ L ^ uniform  ∂ h i = ∑ j exp ⁡ ( h i ⊤ h j / τ ) ∑ k exp ⁡ ( h i ⊤ h k / τ ) h j / τ + ∑ j exp ⁡ ( h i ⊤ h j / τ ) ∑ k exp ⁡ ( h j ⊤ h k / τ ) h j / τ \frac{\partial \hat{\mathcal{L}}_{\text {uniform }}}{\partial \boldsymbol{h}_{i}}=\sum_{j} \frac{\exp \left(\boldsymbol{h}_{i}^{\top} \boldsymbol{h}_{j} / \tau\right)}{\sum_{k} \exp \left(\boldsymbol{h}_{i}^{\top} \boldsymbol{h}_{k} / \tau\right)} \boldsymbol{h}_{j} / \tau+\sum_{j} \frac{\exp \left(\boldsymbol{h}_{i}^{\top} \boldsymbol{h}_{j} / \tau\right)}{\sum_{k} \exp \left(\boldsymbol{h}_{j}^{\top} \boldsymbol{h}_{k} / \tau\right)} \boldsymbol{h}_{j} / \tau hiL^uniform =jkexp(hihk/τ)exp(hihj/τ)hj/τ+jkexp(hjhk/τ)exp(hihj/τ)hj/τ

设特征矩阵为 H \boldsymbol{H} H,其第 i i i行为 h i ⊤ \boldsymbol{h}_{i}^{\top} hi,我们可以将等式(4)重写为矩阵形式:

∂ L ^ uniform  ∂ H = ( D − 1 A + A D − 1 ) H / τ \frac{\partial \hat{\mathcal{L}}_{\text {uniform }}}{\partial \boldsymbol{H}}=\left(\boldsymbol{D}^{-1} \boldsymbol{A}+\boldsymbol{A} \boldsymbol{D}^{-1}\right) \boldsymbol{H} / \tau HL^uniform =(D1A+AD1)H/τ

其中, A = exp ⁡ ( H H ⊤ / τ ) \boldsymbol{A}=\exp \left(\boldsymbol{H} \boldsymbol{H}^{\top} / \tau\right) A=exp(HH/τ) D = deg ⁡ ( A ) 1 \boldsymbol{D}=\operatorname{deg}(\boldsymbol{A})^{1} D=deg(A)1。为了减小均匀性损失 L ^ uniform  \hat{\mathcal{L}}_{\text {uniform }} L^uniform ,一种自然的方法是采取一步梯度下降,通过

H t = H b − s × ∂ L ^ uniform  ∂ H b = H b − s / τ × ( D − 1 A + A D − 1 ) H b \boldsymbol{H}_{t}=\boldsymbol{H}_{b}-s \times \frac{\partial \hat{\mathcal{L}}_{\text {uniform }}}{\partial \boldsymbol{H}_{b}}=\boldsymbol{H}_{b}-s / \tau \times\left(\boldsymbol{D}^{-1} \boldsymbol{A}+\boldsymbol{A} \boldsymbol{D}^{-1}\right) \boldsymbol{H}_{b} Ht=Hbs×HbL^uniform =Hbs/τ×(D1A+AD1)Hb

更新 H \boldsymbol{H} H,其中 H b \boldsymbol{H}_{b} Hb H t \boldsymbol{H}_{t} Ht分别表示更新前后的表示, s s s是梯度下降的步长。在某一表示层之后进行此更新,我们可以减小表示的均匀性损失,从而有助于缓解维度坍缩。

在等式(6)中,存在两个项 D − 1 A \boldsymbol{D}^{-1} \boldsymbol{A} D1A A D − 1 \boldsymbol{A} \boldsymbol{D}^{-1} AD1 H b \boldsymbol{H}_{b} Hb相乘。根据经验,这两个项在我们的方法中起着相似的作用。注意第一项与Transformer中的自注意力矩阵相关,因此我们只保留它并丢弃第二个项。然后等式(6)变为

H t = H b − s / τ × ( D − 1 A ) H b = H b − s / τ × softmax ⁡ ( H b H b ⊤ ) H b \boldsymbol{H}_{t}=\boldsymbol{H}_{b}-s / \tau \times\left(\boldsymbol{D}^{-1} \boldsymbol{A}\right) \boldsymbol{H}_{b}=\boldsymbol{H}_{b}-s / \tau \times \operatorname{softmax}\left(\boldsymbol{H}_{b} \boldsymbol{H}_{b}^{\top}\right) \boldsymbol{H}_{b} Ht=Hbs/τ×(D1A)Hb=Hbs/τ×softmax(HbHb)Hb

事实上,该操作对应于广泛用于对比学习方法中的停梯度技术(He等人,2020;Grill等人,2020;Tao等人,2022)。通过丢弃梯度中的一些项,停梯度技术使训练过程不对称,从而以较少的计算开销避免了表示坍缩,附录B.1中对此进行了详细讨论。

Proposition 2 gives a pro然而,由式(7)诱导的层仍然不能保证表示的均匀性。考虑一个极端情况,其中 softmax ( H b H b ⊤ ) \text{softmax}\left(\boldsymbol{H}_{b} \boldsymbol{H}_{b}^{\top}\right) softmax(HbHb)等于单位矩阵 I \boldsymbol{I} I。式(7)变为 H t = H b − s / τ × H b = ( 1 − s / τ ) H b \boldsymbol{H}_{t}= \boldsymbol{H}_{b}-s / \tau \times \boldsymbol{H}_{b}=(1-s / \tau) \boldsymbol{H}_{b} Ht=Hbs/τ×Hb=(1s/τ)Hb,这仅仅使 H \boldsymbol{H} H的尺度变小,并不能帮助缓解完全坍缩的问题。为了保持表示的稳定性,我们探索了两种不同的方法:特征范数正则化和层归一化。

I. 特征范数正则化。我们在均匀性损失中添加一个正则化项 − 1 2 ∑ i ∥ h i ∥ 2 2 -\frac{1}{2} \sum_{i}\left\|h_{i}\right\|_{2}^{2} 21ihi22,以鼓励更大的特征范数。当正则化项变小时, h i h_{i} hi的范数变大。因此,添加这项有助于防止表示 h i h_{i} hi的范数变小。这样,更新形式变为

H t = ( 1 + s ) H b − s / τ × softmax ( H b H b ⊤ ) H b \boldsymbol{H}_{t}=(1+s) \boldsymbol{H}_{b}-s / \tau \times \text{softmax}\left(\boldsymbol{H}_{b} \boldsymbol{H}_{b}^{\top}\right) \boldsymbol{H}_{b} Ht=(1+s)Hbs/τ×softmax(HbHb)Hb

命题1。令 e = ( 1 , 1 , … , 1 ) ⊤ / n \boldsymbol{e}=(1,1, \ldots, 1)^{\top} / \sqrt{n} e=(1,1,,1)/n 。对于注意力矩阵 A ‾ = softmax ( H b H b ⊤ ) \overline{\boldsymbol{A}}=\text{softmax}\left(\boldsymbol{H}_{b} \boldsymbol{H}_{b}^{\top}\right) A=softmax(HbHb),令 σ min ⁡ \sigma_{\min } σmin为矩阵 P = ( I − e l ⊤ ) ( I − A ‾ ) + ( I − A ‾ ) ⊤ ( I − e ⊤ ) \boldsymbol{P}=\left(\boldsymbol{I}-\boldsymbol{e l}^{\top}\right)(\boldsymbol{I}-\overline{\boldsymbol{A}})+(\boldsymbol{I}-\overline{\boldsymbol{A}})^{\top}\left(\boldsymbol{I}-\boldsymbol{e}^{\top}\right) P=(Iel)(IA)+(IA)(Ie)的最小特征值。对于式(8)中的更新,即 H t = ( ( 1 + s ) I − s A ‾ ) H b \boldsymbol{H}_{t}=((1+s) \boldsymbol{I}-s \overline{\boldsymbol{A}}) \boldsymbol{H}_{b} Ht=((1+s)IsA)Hb s ≥ 0 s \geq 0 s0,我们有 Var ( H t ) ≥ ( 1 + s σ min ⁡ ) ⋅ Var ( H b ) \text{Var}\left(\boldsymbol{H}_{t}\right) \geq\left(1+s \sigma_{\min }\right) \cdot \text{Var}\left(\boldsymbol{H}_{b}\right) Var(Ht)(1+sσmin)Var(Hb)。特别地,如果 σ min ⁡ ≥ 0 \sigma_{\min } \geq 0 σmin0,我们有 Var ( H t ) ≥ Var ( H b ) \text{Var}\left(\boldsymbol{H}_{t}\right) \geq \text{Var}\left(\boldsymbol{H}_{b}\right) Var(Ht)Var(Hb)

命题1给出了更新前后方差之比的界。它表明方差的变化受对称矩阵 P = ( I − e e ⊤ ) ( I − A ‾ ) + ( I − A ‾ ) ⊤ ( I − e e ⊤ ) \boldsymbol{P}=\left(\boldsymbol{I}-\boldsymbol{e} \boldsymbol{e}^{\top}\right)(\boldsymbol{I}-\overline{\boldsymbol{A}})+(\boldsymbol{I}-\overline{\boldsymbol{A}})^{\top}(\boldsymbol{I}- \boldsymbol{e} \boldsymbol{e}^{\top} ) P=(Iee)(IA)+(IA)(Iee)的影响。如果 P \boldsymbol{P} P是半正定矩阵,我们将得到结果 Var ( H t ) ≥ Var ( H b ) \text{Var}\left(\boldsymbol{H}_{t}\right) \geq \text{Var}\left(\boldsymbol{H}_{b}\right) Var(Ht)Var(Hb),这表明表示变得更加均匀。在附录F中,我们将给出 P \boldsymbol{P} P是半正定矩阵的一些充分条件。

II. 附加层归一化。另一种选择是利用层归一化(LayerNorm)(Ba等,2016)来维持特征尺度。LayerNorm的更新形式是 LayerNorm ( h i ) = γ ⋅ ( ( h i − mean ( h i ) ) / Var ( h i ) + ε ) + β \text{LayerNorm} \left(\boldsymbol{h}_{i}\right)= \gamma \cdot\left(\left(\boldsymbol{h}_{i}-\text{mean}\left(\boldsymbol{h}_{i}\right)\right) / \sqrt{\text{Var}\left(\boldsymbol{h}_{i}\right)+\varepsilon}\right)+\beta LayerNorm(hi)=γ((himean(hi))/Var(hi)+ε )+β,其中 γ \gamma γ β \beta β是可学习参数, ε = 1 0 − 5 \varepsilon=10^{-5} ε=105。可学习参数 γ \gamma γ β \beta β可以重新缩放表示 h i \boldsymbol{h}_{i} hi,以帮助缓解问题。我们将LayerNorm添加到式(7)中的原始更新中,得到

H t = LayerNorm ( H b − s / τ × softmax ( H b H b ⊤ ) H b ) \boldsymbol{H}_{t}=\text{LayerNorm}\left(\boldsymbol{H}_{b}-s / \tau \times \text{softmax}\left(\boldsymbol{H}_{b} \boldsymbol{H}_{b}^{\top}\right) \boldsymbol{H}_{b}\right) Ht=LayerNorm(Hbs/τ×softmax(HbHb)Hb)

其中,对表示矩阵 H \boldsymbol{H} H应用层归一化意味着对其所有分量 h 1 , … , h n \boldsymbol{h}_{1}, \ldots, \boldsymbol{h}_{n} h1,,hn应用层归一化。

ContraNorm。我们实证比较了这两种提出的方法,发现它们的性能相当,而第二种方法略胜一筹。因此,我们采用第二种更新形式,并将其命名为对比归一化(ContraNorm)。ContraNorm层可以添加到任何表示层之后,以减少均匀性损失并帮助缓解维度坍缩。我们在附录B.3中讨论了插入ContraNorm的最佳位置。

ContraNorm-D:用于大规模图的可扩展ContraNorm。从式(9)的更新规则中,我们可以看到ContraNorm层的计算复杂度为 O ( n 2 d ) \mathcal{O}\left(n^{2} d\right) O(n2d),其中 n n n是标记的数量, d d d是每个标记的特征维度,这与自注意力(Vaswani等,2017)的计算复杂度在同一量级。因此,当标记数量 n n n与特征维度 d d d相似或小于 d d d时,该操作是优选的,这通常在计算机视觉(CV)和自然语言处理(NLP)领域中是这种情况。然而,对于包含数百万个节点的大规模图( n ≫ d n \gg d nd),对 n n n的二次依赖使得ContraNorm在计算上不可行。为了规避这个问题,我们提出了双重对比归一化(ContraNorm-D),它是ContraNorm的一种可扩展变体,其计算复杂度 O ( n d 2 ) \mathcal{O}\left(n d^{2}\right) O(nd2) n n n有线性依赖,具有以下双重更新规则:

H t = LayerNorm ( H b − s / τ × H b × softmax ( H b ⊤ H b ) ) \boldsymbol{H}_{t}=\text{LayerNorm}\left(\boldsymbol{H}_{b}-s / \tau \times \boldsymbol{H}_{b} \times \text{softmax}\left(\boldsymbol{H}_{b}^{\top} \boldsymbol{H}_{b}\right)\right) Ht=LayerNorm(Hbs/τ×Hb×softmax(HbHb))

其中,我们计算了维度特征相关矩阵 H b ⊤ H b ∈ R d × d \boldsymbol{H}_{b}^{\top} \boldsymbol{H}_{b} \in \mathbb{R}^{d \times d} HbHbRd×d,并在softmax归一化后将其乘以特征 H b \boldsymbol{H}_{b} Hb的右侧。在附录A中,我们提供了更详细的解释,展示了如何从非对比学习方法(如Barlow Twins(Zbontar等,2021)和VICReg(Bardes等,2022))中采用的特征去相关归一化推导出它。正如最近的工作(Garrido等,2022)所揭示的,对比学习和非对比学习方法之间存在双重关系,因此我们可以将ContraNorm-D视为ContraNorm的一种双重版本,它侧重于降低维度特征相关性。

3.4 理论分析

在本部分中,我们给出了ContraNorm的理论结果,并表明在均匀性损失形式略有不同的情况下,ContraNorm更新有助于缓解维度坍缩。

命题2。考虑更新形式 H t = ( 1 + s ) H b − s ( H b H b ⊤ ) H b \boldsymbol{H}_{t}=(1+s) \boldsymbol{H}_{b}-s\left(\boldsymbol{H}_{b} \boldsymbol{H}_{b}^{\top}\right) \boldsymbol{H}_{b} Ht=(1+s)Hbs(HbHb)Hb,令 σ max ⁡ \sigma_{\max } σmax H b \boldsymbol{H}_{b} Hb的最大奇异值。对于满足 1 + ( 1 − σ max ⁡ 2 ) s > 0 1+\left(1-\sigma_{\max }^{2}\right) s>0 1+(1σmax2)s>0 s > 0 s>0 s>0,我们有 erank ( H t ) > erank ( H b ) \text{erank}\left(\boldsymbol{H}_{t}\right)>\text{erank}\left(\boldsymbol{H}_{b}\right) erank(Ht)>erank(Hb)。在一种特殊的更新形式下,旨在缓解维度坍缩的问题。记 L ^ dim  = tr ⁡ ( ( I − H H ⊤ ) 2 ) / 4 \hat{\mathcal{L}}_{\text {dim }}=\operatorname{tr}\left(\left(\boldsymbol{I}-\boldsymbol{H} \boldsymbol{H}^{\top}\right)^{2}\right) / 4 L^dim =tr((IHH)2)/4,那么 L ^ dim  \hat{\mathcal{L}}_{\text {dim }} L^dim 与Barlow Twins(Zbontar等,2021)具有相似的形式。这一损失函数试图将相似度矩阵 H H ⊤ \boldsymbol{H} \boldsymbol{H}^{\top} HH的对角元素等于1,非对角元素等于0,从而使不同的特征彼此正交,从而帮助特征在空间内变得更加均匀。注意, ∂ L ^ bid  ∂ H = ( I − H H ⊤ ) H \frac{\partial \hat{\mathcal{L}}_{\text {bid }}}{\partial \boldsymbol{H}}=\left(\boldsymbol{I}-\boldsymbol{H} \boldsymbol{H}^{\top}\right) \boldsymbol{H} HL^bid =(IHH)H,因此,上述更新可以重写为 H t = H b + s ∂ L ˙ d i m ( H b ) ∂ H b \boldsymbol{H}_{t}=\boldsymbol{H}_{b}+s \frac{\partial \dot{\mathcal{L}}_{\mathrm{dim}}\left(\boldsymbol{H}_{b}\right)}{\partial \boldsymbol{H}_{b}} Ht=Hb+sHbL˙dim(Hb),这表明这种更新形式是带有不同均匀性损失的ContraNorm。命题2揭示,当 s s s满足 1 + ( 1 − σ max ⁡ ) s > 0 1+\left(1-\sigma_{\max }\right) s>0 1+(1σmax)s>0时,此更新可以增加表示矩阵的有效秩。注意,无论 σ max ⁡ > 0 \sigma_{\max }>0 σmax>0与否,如果 s s s足够接近0,该条件就会成立。在这种情况下,该更新会缓解维度坍缩。

4 实验

在本节中,我们通过实验证明了ContraNorm的有效性,实验包括1)在GLUE数据集上使用BERT和ALBERT(Lan等,2020)作为骨干模型的语言理解任务;2)在ImageNet 100和ImageNet 1k数据集上使用DeiT作为基础模型的图像分类任务;3)在流行图数据集上使用GCN作为骨干模型的全监督图节点分类任务。此外,我们还对ContraNorm变体进行了消融研究,并进行了超参数敏感性分析。

4.1 语言模型实验

设置。为了证实ContraNorm的潜力,我们将其集成到两个Transformer结构的模型中:BERT和ALBERT,并在GLUE数据集上进行评估。GLUE包括三类任务:(i)单句任务CoLA和SST-2;(ii)相似性和释义任务MRPC、QQP和STS-B;(iii)推理任务MNLI、QNLI和RTE。对于MNLI任务,我们在匹配(MNLI-m)和不匹配(MNLI-mm)版本上都进行了实验。我们默认在自注意力模块和残差连接之后插入ContraNorm(更多位置选择见附录B.3)。我们使用32的批量大小,并对所有GLUE任务的数据进行5个周期的微调。对于每个任务,我们在等式(6)中的(0.005,0.01,0.05,0.1,0.2)中选择了最佳比例因子 s s s。我们使用了由12个堆叠块组成的基础模型(BERT-base和ALBERT-base),并为所有任务固定了超参数:隐藏层大小为128,注意力头数为12,最大序列长度为384。我们使用Adam(Kingma&Ba,2014)优化器,学习率为 2 e − 5 2e-5 2e5

结果。如表1所示,与纯BERT相比,ContraNorm在所有数据集上都显著提高了结果。具体来说,对于BERT骨干模型,我们的ContraNorm将之前的平均性能从82.59%提高到83.39%,对于ALBERT骨干模型,则从83.74%提高到84.67%。我们还将训练好的模型提交到GLUE基准排行榜上,结果见附录E.1。可以观察到,带有ContraNorm的BERT在所有数据集上也优于纯模型。为了验证ContraNorm的去过度平滑效果。我们在不同的层深度设置上构建了有/无ContraNorm的模型。性能比较如图3a所示。块的恒定堆叠会导致纯BERT性能明显下降,而带有ContraNorm的BERT则保持了竞争优势。此外,对于深层模型,我们还展示了方差和有效秩的趋势,分别在图3b和图3c中,这分别验证了ContraNorm在缓解完全坍缩和维度坍缩方面的能力。
在这里插入图片描述

4.2 视觉Transformer实验

我们还验证了ContraNorm在计算机视觉领域的有效性。我们选择DeiT作为骨干模型,并从头开始训练模型。在ImageNet 100和ImageNet 1k数据集上评估了不同深度设置的实验。基于Timm(Wightman,2019)和DeiT存储库,我们在基础模型中自注意力模块之后中间插入了ContraNorm。

设置。我们遵循Touvron等(2021)的训练方案,并尽可能少地更改超参数。具体来说,我们使用AdamW(Loshchilov&Hutter,2019)优化器,并采用余弦学习率衰减。我们训练每个模型150个周期,并将批量大小设置为1024。使用增强技术来提高性能。对于所有实验,图像大小设置为 224 × 224 224 \times 224 224×224。对于Imagenet100,我们将所有层深度设置的尺度因子 s s s设置为0.2。对于Imagenetlk,我们将具有12个和16个块的模型的 s s s设置为0.2,并将具有24个块的模型的 s s s提高到0.3。
在这里插入图片描述

结果。如表2所示,在两个数据集上,带有ContraNorm的DeiT在所有层设置下都优于纯DeiT。通常,我们的方法在ImageNet 100的测试准确率上提高了近5%。对于ImageNetlk,我们将具有24个块的DeiT的性能从77.69%提高到78.67%。

4.3 图神经网络实验

设置。我们将ContraNorm作为GCN中每个图卷积之后的简单归一化层来实现,并在全监督图节点分类任务上对其进行评估。对于数据集,我们选择了两个流行的引文网络Cora(McCallum等,2000)和Citeseer(Giles等,1998),以及Wikipedia文章网络Chameleon和Squirrel(Rozemberczki等,2021)。有关数据集的更多信息见附录D。我们将ContraNorm与专为防止过度平滑而设计的流行归一化层PairNorm(Zhao&Akoglu,2020)进行了比较。我们还通过将尺度 s = 0 s=0 s=0设置为LayerNorm作为基线。我们遵循Kipf&Welling(2017)中的数据拆分设置,训练/验证/测试拆分分别为60%、20%、20%。为了保证比较的公平性,我们固定隐藏维度为32,并如Zhao&Akoglu(2020)所述,将dropout率设置为0.6。对于PairNorm和ContraNorm,我们在 { 0.2 , 0.5 , 0.8 , 1.0 } \{0.2,0.5,0.8,1.0\} {0.2,0.5,0.8,1.0}范围内选择最佳尺度控制器 s s s。对于PairNorm,我们选择Zhao&Akoglu(2020)提出的最佳变体。

结果。如表3所示,在浅层(例如两层)中,添加ContraNorm会使纯GCN的准确率略有下降,但随着层数的加深,它有助于防止性能急剧下降。在去过度平滑方面,ContraNorm优于PairNorm和LayerNorm。在这里,我们证明了在稀释过度平滑方面,ContraNorm是有效的,而单独的LayerNorm无法防止GCN过度平滑,甚至放大了在Cora上超过16层时的负面影响。

在这里插入图片描述

4.4 消融研究

回顾第3.3节,我们通过屏蔽第二项,利用停梯度(SG)技术改进了ContraNorm。为了解决数据表示不稳定的问题,我们对原始版本应用了层归一化(LN),而为了方便理论分析,层归一化被替换为 L 2 L_{2} L2归一化( L 2 N L_{2} \mathrm{~N} L2 N)。在这里,我们研究了这些技巧的效果,结果如表4所示。与仅使用LayerNorm的变体相比,同时使用停梯度和层归一化的ContraNorm表现出更好的性能。至于这两种归一化方法,它们几乎可以与我们的方法相媲美,这验证了我们理论分析的适用性。

在附录E.2中,我们进一步就使用不同尺度因子 s s s值时ContraNorm的收益进行了消融研究,并表明ContraNorm在适当的 s s s值范围内具有鲁棒性。

5 结论

在本文中,我们指出了当前度量在表征过平滑方面的不足,并强调了将维度坍缩作为过平滑分析切入点的重要性。受对比学习中均匀性损失的启发,我们设计了一个优化诱导的归一化层ContraNorm。我们的理论发现表明,ContraNorm通过减少表示的方差和有效秩,成功缓解了维度坍缩问题。实验表明,ContraNorm在各种任务上提升了Transformer和GNN的性能。我们的工作为解决过平滑问题提供了从对比学习角度出发的新视角,有助于推动后续广泛的研究。

代码


class ContraNorm(nn.Module):def __init__(self, dim, scale=0.0, dual_norm=False, pre_norm=False, temp=1.0, learnable=False, positive=False,identity=False):super().__init__()if learnable and scale > 0:import mathif positive:scale_init = math.log(scale)else:scale_init = scaleself.scale_param = nn.Parameter(torch.empty(dim).fill_(scale_init))self.dual_norm = dual_normself.scale = scaleself.pre_norm = pre_normself.temp = tempself.learnable = learnableself.positive = positiveself.identity = identityself.layernorm = nn.LayerNorm(dim, eps=1e-6)def forward(self, x):if self.scale > 0.0:xn = nn.functional.normalize(x, dim=2)if self.pre_norm:x = xnsim = torch.bmm(xn, xn.transpose(1, 2)) / self.tempif self.dual_norm:sim = nn.functional.softmax(sim, dim=2) + nn.functional.softmax(sim, dim=1)else:sim = nn.functional.softmax(sim, dim=2)x_neg = torch.bmm(sim, x)if not self.learnable:if self.identity:x = (1 + self.scale) * x - self.scale * x_negelse:x = x - self.scale * x_negelse:scale = torch.exp(self.scale_param) if self.positive else self.scale_paramscale = scale.view(1, 1, -1)if self.identity:x = scale * x - scale * x_negelse:x = x - scale * x_negx = self.layernorm(x)return xif __name__ == '__main__':block = ContraNorm(dim=128, scale=0.1, dual_norm=False, pre_norm=False, temp=1.0, learnable=False, positive=False,identity=False)input = torch.rand(32, 784, 128)output = block(input)print("Input size:", input.size())print("Output size:", output.size())

http://www.mrgr.cn/news/55119.html

相关文章:

  • 软件I2C的代码
  • iOS IPA上传到App Store Connect的三种方案详解
  • 利用 PyTorch 进行深度学习训练过程中模型的 .eval() 和 .train() 属性介绍
  • leetcode.204.计数质数
  • 倪师学习笔记-天纪-斗数星辰介绍
  • 【机器学习】任务七:聚类算法 (K-means 算法、层次聚类、密度聚类对鸢尾花(Iris)数据进行聚类)
  • Java反射深入学习
  • c语言字符串函数strstr,strtok,strerror
  • AIGC实战——世界模型(World Model)
  • MiniConda 的安装与使用
  • 【学术会议投稿】Java Web开发实战:从零到一构建动态网站
  • 【学术会议投稿】机器学习框架终极指南:PyTorch vs TensorFlow vs Keras vs Scikit-learn
  • Anomalib 1.x 系列之二:自定义数据
  • 手动部署Java项目、nginx前端和mysql数据库到centos虚拟机
  • 简单的界面用于控制自动点击器
  • 二叉树算法之 Fenwick 树(Binary Indexed Tree, BIT)详细解读
  • 在Smarty模板中如何用自定义函数
  • C#/.NET/.NET Core技术前沿周刊 | 第 10 期(2024年10.14-10.20)
  • JS数组去重
  • 【算法】小红的ABC
  • 关于region_to_label算子的想法
  • 【深度学习中的注意力机制2】11种主流注意力机制112个创新研究paper+代码——多头注意力机制(Multi-Head Attention, MHA)
  • AG32 MCU家族添加新成员
  • 汽车电子笔记之-014:一场FIFO的思考引发将汽车电子DTC相关 - 故障发生前后关键数据记录并回读的功能浅研发
  • edge浏览器:你的连接不是专用连接
  • Java获取指定目录下的文件名,并自定义排序