Li Mu の精読論文: MAE「Masked Autoencoders Are Scalable Vision Learners」

论文:マスクされたオートエンコーダはスケーラブルな視覚学習者です

自慢はやめて、MAE (Masked Autoencoders Are Scalable Vision Learners) を実装して楽しみましょう! - ほぼ知っています

参考ブログ記事: MAE の論文を段落ごとに集中的に読む [Intensive Reading of Papers] - Programmer Sought

沈羅華さんのブログ

        この記事は 2021 年 11 月 11 日に Arxiv に掲載された記事です. 主な作業は Vision Transformer に基づいた自己教師ありトレーニングの導入です. BERT と同様に、cloze を使用して画像の理解を取得します。これは BERT を適用するのと同等ですトレーニング全体がラベルのないデータに拡張されます。最終的に、MAE が同じ効果を達成するには、Vision Transformer データセットの 1% で事前トレーニングを行うだけで済みます。また、ターゲットの検出、インスタンスのセグメンテーション、セマンティック セグメンテーションなどのタスクでも非常にうまく機能します。

1タイトル

 マスクされたオートエンコーダはスケーラブルなビジョン学習器です: マスクされたオートエンコーダはスケーラブルなビジョン学習器です

  • スケーラブル: スケーラブル
  • ビジョン学習器:ここでは分類器などとは書いていませんが、比較的幅広いところで使えるのでバックボーンモデルです
  • マスク済み: マスク済みは、何かが掘り出され、その後掘り出されることが予測されるたびに BERT から派生します。
  • autoencoder : ここでの auto は自動という意味ではなく、「self」、ラベルとサンプル (y と x) は同じものから来ています。NLP では誰もが理解できますが、コンピューター ビジョンでは、画像のラベルが画像自体から取得されることはほとんどありません。そこで、著者はここで auto を追加して、コンピューター ビジョンの他のエンコーダーと比較して指摘しました。ここでのラベルは画像そのものです。これまでの多くの作品と区別できる点 

2まとめ

        MAE の実装パスは非常に単純です。画像内のいくつかのパッチをランダムにカバーし、これらのカバーされたピクセル (欠落したピクセル) を再構築します。このアイデアは、BERT のマスクされた言語モデルから来ています。 

2.1 2コアの設計

次の 2 つの設計により、MAE は大規模なモデルをより効率的にトレーニングできます

        1 非対称エンコーダ/デコーダ アーキテクチャ

        実際、どのモデルにもエンコーダとデコーダがあります。たとえば、BERT のデコーダは最後の全結合出力層です。BERT が予測するものは比較的単純であるため、そのデコーダは単純です。全結合層は問題ありませんが、この記事ではブロック内のすべてのピクセルを予測する必要があるため、比較的複雑になる可能性があります。

  • エンコーダーは表示されているパッチに対してのみ機能し、失われたパッチについてはエンコードされないため、ある程度の計算時間を節約できます。
  • デコーダは比較的軽量なデコーダであり、エンコーダの出力を取得した後、ブロックされたブロックを再構築します。

        2. 多数のブロックがカバーされ (たとえば、ブロックの 75% がカバーされる)、より優れた自己教師ありトレーニング効果を得るために、モデルにいくつかのより優れた特徴を学習させることになります。いくつかのブロックのみをカバーする場合は、補間を実行するだけでよく、モデルは特別なことを何も学習しない可能性があります。エンコーダーはピクチャのサイズの 1/4 をエンコードするだけでよいため、計算量が削減され、トレーニングが 3 倍以上高速化されます。

        結果: 最終的に、著者は ImageNet-1K (100 万枚の写真) で事前トレーニングされた最も単純な ViT-Huge モデル (モデルはこの ViT 記事から引用) のみを使用し、精度は 87.8% に達しました。

        ViT の記事の最後の段落で、自己教師あり学習の方法について言及しましたが、著者はその効果はあまり良くないと述べていますが、結論としては、ラベル付きモデルとより大きなトレーニング セットを使用すると、良い結果が得られるということです。この記事のハイライトは、小さなデータセット (ImageNet-1k、100 万枚の写真) のみを使用し、自己監視を通じて、以前のモデルと同等のモデルを達成できることです

        このモデルは主に転移学習に使用され、転移学習の他のタスクでも非常に優れたパフォーマンスを発揮することが証明されています。

