DeiT:データ効率の高い画像トランスフォーマーのトレーニングと注意による蒸留

ここに画像の説明を挿入
知识蒸馏この記事では主に、モデルのトレーニング速度とパフォーマンスを向上させるためにいくつかのトレーニング戦略を使用します。

元のテキスト リンク:データ効率の高いイメージ トランスフォーマーのトレーニングと注意による蒸留
ソース コード アドレス: https://github.com/facebookresearch/deit
書かれた良い記事:トランスフォーマーの学習 (4) - DeiT
知識Distillation (知識の蒸留) クラシック、紙のノート

注意によるデータ効率の高い画像変換と蒸留のトレーニング[PMLR2021]

概要

ViT は分類タスクで非常に高いパフォーマンスを発揮しますが、大規模なインフラストラクチャを使用して、現在の効果を得るために何億もの画像を事前トレーニングします. これら 2 つの条件により、その適用が制限されます.

したがって、著者は、新的训练策略1 台のコンピューターのみを使用して、競合する非畳み込み Transformer を ImageNet で 3 日以内にトレーニングする方法を提案しています。外部データがない場合、ImageNet で 83.1% ((86M パラメーター)) の最高精度が達成されます。

第二に、著者は を提案します基于知识蒸馏的策略蒸留トークンに依存して、学生モデルが注意を通じて教師モデルから確実に学習するようにします。通常、教師モデルは畳み込みに基づいています。学習済みの Transformer は、ImageNet の最新技術に匹敵します (85.2%)。

1 はじめに

最近、convnets のアテンション メカニズムを利用するアーキテクチャへの関心が高まっており、トランスフォーマー コンポーネントを ConvNets に移植してビジョン タスクを解決するハイブリッド アーキテクチャが提案されています。この記事では、著者は純粋な Transformer 構造を使用しますが、知識蒸留戦略では、学習用の教師ネットワークとして convnet ネットワークが使用され、convnet の誘導バイアスを継承できます。

ViT モデルは、3 億の画像を含む大規模なプライベート ラベル付き画像データセットを使用して最良の結果を達成します。また、不十分なデータでトレーニングした場合、うまく一般化できないと結論付けられています。

このホワイト ペーパーでは、著者は 8GPU ノードで 2 ~ 3 日 (53 時間の事前トレーニング、オプションで 20 時間の微調整) でビジョン トランスフォーマーをトレーニングします。パラメータと効率。Imagenet を唯一のトレーニング セットとして使用します

著者はまた、モデルを抽出する際に、⚗ を蒸留記号として使用するトークンベースの蒸留戦略を使用しました。

要約すると、次の貢献が行われます。

  1. ネットワークでは不包含卷积层、最新技術と比較して競争力のある結果を、外部データなしで ImageNet で達成できます。DeiT-S と DeiT-Ti の 2 つの新しいモデル バリアントは、パラメーターが少なく、ResNet-50 と ResNet-18 の対応物と見なすことができます。
  2. 蒸留されたトークンに基づく新しい蒸留プロセスが導入されました。これは、その目的が教師ネットワークを再現することであることを除いて、クラス トークンと同じ役割を果たします估计标签これら 2 つのトークンは、注意を通じてトランスフォーマー内で相互作用します。
  3. Imagenet で转移到不同的下游任务事前に学習したモデルは、.

2 方法

トレーニング戦略:
より低い解像度でトレーニングし、より高い解像度でネットワークを微調整します。これにより、完全なトレーニングが高速化され、主流のデータ拡張スキームでの精度が向上します。

入力画像の解像度を上げると、パッチ サイズは一定に保たれるため、入力パッチの数 N が変化します。トランスフォーマー ブロックとクラス トークンのアーキテクチャにより、より多くのトークンを処理するためにモデルと分類子を変更する必要はありません。代わりに、各パッチに 1 つずつ、N 個の位置埋め込みがあるため、位置埋め込みを調整する必要があります。

蒸留:まず、強力な画像分類器を教師モデルとして使用できると仮定します。これは、convnet または分類器の混合にすることができます。このセクションでは、ハード蒸留とソフト蒸留、トークン蒸留について紹介します。

