対照学習とは

たいしょうがくしゅうcontrastive learning別名 コントラスティブ学習、対比学習

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の背景知識として問われます。正例と負例の作り方や、ラベルなしで学習できる理由が問われます。

◯×チェック

  1. 対照学習で負例の表現を遠ざけるのは、すべての入力を同じ表現に写してしまう状態を防ぐためである。

    答えを見る

    答え ◯ 正しい

    正例を近づけるだけなら、どの入力にも同じベクトルを出せば損失が小さくなります。この崩壊と呼ばれる状態を、負例を遠ざけることで防ぎます。

  2. 対照学習では、正例と負例を決めるために、すべてのデータに人手でクラスラベルを付ける必要がある。

    答えを見る

    答え × 誤り

    自己教師ありの対照学習では、同じデータから作った2つの見え方や、対応する画像と文章の組を正例とします。組の関係はデータから自動でわかるため、人手のラベルは要りません。

  3. Triplet Lossは、基準となるデータと正例の距離が、基準となるデータと負例の距離よりも一定の幅以上小さくなるように学習する損失関数である。

    答えを見る

    答え ◯ 正しい

    アンカー(基準)・正例・負例の3つ組で学習するため、この名前があります。顔認証のFaceNetなどで使われ、対照学習と同じく距離の関係を学びます。

練習問題

対照学習の問題(3問)
  1. 自己教師あり学習の事前タスク
  2. CLIPによる画像分類の方法
  3. CLIPの対照学習の正例と負例

AIで作成 人による確認:未 誤りを報告

出典と作成について

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合。手順は編集方針)

公開日: 最終更新日: 最終確認日:

対応シラバス:シラバス第1.4版 技術31

改訂履歴

表示設定

テーマ
文字の大きさ
問題演習