1行定義
対照学習とは、似たデータどうしの表現を近づけ、似ていないデータどうしの表現を遠ざけるように学習して、有用な特徴表現を得る手法のことです。
くわしく
対照学習(contrastive learning)は、「何と何が似ているか」を手がかりに、データの特徴をベクトル(表現)として学ぶ方法です。似た組(正例)の表現は近づけ、似ていない組(負例)の表現は遠ざけます。
ラベルなしで学べる仕組み
画像の対照学習では、1枚の画像に切り抜きや色の変更などのデータ拡張を2通り施し、2枚を作ります。同じ画像から作った2枚は正例、ほかの画像から作ったものは負例とします。どれが正例かはデータの作り方から自動でわかるため、人手のラベルは要りません。そのため、自己教師あり学習の代表的な方法になっています。MoCo(2019年)やSimCLR(2020年)が知られています。学習したモデルは、分類や物体検出などの事前学習済みモデルとして使います。
損失関数
正例と負例の距離の関係を数値にしたのが、Contrastive Lossです。2つのデータが正例なら距離を小さく、負例なら一定の幅(マージン)以上離すように学習します。アンカー・正例・負例の3つ組を使うTriplet Lossも、同じ考え方です。SimCLRやMoCoでは、多数の負例の中から正例を見分ける形の損失がよく使われます。
負例の役割
正例を近づけるだけなら、どの入力にも同じベクトルを出せば損失は小さくなります。これでは何も区別できません。負例を遠ざけることで、この崩壊を防ぎます。
応用
CLIPは、画像と文章の対応する組を正例とする対照学習で、画像と言葉を同じベクトル空間に並べました。
覚え方
「仲間は近くに、他人は遠くに」と覚えます。
G検定での出題
出題のされ方
キーワード一覧にはなく、項目31の自己教師あり学習、項目13のContrastive Loss、項目32のCLIPの背景知識として問われます。正例と負例の作り方や、ラベルなしで学習できる理由が問われます。
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
対照学習で負例の表現を遠ざけるのは、すべての入力を同じ表現に写してしまう状態を防ぐためである。
答えを見る
答え ◯ 正しい
正例を近づけるだけなら、どの入力にも同じベクトルを出せば損失が小さくなります。この崩壊と呼ばれる状態を、負例を遠ざけることで防ぎます。
-
対照学習では、正例と負例を決めるために、すべてのデータに人手でクラスラベルを付ける必要がある。
答えを見る
答え × 誤り
自己教師ありの対照学習では、同じデータから作った2つの見え方や、対応する画像と文章の組を正例とします。組の関係はデータから自動でわかるため、人手のラベルは要りません。
-
Triplet Lossは、基準となるデータと正例の距離が、基準となるデータと負例の距離よりも一定の幅以上小さくなるように学習する損失関数である。
答えを見る
答え ◯ 正しい
アンカー(基準)・正例・負例の3つ組で学習するため、この名前があります。顔認証のFaceNetなどで使われ、対照学習と同じく距離の関係を学びます。
この用語の練習問題
出典
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目31 転移学習・ファインチューニング)
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目13 誤差関数)
- Raia Hadsell, Sumit Chopra, Yann LeCun, Dimensionality Reduction by Learning an Invariant Mapping, CVPR 2006
- Ting Chen, Simon Kornblith, Mohammad Norouzi, Geoffrey Hinton, A Simple Framework for Contrastive Learning of Visual Representations (2020)
- Kaiming He, Haoqi Fan, Yuxin Wu, Saining Xie, Ross Girshick, Momentum Contrast for Unsupervised Visual Representation Learning (2019)