ICML2021《注意力によるデータ効率の高い画像変換と抽出のトレーニング》

ここに画像の説明を挿入します
論文リンク: http://proceedings.mlr.press/v139/touvron21a/touvron21a.pdf
コードリンク: https://github.com/facebookresearch/deit

1. 動機

VIT トレーニングには大量のコンピューティング リソースが必要であり、トレーニングに長い時間がかかります。さらに、十分なデータがない場合、一般化することは困難です

2. 貢献

  • 著者らは、畳み込み層を含まないニューラル ネットワークが、外部データなしで ImageNet 上の最先端技術と競合する結果を達成できることを実証しています。そして、それらは 4 つの GPU を備えた単一ノードで学習され、3 日かかります。この記事の 2 つの新しいモデル、DeiT -S および DeiT-Ti はパラメータが少なく、ResNet-50 および ResNet-18 と同等とみなすことができます。
  • 蒸留されたトークンに基づく新しい蒸留プロセスが導入されます。このプロセスは、教師が推定したラベルを再現することを目的とすることを除いて、クラス トークンと同じように機能します。これら 2 つのトークンは、Transformer 内でアテンションを介して相互作用します。この Transformer 固有の戦略は、従来の蒸留よりもはるかにうまく機能します。
  • Imagenet 上の著者らの事前学習モデルは、CIFAR-10、CIFAR-100、Oxford-102 flowers、Stanford Cars、inaturalist などのいくつかの一般的な公開ベンチマークで、きめの細かい分類などのさまざまな下流タスクに転送すると競争力があります18/19 。

3. 方法

3.1 ビジュアルトランスフォーマー

  • マルチヘッド セルフ アテンション レイヤー (MSA)
    アテンション メカニズムは、トレーニング可能な (キー、値) ベクトル ペアの共同メモリに基づいています。内積を使用してベクトルq ∈ R dq \in \mathbb{R}^d をクエリしますqRd kkのセット付きk個のキー ベクトル (行列K ∈ R k × d K \in \mathbb{R}^{k \times d} にパックされる)KRk × d ) をマッチングに使用します。これらの内積は、ソフトマックス関数でスケーリングおよび正規化され、kkの重み。アテンションの出力はkk値ベクトルの加重和V ∈ R k × d V \in \mathbb{R}^{k \times d} にパックされる)VRk × d )。NNN 個のクエリ ベクトル シーケンス (Q ∈ RN × d Q \in \mathbb{R}^{N \times d} にパックされる)QRN × d )、出力行列 (サイズN × d N \times d)N×d ):d \sqrt{d}
    ここに画像の説明を挿入します
    の各行に適用されます。d 適切な標準化が提供されます。Vaswani et al. (2017) は、セルフ アテンション レイヤーを提案しました。クエリ、キー、値の行列自体はNNから計算されます。N 個の入力ベクトル シーケンス (X ∈ RN × DX \in \mathbb{R}^{N \times D}バツRN × D ):Q = XWQQ = XW_QQ=XW _QK = XWKK = XW_KK=XW _KV = XWVV = XW_VV=XW _V、所有制約k = N k = Nを使用します。k=N WQ W_Qの線形変換WQWK W_KWK W V W_V WVこれは、すべての入力ベクトル間に注目が集まっていることを意味します。最後に、 hh
    を考慮すると、h注意の頭、つまりhhhセルフ アテンション関数は、マルチヘッド セルフ アテンション層 (MSA) を定義します。各ヘッダーは、サイズN × d N \times dのヘッダーを提供します。N×dシーケンス。これらは、ああhシーケンスはN × dh N \times dhに再配置されます。N×d hシーケンス、線形層によってN × DN \times DN×D

  • 画像の Transformer ブロック
    完全な Transformer ブロック (Vaswani et al.、2017) を取得するために、著者らは MSA 層にフィードフォワード ネットワーク (FFN) を追加しました。この FFN は、GeLu 活性化によって分離された 2 つの線形層で構成されています (Hendrycks & Gimpel、2016)。最初の線形層はDDから次元を変更しますDを 4Dに拡張4D4D 2 番目のレイヤーは4Dから寸法を変更します4DDDに復元D._ _ スキップ接続により、MSA と FFN は両方とも層正規化を備えた残差演算子として動作します (Ba et al., 2016)。
    画像を処理するための Transformer を取得するために、この作業は ViT モデルに基づいて構築されています (Dosovitskiy et al.、2020)。これは、入力トークン シーケンスと同様に入力画像を処理する、シンプルかつエレガントなアーキテクチャです。固定サイズの入力 RGB 画像をNNのバッチに分解しますN の固定サイズは16 × 16 16 \times1616×16ピクセル (N = 14 × 14 N = 14 \times 14N=14×14)パッチ。各パッチは、全体の寸法を維持する線形レイヤーで投影されます。3 × 16 × 16 = 768 3 \times 16 \times 16 = 7683×16×16=768上記の Transformer ブロックは不変のパッチ埋め込み順序であるため、その位置は無視されます。位置情報は、固定 (Vaswani et al., 2017) またはトレーニング可能な (Gehring et al., 2017) 位置埋め込みに組み込まれます。これらはパッチ トークンの最初の Transformer ブロックの前に追加され、その後 Transformer ブロック スタックに供給されます。

  • クラス トークンは、
    最初のレイヤーの前にパッチ トークンに追加されるトレーニング可能なベクトルです。これは変換レイヤーを通過し、線形レイヤーで投影されてクラスを予測します。このクラス トークンは NLP (Devlin et al., 2018) から継承しており、クラスを予測するためにコンピューター ビジョンで使用される典型的なプーリング層とは異なります。したがって、Transformer は次元DDを処理します。D (N+1)(N+1)( N+1 )出力を予測するためにクラス ベクトルのみが使用されるトークン バッチ。このアーキテクチャでは、パッチ トークンとクラス トークンの間で情報を伝播することに自己注意が強制されます。トレーニング時には、監視信号はクラスの埋め込みからのみ発生し、パッチ トークンはモデルへの唯一の変数入力です。

  • 解像度全体にわたる固定位置エンコーディング
    Touvron et al. (2019) は、低いトレーニング解像度を使用し、より高い解像度でネットワークを微調整することが望ましいことを示しました。これにより、完全なトレーニングが高速化され、既存のデータ拡張スキームの下での精度が向上します。入力画像の解像度を上げるときは、パッチ サイズを一定に保つため、入力NNNパッチの数が変わります。Transformer ブロックとトークンのようなアーキテクチャにより、より多くのトークンを処理するためにモデルと分類子を変更する必要はありません。代わりに、 NNを使用するため、位置埋め込みを適応させる必要があります。N 個の位置エンベディングがあり、各パッチは 1 つの位置エンベディングに対応します。Dosovitskiy et al. (2020) は、解像度を変更するときに位置エンコーディングを挿入し、この方法が後続の微調整段階に適していることを実証しています。

