ビジョントランスフォーマーの研究ノート

序文

本博客记录我学习vision Transformer这篇文章的过程,旨在记录整合各大网页资料,方便日后查看。


目次

序文

1. 学習リンク

1. この記事の主な学習内容 

2. VIT の学習に役立つリンク

3. 関連する知識ポイントの学習リンク

2. 論文研究ノート

1.VITについて

2. タイトル

3. 概要

4. はじめに

5。結論

6. 関連作品

7. 方法

7.1 ビジョントランスフォーマー(VIT)

7.2 微調整と高解像度 (微調整と高解像度)

8. 実験

8.1 セットアップ 

8.1.1 データセット

8.1.2 モデルのバリアント (モデルとバリアント)

8.2 State of the ART(最新技術との比較)との比較

8.3 事前トレーニングデータ要件 (事前トレーニングデータ要件)

8.4 スケーリングの検討

8.5 ビジョントランスの検査(VISION TRANSFORMER检验)

8.6 自己監視(自己監視)

3. ビジョントランスフォーマーの概要


1. 学習リンク

1. この記事の主な学習内容 

  VIT論文精読(Li Mu):ViT論文を段落ごとに精読【論文精読】

  VIT 論文リンク: https://arxiv.org/pdf/2010.11929.pdf

  VIT ソースリンク: https://github.com/rwightman/pytorch-image-models

  VIT 論文翻訳: https://blog.csdn.net/jjw_zyfx/article/details/125036387

2. VIT の学習に役立つリンク

【ViTモデル】傲慢なトランスフォーマーはいかに「振る」のか!: https://www.bilibili.com/video/BV13B4y1x7jQ 

【どれくらい知っていますか】ViT(ビジョントランスフォーマー)とは何ですか?: https://www.bilibili.com/video/BV18u411m7PY

  ViT(Vision Transformer)解析 :https://zhuanlan.zhihu.com/p/445122996

3. 関連する知識ポイントの学習リンク

  帰納的バイアス: https://blog.csdn.net/qq_39478403/article/details/121107057


2. 論文研究ノート

1.VITについて

Vision Transformer: CV 分野の新時代を開く

  • 2012年にAlexnetが提案したCV分野におけるCNNの絶対的な優位性に挑戦
  • 十分な事前トレーニング データがあれば、NLP の Transformer を CV に移行しても良い結果が得られます
  • VIT は CV と NLP の壁を打ち破るだけでなく、マルチモダリティの分野でも大きな可能性を秘めています

Vision Transformer の効果:paperwithcode Web サイト (特定の分野または特定のデータセットで最もパフォーマンスの高い手法のランキングを統合)

  • Paperwithcode Web サイトの ImageNet データセットに基づく、上位ランキングはすべて Vision Transformer に基づいています
  • Paperwithcode Web サイトの CoCo データセット (ターゲット検出) に基づく: 上位ランキングはすべて Swin Transformer (ICCV 21 最優秀論文: マルチスケール ViT) に基づく
  • セマンティックセグメンテーション、インスタンスセグメンテーション、ビデオ、医療、リモートセンシングなどの視覚分野に応用可能

CNN ではパフォーマンスが悪いが、VIT ではパフォーマンスが良い畳み込みニューラル ネットワークの例

  • 例: オクルージョン、データ分布のオフセット (テクスチャの削除)、鳥の頭 + 対立パッチ、画像の分散と再配置

2. タイトル

著者は Google Research および Google Brain チームの出身です 

画像は 16*16 ワードの価値があります: 大規模な画像認識のためのトランスフォーマー

翻訳: 画像は多くの 16*16 単語に相当します: 大規模画像認識用のトランスフォーマー

3. 概要

紙の翻訳:

  • Transformer は NLP の基本的な操作ですが、CV での Transformer の応用は限られており、視野では、畳み込みネットワークと組み合わせて使用​​されるか、全体の構造は変えず畳み込みネットワークの一部を置き換えることが考えられます。
  • この論文は、CNN に依存する必要はなく、画像パッチのシーケンスに直接適用される純粋な変換器も画像分類タスクでうまく動作できることを示しています。
  • 大量のデータを事前トレーニングし、それを複数の中規模または小規模の画像認識ベンチマークに転送する場合、ビジョン トランスフォーマー (ViT) は、トレーニングに必要な計算リソースを少なくしながら、SOTA 畳み込みネットワークと比較して優れた結果を達成します

Q1:履歴書の注目度はどのように使われますか?

  • アテンション + CNN、またはアテンションは CNN コンポーネントを置き換えますが、CNN の全体的な構造は維持されます。

Q2: CNN の全体的な構造が変わっていないことはどのように理解すればよいですか?

  • たとえば、ResNet 50 には 4 つのステージ (res2 res3 res4 res5) があり、ステージは変更されず、全体の構造を変更することなく、各ステージの各ブロックでこの操作が attention に置き換えられます。

Q3: VIT ではトレーニングに必要なコンピューティング リソースが少なくなりますか?

  • いいえ、トレーニング リソースが少なくなります == TPUv 3 + 2500 日、「少ない」は相対的なものです。

4. はじめに