2.2 MAEモデルのアーキテクチャ

  • 写真を入力し、1枚ずつ細かく切ります 写真のグレーで塗られた小さな部分がカバー部分です。覆われた部分を取り除くと、場所の 3/4 がすでに覆われているため、小さな部分はほとんど残りません。
  • 残りの小さなブロックをエンコーダー (つまり、ViT) に入れて、各ブロックに対応する特徴を取得します。次に、出力を引き伸ばし、カバーされたブロックを元の位置に戻し、元の画像から描画されたベクトルを取得します。
  • 取得した長いベクトルをデコーダに入力すると、デコーダは内部のすべてのピクセル情報を再構築しようとします。これにより、トレーニングされたターゲットが元の画像になります。

        ここでのエンコーダーはデコーダーよりもわずかに幅広に描画されています。これは、最も重要なことは画像のピクセルをエンコードすることであり、これが事前トレーニング中に行われるため、モデルの主な計算がエンコーダーによって行われることを意味します。下流のタスクはエンコーダだけで十分で、直接1枚ずつ細かく切り出してViTに入れることで、入力画像の特徴表現を取得し、それを利用して処理対象のタスクを実行できます。

2.3. モデル再構築効果

以下は、著者が示したモデル再構築レンダリングの一部です。

図 2 は、ImageNet 検証セット上で MAE によって構築された画像を示しています。これらの画像はトレーニングには含まれていないため、単なるテスト結果です。

  • 各画像の左の列は画像のパッチが削除されていることを示し、中央の列は MAE によって構築された画像効果、右端の列は元の画像を示しています。
  • 1段目の写真の時計の指針は基本的に覆われていますが、復元する場合は基本的に2つの指針が復元されます。
  • 2 行目の最初の写真では、車の両端がありませんが、復元された効果は依然として実際の車と非常に一致しています。
  • 3行目の最初の写真の犬も基本的に犬がどこにいるのか見えませんが、それでも大まかに復元できます
  • ここでの復元の詳細は比較的曖昧ですが、元の画像のサイズがそれほど大きくないため、画像の内容に対する復元効果は依然として非常に驚くべきものです
  • MAE は必ずしもすべての画像の再構成に良い影響を与えるわけではなく、表示用にいくつかのより良いサンプルを選択するだけかもしれません。コード化された画像を復元したい場合は、将来的に改善するために多くの作業が必要になる可能性があります 

図 3 は COCO データセット上にあります。これは前の処理とまったく同じであり、その効果も非常に素晴らしいです

図 4 は、同じ画像の異なる比率をカバーした結果を示しています。

  • マスク率が95%になっても近似画像が復元できることがわかり、非常に不思議です。

3結論 

        シンプルで拡張性の高いアルゴリズムがディープラーニング全体の核となる

  • シンプル: MAE 全体は ViT に基づいており、ViT はトランスに基づいており、ViT に基づいて、この論文で提案するものは比較的単純です
  • 優れたスケーラビリティ: 比較的大規模なデータセットを実行可能

        自己教師あり学習は近年比較的一般的になってきましたが、コンピュータ ビジョンでは依然として主にラベル付きデータに依存してトレーニングされています。この記事の作業は、ImageNet データセットのセルフ エンコーダから学習することによる非常に強力な作業であり、ラベルがある場合の効果に匹敵します。

        この記事はコンピュータ ビジョンにおける BERT の拡張と考えることができるため、画像と言語の間にはいくつかの違いがあることに注意してください。言語の場合、単語は意味単位であり、これにはさらに意味論的な情報が含まれます。画像内のパッチにも特定の意味論的情報が含まれていますが、それは意味論的セグメンテーションではありません (つまり、このパッチには意味論的セグメンテーションがありません)。には特定のオブジェクトは含まれていません)が、この場合でも、MAE はいくつかの非常に複雑なタスクを実行できます。著者は、MAE またはトランスフォーマーが隠れたより優れた意味表現を確かに学習できると信じています。

        最後の段落は、より広範な影響についてです

  • 学習には絵そのものの情報のみを使用するため、絵に偏りがあると社会的にマイナスの影響を与える可能性があります
  • このモデルは存在しないコンテンツを生成するために使用できるため、GAN と同様にすべての人に誤解を与える可能性があるため、この作品をより多くの場所で使用したい場合は、これらの潜在的な影響を考慮する必要があります