3.2 注意による蒸留

このセクションでは、著者は強力な画像分類器を教師モデルとして使用できると想定しています。畳み込みニューラル ネットワークまたは分類器のハイブリッドにすることができます。次に、この教師を使用して、Transformer を学習する方法の問題を解決します。次の表は、精度と画像スループットのトレードオフを比較して示しているように、畳み込みニューラル ネットワークを Transformer に置き換えることが有益ですこれは、硬質蒸留と軟質蒸留、古典的な蒸留と蒸留トークンの 2 つの蒸留方向をカバーします。
ここに画像の説明を挿入します

  • ソフト蒸留に関するいくつかの研究
    では、教師モデルのソフトマックスと生徒モデルのソフトマックスの間のカルバック・ライブラー発散を最小限に抑えています。Z t Z_t としますZ教師モデルの対数、Z s Z_sZsは学生モデルの対数です。τ \tauを使用します。τ は蒸留温度、λ \lambdaλ は、カルバック ライブラー発散損失 (KL) と相互エントロピー (LCE) の係数のバランスをとります。
    ここに画像の説明を挿入します

  • ハードラベル蒸留は
    、ここでの蒸留の変形を導入し、教師の厳しい決定を実際のラベルとして受け入れます。yt = argmaxc Z t ( c ) y_t = argmax_cZ_t(c)とします。y=最大_ _ _cZ( c )は教師の難しい決定であり、このハードラベルの蒸留に関連する目標は、
    ここに画像の説明を挿入します
    特定の画像について、教師に関連付けられたハードラベルが特定のデータ拡張に基づいて変更される可能性があることです。これからわか​​るように、このオプションは従来のオプションよりも優れていますが、パラメーターがなく概念的に単純です。教師はyt y_ty実際のラベルyy付きy も同じ役割を果たします。

  • ラベル スムージング
    ハードラベルは、ラベル スムージング (Szegedy et al., 2016) を介してソフト ラベルに変換することもできます。この場合、真のラベルは 1 ε \varepsilonを持つと見なされます。εの確率、残りのε \varepsilonεは残りのクラス間で共有されます。真のラベルを使用するすべての実験では、ε = 0.1 \varepsilon= 0.1e=0.1教師が提供した疑似ラベル (例: 硬蒸留など) はここでは平滑化されないことに注意してください。

  • 蒸留トークン
    図 2 に示すように、作成者は新しいトークンである蒸留トークンを最初の埋め込み (パッチおよびクラス トークン) に追加します。ここで蒸留されたトークンはクラス トークンの使用に似ています。セルフ アテンションを通じて他の埋め込みと相互作用し、最後の層の後にネットワークによって出力されます。その目的は、失われた蒸留成分によって与えられます。蒸留エンベディングを使用すると、クラス エンベディングを補完しながら、通常の蒸留と同様に、モデルが教師の出力から学習できるようになります。
    ここに画像の説明を挿入します

  • 蒸留による微調整
    著者は、高解像度での微調整段階で実際のラベルと教師の予測を使用します。通常、Touvron et al. (2019) の方法を介して低解像度の教師から取得した、同じターゲット解像度を持つ教師を使用します。ここでも真のラベルのみがテストされますが、これにより教師の利益が減り、パフォーマンスの低下につながります。

  • 私たちのアプローチによる分類: 結合分類器
    テスト時には、Transformer によって生成されたクラスまたは蒸留された埋め込みのいずれかが線形分類器に関連付けられ、画像ラベルを推測できます。この記事の参照方法は、これら 2 つの個別のヘッドのポストフュージョンを実行し、2 つの分類器のソフトマックス出力を加算して予測を行うことです。以下の表に示すように、これら 3 つのオプションを評価します。
    提案された戦略はパフォーマンスをさらに向上させ、2 つのトークンが補完的な有用な分類情報を提供することを示しています。両方のトークンの分類子は、独立クラスと抽出された分類子を大幅に上回り、それら自体はすでに抽出されたベースラインを上回っています。抽出されたトークンに関連付けられた埋め込みは、クラス トークンを使用した埋め込みよりもわずかにパフォーマンスが優れています。また、畳み込みニューラル ネットワークの予測との相関性も高くなります。すべての場合において、これを含めることで、さまざまな分類子のパフォーマンスが向上しました。
    ここに画像の説明を挿入します