紙の翻訳:

  • セルフアテンション アーキテクチャに基づく、特に Transformers は、すでに NLP に必須のモデルです。主流の方法は BERT によって提案されており、大規模なデータセットで事前トレーニングし、特定の分野の小規模なデータセットで微調整します。Transformer の計算効率とスケーラビリティが向上したため、1,000 億を超えるパラメーターを使用してモデルをトレーニングできるようになりました。モデルやデータセットが進化しても、パフォーマンスが飽和することはありません。
  • コンピューター ビジョンの分野では、畳み込み構造が依然として主流です。NLP の成功に触発されて、複数の研究がCNN のような構造を注意メカニズムと組み合わせることが試みられ(Wang et al., 2018; Carion et al., 2020)、畳み込みを置き換えたものもあります (Ramachandran et al., 2019 ; Wangら、2020a)。この畳み込みの直接置き換えは理論的には可能ですが、特殊なアテンション パターンを使用しているため、最新のハードウェア アクセラレータではまだ効率的に拡張できません。大規模な画像認識では、従来の ResNet のようなアーキテクチャが依然として最適です。
  • NLP でのトランスフォーマーの大規模アプリケーションの成功に触発されて、私たちは標準のトランスフォーマーをできるだけ変更せずに画像に直接適用することを試みています。これを行うには、画像を複数の画像ブロックに分割し、これらのブロックを Transformer への入力として線形シーケンスに織り込みます。画像ブロックは、NLP のトークンと同じ方法で作成されます。教師ありの方法で画像分類に関するモデルをトレーニングします
  • ImageNet などの中程度のサイズのデータ​​セットで強い正則化を行わずにトレーニングした場合、これらのモデルの精度は、同等のサイズの ResNets よりも数パーセント低くなります。この一見悲惨な結果が予想されるかもしれません。トランスフォーマーには、変換不変性や局所性など、CNN に固有の帰納的バイアスの一部が欠けているため、不十分な量のデータでトレーニングされた場合、トランスフォーマーは優れた汎化能力を備えていません。
  • ただし、より大きなデータセット (14M ~ 300M の画像のデータセット) でトレーニングされた場合。CNN では、大規模なトレーニングが帰納的バイアスよりも優れたパフォーマンスを発揮することがわかりました。当社の Vision Transformer (ViT) は、十分に大きなデータセットで事前トレーニングしてから、データ ポイントが少ないタスクに転送すると、非常に優れた結果を達成します。公開されている ImageNet-21k データセットまたは社内の JFT-300M データセットで事前トレーニングすると、ViT は複数画像認識において最先端のベンチマーク モデルに近づくか、それを上回ります。特に、私たちの最良のモデルは、ImageNet で 88.55%、ImageNet-ReaL で 90.72%、CIFAR-100 で 94.55%、19 タスクの VTAB で 77.63% の精度を達成しています。

Q1: パフォーマンスの飽和現象とは何ですか?

  • 多くの場合、データセットやモデルを拡張するだけではより良い結果は得られません。特にモデルを拡張する場合、過学習の問題が発生しやすくなります。

Q2: TransformerをCVに適用するのに難しいことはありますか?

  • はい、ピクセルのセルフ アテンションを計算します。シーケンスは長く、次元は爆発的に増加します。Transformer の計算量は、シーケンスの長さの 2 乗 n O(n^2) です。ハードウェアがサポートできるシーケンスの長さは次のとおりです。通常、数百または数千であり、BERT シーケンスの長さは 512 です。コンピュータ ビジョンの分野では、2D 画像を 1D シーケンスに変換する必要がありますが、最も直感的な方法は、各ピクセルをシーケンス要素として扱うことです。分類タスクの場合、一般的に、224 * 224 解像度の画像には 50176 ピクセルがあり、シーケンスの長さは BERT のほぼ 100 倍になります。検出またはセグメンテーションのタスクでは、多くのモデル入力が 600*600 以上になり、より複雑になっています。

Q3: CNN の構造は一般的にアテンション メカニズムとどのように組み合わされますか?

  • シーケンスの長さが長すぎるため、シーケンスの長さを短縮する方法を見つけます。たとえば、元の画像のピクセルの入力シーケンスが長すぎる場合、論文「CVPR 18 Local Network」に示されている例のように、CNN ネットワークの中央にある特徴マップを Transformer に入力するための入力として使用できます。ステージの場合、res4 の特徴マップは 14*14 で、ストレッチ後のシーケンスの長さはわずか 196 です。
  • 記事に示されている例では、シーケンスの長さを短縮する方法は次のとおりです:トランスフォーマーの入力として特徴マップを使用する(Wang et al 2018) および畳み込みを完全に置き換えるセルフ アテンション メカニズム (Ramachandran et al.、2019 スタンドアロン アテンション)孤立した自己注意; Wang et al.、2020 軸方向の注意軸の注意)。スタンドアロン アテンション、分離されたセルフ アテンション:ローカル ウィンドウ ローカル スモール ウィンドウを使用して、畳み込みに似た変換器の計算の複雑さを制御します。畳み込みにも局所性があり、ローカル ウィンドウ コンボリューションです。軸方向のアテンション 軸方向のアテンション:計算の複雑さを軽減するために 2 つの 1D 逐次演算を実行します。ピクチャ n = H * W のシーケンス長が長すぎるため、2D 行列を 2 つの 1D ベクトルに分割し、最初にセルフ アテンションを実行し、次にW幅寸法にこだわり。

Q4: できるだけ変更を少なくして、標準のトランスフォーマーを画像に直接適用するにはどうすればよいですか?

  • 画像を多数のパッチに分割します。各パッチ要素のサイズは 16*16 です。たとえば、入力画像サイズは 224x224 で、画像は固定サイズのパッチに分割されます。パッチ サイズは 16x16 で、各画像が生成されます224x224/16x16=196 個のパッチ、つまり入力シーケンスの長さは 196 です。