4はじめに

        ディープラーニングはここ数年で急速に進歩しましたが、コンピュータビジョンに関しては、依然として数百万枚、あるいはそれ以上のラベル付き画像に依存しています。自然言語処理では、BERT などの自己教師あり学習が非常にうまく行われており、ラベルのないデータを使用して、数千億の学習可能なパラメーターでモデルをトレーニングできます。

        コンピューター ビジョンでは、マスクを使用した自己エンコーディングはそれほど新しいものではありません。たとえば、オートエンコーダーのノイズを除去し、画像に大量のノイズを追加し、ノイズ除去を通じて画像を理解することを学習します。最近、BERT をコンピュータ ビジョンに拡張するための多くの作業が行われていますが、コンピュータ ビジョンにおける BERT の適用は NLP に比べて遅れています。

マスクされたセルフエンコーダーモデルがCVとNLPの分野で異なる方法で適用される理由

  • アーキテクチャの違い

        CNN ネットワークは以前の CV 分野で使用されていましたが、CNN の畳み込みはマスキング操作を行うのが簡単ではありません。畳み込みカーネルがスライドすると、覆われた境界を認識できず、マスクされたパッチを個別に削除するのが簡単ではないためです。その結果、次のようになります。 画像を復元するのは簡単ではありません(Transformer では、他の言葉と区別されます)。しかし著者は、ViT が Transformer をコンピュータ ビジョンの分野に適用することに成功したため、この問題はもう存在しないと述べています。

  • 情報密度が違う

        自然言語では、単語は意味論的な実体です。たとえば、辞書の単語の説明は非常に長い段落になるため、文からいくつかの単語を削除するのは困難です (クローゼするのは合理的です)。

        写真では、カメラの解像度の高さに応じて、ピクセルが比較的冗長になります。単純にいくつかのブロックを削除した場合、隣接するブロックのピクセル値を補間することでそれらを復元できる可能性が非常に高くなります。

        著者のアプローチは、マスク内のピクセル ブロックの割合が高い (75% など) 画像の大部分を削除し、残りのブロックは遠く離れており、このブロックとそれらの関係はそれほど冗長ではありません。画像の冗長性を大幅に削減します。このようにして、圧縮モデルは補間と復元のためにローカル モデルを学習するだけでなく、グローバル情報を学習する必要があるという非常に困難なタスクが作成されます。

        この論点に関して、上の図 2.3.4 を見ると、次のことがわかります。グローバルな画像を再構成できるのは、いくつかのローカルで非常にまばらなブロックだけです。

  • 違いを解読する

        NLP では、マスクされたトークンを予測する必要がありますが、トークン自体は比較的高度な意味表現であり、エンコーダーからの特徴も高度な意味表現であり、デコードする必要があるターゲットとのギャップが小さいため、トークンだけを予測する必要があります。単純な完全な接続が必要であり、レイヤーはこれらのトークンをデコードできます。ViT が必要とするのは画像の特徴だけなので、デコードするには MLP のみが必要です

失われたピクセルは MAE で復元する必要があります。これらのピクセルは比較的低レベルの表現であるため、MLP では十分ではない可能性があります。画像分類やターゲット検出などのタスクでは、出力層、つまりデコーダは完全に接続された層であり、オートエンコーダの高レベルの意味論的特徴を、次のような低レベルの意味論的レベルにデコードする必要があります。各ピクセルのセマンティック セグメンテーション ピクセル レベルの出力では、デコードを完了するために、より複雑な転置畳み込みネットワークが必要です。

  上記の分析に基づいて、著者はこの記事の 2 つの核となる設計、つまり高マスク レートと非対称エンコーダ/デコーダを提案しています。  

実験結果

        MAE 事前トレーニングを使用した後は、ImageNet-1K (100 万データ) を使用して ViT ラージをトレーニングし、ViThuge を使用して効果を達成することができます。ViT は 100 倍を超えるサイズのトレーニング データを使用する必要がありますが、MAE 事前トレーニングではラベルは必要ありません

        また、転移学習の効果も非常に高く、MAEで事前トレーニングされたモデルはオブジェクト検出、インスタンスセグメンテーション、セマンティックセグメンテーションに非常に効果的です。つまり、大量のラベルなしデータに対する自己教師あり学習によってトレーニングされたモデルです。転移学習への効果も非常に良い