3.3 DeiT アーキテクチャの 3 つのバリエーション

ここに画像の説明を挿入します

4. いくつかの実験結果

4.1 異なる教師構成での蒸留結果

Abnar et al. (2020) が説明しているように、畳み込みニューラル ネットワークはより優れた教師です。これはおそらく、Transformer が蒸留を通じて帰納的バイアスを継承するためです。この論文の後続のすべての蒸留実験では、デフォルトの教師ネットワークは、DeiT と同じデータと同じデータ拡張を使用してトレーニングされた、8,400 万のパラメーターを持つ RegNetY-16GF (Radosavovic et al., 2020) です。この教師ネットワークは、82.9% の精度で ImageNet で 1 位を獲得しました。
ここに画像の説明を挿入します

4.2 蒸留法の比較

上記の表 3 に示すように、さまざまな蒸留戦略のパフォーマンスを比較します。Transformer の場合、クラス トークンのみを使用した場合でも、ハード蒸留はソフト蒸留よりも大幅に優れています: 解像度224 × 224 224 \times 224224×224では、硬蒸留は 83.0% に達しますが、軟蒸留の精度は 81.8% です。
ここに画像の説明を挿入します

4.3 教師の見解と帰納的バイアスに同意しますか?

上で述べたように、教師の構造は重要な意味を持ちます。トレーニングに有利な既存の帰納的バイアスを引き継いでいますか? この質問に正式に答えるのは難しいと思いますが、表 4 で convnet 教師、ラベルからのみ学習するイメージ Transformer DeiT、および DeiT の意思決定合意を分析します。ゼロから学習した Transformers と比較して、私たちの蒸留モデルは畳み込みニューラル ネットワークとより関連しています。予想どおり、蒸留された埋め込みに関連付けられた分類器は、クラス エンベディングに関連付けられた分類器よりも畳み込みネットワークに近いのに対し、クラス エンベディングに関連付けられた分類器は、蒸留学習のない DeiT により似ています。当然のことながら、結合クラス + 蒸留分類子は中間点を提供します。
ここに画像の説明を挿入します