Q5: なぜ VIT は CNN よりも精度が低いのですか? 誘導バイアスとは何ですか?

  • Transformer は CNN よりも誘導性バイアス (誘導性バイアス) が少なく、誘導性バイアス 誘導性バイアスとは、事前の知識または事前の仮定を指します。CNN がしばしば持つ帰納的バイアスは、局所性 (局所性) と翻訳等変性 (翻訳不変性) です。
  • 局所性: CNN は、画像の隣接する領域が同様の特徴を持つと仮定して、スライディング ウィンドウを使用して画像の畳み込みを実行します。たとえば、テーブルと椅子が一緒である確率は高く、近いアイテムほど相関性が高くなります。
  • 変換等分散:式:  f(g(x)) = g( f(x) )、 f: 畳み込み、 g: 変換、変換 g を最初に実行しても、畳み込み f を最初に実行しても、最終結果は同じです。これは、CNN の畳み込みカーネルがテンプレートのようなものであるため、どこに配置されていても同じです。同じオブジェクトが移動し、同じコンボリューション カーネルに遭遇した場合、その出力は一貫しています。
  • 局所性と翻訳の等分散性の帰納的バイアスにより、CNN には大量の事前情報があり、モデルを適切に学習するために必要なデータは少なくなります。トランスフォーマーはそのような事前情報を持たず、画像データからのみ視覚世界の認識を学習することができます。

導入の要約:

  1. 最初の段落: Transformer は NLP で非常によく拡張されます。大規模なモデルと大規模なデータ セットにより飽和していません。パフォーマンスは向上しています。Transformer は CV でも大幅に改善できますか?
  2. 2 番目の段落: 前の作品。誰がそんな良いアイデアを考え出したのでしょうか?あなたの作品と関連作品の違いを明確に説明してください。前作はCNNではなくCNN+attentionまたはattentionでしたが、CV分野でトランスを直接使った作品はなく、良い拡張効果は得られませんでした。
  3. 3 番目の段落: Vision Transformer は、画像を画像ブロックに分割し、それを Transformer に入力する標準的な Transformer モデルを使用します。CV 問題は NLP 問題として理解され、ViT は CV と NLP の分野を統合します。
  4. 4 番目と 5 番目の段落: 結果の表示: 十分なデータセットのトレーニングがあれば、ViT は良好な結果を達成できます。

5。結論

紙の翻訳:

  • 私たちは、Transformers を画像認識に直接応用することを検討してきましたコンピューター ビジョンにおけるこれまでのセルフ アテンションの使用とは異なり、最初のパッチ抽出ステップを除いて、画像固有の誘導バイアスをアーキテクチャに導入しません。代わりに、画像を一連の画像ブロックに分解し、NLP と同様に標準の Transformer エンコーダを通じて処理します。このシンプルだがスケーラブルな戦略は、大規模なデータセットでの事前トレーニングと組み合わせると、驚くほどうまく機能します。さらに、Vision Transformer は、事前トレーニングのオーバーヘッドが比較的小さい一方で、多くの画像分類データセットで最良のモデルを超える設定を実現します。
  • これらの初期結果は非常に心強いものではありますが、多くの課題が残されています。その 1 つは、ViT を検出タスクやセグメンテーション タスクなどの他のビジョン タスクに適用することです。私たちの結果とCarion et al. (2020) の結果は、このアプローチが有望であることを示しています。もう 1 つの課題は、自己注意の事前トレーニング方法を探求し続けることです。私たちの予備実験では、自己注意の事前トレーニングは改善されていますが、自己教師ありの事前トレーニングと大規模な教師ありの事前トレーニングの間には依然として大きなギャップがあることが示されています。最後に、ViT をさらに拡張すると、パフォーマンスが向上する可能性があります。

Q1: Transformer は CV を行うことができますか?

  • VIT のリリース後に生じる問題——CV での分類に加えて、Vision Transformer は他の 2 つの主流の視覚タスク、画像セグメンテーションとオブジェクト検出を実行できますか? DETR (Carion et al. 2020) ターゲット検出の傑作は、ターゲットがフレームを検出する方法を変え、VIT が他の CV タスクでもうまく機能するはずであることを示しています。
  • 実際、VIT の登場から 1 か月半後 (2020 年 12 月)、検出面では検出に VIT を使用するViT-FRCNN が開始され、セグメンテーション面ではセグメンテーションに VIT を使用するSETRが開始されました。3か月後、トランスフォーマーとマルチスケールデザインを組み合わせたSwin Transformerが誕生しました。Transformer が CV 分野の一般的なバックボーンネットワークのバックボーンとして使用できることを証明します。
  • 今後の取り組みのもう 1 つの方向性は、自己監督による事前トレーニングです。NLP の大規模なトランスフォーマー モデルはすべて自己教師あり事前トレーニングを使用しています。ViT は自己教師あり事前トレーニングも可能であることを証明するための初期実験を行っていますが、教師ありトレーニングとはギャップがあります。ViT を大きくすると、より良い結果を得ることができます。
  • VIT タイプは CV フィールドの基礎を築き、その後の探索を刺激します。視覚分野での CV のさらなる開発やマルチモーダル タスクなど、トランスフォーマーは CV と NLP を処理できます。

6. 関連作品