5関連作品

マスク付き言語モデル

ビジョンにおけるオートエンコーダーの応用

  • MAE は、実際には、ノイズ除去を伴う自己エンコーディングの形式です。画像の特定の部分をカバーすることは、画像に大量のノイズを追加することに相当しますが、従来の DAE (ノイズ除去オートエンコーダー) とは異なります。結局のところViTに基づいています 

コンピュータビジョン用のマスクを備えたエンコーダ

  • この記事はこの作業を行うのが初めてではなく、これまでに多くの作業が行われてきました。たとえば、iGPT は画像上の GPT のアプリケーションです。ViT の論文では、最後の段落で BERT を使用してモデルをトレーニングする方法についても説明しています。同じく画像上の BERT のアプリケーションである BEiT もあります。 MAE は、各パッチに個別のラベルを与えます。これは BERT に近いですが、元のピクセル情報は MAE で直接復元されます。 

自己教師あり学習

たとえば、ここ 1 ~ 2 年で特に人気のあるコントラスト学習は、この領域で主にデータ強調を使用しますが、MAE ではそれとは異なる方法で使用されます。

6 MAEモデル 

        すべてのエンコーダと同様に、MAE は観測信号をラットネット表現 (潜在表現) にマッピングします。この潜在表現は意味空間内の表現とみなすことができ、その後、潜在表現を使用して元の信号が再構築されます。古典的なオートエンコーダーとは異なり、非対称設計を採用しています。オートエンコーダーはデータの一部を認識し、それを使用して完全な元の信号を再構築します。モデル設計図は次のとおりです。

マスクの仕組み

  • ランダム均一サンプリング: 置換がない場合、パッチは均一分布に従ってランダムにサンプリングされ、収集されたサンプルは保持され、残りのマスクはすべて削除されます。
  • 少数のブロックをサンプリングするため、その冗長性はそれほど高くなく、タスクはそれほど単純ではありません (単純な補間で問題が解決できるとは言えません)。

エンコーダ

  • 変更を加えない vit は、表示されているブロックにのみ適用されます。具体的な方法は vit と同じで、ブロックごとに線形投影を行い、位置情報を入力として追加します。
  • 覆われたパッチは入りません。25% を選択した場合、サンプルの 25% のみが vit に入力され、計算量が削減されます。

デコーダ

  • カバーされていないブロック (エンコーダーによって潜在表現として表現されている) とカバーされたブロック (エンコーダーに入力されていない) を含むすべてのブロックを確認する必要がある
  • カバーされたブロックの場合、デコーダは学習によって取得された同じベクトルで表されます。
  • デコーダは実際には別のトランスフォーマであるため、位置情報を追加する必要があります。そうしないと、どのデコーダがマスクに対応しているかを区別できなくなります(ここで少し不確実です。これらのエンコーダによって出力される潜在表現に位置情報を追加するかどうか、すでに一度追加されているため、この場所を再度追加しますか?)
  • デコーダは主に事前学習時にのみ使用され、他のタスクでモデルを使用する場合は、エンコードで画像をエンコードするだけで済みます。
  • デコーダのアーキテクチャは比較的小さく、計算オーバーヘッドはエンコーダの 1/10 未満です。

元のピクセルを再構成する方法

  • デコーダの最後の層は線形層です。切り取ったピースが 16*16 ピクセルの場合、この線形レイヤーは長さ 256 の寸法に投影され、16*16 に再形成され、元のピクセル情報が復元されます。
  • 損失関数は MSE を使用します。予測は元の真のピクセルから減算され、二乗されます。カバーされているブロックに対してのみ MSE を使用する
  • 予測されるピクセル値に対して正規化を行います。各ブロックのピクセルについて、平均値 0 と分散 1 にして、値をより安定させます (ここでは予測時に何をすべきか明確ではありません。もちろん、トレーニング時にラベルがわかっているので、平均と分散を計算できます)。ただし予測する場合)