4.4 トークン分析

学習されたクラスと抽出されたトークンは、異なるベクトルに向かって収束します。これらのトークン間の平均コサイン類似度 (cos) は 0.06 に等しくなります。各層で計算されたクラス埋め込みと蒸留埋め込みは、ネットワークを通じて徐々に類似性が高まり、最後の層では類似度は高くなりますが (cos=0.93)、それでも 1 未満になります。彼らは似たような、しかし同一ではない目標を生み出すことを目指しているので、これは予想されることです。
同じターゲット ラベルに関連する追加のクラス トークンを単に追加することと比較して、この論文では、抽出されたトークンがモデルに何かを追加することを検証します。著者は、教師疑似ラベルの代わりに 2 つのクラス トークンを持つ Transformer を使用します。それらをランダムかつ独立して初期化したとしても、トレーニング中に同じベクトル (cos=0.999) に収束し、出力埋め込みは準同一になります。私たちの蒸留戦略とは異なり、追加のクラス トークンは分類パフォーマンスに影響を与えません。

4.5 学習を下流タスクに転送する

DeiT は ImageNet 上で良好なパフォーマンスを示しますが、DeiT の汎化能力を測定するには、他のデータセットでの転移学習を評価することが重要です。著者らは、表 8 のデータセットを微調整することにより、転移学習タスクでこれを評価します。表 6 は、DeiT の転移学習結果を ViT および EfficientNet と比較しています。DeiT は競合する convnet モデルに匹敵し、これは ImageNet1k に関する以前の結論と一致しています。
ここに画像の説明を挿入します
ここに画像の説明を挿入します

4.6 データの拡張

トランスフォーマーは、より多くの事前分布 (畳み込みなど) を統合するモデルよりも多くのデータを必要とします。したがって、同じサイズのデータ​​セットでトレーニングするために、この論文では大規模なデータ拡張に依存しています。著者らは、データ効率の高いトレーニング方法を実現するために、さまざまなタイプの強力なデータ拡張を評価しています。同時に、さまざまなオプティマイザーが検討され、さまざまな学習率と重み減衰で相互検証されました。トランスフォーマーは、最適化されたハイパーパラメーターの設定に非常に敏感です。
ここに画像の説明を挿入します

4.7 トレーニング時間

DeiT-B の場合、300 エポックの一般的なトレーニングには 37 時間 (2 ノード) または 53 時間 (単一の 8 GPU ノード) かかります。比較のために、RegNetY-16GF (8,400 個のパラメータ) を使用した同様のトレーニングは 20% 遅くなります。DeiT-S と DeiT-Ti は 4 つの GPU で 3 日以内にトレーニングします。その後、より高い解像度でモデルを微調整できます。解像度を384 × 384 384 \times 384に調整するには、8 つの GPU で 20 時間かかりました。384×384 DeiT-B モデル。これは 25 エポックに相当します。バッチ仕様に依存せずに、パフォーマンスに影響を与えることなくバッチ サイズを削減できるため、大規模なモデルのトレーニングが容易になります。3 回の反復で反復拡張を使用しているため、エポック中に表示されるのは画像の 3 分の 1 だけであることに注意してください。

5。結論

  • convnet Teacher を使用すると、Transformer を使用するよりもパフォーマンスが向上します。
  • Transformer の場合、クラス トークンのみが使用されている場合でも、ハード蒸留はソフト蒸留よりも大幅に優れています。
  • トランスフォーマーネットワークが深くなるにつれて、トークンは徐々に類似するようになります。つまり、過度に平滑化されます。
  • 小規模なデータ セットでは、Imagenet の事前トレーニングを行わない場合、ネットワークの多様性がはるかに低いため、最初からトレーニングするパフォーマンスは事前トレーニングのパフォーマンスほど良くありません。
  • この論文の実験では、Transformer には強力なデータ拡張が必要であることが確認されています。著者が評価したほとんどすべてのデータ拡張方法が有用であることが証明されました。例外の 1 つはドロップアウトであり、作成者はこれをトレーニング プロセスから除外します。
  • Mixup や Cutmixのような正則化により、トランスのパフォーマンスが向上します

おすすめ

転載: blog.csdn.net/weixin_43994864/article/details/123589610