紙の翻訳:

  • Transformers は、2017 年に Vaswani らによって提案された機械翻訳手法であり、それ以来、多くの NLP タスクにおいて最も先進的な手法となっています。大規模な Transformer ベースのモデルは、ほとんどが大規模なコーパスで事前トレーニングされてから、特定のタスクに合わせて微調整されます。BERT (Devlin et al., 2019) はノイズ除去に自己教師ありの事前トレーニング タスクを使用しますが、GPT ファミリーは次のような言語モデルを使用します。その事前トレーニングタスク(Radford et al.、2018; 2019; Brown et al.、2020)。
  • 画像にセルフアテンションを適用するには、各ピクセルが他のすべてのピクセルに注意を払う必要があります。ピクセル二乗ペナルティのため、これが実際の入力サイズになることはありません。したがって、トランスフォーマーを画像処理の分野に適用するために、グローバル スコープではなく、各ピクセルのローカルな近傍でセルフ アテンション メカニズム (セルフ アテンション) を使用するといういくつかの方法が過去に試みられてきました。このようなローカル マルチヘッド ドット積セルフ アテンション モジュールは、畳み込みネットワークを完全に置き換えることができます。または、画像に適用されるグローバル セルフ アテンションのスケーラブルな近似を採用するスパース トランスフォーマーのようなものです。別の方法を使用して、さまざまなサイズのブロックを計算します。多くの特殊な注意メカニズムは、コンピューター ビジョン タスクで優れた結果を示していますが、ハードウェア アクセラレータで使用するには複雑なエンジニアリングが必要です。
  • 私たちのモデルに最も近いモデルはCordonnier et al. (2020) のモデルで、そのモデルは入力画像から 2x2 パッチを抽出し、最上層で完全な注意を使用します。このモデルは ViT に非常に似ていますが、私たちの研究はさらに、大規模な事前トレーニングによってトランスフォーマーを最先端の CNN と比較できることを示しています。また、Cordonnier et al. (2020) は小さな 2×2 ピクセル ブロックを使用しているため、このモデルは低解像度の画像にのみ適していますが、私たちのモデルは中解像度の画像も処理できます。
  • 畳み込みニューラル ネットワークとセルフ アテンションを組み合わせることに多くの関心が集まっていますたとえば、特徴マップを強化することによる画像分類 (Bello et al., 2019)、または教師なし物体発見に基づく物体検出、ビデオ処理、画像分類などのさらなる処理のために CNN の出力にセルフアテンションを使用すること、統合テキストビジョンタスク。
  • もう 1 つの同様のモデルは、画像 GPT (iGPT)です。これは、画像の解像度と色空間を削減した後、画像ピクセルにトランスフォーマーを適用します。生成モデルとして、iGPTは教師なしの方法でトレーニングされ、微調整または線形検出によって分類パフォーマンスが向上し、ImageNet で最大精度 72% に達します。
  • 私たちの研究では、標準の ImageNet データセットよりも大きなデータセットに対する画像認識を調査しています最良の結果は、追加のデータ ソースを使用した標準ベンチマークで得られます。さらに、Sun et al. (2017) は、データセットのサイズが変化するにつれて CNN のパフォーマンスがどのように変化するかを研究しました。Kolesnikovet al. (2020); Djolonga et al. (2020)は、大規模なデータセットからの CNN 転移学習の実験的探索を示しています。データセット ImageNet-21k や JFT-300M と同様です。私たちはこれら 2 つのデータセットに同様に焦点を当てていますが、トレーニングには ResNet ベースのモデルの代わりに Transformers を使用して以前の研究を構築しています。

関連作品概要:

  1. 最初の段落: NLP 分野におけるトランスフォーマーの応用: BERT、GPT
  2. 第2段落:自己注意の視覚領域への応用 「次元爆発問題」を解決するために、過去に提案されたいくつかの手法を列挙する。
  3. 3 番目の段落: Cordonnier et al. (2020) のモデルを紹介します。これは VIT に非常に似ていますが、トレーニングの規模が十分に大きくありません。
  4. 4 番目の段落: コンピューター ビジョンの分野では、検出、分類、ビデオ処理、マルチモダリティなどをカバーする、畳み込みニューラル ネットワークと自己注意を組み合わせるため多くの
  5. 5 番目の段落: 別の同様の研究: 画像 GPT、GPT は NLP の生成モデル、教師なし事前トレーニング、ImageNet の精度率は 72% です。
  6. 段落 6: VIT は、Transformers を使用した ImageNet-21k と JFT-300M の 2 つのデータセットに焦点を当てます。

7. 方法

モデルデザインに関しては、オリジナルのトランスフォーマーのデザインを可能な限り踏襲しています。セットアップを簡素化するこの目的の利点の 1 つは、NLP Transformer アーキテクチャをスケーラブルにし、その効率的な実装がほぼそのまま使用できることです。

 図 1: モデルの概要では、画像を固定サイズのブロックに分割して線形にエンコードし、それらを位置エンコーディングに追加して、その結果をベクトル シーケンスとともに標準の Transformer エンコーダにロードします。標準のものを使用したシーケンスに対する追加の学習可能な「クラス ラベル」メソッド。Transformer エンコーダの図は、Vaswani et al. (2017) からインスピレーションを得ています。

7.1 ビジョントランスフォーマー(VIT)

