e4exp / paper_manager_abstract

0 stars 0 forks source link

Learning to Prompt for Vision-Language Models #629

Open e4exp opened 3 years ago

e4exp commented 3 years ago

視覚言語の事前学習は、近年、表現学習の有望な選択肢として浮上している。 これは、固定された重みのセットを学習するために画像と個別のラベルを使用するという伝統的な方法から、2つの別々のエンコーダのために画像と生のテキストを揃える方法へと移行します。 このようなパラダイムは、より広範な監視源の恩恵を受け、視覚的概念がプロンプトとして知られる自然言語から正反対に生成されるため、下流のタスクにゼロショットで移行することができる。 本論文では、このようなモデルを実際に展開する際の主要な課題は、プロンプトエンジニアリングであることを明らかにしました。 これは、適切なプロンプトの設計、特にクラス名を取り巻く文脈語の設計には、ドメインの専門知識が必要であり、言葉遣いのわずかな変更がパフォーマンスに大きな影響を与える可能性があるため、一般的に言葉のチューニングには膨大な時間がかかるためです。 さらに、下流のタスクによっては特定のデザインが必要となるため、展開の効率がさらに悪くなります。 この課題を解決するために、私たちは「コンテキスト最適化(CoOp)」という新しいアプローチを提案しています。 その主なアイデアは、連続的な表現を用いてプロンプト内のコンテキストをモデル化し、事前に学習したパラメータを固定したまま、データからエンドツーエンドの学習を行うことです。 このようにして、タスクに関連したプロンプトの設計を完全に自動化することができる。 CoOpは、事前に学習された視覚言語モデルをデータ効率の良い視覚学習者に変えることができることを、11のデータセットを用いた実験で示しました。 また、CoOpは分布の変化にも強い耐性を持っています。

e4exp commented 3 years ago

image

1 はじめに

視覚表現学習の伝統的なアプローチは、離散的なラベルを使用して、固定されたオブジェクトカテゴリーのセットに対して予測するようにビジョンモデルをトレーニングすることである(He et al.2016; Dosovitskiy et al.2021)。 しかし、このアプローチでは、視覚認識システムが学習時に定義された閉じたセットの視覚的概念に限定され、新しい分類器を学習するために追加のデータが必要となるため、ターゲット環境に展開されると新しいカテゴリーを扱うことができなくなる。

近年、CLIP (Radford et al., 2021) や ALIGN (Jia et al., 2021) などの視覚言語の事前学習が有望な選択肢として浮上している。 主なアイデアは、2つの別々のエンコーダ(各モダリティ用)を使用して、画像と生のテキストを揃えることです。 大規模な事前学習により、視覚言語モデルはオープンセットの視覚的概念を学習することができ、下流のタスクに容易に移行することができる。 特に、新しい分類タスクでは、関心のあるクラスを記述する自然言語をテキストエンコーダーに入力して分類重みを合成し、画像エンコーダーが生成する画像特徴と比較することができます。 事前に学習された視覚言語モデルでは、プロンプトと呼ばれるテキスト入力が、下流のデータセットで重要な役割を果たしていることがわかった。 しかし、適切なプロンプトを特定することは簡単なことではなく、わずかな表現の変更が性能に大きな違いをもたらすため、言葉のチューニングには多大な時間がかかることが多い。 例えば、Caltech101(図1(a)、2番目と3番目のプロンプト)では、クラストークンの前に「a」を追加することで、精度が5%以上向上しています。 さらに、プロンプトエンジニアリングには、タスクに関する専門知識と、理想的には言語モデルの基本的なメカニズムが必要です。 図1(b-d)では、タスクに関連したコンテキストを追加することで、大幅な改善が得られることが示されている。 例えば、Flowers102ではクラストークンの後に "a type of flower "を置き、DTDでは "texture "のみを文脈に残し、EuroSATでは "satellite photo "の前に "centered "を追加するなどです。 しかし、広範囲に渡ってチューニングを行っても、結果として得られるプロンプトは、下流のタスクに最適であることは決して保証されていません。

最近のNLPにおけるプロンプト学習の研究(Shin et al., 2020; Jiang et al., 2020; Zhong et al., 2021)にヒントを得て、我々はプロンプトエンジニアリングを自動化し、事前に学習された視覚言語モデルに対してより効率的かつタスクに特化した転送を可能にするコンテキスト最適化(CoOp)1を提案する。 具体的には、単語埋め込みと同じ次元のランダムなベクトルで基本的に初期化される連続的な表現を用いて、プロンプトのコンテキストをモデル化する(図2参照)。 文脈は、すべてのクラスで共有することも、クラス固有のものにすることもできます。 学習時には,学習可能な文脈ベクトルに対するクロスエントロピー損失を用いて予測誤差を最小化するだけで,事前に学習したパラメータは固定したままである. この勾配は,テキストエンコーダー全体に逆伝播し,タスクに関連したコンテキストを学習するためのパラメータにエンコードされた豊富な知識を抽出することができる.

