モデル・技術

SimCLRとは?1枚を2つの見え方に割る——拡張だけで正例を作る対照学習

読み:しむしーえるあーる / 英:SimCLR(Simple Framework for Contrastive Learning)

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

SimCLRは、同じ画像を2つの見え方に割る——クロップ・色変換などのデータ拡張——だけで正例ペアを作り、対照損失で視覚表現を学ぶ自己教師ありの枠組みです。MoCoがキューと慣性エンコーダで負例を太くするのに対し、SimCLRは「拡張の設計と大きなバッチ」でシンプルに勝負する——本記事はアーキテクチャの細部より、「ラベルなしで何を正解にするか」に焦点を当てます。

試験で問われる見方

SimCLR単独の過去問は少ない一方、辞典の定義は「データ拡張と対照損失による自己教師あり学習」です。試験では自己教師ありの定義G-384)、Contrastive Lossの思想G-127)、データ拡張の注意TF-109)を土台に整理します。

誤答では、SimCLR=教師あり分類SimCLR=MAE(マスク再構成)、SimCLR=CLIP(画像テキスト対照)など、別手法とのすり替えに注意します。

2つの見え方

SimCLRの出発点は極めて素朴です。同じ猫の写真を、ランダムクロップ・色のゆらぎ・ぼかしなどで2回加工すると、見た目は違っても「同じ物体」です——この2枚を正例ペアにします。

バッチ内の他の画像はすべて負例。「同じ元画像の2ビューは埋め込み空間で近く、別画像は遠く」——G-163の距離学習の発想を、ラベルなしで実現するのがSimCLRです。

  • 入力 — ラベルなし画像1枚
  • 拡張×2 — 異なる変換でビューA・ビューBを生成
  • 正例 — AとBは同じ画像由来 → 近づける
  • 負例 — バッチ内の他画像 → 遠ざける

データ拡張が主役

SimCLRの論文が強調したのは、どんな拡張を組み合わせるかが性能を大きく左右する——という点です。TF-109が示すように、拡張はラベルの意味を変えない変換を選ぶ必要があります。

拡張例効果試験向け
ランダムクロップ部分見えの違いに頑健正例ペアの多様性
色変換照明・色調のゆらぎ意味は同じ物体
ぼかし・反転見え方の変化過度な変換は避ける

教師あり学習でのデータ拡張が「学習データを増やす」目的なら、SimCLRでは拡張そのものが正解ペアの設計図——自己教師ありでは「何を正解にするか」の発明が核心です(G-384)。

対照学習の流れ

試験向けのパイプラインは次のとおりです。

  1. エンコーダCNNなどで各ビューを特徴ベクトルへ
  2. プロジェクションヘッド — 対照学習専用の小さなMLP(下流タスクでは捨てることも)
  3. 対照損失NT-Xent損失などで正例を当てはめる
  4. 大きなバッチ — 負例の数を確保(MoCoのキューに相当する役割の一部)

G-127のContrastive Lossは「似ているペアは近く、似ていないペアは遠く」——SimCLRはその思想を拡張ビュー=似ているペアとして具体化した代表例です。

MoCoとの設計差

観点SimCLRMoCo
設計思想シンプルな枠組みキュー+慣性エンコーダ
負例の確保大きなバッチが重要負例キューでメモリ節約
正例の作り方データ拡張の2ビュー同様に拡張2ビュー
損失NT-Xentなど同系統の対照損失
試験拡張+対照の自己教師あり負例辞書の自己教師あり

どちらも対照学習の一族ですが、SimCLRは「拡張とバッチで足りる」、MoCoは「バッチが小さくてもキューで負例を太くする」——負例をどう集めるかの設計差として整理すると、MAE(マスク再構成)との三方向対比も明確になります。

事前学習と転移

SimCLRで学んだエンコーダは、少量のラベル付きデータでファインチューニングし、画像分類などへ転移します。人手ラベルを大量に集める前に、ラベルなし画像だけで表現を鍛える——基盤モデルや転移学習の前段としての自己教師あり、という流れです(G-384)。

言語の事前学習(次トークン予測)と同様、視覚でも下流タスク用の共通表現を先に作る発想——試験では手法名の暗記より、「ラベルなし→表現学習→転移」のパイプラインを説明できることが重要です。

すり替えに注意

誤った説明正しい理解
SimCLR=教師あり学習ラベルなしの自己教師あり(G-384)
SimCLR=MAE対照学習 vs マスク再構成
SimCLR=CLIP画像同士の対照 vs 画像テキストの対照
SimCLR=NT-Xent学習枠組み vs 損失関数
SimCLR=GAN表現学習 vs 生成器・識別器の対戦
拡張はラベルを変えてもよい意味が変わる変換は正例ペアを壊す(TF-109)

よくある質問

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

1枚の画像に異なるデータ拡張を2回適用して正例ペアを作り、同じ画像の埋め込みは近く・別画像の埋め込みは遠くなるように学ぶ自己教師ありの対照学習です。人手ラベルなしでCNNなどの表現を事前学習し、画像分類などへ転移します。

SimCLRとMoCoは同じですか?

同じではありません。どちらも自己教師ありの対照学習ですが、SimCLRは大きなバッチと強いデータ拡張を中心にしたシンプルな枠組みです。MoCoは動量更新のキーエンコーダと負例キューで、小さなバッチでも多くの負例を使う設計が特徴です。

SimCLRは教師あり学習ですか?

いいえ。SimCLRはラベルなし画像から、拡張ビュー同士を正例とする擬似教師信号で表現を学ぶ自己教師あり学習です。人手で付けたクラスラベルは事前学習段階では不要です(G-384)。