紙の翻訳:

  • 図 1 にモデルの概要を示します。標準の Transformer の入力は、1D トークン エンコード シーケンスです。2D 画像を処理するには、画像の形状をx\in \mathbb R^{H*W*C}一連の平面 2D 画像ブロックに変更x_p \in \mathbb R^{N*(P^2*C)}します。ここで (H, W) は元の画像の解像度、C はチャネル数、(P, P) は各ピクセル ブロックの数 解像度はN = HW/P^2画像ブロックの数であり、Transformer の有効な入力シーケンス長としても使用されます。Transformer は、すべてのレイヤーで固定ベクトル サイズ D を使用します。したがって、i では、ピクセルのパッチを平坦化し、訓練可能な線形投影(式 1) を使用してD 次元にマッピングします。この投影の出力をピクセル ブロックのエンコードとして取得します。
  • BERT の [クラス] トークンと同様に、学習可能なエンコーディング ( ) をエンコードされた画像ブロックのシーケンスに追加します。これはz^0_0 = x_{クラス}、Transformer エンコーダー出力 ( ) の状態でz^0_L画像 y (式 4) として使用されます。事前トレーニングおよび微調整中に分類ヘッドとして割り当てられる分類z^0_Lヘッドは、事前トレーニング中に 1 つの隠れ層、微調​​整中に 1 つの線形層を備えた MLP によって実装されます。
  • 位置コーディングは、位置情報を保存するために画像ブロックコーディングに追加されます。高度な2D 位置エンコーディングによる大幅なパフォーマンスの向上が見られないため、標準の学習可能な 1D 位置エンコーディングを使用します(付録 D.4)。結果として得られる埋め込みベクトルのシーケンスは、エンコーダーへの入力として機能します。
  • Transformer エンコーダは、交互のマルチヘッド セルフ アテンション ブロックと MLP ブロックで構成されます。レイヤー正規化 (LN) は各ブロックの前に適用され、残りの接続は各ブロックの後に使用されます。MLP は非線形 GELU を備えた 2 つの層で構成されます。

  • 誘導バイアス: Vision Transformer (ViT) の画像に対する誘導バイアスは CNN よりも小さいことに注意してください。CNN では、局所性、2D 近傍構造、および変換不変性がネットワーク全体のすべての層に浸透します。ViT では、MLP 層のみがローカルに共有され、変換は不変ですが、セルフアテンション層はグローバルです2 次元の近傍構造はほとんど使用されません。モデルの開始時に、画像が画像ブロックに切り取られます。微調整中に、ピクセルが異なる画像の位置埋め込み (後述) を調整します。これらとは別に、位置埋め込みは画像パッチの 2D 位置情報を持たずに初期化され、画像パッチ間のすべての空間関係を最初から学習する必要があります。
  • ハイブリッド アーキテクチャ:生の画像パッチの代わりに、CNN の特徴マップから入力シーケンスを形成できます (LeCun et al.、1989)。このハイブリッド モデルでは、パッチ埋め込み射影 E (式 1) が CNN 特徴マップから抽出されたパッチに適用されます。特殊なケースとして、画像パッチの空間サイズは 1x1 にすることができます。これは、入力シーケンスが、特徴マップの空間次元を単純に平坦化し、Transformer 次元に投影することによって取得されることを意味します。カテゴリ入力埋め込みと位置埋め込みは、上で説明したように追加されます。

Q1: VIT の全体的なプロセス:

  • 全体的なプロセス: 与えられた画像をパッチに作成し (図 1 では、9 正方形のグリッドになっています)、パッチをシーケンスに変換します。各パッチは、線形関数を通じて特徴 (パッチの埋め込み) を取得します。位置エンコーディングを追加した後、トークンが Transformer エンコーダーに渡され、大量の出力が得られます。各トークンには出力がありますが、どの出力が分類に使用されますか? BERTを参照すると、追加の学習可能な埋め込み(特殊文字cls)があり、同様に、トークンにも特殊文字が追加されています(図では*に置き換えられます)。これも位置埋め込みであり、その位置情報は常に0です。 。すべてのトークンがすべてのトークンと相互作用するためです。したがって、マークされた CLS は他の埋め込みから有用な情報を学習できるため、その出力に基づいて最終的な分類判断を行うだけで済みます。次の MLP ヘッドは実際には一般的な分類ヘッドであり、最後にクロス エントロピー関数を使用してモデルをトレーニングします。
  • 次のビデオを見ることをお勧めします ( [ViT モデル] 傲慢なトランスフォーマーはどのように「振る」のか!_哔哩哔哩_bilibiliから録画)

VIT の全体的なプロセス

Q2: VIT 前進プロセス (視覚の問題が NLP 問題になる):

  1. パッチ埋め込み:たとえば、入力画像サイズが 224x224 で、画像を固定サイズのパッチに分割し、パッチ サイズが 16x16 の場合、各画像は 224x224/16x16=196 個のパッチを生成します。つまり、入力シーケンスの長さは196、各パッチの次元16x16x3 = 768、線形投影層の次元は 768xN (N=768) であるため、入力が線形投影層を通過した後の次元は依然として 196x768 です。つまり、196 個あります。合計トークン数は 768 であり、各トークンの次元は 768 です。ここでは特殊文字 cls を追加する必要があるため、最終的な寸法は197x768になります。これまでのところ、視覚の問題はパッチ埋め込みによって NLP 問題に変換されてきました。
  2. 位置エンコーディング (標準学習可能な 1D 位置埋め込み): ViT は位置エンコーディングも追加する必要があります. 位置エンコーディングは合計 N 行からなるテーブルとして理解できます. N のサイズは入力シーケンスの長さと同じです. それぞれline はベクトルを表します ベクトルの次元 入力シーケンスの埋め込み (768) と同じ次元です。位置エンコード演算は concat ではなく sum であることに注意してください。位置エンコーディング情報を追加した後も、寸法は197x768のままです。
  3. LN/マルチヘッド アテンション/LN: LN の出力サイズは 197x768 のままです。マルチヘッドセルフアテンションの場合、最初に入力を q、k、v にマッピングします。ヘッドが 1 つだけの場合、qkv の次元は 197x768 です。ヘッドが 12 個ある場合 (768/12=64)、qkv の次元はqkv は 197x64 です。qkv には 12 のグループがあり、最終的に qkv の 12 グループの出力を結合すると、出力の寸法は 197x768 になり、LN の層の後でも寸法は 197x768 のままです
  4. MLP:寸法を拡大および縮小します。197x768 は 197x3072 に拡大され、その後197x768に縮小されます。