CoOpの有効性を実証するために、11のデータセットでベンチマークを行いました。 これらのデータセットは、一般的なオブジェクト、シーン、アクション、細かいカテゴリの分類、テクスチャや衛星画像の認識などの特殊なタスクを含む、多様な視覚認識タスクをカバーしています。 その結果、CoOpは、事前に学習させた視覚言語モデルをデータ効率の良い視覚学習者に変えることができ、わずか1~2回の撮影で、手作りのプロンプトにかなりのマージンで勝てることがわかりました。 また、ショット数を増やすことで、さらに性能を向上させることができます。 例えば、16ショットの場合、手作りのプロンプトに対するマージンは、平均で約17%、最高では50%以上に達します。 CoOpはまた、強力な少数ショット学習ベースラインとして知られる線形プローブの代替案を上回り(Tian et al., 2020)、重要なことに、分布の変化に対してはるかに強いロバスト性を示します。 また、CoOpを実際に適用するための包括的なイメージを提供するために、広範な分析が行われています。 ソースコードは https://github.com/KaiyangZhou/CoOp で公開されています。

e4exp commented 3 years ago

image

2 方法論

2.1 視覚言語の事前訓練

視覚言語の事前訓練について、特にCLIP(Radford et al., 2021)に焦点を当てて簡単に紹介する。 我々のアプローチは、より広範なCLIPのような視覚言語モデルに適用可能である。

モデル

CLIPは、画像用とテキスト用の2つのエンコーダで構成されている。 画像エンコーダは、高次元の画像を低次元の埋め込み空間にマッピングすることを目的としています。 画像エンコーダのアーキテクチャは、ResNet-50 (He et al., 2016) やViT (Dosovitskiy et al., 2021) のようなCNNの形をとることができます。 一方、テキストエンコーダーはTransformer(Vaswani et al., 2017)の上に構築され、自然言語からテキスト表現を生成することを目的としています。

学習

CLIPは、画像とテキストそれぞれについて学習した2つの埋め込み空間を揃えるように学習します。 具体的には、学習目的は対照的な損失として定式化されます。 画像とテキストの組み合わせが与えられたとき、CLIPは、マッチしたペアのコサイン類似度を最大にし、マッチしていない他のペアのコサイン類似度を最小にします。 また、CLIPでは、多様な視覚的概念を学習して後続のタスクへの適用性を高めるために、4億個の画像とテキストのペアからなる大規模なトレーニングデータセットを収集しています。

ゼロショット推論

CLIPは、画像がテキストの説明と一致するかどうかを予測するように事前に学習されているため、ゼロショット認識にも自然に適合します。 これは、画像の特徴と、テキストエンコーダによって合成された分類重みとを比較することで実現されます。 テキストエンコーダは、関心のあるクラスを指定するテキスト記述を入力として受け取ります。 形式的には、fを画像xに対して画像エンコーダによって抽出された画像特徴とし、{wi} K i=1を重みvのセットとする。 K i=1 はテキストエンコーダーによって生成された重みベクトルのセットです. Kはクラスの数を表し、各wiは「a photo of a [CLASS].」のような形式のプロンプトから得られます。 予測確率は次のように計算されます。

image

ここで、τはCLIPによって学習された温度パラメータであり、< -, - >はcosine similarityを表す。

2.2 文脈最適化

文脈最適化(CoOp)を提案する。これは、データからエンド・ツー・エンドで学習される連続ベクトルで文脈語をモデル化することで、手動によるプロンプトのチューニングを回避するものである。 その概要を図2に示します。 具体的には、テキストエンコーダg(-)に与えられるプロンプトを以下の形式で設計します。

image

ここで、各[V]m (m∈{1, ... , M})は単語埋め込みと同じ次元のベクトル(CLIPでは512)であり、Mは文脈トークンの数を指定するハイパーパラメータである。 なお、ここでの文脈はすべてのクラスで共有されるものであり、これは統一文脈と呼ばれ、後に紹介するクラス固有の文脈とは異なる。 プロンプトtをテキストエンコーダg(-)に転送することで,視覚的概念を表す分類重みベクトルを得ることができる. 予測確率は次のように計算される。

image

ここで、各プロンプトti内のクラストークンは、i番目のクラス名の対応するワードエンベディングベクトル(複数可)に置き換えられる。 学習は、クロスエントロピーに基づく標準的な分類損失を最小化するように行われ、勾配はテキストエンコーダg(-)を介してバックプロパゲーションされ、パラメータにエンコードされた豊富な知識を利用して文脈を最適化することができる。 また、連続的な表現を用いることで、単語の埋め込み空間を完全に探索することができ、タスクに関連した文脈の学習が容易になる。

その他のバリエーション

式(2)のようにクラストークンを配列の最後に置く以外に、次のように途中に置くこともできる。

image

理論的には,プロンプトは後者のセルに補足的な記述をするか,フルストップなどの終了信号を使って文を早めに切り上げることができる。 もう一つの方法は,クラス固有の文脈(CSC)を設計することである. ここでは,文脈ベクトルは各クラスごとに独立している.例えば

image

統一されたコンテキストに代わるものとして,CSCはいくつかの細かい分類タスクに特に有効であることがわかった.