本文へ移動

G検定(ジェネラリスト検定)

くりっぷ

CLIP

CLIP

Contrastive Language-Image Pre-training

CLIPは、OpenAIのラドフォード(Radford)らが2021年に発表した、画像とテキストを同じ埋め込み空間で扱う事前学習の手法です。インターネットから集めた4億組の画像とテキストの対を使い、どの画像にどのキャプションが付いているかを当てる対照学習で画像の表現を学びます。学習後は、クラス名などの自然言語を手がかりにして、追加のラベル付きデータなしで画像分類などの下流タスクに使えます(ゼロショット転移)。マルチモーダルと基盤モデルを学ぶときの代表的な例です。

詳しい説明

CLIPとは

CLIP(Contrastive Language-Image Pre-training)は、OpenAIのラドフォード(Radford)らが2021年の論文 Learning Transferable Visual Models From Natural Language Supervision で発表した手法です。画像とテキストという異なる種類のデータ(モダリティ)を結び付けて学習するので、マルチモーダルなモデルの一つに数えられます。

論文はまず、従来の画像認識の弱点を指摘しています。当時の最先端の画像認識システムは、あらかじめ決めた固定の物体カテゴリを予測するように学習されていました。この形の教師は範囲が限られていて、決めたカテゴリ以外の視覚的な概念を扱わせるには、そのたびに新しいラベル付きデータを用意しなければなりません。

そこでCLIPは、人が付けたカテゴリのラベルではなく、画像に添えられた生のテキストから直接学ぶ方法をとりました。画像に付いたテキストは、固定のカテゴリよりもはるかに幅広い教師の情報源になります。CLIPは、インターネットから集めた4億組の画像とテキストの対を使い、どのキャプションがどの画像に対応するかを予測するという単純な事前学習の課題だけで、ゼロから当時の最高水準(SOTA)に並ぶ画像の表現を学べることを示しました。

仕組み: 画像エンコーダとテキストエンコーダ

CLIPは、画像を読み込む画像エンコーダと、テキストを読み込むテキストエンコーダの2つを持ちます。それぞれが入力をベクトル(埋め込み、embedding)に変換し、画像とテキストが同じ埋め込み空間に並ぶように学習します。この共通の空間の中では、内容が対応する画像とテキストのベクトルが近くなり、対応しないものは遠くなります。

対照学習を選んだ経緯

論文の著者たちは、最初から今の方式を使っていたわけではありません。最初に試したのは、画像用のCNNとテキスト用のTransformerをゼロから一緒に学習させ、画像のキャプションを予測させる方式でした。つまり、画像を見て、そこに添えられた文章の単語を正確に言い当てる課題です。

ところが、この方式は効率よく規模を大きくすることが難しいとわかりました。論文はその理由として、画像と一緒に現れる説明やコメント、関連するテキストは非常に多様であり、その正確な単語を予測するのは難しい課題だと述べています。

そこで著者たちは、画像の分野で報告されていた対照学習(contrastive learning)の知見に注目しました。対照学習とは、正しい組み合わせ(正例)と誤った組み合わせ(負例)を見比べて、正例どうしを近づけ、負例どうしを遠ざけるように表現を学ぶ方法です。先行研究では、対照的な目的関数のほうが、同等の予測型の目的関数よりも良い表現を学べることが示されていました。

これを受けてCLIPは、テキストの単語を正確に当てるのをやめ、テキスト全体としてどれがどの画像と対になっているかだけを当てる、より易しい代わりの課題に切り替えました。具体的には、N組の画像とテキストの対からなるバッチが与えられたとき、バッチの中で考えられるN×N通りの画像とテキストの組み合わせのうち、実際に対になっていたのはどれかを予測します。そのために、画像とテキストの埋め込みの類似度スコアに対して、画像側とテキスト側の両方向から対称な交差エントロピー損失を最小化します。

論文によると、予測型の目的関数を対照的な目的関数に置き換えたことで、ImageNetへのゼロショット転移の性能が上がる速さ(学習の効率)がさらに4倍改善しました。

CLIPでのゼロショット分類の手順

CLIPの大きな特長は、学習したあとに、その分類のための追加学習をしなくても画像分類ができることです。論文ではこれをゼロショット転移と呼んでいます。なお、画像認識の分野でゼロショット学習というと、見たことのない物体カテゴリへの汎化を指すのが普通ですが、この論文ではもっと広い意味で使い、見たことのないデータセット全体への汎化を調べています。

CLIPは、画像とテキストの断片がデータセットの中で対になっていたかどうかを予測するように事前学習されています。ゼロショット分類では、この能力をそのまま使い回します。手順は次のとおりです。

1. 分類したいデータセットの全クラスの名前を集め、それを画像と組み合わせる候補のテキストとして用意します。
2. 画像エンコーダで画像の埋め込みを計算し、テキストエンコーダで候補の各テキストの埋め込みを計算します。

3. 画像の埋め込みと、各テキストの埋め込みとのコサイン類似度を計算します。

4. 類似度を温度パラメータで調整し、ソフトマックスで確率分布に変換します。

5. 最も確率の高い画像とテキストの組み合わせを選び、そのテキストが表すクラスを予測結果とします。

つまり、クラス名という自然言語を分類器の代わりに使っているのがCLIPの分類の仕組みです。クラスを変えたいときは、候補のテキストを差し替えるだけで済みます。

何ができるようになったか

事前学習のあと、CLIPでは自然言語を使って、学習済みの視覚的な概念を参照したり、新しい概念を記述したりできます。これにより、モデルを下流のタスクへゼロショットで転移できるようになりました。従来のように、新しいカテゴリのたびにラベル付きデータを集めて学習し直す必要がありません。

具体的な結果として、論文の最良のCLIPモデルは、ImageNetの学習用に人が付けたラベル付きの画像を1枚も使わずに、ImageNetでの精度76.2%を達成しました。論文はこれを、それ以前の手法であるVisual N-Gramsの概念実証レベルの結果からの大きな改善として示しています。

まとめ

CLIPは、画像とテキストの対応を当てる対照学習によって、画像とテキストを共通の埋め込み空間に置くモデルです。キャプションの単語を予測する方式から対照的な目的関数へ切り替えることで効率よく規模を大きくでき、学習後はクラス名を候補テキストにしてコサイン類似度で分類するゼロショット分類ができます。

試験で問われること

G検定

  • CLIPが、4億組の画像とテキストの対を使い、どのキャプションがどの画像に対応するかを当てる課題で事前学習するモデルであることを確認しておきましょう。
  • CLIPが最初に試したキャプションの単語を予測する方式から、バッチ内のN×N通りの組み合わせのうち正しい対を当てる対照的な目的関数へ切り替えた理由を説明できますか。
  • CLIPでのゼロショット分類の手順(全クラス名を候補テキストにする、画像とテキストの埋め込みのコサイン類似度を計算する、ソフトマックスで確率にして最も高い組み合わせを選ぶ)を順に説明できますか。
  • 自然言語で視覚的な概念を参照できることで、追加のラベル付きデータなしに下流タスクへ転移できる点と、ImageNetで76.2%を達成したという結果を確認しておきましょう。

最終更新日: 2026/09/23