ブロック後の寸法は入力と同じ 197x768 であるため、複数のブロックをスタックできます。最後に、特殊文字 cls に対応する出力がz^0_L エンコーダーの最終出力として使用され、最終的な画像プレゼンテーションを表します (別の方法は、紙の式など、cls 文字を追加せずにすべてのトークンの出力を平均することです)。続いて MLP 画像分類。 

Q3: 誘導バイアス:

  • 参考文献: https://blog.csdn.net/qq_39478403/article/details/121107057
  • CNN の帰納的バイアス: 局所性、局所性、翻訳の等価性、翻訳の等価性。これは CNN モデルの各層に反映され、モデルの事前知識は最初から最後までモデル全体に​​適用されます。しかし、VIT の場合、MLP レイヤーのみがローカルに共有され、変換は不変ですが、セルフ アテンション レイヤーはグローバルです。つまり、VIT には CNN よりも誘導性バイアスが少なく、MLP のみがあります。VIT のパッチの 2 次元位置情報 + 空間関係画像ブロック間のシーン情報を再学習する必要があります。したがって、ViT には帰納的バイアスがあまりなく、中小規模のデータセットで VIT をトレーニングする効果は CNN ほど良くありません。

Q4: ハイブリッド アーキテクチャ

Transformer には強力なグローバル モデリング機能があり、CNN はデータ効率が高いため、それほど多くのトレーニング データは必要ありません。CNN 前と Transformer 後の組み合わせを検討し、実験を通じて 2 つの異なる画像前処理方法を比較します。 ViT の画像前処理方法は、画像をパッチに分割し、全結合層 fc を直接介して結合します。ハイブリッド構造はパッチを分割せず、CNN (res50 特徴マップ 14 * 14 = 196) を使用して、全結合層を介して結合します。E画像の埋め込みを取得するための線形投影

7.2 微調整と高解像度 (微調整と高解像度)

紙の翻訳:

  • 通常、大規模なデータセットで ViT を事前トレーニングし、(小規模な) 下流タスクに合わせて微調整します。この目的を達成するために、事前トレーニング予測ヘッドを削除し、すべて 0 で初期化された DxK フィードフォワード層に置き換えました。ここで、K は下流カテゴリの数です。多くの場合、事前トレーニングよりも高い解像度で微調整を使用することが有益です(Touvron et al., 2019; Kolesnikov et al., 2020)。これにより、タイル サイズを一定に保ちながら、より高解像度の画像を供給する場合、有効なシーケンスの長さが長くなります。VIT は、任意のシーケンス長 (メモリ制限まで) を処理できます。ただし、事前トレーニングされた位置埋め込みは意味を持たなくなる可能性があります。したがって、元の画像内の位置に従って、事前にトレーニングされた位置埋め込みの2D 補間を実行します。注: 解像度調整、つまり画像パッチの間引きは、画像の 2D 構造を手動で挿入する Vision Transformer の唯一の誘導バイアス ポイントです。

Q1:パッチの数が増えましたが、学習済みの位置コードはどのように使用すればよいですか?

理論上、Transformer はあらゆる長さを処理できます。ただし、事前にトレーニングされた位置埋め込みが無効になる可能性があり、たとえば、元の 1 ~ 9 九公歌画像にはさらに多くのパッチがあり、位置エンコーディングは 1 ~ 25 である必要があります。 そうするとパッチの数が増えてきますが、事前に学習させた位置コードをどうやって使うのか?これは、torch の公式補間関数を使用して実装された単純な 2D 補間ですが、長さを増やしても効果を維持できるわけではありません。非常に短いシーケンスから非常に長いシーケンス (256 → 512 → 768) に変更する場合、その差をそのまま使用すると、最終的な効果が低下します。補間は一時的な解決策にすぎず、VIT 微調整の制限となります。これは、解像度調整と画像ブロック抽出において、 Vision Transformer で画像の 2D 情報を使用する唯一の誘導バイアスです。


8.実験_ _

紙の翻訳:

  • ResNet、Vision Transformer (ViT)、および 2 つのハイブリッド ネットワークの表現学習機能を評価します。各モデルのデータ要件を理解するために、非常に大規模なデータセットで事前トレーニングし、多くのベンチマーク タスクで評価します事前トレーニング済みモデルの計算コストを考慮する場合。ViT は、事前トレーニングのコストが低く、非常に優れたパフォーマンスを発揮し、ほとんどの認識ベンチマークでこれまでのところ最高の結果を達成しています。最後に、自己監視を使用した小規模な実験を実行し、自己監視 ViT が将来に大きな期待を持っていることを示します。

8.1 セットアップ 

8.1.1 データセット

  • モデルのスケーラビリティを調査するため(モデルのスケーラビリティを調査するため)、事前トレーニング段階で ImageNet-1K (130 万)、ImageNet-21K (1400 万)、JFT-18K (3 億 300 万) の 3 つのデータセットが使用されました。 。BiT も参照して、事前トレーニング データセットとダウンストリーム タスク テスト セットの重複データを削除します (ダウンストリームのテスト セットに対して事前トレーニング データセットの重複を削除します)。
  • ダウンストリーム データセットには、ImageNet (元の検証ラベル上)、ImageNet (クリーンアップされた Real ラベル上)、CIFAR-10/100、Oxford-IIIT Pets、Oxford Flowers-102、VTAB (19 タスク) が含まれます。
  • ImageNet Real リファレンス2020 - イメージネットはもう終わりですか?  VTAB リファレンス2019 - ビジュアル タスク適応ベンチマークによる表現学習の大規模研究、すべてのデータセットの前処理リファレンス BiT

