モデル・技術

MoCoとは?負例キューを慣性更新——対照学習の辞書を太くする自己教師あり

読み:エムオーシー / 英:MoCo(Momentum Contrast)

更新日: 読了目安:約7分

MoCo(Momentum Contrast)は、正例は近く・負例は遠く——Contrastive Lossの思想——で視覚表現を学ぶ自己教師あり手法です。対照学習は負例の数と質が効くのに、GPUメモリはバッチを太くできない——MoCoはキューに負例を溜め、キーエンコーダを慣性更新して安定させる——本記事は数式より、「なぜ辞書とスローエンコーダが要るか」に焦点を当てます。

対照学習の課題

自己教師あり学習は、ラベルなしデータから擬似的な正解を作ります(G-384)。対照学習では、同じ画像の異なる拡張(クロップ・色変換など)を正例ペアにし、別画像を負例にします。

G-163が示すように、Contrastive Lossは「似ているペアは埋め込み空間で近く、似ていないペアは遠く」——顔認証の距離学習と同型の発想です。画像の自己教師ありでも、豊富な負例があるほど表現が鍛えられやすい——が、1ステップのバッチに入れられる負例数はメモリで頭打ちになります。

二つのエンコーダ

MoCoの構成は、ざっくりQuery側Key側の二系統です。

部品更新の仕方役割
Queryエンコーダ勾配で通常更新拡張ビュー1の特徴を出す(学習の主役)
Keyエンコーダ動量(慣性)更新拡張ビュー2の特徴を出す。Queryの過去のゆるいコピー

Keyエンコーダをいきなり同期更新すると、正例ペアのターゲットが激しく動き学習が不安定——Momentumでゆっくり追従させ、安定した「比較先」を保つのがMoCoの名の由来です。

負例キュー

  • 正例 — 同じ画像の2拡張のQuery・Key特徴を近づける
  • 負例キュー — 過去バッチのKey特徴をFIFOキューに蓄積(数千〜数万件)
  • 対照 — Queryがキュー内の多数Keyと比較し、自分の正例Keyだけ似せる
  • 効果 — 小バッチでも負例の辞書が太い——対照学習のボトルネックを緩和

試験では「キュー」「動量エンコーダ」の細部より、自己教師ありの対照学習で、負例を大量に使う設計と覚えれば十分です。

MAE・CLIPとの違い

手法学習課題モダリティ
MoCo正例近・負例遠の対照画像のみ
MAEマスクパッチの再構成画像のみ
CLIP画像―テキストの対応マルチモーダル(G-393

どれも基盤モデル向けの事前学習レシピ——課題の作り方が違うだけで、下流の分類・検出へ転移する流れは共通です(TF-0161)。

試験で押さえるポイント

  • 定義 — Momentum Contrast=対照学習の自己教師あり手法
  • 特徴 — 動量更新Keyエンコーダ+負例キュー
  • 目的 — ラベルなし画像から汎用の視覚埋め込みを学ぶ
  • 対比 — Contrastive Lossの実装例、CLIP=画像+テキスト、MAE=再構成

演習で確認する

G検定:G-127G-163G-384G-393

生成AIパスポート:TF-0161

すり替えに注意

誤った説明正しい理解
MoCo=CLIP画像対照 vs 画像―テキスト
MoCo=MAE対照学習 vs マスク再構成
MoCo=教師あり学習自己教師あり(ラベル不要)
MoCo=Mixup表現学習の事前学習 vs 教師ありデータ拡張
MoCo=Contrastive Lossそのもの損失の思想を使った手法名

よくある質問

MoCoは何をする手法ですか?

画像の異なる拡張ビューを正例ペアとして、同じ画像の表現は近く・別画像の表現は遠くなるように学ぶ自己教師ありの対照学習です。動量更新のキーエンコーダと負例キーのキューにより、バッチサイズに依存せず多くの負例を使えます。

MoCoとCLIPは同じですか?

同じではありません。MoCoは画像の拡張ビュー同士の対照学習で視覚表現を学ぶ手法です。CLIPは画像とテキストのペアを共通埋め込み空間に載せるマルチモーダルモデルです。どちらも対照的な学習思想を含みますが、モダリティと目的が異なります。

MoCoとMAEは同じですか?

同じではありません。MoCoは正例・負例の距離関係を学ぶ対照学習です。MAEは画像パッチをマスクして再構成する自己教師あり学習です。どちらもラベルなしデータの事前学習ですが、学習課題の設計が異なります。