SimCLRは、同じ画像を2つの見え方に割る——クロップ・色変換などのデータ拡張——だけで正例ペアを作り、対照損失で視覚表現を学ぶ自己教師ありの枠組みです。MoCoがキューと慣性エンコーダで負例を太くするのに対し、SimCLRは「拡張の設計と大きなバッチ」でシンプルに勝負する——本記事はアーキテクチャの細部より、「ラベルなしで何を正解にするか」に焦点を当てます。
試験で問われる見方
SimCLR単独の過去問は少ない一方、辞典の定義は「データ拡張と対照損失による自己教師あり学習」です。試験では自己教師ありの定義(G-384)、Contrastive Lossの思想(G-127)、データ拡張の注意(TF-109)を土台に整理します。
誤答では、SimCLR=教師あり分類、SimCLR=MAE(マスク再構成)、SimCLR=CLIP(画像テキスト対照)など、別手法とのすり替えに注意します。
演習で確認する
G検定:G-384(自己教師あり学習)、G-127(Contrastive Loss)、TF-109(データ拡張)、G-163(埋め込み距離)
生成AIパスポート:TF-0161(自己教師あり)
2つの見え方
SimCLRの出発点は極めて素朴です。同じ猫の写真を、ランダムクロップ・色のゆらぎ・ぼかしなどで2回加工すると、見た目は違っても「同じ物体」です——この2枚を正例ペアにします。
バッチ内の他の画像はすべて負例。「同じ元画像の2ビューは埋め込み空間で近く、別画像は遠く」——G-163の距離学習の発想を、ラベルなしで実現するのがSimCLRです。
- 入力 — ラベルなし画像1枚
- 拡張×2 — 異なる変換でビューA・ビューBを生成
- 正例 — AとBは同じ画像由来 → 近づける
- 負例 — バッチ内の他画像 → 遠ざける
データ拡張が主役
SimCLRの論文が強調したのは、どんな拡張を組み合わせるかが性能を大きく左右する——という点です。TF-109が示すように、拡張はラベルの意味を変えない変換を選ぶ必要があります。
| 拡張例 | 効果 | 試験向け |
|---|---|---|
| ランダムクロップ | 部分見えの違いに頑健 | 正例ペアの多様性 |
| 色変換 | 照明・色調のゆらぎ | 意味は同じ物体 |
| ぼかし・反転 | 見え方の変化 | 過度な変換は避ける |
教師あり学習でのデータ拡張が「学習データを増やす」目的なら、SimCLRでは拡張そのものが正解ペアの設計図——自己教師ありでは「何を正解にするか」の発明が核心です(G-384)。
対照学習の流れ
試験向けのパイプラインは次のとおりです。
- エンコーダ — CNNなどで各ビューを特徴ベクトルへ
- プロジェクションヘッド — 対照学習専用の小さなMLP(下流タスクでは捨てることも)
- 対照損失 — NT-Xent損失などで正例を当てはめる
- 大きなバッチ — 負例の数を確保(MoCoのキューに相当する役割の一部)
G-127のContrastive Lossは「似ているペアは近く、似ていないペアは遠く」——SimCLRはその思想を拡張ビュー=似ているペアとして具体化した代表例です。
MoCoとの設計差
| 観点 | SimCLR | MoCo |
|---|---|---|
| 設計思想 | シンプルな枠組み | キュー+慣性エンコーダ |
| 負例の確保 | 大きなバッチが重要 | 負例キューでメモリ節約 |
| 正例の作り方 | データ拡張の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)。