8.1.2 モデルのバリアント (モデルとバリアント)

  1. ViT: BERT を参照すると、下図に示すように、合計 3 つのモデル バリアント (Huge バリアントを追加) が設定されます。たとえば、ViT-L/16 は Large バリアントを表し、入力パッチ サイズは 16x16 です。
  2. CNN: ベースライン CNN は ResNet を選択し、バッチ正規化をグループ正規化に置き換え、標準化された畳み込みを使用してモデル移行のパフォーマンスを向上させます。
  3. ハイブリッド: ハイブリッド モデルは、ResNet50 によって出力された特徴マップを使用することであり、さまざまなステージでさまざまなサイズの特徴マップが取得されます。つまり、さまざまな長さのシーケンスが生成されます。
表1:Vision Transformerモデルバリエーションの詳細
  • すべてのモデルは、Adam (β1=0.9、β2=0.999)、batch_size を 4096 に設定、重み減衰 (0.1 という高い重み減衰を適用)、および学習率ウォームアップ戦略 (線形学習率のウォームアップと減衰を使用) を使用してトレーニングされます。 ; 微調整ステージ、勢いのある SGD を使用、batch_size は 512 に設定

8.2 現状との比較(最新技術との比較

表 2: ViT と他の SOTA モデルのパフォーマンス比較。精度精度の平均値と標準偏差を示します。すべての結果は 3 回の微調整の結果です (3 回の微調整実行の平均)。JFT-300M データセットでの Vision Transformer モデルの事前トレーニング結果は、すべてのデータセットでの ResNet ベースのベースライン モデルの結果よりも優れており、事前トレーニングに必要なコンピューティング リソースは少なくなります。小規模な ImageNet-21k 公開データセットに対する ViT の事前トレーニング結果も良好なパフォーマンスを示しています。結果は 88.5% と若干増加しました。
  • JFT データセットで事前トレーニングされた ViT モデルは、ダウンストリーム タスクに移行した後、ResNet ベースの BiT および EfficientNet ベースの Noisy Student よりも優れたパフォーマンスを示し、必要な事前トレーニング時間が短縮されていることがわかります。それは、ViT の利点である優れた効果 + 迅速なトレーニングを強調するためです。
図 2: VTAB 上のさまざまなモデルのパフォーマンス、ViT もタイトルのパフォーマンスが向上
  • 上記の実験は、大規模なデータ セットで事前トレーニングした場合、ViT のパフォーマンスが CNN を上回ることを示しており、その後、さまざまなサイズの事前トレーニング データ セットがモデルのパフォーマンスに及ぼす影響を調査します (超大規模なデータ セットだけを調べることはできません)。

8.3 事前トレーニングデータ要件 (事前トレーニングデータ要件)

図 3:  ImageNet に移行すると、小さなデータセットで事前トレーニングされた場合、大規模な ViT モデルは BiT Resnet (斜線部分) よりもパフォーマンスが低下しますが、より大きなデータセットで事前トレーニングされた場合はその逆になります。同様に、データセットのサイズが大きくなるにつれて、より大きな ViT バリアントがより小さな ViT バリアントに追いつきます。
  • ここでは、より小さなデータセット (ImageNet) で事前トレーニングするときに、重み減衰、ドロップアウト、ラベル スムージングという 3 つのハイパーパラメーターを最適化してモデルのパフォーマンスを向上させます。小規模なデータ セット(ImageNet-1k、130 万) で事前トレーニングした場合、ViT 微調整の効果はResNetよりもはるかに劣るのに対し、中程度のデータ セット(ImageNet-21K、130 万)で事前トレーニングした場合は、ViT 微調整の効果が劣ることがわかります。ViT の効果は同等ですが、大規模なデータセット(JFT-300M、3 億)で事前トレーニングした場合、ViT の効果はより優れています。したがって、より小さいデータセットしかない場合は、ResNet を使用するのがより適しています (すべてのデータセットがハードセットのトランスフォーマーに適しているわけではありません)。
図 4:  ImageNet での線形少数ショット評価と事前トレーニング サイズの関係。ResNet は、事前トレーニングされた小規模なデータセットでは良好なパフォーマンスを発揮しますが、すぐに失速し (ViT よりも高速)、事前トレーニングされた大規模なデータセットではパフォーマンスが向上します。ViT-b は、ViT-B の隠れた次元をすべて半分にした後のモデルです。
  • 上の図に示すように、同じデータセット (JFT) 内で、異なるデータセット間のギャップを避けるために、異なる量のデータ (10M、30M、100M、300M) がそれぞれ抽出され、追加の正則化は適用されず、ハイパーパラメータは同じであることが保証されています。線形評価とは、事前トレーニングされたモデルを微調整せずに特徴抽出器として直接使用し、抽出された特徴でロジスティック回帰を直接行うことを指します。少数ショットとは、評価中にカテゴリごとに 5 枚の写真のみがサンプリングされることを意味します。
  • データセットが小さい場合、CNN 事前トレーニング モデルのパフォーマンスが向上することがわかります。これは CNN誘導バイアスの有効性を証明していますが、データセットが十分に大きい場合、誘導バイアスは Transformer と比較して利点を失います。誘導バイアス設定がない場合は、データから直接パターンを学習する方が効率的です。同時に、注意深く観察すると、たとえ事前学習済みデータセットが大きくても、ViT のパフォーマンス向上は最終的には明らかではないことがわかります。はさらに検討する必要がある方向です

8.4 スケーリングの検討

図 5: さまざまなアーキテクチャ (Vision Transformers、ResNet、および 2 つのハイブリッド) のパフォーマンスと事前トレーニングの計算オーバーヘッド。一般に、同じ計算オーバーヘッドでは Vision Transformer の方が ResNets よりも優れており、小規模なモデルの場合は混合モデルの方が純粋な Transformer よりも優れていますが、大規模なモデルでは 2 つの間のギャップはなくなります。
  • 上記の実験は、ViT の事前トレーニングが ResNet よりも安価であること、つまり、同じ事前トレーニングの計算量の下では、ViT の効果が ResNet よりも優れていることを証明しています。モデルが小さいときは混合モデルの性能が良いのですが、モデルが大きくなるにつれてViTの性能が混合モデルを上回っていることがわかります(なぜ現時点で混合モデルがViTほど良くないのか) 、直感的には、混合モデルは両方の利点を吸収し、パフォーマンスが向上するはずです)。

