【 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のアプローチ 」を公開しました
ショートムービー 「 CLIPのアプローチ 」のpdf資料
https://drive.google.com/file/d/1aXju5ZQ7yDUxXBMOqMpkoNIjBI1jnH13/view?usp=sharing
blog : 「 natural language supervision とは何か?」
https://maruyama097.blogspot.com/2023/09/clip.html
マルレク「大規模言語モデルの展開」のまとめページ
コメント
コメントを投稿