まず、志湖小帝の写真を借ります. 教師のモデルは、より大きなボリュームと優れた効果を持つ既知のモデルです. 蒸留プロセス中、教師のモデルは訓練されておらず、イメージを導くための道しるべとしてのみ使用されます.モデルのパラメーターは、私たちのニーズに対応しています。実際、教師モデルのマッピング プロセス中に生成された他の情報を使用するだけです。通常の分類モデルの学習では画像と分類ラベルしか情報がなく、このクラスであれば1、そうでなければ0となります。ただし、教師モデルのトレーニング プロセス中に、さまざまなカテゴリの確率がソフトマックス関数によって取得されます. この確率分布を使用して生徒モデルをトレーニングします. ポジティブ サンプルに加えて、ネガティブ サンプルにも多くの情報が含まれていますが、 Ground Truth cannot provide this part of information. 教師モデルの確率分布は、生徒モデルのトレーニング中に新しいラベル情報を追加することと同じです。詳細な内容については、次のリンクを参照してください:知識の蒸留
ここに画像の説明を挿入

1. ソフト蒸留:
教師モデルのソフトマックスと生徒モデルのソフトマックスの間のカルバック ライブラー ダイバージェンスを最小化しますZt が教師モデルのロジットで、Zs が生徒モデルのロジットであるとします。τ は蒸留温度を表し、λ は平衡グラウンド トゥルース ラベル y のカルバック ライブラー発散損失 (KL) と交差エントロピー (LCE) の係数を表し、ψ はソフトマックス関数を表すとします。蒸留の目標は、y の一部の通常の損失計算であり、後半は発散です。
ここに画像の説明を挿入

2. ハード蒸留バリアント:
Teacher モデルの予測を出力しますyt = argmaxc Z t ( c ) y_t = argmax_cZ_t(c)yt=a r g m a xcZt( c )与えられた画像の真のラベルとして、教師に関連付けられたハード ラベルyt y_tyt特定のデータの追加に基づいて異なる場合があります。このオプションは、従来のオプションよりも優れていますが、パラメーターがなく、概念的に単純です。教師はyt y_tを予測します。yt実ラベル y と同じ役割を果たします。蒸留の対象は次のとおりです。

ここに画像の説明を挿入

3. トークンを蒸留します。

新しいトークンである蒸留トークンが、最初の埋め込み (パッチおよびクラス トークン) に追加されます蒸留トークンはクラス トークンに似ています。自己注意を介して他の埋め込みと相互作用し、最後の層の後にネットワークによって出力されます。抽出された埋め込みにより、モデルは教師モデルの予測出力を学習できます。これは、教師モデルの事前知識を学習するだけでなく、クラスの埋め込みを補完します。

蒸留戦略:

  1. 微调:グラウンド トゥルース ラベルと教師の予測は、高解像度の微調整段階で使用されます。同じターゲット解像度の教師モデルを使用すると、テスト フェーズで真のラベルのみが使用されます。
  2. 联合分类器. テスト時に、トランスフォーマーによって生成されたクラスまたは抽出された埋め込みは、両方とも線形分類器に関連付けられており、画像ラベルを推測できます。これらの 2 つの独立したヘッドは後の段階で融合され、2 つの分類器のソフトマックス出力が予測のために追加されます。

異なる蒸留方法の結果の比較は、実験セクションに記載されています。

3 結論

この記事では、 ViT モデル自体を改善するわけではありませんが、トレーニング戦略をいくつか使用して、モデルのトレーニングとパフォーマンスの改善を容易にします。

この記事の核心は、モデルトレーニングプロセスで負のサンプルの予測情報を増やし、教師モデルの帰納的バイアスを継承する知識蒸留の戦略を使用することです (convnet の効果は Transformer の効果よりも優れています) これは実際には一種のラベル情報です。


最後に、皆さんの科学研究の成功、健康、そしてすべての成功をお祈りします~

おすすめ

転載: blog.csdn.net/qq_45122568/article/details/125566077