「DINO — コンピュータビジョンのための基盤モデル」
「DINO - 基盤モデルによるコンピュータビジョンの革新」
論文の解説:自己教師ありビジョン・トランスフォーマーにおける新たな特性の出現
コンピュータビジョンの分野では、とてもエキサイティングな十年がやってきています。自然言語の分野から優れた成功がビジョンの分野にも導入されており、ビジョン・トランスフォーマー(ViT)の登場や、最近では大規模な自己教師あり事前学習技術が基礎モデルとして話題となっています。
今日は、DINOというフレームワークについて見ていきます。DINOは、ViTの興味深い特性を活かしたビジュアル基礎モデルであり、今日でも最も優れたパフォーマンスを発揮する基礎モデルの前身です。その後継モデルには、DINOv2があります。
論文: 自己教師ありビジョン・トランスフォーマーにおける新たな特性の出現
コード: https://github.com/facebookresearch/dino
- 最適なデータ統合アプローチを選ぶためのガイド’ (Saiteki na dēta tōgō apurōchi wo erabu tame no gaido)
- 「模倣モデルとオープンソースLLM革命」
- クラウドを通じたデジタルトランスフォーメーションの推進
初出版: 2021年4月29日
著者: Mathilde Caron, Hugo Touvron, Ishan Misra, Hervé Jégou, Julien Mairal, Piotr Bojanowski, Armand Joulin
カテゴリー: 基礎モデル、コンピュータビジョン、ビジョントランスフォーマー、知識蒸留、類似性学習、自己教師あり学習
アウトライン
- 文脈と背景
- 手法
- 実験
- 削除実験
- 結論
- さらなる読み物とリソース
文脈と背景
2021年、具体的には4月です。トランスフォーマーモデルが「アテンションが必要」という名前でリリースされてから4年が経ちました。自己教師あり事前学習は、NLPの分野ではBERTなどのモデルによって長い間実践されてきましたが、まだ基礎モデルという言葉は数ヶ月後の「基礎モデルの機会とリスクについて」のリリースまで知られていませんでした。6か月前には、ビジョン・トランスフォーマー(ViT)がarxivに初めて公開され、まだ発表されるまで1か月あります。発表はICLR 2021で行われる予定です。
しばらく心に沈みましょう。ViTは2020年10月にarxiv.orgで初登場し、2021年5月のICLR2021で発表されました。DINOは2021年4月にarxivでリリースされました。つまり、実際には会議で発表される1か月前です。これは、プロジェクトのアイデアを考え、チームを編成し、理論的な基盤を築き、モデルを訓練し、実験と削除実験を行い、論文を書くためにはたった5ヶ月しかなかったことを意味します。このような状況に置かれている博士課程の学生が日々不安を感じているのも無理はありません。少なくとも私もそれが時々起こっています 😅
ViTは畳み込みネットワークと非常に競争していましたが、計算リソースとトレーニングデータの量の面では要求が高いものでした。
DINOの著者たちは、シンプルな観察を行いました。NLPでのtransformerの成功は自己教師ありの事前トレーニングと結びついており、ビジョンドメインの現在の自己教師あり方法は、例えばBYOLのようにconvnetから構築されています。
BYOL-対比的な自己教師あり学習への代替案
論文分析-自己教師あり学習への新たなアプローチ: Bootstrap Your Own Latent
towardsdatascience.com
BYOLやmean teacherに触発され、著者たちは自己教師ありの方法でViTをトレーニングするためのフレームワークを提案しました。その結果、以下のようなことがわかりました。
- 自己教師ありのViTの特徴には、シーンのレイアウトや特にオブジェクトの境界が明示的に含まれています。
- 自己教師ありのViTの特徴は、微調整、線形分類器、データ拡張なしで基本的な最近傍分類器(k-NN)と特に相性が良いです。
BYOLやmean teacherとは異なり、DINOは同じ画像の異なるビューに作用する学生モデルと教師モデルから成る知識蒸留フレームワークを実装しており、類似性学習アプローチの固有の不安定性に対処するための追加措置を取っています。類似性学習アプローチでは、解がしばしば崩れる傾向があります。
ビジョントランスフォーマーアーキテクチャ(ViT)の興味深い発見の一つは、教師なし学習技術で訓練すると、その特徴には画像のセマンティックセグメンテーションに関する明示的な情報が含まれるということです。以下のビデオでマルチヘッドアテンションレイヤーの選択されたヘッドのセルフアテンションマップを簡単に可視化することができます。
さらなる抽象化を解き、DINOがどのようにフレームワークを実装し、不安定性に取り組んでいるのか、前の手法と比較してどのようなパフォーマンスを発揮するのか、理解してみましょう!
メソッド
DINOフレームワークは、BYOLやmean teacherと同じ全体的な構造を共有していますが、知識蒸留とも異なります。まず、DINOがそれをどのように行い、他のフレームワークとの違いを見てみましょう。
ネットワークと更新ルール
中央から始めましょう。DINOは、同じアーキテクチャを持つ2つのネットワーク、つまり学生と教師を実装しています。学生は逆伝播で訓練され、教師は自身の重みと学生の重みの指数移動平均で重みを更新します。
バックボーンはResNet50またはDeiT(知識蒸留向けに適応されたViT)のいずれかです。バックボーンにはMLPベースのプロジェクションヘッドが接続され、特徴の次元を削減しますが、推論では削除されます。
素晴らしいですが、推論にはどのモデルが使用されますか?生徒か教師か? – それは良い質問ですが、面白いことに論文には一切言及されていません。直感的には、最初は私も生徒だと思っていました。しかし後に見るように、教師の方がトレーニング全体で生徒を上回ります。良いパフォーマンスの他のヒントはないのですが、コードの実装では、例えばビデオセグメンテーション、線形探査、およびk-NNの評価に対してデフォルトの教師チェックポイントが使用されています。ただし、このパラメータは変更可能なため、確実には言えません。
入力と出力
入力画像xから、クロッピングやカラー変動、ガウシアンぼかし、ソラリゼーションなどの画像拡張を適用して、異なるビューx1とx2が作成されます(例:BYOLと同様)。クロッピングにはマルチクロップという技術が使用され、異なるサイズの複数のクロップが生成されるため、メモリを節約しながらより多くのデータを提供することができます。小さいクロップはローカルビューと呼ばれ、96×96ピクセルであり、生徒にのみ供給されます。大きなクロップはグローバルビューと呼ばれ、224×224ピクセルであり、教師にのみ供給されます。後で見るように、トレーニング中には2つのグローバルビューと10のローカルビューが使用されました。
注意:マルチクロップの技術に関しては、論文がやや混乱しています。提供された疑似コードや図3のアーキテクチャは、マルチクロップを反映していません。疑似コードでは、x1とx2が生徒と教師の両方にフィードされるとBYOLのように示唆されていますが、マルチクロップを使用する場合はそうではありません。
埋め込みの類似度学習とは異なり、DINOは教師と生徒の出力分布間のクロスエントロピーを最小化します。下の式に示されているように、クロスエントロピーは各組のグローバルビューとローカルビューに対して計算され、合計されます。
では、モデルは何を出力するのでしょうか? – 類似度学習と同様に、生徒と教師は与えられた画像に対して埋め込みを出力し、予測スコアではなく埋め込みを出力します。知識蒸留と同様に、出力はSoftMax変換を経て確率分布に変換されます。SoftMaxには温度パラメータがあり、結果の分布の滑らかさまたは鮮明さを制御します。この温度は、教師ネットワークから生徒ネットワークに一般的な知識と詳細な詳細を伝達するバランスを制御するため、知識蒸留プロセスを異なるタスクに対してより効果的にします。
私はあなたのためにノートブックを作成しましたので、温度が結果の分布に与える影響を調査することができます:
ML_Notebooks/Softmax_Temperature.ipynb at main · sascha-kirch/ML_Notebooks
共有用の機械学習関連ノートブックのコレクション。— ML_Notebooks/Softmax_Temperature.ipynb at main ·…
github.com
崩壊の回避
前述のように、学生と教師はまったく同じアーキテクチャを持っています。このようなセットアップは不安定です(対策が実装されていない場合)し、崩壊した解を引き起こす可能性があります。崩壊した解では、すべての特徴が潜在空間の特定の領域、例えば最悪の場合は単一の点にマップされます。BYOLは、モデルの一方にのみ追加の予測ヘッドを持つことでこの問題に対処しています。DINOは対称モデルを持つため、別のトリックが必要です:センタリングとシャープニング。両方は教師ネットワークのみに適用されます。センタリングは、潜在空間の単一の次元が優位になるのを防ぐための技術で、教師の出力g(x) = g(x)+cにバイアス項cを追加することで達成されます。
センタリングは良い効果を持ちますが、出力を一様分布に押し込む傾向もあります。シャープニングは逆の効果を持つため、両方を適用することで効果をバランスさせ、トレーニングを安定化します。シャープニングは、教師の場合のSoftMax(図3を参照)でより小さい温度を使用することで達成されます。
崩壊を防ぐために、式3のハイパーパラメータmと教師の温度は重要です。付録部分での抜き打ち研究では、著者はm=0.9…0.999が最も良く機能し、温度値はウォームアップ中に0.04から0.07まで線形に増加することを示しています。
DINOは何をするのか? 知識蒸留または類似性学習?
答えは両方の要素を持っています!
知識蒸留は通常、すでにトレーニングされたより大きく正確な教師モデルから知識を小さな学生モデルに蒸留するものですが、類似性学習の一種とも見なされることがあります。なぜなら、学生ネットワークが教師の予測と類似しているような予測を生成することを促進するためです。類似性学習では、2つのモデルは通常共同でトレーニングされ、確率分布ではなく、潜在空間の予測を整列させることがよくあります。
DINOの目的を知識蒸留として定義しているため、以下は「標準的な」知識蒸留と比較した場合のいくつかの違いです:
- DINOの教師は事前に利用できず、学生と並行して「トレーニング」されます。むしろ、学生からも教師への知識を蒸留する共同蒸留と見なすことができます。
- DINOの教師と学生は同じ入力ではなく、異なるサイズにトリミングされた画像の異なるビュー上で動作します。
- DINOは両モデルのSoftMaxの中の異なる温度をシャープニングのために使用します。
- DINOは、予測スコアではなく、埋め込みの温度スケール化したSoftMaxのクロスエントロピーを計算します。
そして、知識蒸留との類似点は?:
- DINOは学生と教師のネットワークからなりますが、実験で見るように、教師の方が学生よりも優れています。
- 類似性メトリックを最大化するのではなく、DINOは温度スケール化されたSoftMax出力のクロスエントロピー損失を最小化します。
実験
論文では多数の実験が紹介されています。モデルは一般的に表現学習で使用されるImageNetデータセットで事前学習されています。
評価において、一般的な手法は通常、凍結された特徴の上に線形分類器をトレーニングするか、モデルを新しい下流タスクに対して微調整することであり、モデルのパラメータが適応されます。
DINOの著者は、これらの手法はハイパーパラメータに非常に敏感であり、比較が不公平で再現が困難であると主張しています。したがって、彼らは事前トレーニングされたモデルの特徴にシンプルな最近傍クラスタリングアルゴリズムを使用することを提案しています。
ImageNetの線形およびk-NN分類
この実験では、モデルはImageNet上の画像分類精度でテストされます。さまざまな自己教師ありの事前トレーニング済みモデルが、ResNetまたはViTバックボーンとともにテストされます。線形プロービングまたはk-NNクラスタリングにより分類が行われます。
重要なポイントは次のとおりです:
- ViTの特徴に対しては、ResNetの特徴よりもK-NNの方が優れたパフォーマンスを発揮します。
- ViTにおいてパッチサイズを減少させることは、大きなバックボーンよりも改善が大きいですが、推論速度が低下します。
ビデオインスタンスセグメンテーション
重要な実験は、ビデオセグメンテーションタスクです。この論文は、ViTが教師なし学習法で訓練されたときにその特徴にセマンティックセグメンテーションをキャプチャする能力について述べています。というか、そう主張しています 😁
これらの結果を観察すると、さらに2つの実験が不足していると思います:
- DINOフレームワークで教師ありのResNet50と自己教師ありのResNet50を比較することで、ViTがResNetアーキテクチャよりも優れているという主張をサポートする比較を見るとよいでしょう。
- 教師ありと自己教師ありの場合に、同じセットのViTバックボーンを見ることで、パッチサイズとモデルサイズの影響を確認するのも良いでしょう。
しかし、いつも言っているように、質問するのは簡単です 😁 実際のプロジェクトでは、著者はしばしばリソース制約とプロジェクトの期限に直面しているため、すべての細部をカバーすることはできません!
自己注意マップの探査
この実験では、ViTのマルチヘッド自己注意レイヤーの異なるヘッドの自己注意マップを調査しました。彼らは、ViT-S/8の最後のレイヤーから選択されたヘッドの注意マップを視覚化しています。
その他の実験
他の実験では、DINOは教師付き基準よりも改善されました。これらのタスクには、画像検索とコピー検出が含まれます。
削除
著者はViT-Sモデルを使用して削減の研究を行っています。
パッチサイズの重要性
ビジョントランスフォーマーは、入力画像のパッチ化バージョンを入力とし、各パッチをトークンに変換し、その後、セルフアテンションメカニズムを持つトランスフォーマーを適用します。これは、ViTの著者による画像データへのトランスフォーマーの適用を可能にするためのトリックでした。
DINOは、パッチのサイズが小さいほどパフォーマンスが向上し、スループット(秒あたりに処理できる画像数)が低下する、これがViTの主張です。
直感的に言えば、これは当然のことです。入力解像度が高くなり、対象となるトークンが増えるため、細かい注意マップが得られるからです。
異なる教師の更新ルール
DINOでは、教師は更新された学生と現在の教師との間で指数移動平均を計算することで更新されます。これは彼らが「モーメンタムエンコーダ」と呼ぶアプローチです。
モーメンタムエンコーダを使用して教師と学生の精度をプロットすると、教師はプロセス全体を通じて優れた結果を示します。これから次のことを仮説立てることができます:
- 教師は学生に強力な学習信号を提供できる。
- 改善された学生はEMAの更新ルールにより教師も改善する(共同蒸留)。
- 教師は学生と同じアーキテクチャを持ちながら性能が向上した最終モデルとして使用できるため、計算要件に変更はありません。
彼らはまた、他の3つの更新ルールを試しています:学生から教師への重みのコピー、オプティマイザの前のイテレーションの学生の重みの使用、前のエポックの学生の重みの使用。
マルチクロップ vs. Time and GPU Memory
先述のように、DINOは同じ画像の複数のクロップビューを入力とし、グローバルビューを教師モデルに、ローカルビューを学生モデルに供給します。この削除では、異なるローカルビューの量で実験し、パフォーマンス、トレーニング時間、GPUごとのピークメモリへの影響を報告します。
崩壊の回避
この消射(しょうしゃ)では、筆者たちは崩壊解を避けるための安定化手法である中央化(centering)と鮮明化(sharpening)の役割を評価しました。
そこで、彼らは交差エントロピーをエントロピー項とクルバック・ライブラー(KL)情報量の項に分解しました。KL情報量は2つの確率分布の差を測る指標です。KLが0の場合、2つの分布は等しいと見なされます。
この背後にある直感は次のとおりです:教師と生徒の出力分布のKL情報量がトレーニング全体で一定である場合、生徒の重みを更新する学習信号はありません。
バッチサイズの効果
興味深い特性は、DINOは小さなバッチサイズでも性能の大幅な低下なしにトレーニングできることです。これは、DINOが照応的自己教示学習に比べてバッチサイズに依存しないようにすることを目指したBYOLの動機の一つでした。
CLIPやGLIPのような照応的手法は、崩壊解を避けるために、与えられた正のサンプルに対して多数の負のサンプルを提供します。オプティマイザの更新ステップごと(つまり、バッチごと)により多くの負のサンプルがあるほど、より良い結果が得られます。
結論
結論として、DINOは知識蒸留のフレームワークです。これはViTsの興味深い特性を利用したビジュアル基礎モデルであり、現在の最高性能の基礎モデルの一つであるDINOv2の前身です。DINOのフレームワークは、同じ画像の異なるビューに作用する生徒モデルと教師モデルから成り、類似性学習アプローチの固有の不安定性に対処するための追加手法が導入されています。実験の結果、DINOは様々なタスクで他の自己教示学習済みモデルよりも優れたパフォーマンスを示しました。
さらなる参考文献・資料
論文
その間に、DINOの改良版がリリースされました:
論文解説
この記事で議論した概念をカバーする他の論文解説もご覧いただけます:
CLIP基礎モデル
論文要約— 自然言語教示からの転移可能なビジュアルモデルの学習
towardsdatascience.com
GLIP:言語-画像事前トレーニングの物体検出への導入
論文要約:グラウンデッドな言語-画像事前トレーニング
towardsdatascience.com
BYOL – 対比的自己教示学習の代替手段
論文の分析- 自己教師あり学習への新しいアプローチ:独自の潜在変数をブートストラップする
towardsdatascience.com
何でもセグメント化- 任意のオブジェクトのプロンプトによるセグメンテーション
論文の解説- 何でもセグメント化
towardsdatascience.com
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles