【たいしょうがくしゅう】
対照学習(Contrastive Learning) とは?
💡 「似てる」と「違う」を比べて、データの本質を見抜く学習法
📌 このページのポイント
- 正例(似たペア)と負例(異なるペア)の対比で特徴表現を学ぶ手法
- ラベル付きデータが少なくても、大量のラベルなしデータから有用な表現を獲得できる
- SimCLR、MoCo、CLIPなど多くの有名モデルの基盤技術になっている
- 画像・テキスト・音声など様々なモダリティで成果を上げている
対照学習って、何と何を対照させるの?
同じものや似たもの(正例ペア)と、違うもの(負例ペア)を対照させるんだよ。例えば猫の画像を回転させたり色を変えたりした2枚は「同じ猫だから近くに」、猫と車の画像は「違うものだから遠くに」という具合に、特徴空間上での配置を学ぶんだ。
ラベルがなくても学習できるっていうのがすごいね!どうやって正例を作るの?
CLIPも対照学習を使ってるって聞いたけど、どういうことなの?
CLIPは画像とテキストのペアで対照学習をしているんだよ。「猫の写真」と「猫」という説明文は正例ペア、「猫の写真」と「車」という説明文は負例ペアとして学習する。これで画像とテキストの意味を同じ空間に配置できるようになって、テキストで画像を検索したりゼロショット分類ができるようになるんだ。
損失関数はどうなってるの?
最近の発展で面白いものってあるの?
負例を使わない手法が注目されているよ。BYOLやSimSiamは正例ペアだけで学習できて、「全部同じ表現に潰れる」問題を巧みに回避しているんだ。また、DINOやDINOv2はViTと組み合わせて非常に高品質な視覚表現を獲得している。マルチモーダルAIの基盤技術として、対照学習の重要性はますます高まっているよ。
まとめ:ざっくりこれだけ覚えればOK!
「対照学習」って出てきたら「似てるもの同士を近づけて違うものを遠ざけて、データの良い表現を学ぶ方法」と思えればだいたいOK!
📖 おまけ:英語の意味
「Contrastive Learning」 = 対照的な学習
💬 「Contrastive」は対照・対比という意味で、正例と負例を対比させて学ぶことからこの名前がついたんだよ