CLIPのアプローチ

【 natural language supervision とは何か? 】

CLIP (Contrastive Language–Image Pre-training) は、テキストとイメージを結合することを目指したOpenAIのプロジェクトです。

CLIPは、大規模言語モデルをマルチモーダルな人工知能に展開する上での、OpenAIの中心的なプロジェクトと考えていいと思います。

OpenAIは、CLIPを次のように紹介しています。https://openai.com/research/clip

「CLIPと呼ばれるニューラルネットワークを導入し、natural language supervision から視覚概念を効率的に学習する。CLIPは、GPT-2やGPT-3の「ゼロショット」機能と同様に、認識すべき視覚カテゴリの名前を与えるだけで、あらゆる視覚分類ベンチマークに適用できる。」

ここでのキー・コンセプトは、“natural language supervision” です。その意味は、すぐ後で説明します。先の文は、それを視覚概念の学習に活かすと言っています。


【 CLIP登場の背景 】

“natural language supervision” の説明の前に、CLIPの登場の背景を見ておきましょう。その背景を、OpenAIは、とても率直に語っています。

「ディープラーニングはコンピュータ・ビジョンに革命をもたらしたが、現在のアプローチにはいくつかの大きな問題がある。」

最大のものは、データセットの問題だとOpenAIは言います。

「また、ベンチマークでは優れた性能を発揮するモデルも、ストレス・テストでは失望するほど低い性能しか発揮できず、コンピュータ・ビジョンへのディープラーニング・アプローチ全体に疑問を投げかけている。」

データセットには、どういう問題があるのでしょう?

先に見た Vision Transformer は、”Inductive Bias Free”なシンプルなアーキテクチャーでも、データセットの規模を拡大すると、画像認識の性能を上げられることを強調し、「大規模訓練が帰納的バイアスに勝ることを発見した。」と豪語していたのですが、OpenAIのCLIPのアプローチは、すこし違ったものです。

「典型的なビジョン・データセットは、作成に労力とコストがかかる一方で、狭い範囲の視覚概念しか教えない。標準的なビジョン・モデルは、1つのタスクと1つのタスクにしか向いておらず、新しいタスクに適応させるためには多大な労力を必要とする。」

例えば、代表的なビジョン・データセットであるImageNetは、一つの画像には一つのカテゴリー(ラベル)が割り当てられています。ただ、象の画像には「象」というラベルがつけられているだけです。

このようなデータセットで訓練されたシステムは、提示された画像が「なんであるか」という質問には答えられるかもしれませんが、それ以外のタスクには、対応できません。

しかし、画像認識には多様なタスクが存在します。
 「そこはどこ?」
 「何をしているの?」


【 “natural language supervision”とは何か? 】

「我々はこのような問題を解決することを目的としたニューラルネットワークを発表する。」

それがCLIPだといいます。

「それは、インターネット上に豊富に存在する多種多様なnatural language supervisionを用いて、多種多様な画像で学習される。これは重要な変更点である。」

例えば、象がいる画像に「象」というラベルを人手で一つつけるのではなく、その画像に「動物園で象がリンゴを食べている」というテキストを対応させ、この画像とテキストのペアを画像データセットに加えるのです。こうしたデータは、インターネット上にはたくさん存在します。

“natural language supervision” というのは、自然言語で書かれたテキストの意味を抽出して、その管理下で画像処理のタスク処理を行うということです。それは、画像の「意味」を対応するテキストが与えると考えることです。

(どう日本語に訳すのがいいか難しいですが、「自然言語監督」でもいいかなとも思っています。)

従来のImageNETのようなデータセットでは、「この画像は何?」という画像認識タスクに対して「象」と答えるしかなかったのですが、この新しいデータセットでは、「ここはどこ?」 ー> 「動物園」、「何をしているの」 ー> 「リンゴを食べている」のように、複数の画像認識タスクに対応できます。

細かいことですが、画像と対応付けられたテキストは、もはや単なる分類カテゴリー名のラベルではないので、単純なデフォールトでは「〇〇の画像」あるいは「〇〇の写真」と記述した方がいいことになります。これはこれで、ベタですが画像の意味記述になっています。

 Vision Transformer は、大規模言語モデルのTransformer という処理スタイルの形式を画像処理に転用したのですが、CLIPは、もう少し深いところで、大規模言語モデルの自然言語の「意味理解」の能力を画像認識に活かそうとしているように見えます。

実際は、もう少し複雑なのですが(というか、いろいろな単純化がなされているのですが)、CLIPのアーキテクチャーを論文にそくして見ていきたいと思います


------------------------------------------------------------

ショートムービー 「 CLIPのアプローチ 」を公開しました
https://youtu.be/4WcwlSR-2nE?list=PLQIrJ0f9gMcNq1c2SNCMXp8BbIn1XK76C

ショートムービー 「 CLIPのアプローチ 」のpdf資料
https://drive.google.com/file/d/1aXju5ZQ7yDUxXBMOqMpkoNIjBI1jnH13/view?usp=sharing

blog : 「 natural language supervision とは何か?」
https://maruyama097.blogspot.com/2023/09/clip.html

セミナーに向けたショートムービーの再生リスト
https://www.youtube.com/playlist?list=PLQIrJ0f9gMcNq1c2SNCMXp8BbIn1XK76C

マルレク「大規模言語モデルの展開」のまとめページ

コメント

このブログの人気の投稿

マルレク・ネット「エントロピーと情報理論」公開しました。

初めにことばありき

人間は、善と悪との重ね合わせというモデルの失敗について