シンプルな実装

  1. 画像をパッチに分割します: (B,C,H,W)->(B,N,PxPxC);
  2. 各パッチの埋め込みを (基本的に完全に接続された層を通じて) 実行し、トークンを生成し、位置情報を追加します (位置埋め込み): (B,N,PxPxC)->(B,N,dim);
  3. ランダムな一様サンプリング。シーケンスをランダムにシャッフルし (シャッフル)、最初の 25% がマスク解除トークンとしてエンコーダーに入力され、後者は破棄されます。
  4. エンコードされたトークンとマスクされたトークン (学習可能なベクトル、位置情報の追加) はシャッフルされず、元の順序に復元されてから、Decoder に供給されます。
    • Encoder によってエンコードされたトークンの次元が Decoder に必要な入力次元と一致しない場合は、線形投影を通じて Decoder の要件を満たすように次元をマッピングする必要があります。
  5. デコード後、デコーダーはマスクされたトークンの対応する部分を取り出し、完全に接続された層に送信してマスクされたパッチのピクセル値を予測し、最後に予測結果 (B、N'、PxPxC) を予測結果と比較します。マスクされたパッチを使用して MSE 損失を計算します。

7. 実験 

  • ImageNet-1K データセット (100 万個のデータセット) で自己教師あり事前トレーニングを実行し、同じデータセットでラベル付き教師ありトレーニングを実行します。
  • ふたつのやり方
    • エンドツーエンドの微調整: モデル全体のすべての学習可能なパラメーターを許可します。
    • 線形プローブ: 最後の層の線形出力層のみを変更できます。
  • センターカット 24*24 画像を使用して検証セットの top1 の精度を報告し、vitlarge (vit-l/16、16 は画像ブロックが 16*16 であることを意味します) を使用してベースラインを報告します。vit-l は非常に大規模なモデルであるため、オーバーフィッティングが発生する傾向があります

ImageNetの実験

以下の表では、3 つの状況を比較しています。

  • スクラッチ、オリジナル: ViT-L/16 モデルは ImageNet-1k 上で最初からトレーニングされており、その効果は実際にはあまり安定していません。(200エポック)
  • スクラッチ、私たちの含意: ViT-L/16 に、72.5 から 82.5 までの比較的強力な正則化を加えたもの (詳細については、付録 A2 を参照)。
    • VIT の原文では、優れたモデルを事前トレーニングするには大規模なデータ セットが必要であると常に述べられていましたが、その後、適切な正則化項目が追加されれば、より小さなデータ セット (ImageNet-1k) もトレーニングできることがわかりました。良い結果を達成します。
  • ベースライン MAE: まず、事前トレーニングに MAE を使用し、次に ImageNet で微調整します。現時点では、完全な 200 エポックをトレーニングする必要はなく、必要なのは 50 エポックだけであり、82.5 から 84.9 に改善されました。
    • データセットは変更されていないため (ImageNet は事前トレーニングとその後の微調整に使用されます)、これは MAE が画像から優れた情報を学習できることを意味し、これにより後の改善が可能になります。

深さ幅の変更/マスク戦略/データ強化

  • 各サブテーブルの最初の列 (ft) は、すべての学習可能な重みがそれに応じて調整されることを示し、2 番目の列 (lin) は、最後の線形層のみが調整されることを示します。
  • 表 a は、デコーダの深さ (使用するトランス ブロックの数) を示しています。ft 法の方が高価ではありますが、効果ははるかに優れていることがわかります。8 ブロックを使用する方が良いですが、デコーダーの深さの関係はそれほど大きくなく、すべて約 84 です。最後のレイヤーだけを調整する場合は、濃いめのレイヤーを使用する方が良いでしょう。
  • 表 b はデコーダの幅について説明しています (各トークンは長いベクトルとして表現されます)。512 の方が優れています。
  • 表 c は、エンコーダでカバーされるブロックを追加するかどうかについて説明しています。結果は、カバーされたブロックを追加しないと精度が高くなり、計算が少なくなる (3.3 倍低い) ことを示しています。したがって、この論文で採用されている非対称アーキテクチャは、パフォーマンスが優れているだけでなく、精度も優れています。
  • 表 d は、再構成ターゲットの比較を示しています。
    • 行 1: MAE の現在の実践
    • 2 行目: 予測時に各パッチ内で正規化が行われ、その効果が最高になります。
    • 3行目: PCAの次元削減
    • 4 行目: BEiT の方法。各ブロックは vit を通じて個別のトークンにマッピングされ、予測されます。
    • 表から、微調整では値がほぼ同じであることがわかります。したがって、同様の値の場合は、当然、より単純な方法を使用する傾向があります
  • 表 e では、データ拡張の方法について説明します。none は何もしないことを意味し、2 行目はトリミング (固定サイズ) のみを意味し、3 行目はランダムなサイズに従ってトリミングすることを意味し、最後の行は色の変更を追加することを意味します。表から、単純なランダム サイズのトリミングの効果がすでに非常に優れていることがわかります。そのため、著者は MAE がデータ拡張にそれほど敏感ではないと言っています。
  • 表 f はサンプリング戦略について説明しています。ランダムサンプリング、ブロックごとのサンプリング、グリッドごとのサンプリング。ランダムサンプリングが最も簡単で効果的であることが判明  

マスク率

        微調整の場合でも、最後のレイヤーの調整のみの場合でも、マスク レートが大きいほど効果は高くなります。特に最後のレイヤーのみを調整する場合は、マスク レートの影響を比較的大きく受けます。

トレーニングの時間

        テーブルで vit-large が使用され、デコーダーがトランスフォーマー ブロックの 1 つのレイヤーのみを使用する場合、精度は良好で、時間が最小になり、最初の行 (すべてのマスクされたブロックを使用) と比較して速度が 3.7 倍向上します。vit-hugeだと加速時間もさらに伸びる

        絶対時間: ここでは 128 個の TPU v3 コアが使用され、tensorflow 実装が使用され、トレーニング時間は 10 時間です。

事前トレーニングのラウンド

        図からわかるように、ImageNet-1k で 1000 回のデータ ラウンドをトレーニングすると、精度の向上が見られます。これは非常に優れた特性でもあり、継続的なトレーニングの条件下では、過剰適合が特に深刻ではないことを示しています (実際には 1000 ラウンドが多く、一般的に ImageNet でのトレーニングの 200 ラウンドはほぼ同じです)

いくつかの過去の作品と比較して

  基本的にMAEの効果が一番良い

レイヤーのコントラストを微調整する 

        事前トレーニングされたモデルを微調整する効果は、特徴抽出のみの場合よりも優れていますが、トレーニング時間は長くなります。そこで著者は、モデルがどのように機能するかを確認するために、さまざまなレイヤーを実験して微調整しました。

        上の図では、X 軸は調整する必要があるトランスフォーマー ブロックの数 (これらのレイヤーのパラメーターはトレーニング可能で、残りのレイヤーはフリーズされます) を示し、Y 軸は精度を示します。

        MAE は基本的に最後の 4 つのレイヤーを微調整するだけでよいことがわかります。これは、下位層で学習した内容は少し下位レベルにあり、別のタスクに変更するときにあまり変更する必要はありませんが、上位層は依然としてタスクに関連しているため、いくつかの調整を行うのが最善であることを意味します

転移学習の効果

以下の図の表 4 と 5 は、COCO データセットでのターゲットの検出とセグメンテーションに関するものです。

表 4 から、バックボーン ネットワークとして MAE を使用した後に効果が最も優れていることがわかります。

9件のコメント 

MAE のアルゴリズムはまだ非常に単純です. BERT と同じ自己教師あり学習を行うために vit を使用します. 本稿では vit に基づいて 2 つの点を提案します

  • 最初のポイントは、より多くのブロックをカバーする必要があるため、残りのブロック間の冗長性がそれほど高くないため、タスク全体が少し複雑になることです。
  • 2 つ目は、トランスフォーマー アーキテクチャ デコーダを使用して元のピクセル情報を直接復元し、プロセス全体を少し簡単にすることです。
  • 3つ目は、vitワーク後にさまざまなテクノロジーを追加し、トレーニングをより堅牢にすることです。

上記の 3 つのポイントを合計すると、MAE が以前の研究を超えて ImageNet-1k データセットで自己教師ありトレーニングを使用できるようになります。

おすすめ

転載: blog.csdn.net/iwill323/article/details/128393710