8.5 ビジョントランスの検査(VISION TRANSFORMER检验)

図 7: 左: ViT-L/32RGB 画像の初期化された線形マップ レイヤーのフィルター、中央: ViT-L/32 位置エンコードされた類似度マップ、タイトルはブロックの位置エンコードされた行から列へのコサイン類似度を示し、位置エンコードされた類似度は他のすべてのパッチ、 
  右: マルチヘッドおよびネットワークの深さによる注目領域のサイズ。各ポイントは、16 頭のレイヤー内の画像上の頭の平均注意距離を示します。詳細については、付録を参照してください。
  1. 左: ViT ブロックの最初の層 (線形投影) の最初の 28 の主成分。図からわかるように、Vision Transformer と CNN は非常によく似ており、ガボール フィルターと同様に色とテクスチャがあり、各画像ブロックの基礎となる情報を記述する基底関数として使用できます。
  2. 中央: 位置コード化類似性分析 (cos)、位置が近いほど、パッチ間の類似性が高くなります。同じ行/列のパッチには同様のエンベディングがあります。これは、位置エンベディングが位置距離を表す何らかの情報を学習できることを示しています。1d位置の埋め込みですが、すでに2d画像位置の概念を学習しているため、2d位置に切り替えてもあまり改善されません。
  3. 右: Self-attention がどのように情報を集約するかを理解するには、Self-attention が機能するかどうかを確認します。したがって、注意の重みに基づいて、異なるレイヤーと異なる頭の平均注意距離、各レイヤーの各頭の平均注意距離を計算します。 CNN の受容野の概念に基づいて、注目の重みに基づいて平均注目距離が計算されます。具体的な方法は、注目の重みにクエリ ピクセルと他のすべてのピクセル間の距離を乗算し、平均を計算することです。図からわかるように、一部の頭は第 1 層の絵のほぼ全範囲に注意を払っている、つまり、自己注意は最初に全体的な情報に気づいていますが、第 1 層の受容野はCNN は最初は非常に小さく、近くのピクセルしか見えませんが、ネットワークが深くなるにつれて、モデルによって学習された特徴はますます高レベルになり、より多くの意味情報が含まれ、ピクセルの自己注意距離はどんどん遠くなっていきます。
    図 6:  出力トークンから入力空間へのアテンションの表現例。
  4. 自己注意が長距離のピクセル情報を学習できることを証明するために、著者は、ViT の最後の層の出力トークンによって作成された画像である図 6 を示しました。 -注意、屈折 (逆マッピング) 元の入力画像に戻ると、ViT が犬や飛行機などのいくつかの概念を実際に学習していることがわかります。著者の最後の文は次のように述べています。グローバルな観点から見ると、出力トークンはグローバルな特徴情報の融合であり、ViT モデルは分類分類に関連する画像領域に注意を払うことができます。

8.6 自己監視(自己監視)

Transformers は、NLP タスクで目覚ましいパフォーマンスの向上を示しました。ただし、その成功は優れたスケーラビリティだけでなく、大規模な自己教師付き事前トレーニングからもたらされています。また、自己教師ありマスク画像パッチ予測に関する予備調査も行います。BERTで使用されるマスクされた言語モデルを模倣します。自己教師ありの事前トレーニングを使用することで、当社の小型 ViT-B/16 モデルは ImageNet 上で 79.9% の精度を達成します。ゼロからトレーニングされ、以前の自己監視モデルと比べて 2% 大幅に改善されました。しかし、監視下ではまだ 4% 遅れています。付録 B.1.2 に詳細が記載されています。対照的なトレーニングの探求は将来の作業に委ねます。


3. ビジョントランスフォーマーの概要

  1. 文章の角度: 簡潔かつ明確、軽くて重い (重要な結果は本文に配置)、図表は明確です。
  2. 内容の角度: Vision Transformer は大きな穴を掘りました。あらゆる角度から分析、改善、促進できます。
  3. タスクの観点: VIT は分類のみを行うため、将来的には検出、セグメンテーション、その他の分野のタスクも実行できるようになります。
  4. VIT 構造の観点から見ると、最初のトークン化、目的関数を含む中間のトランスフォーマー ブロックを監視したり、さまざまな自己教師ありトレーニング方法を改善したりできます。
  5. VIT は CV と NLP の間の溝を広げ、より大きなマルチモーダルの穴を掘り、ビデオ、オーディオ、またはタッチベースの信号について、さまざまなモダリティの信号を使用できるようにしました。

おすすめ

転載: blog.csdn.net/weixin_44074191/article/details/127512506