Index
CLIP
テキスト情報から画像分類 / 物体認識を学習するフレームワーク.
画像とテキストからの情報抽出に、Attention (Transformer) を利用.
- Attention を用いた物体認識
VirTex の改善手法.
- CLIP #まとめ編
従来の画像分類
機械学習・深層学習の画像分類 / 物体認識では、事前に決定された物体のカテゴリリストを予測するように学習する.
このカテゴリのリストは無限ではなく、データセットとして用意できる範囲であり、それは一般性を制限してしまう.
自然言語を教師データに
ラベルのついた教師データではなく、生の自然言語を画像予測のタスクの教師に利用する手法を導入する.
- Natural Language Supervision
この手法では、テキストと画像のペアを用いて学習する.
従来の「画像に対応するラベルを用意する手法」と比べ、
アノテーションやラベリングの手間が少ないため、データセット作成のコストが少なくなる.
そのため、データセットの量を容易に増加・増強することが可能になる.
データセット / WebImageText
では、どのように、どのようなデータセットを作ったのか?
この論文では、WebImageText というデータセットを作成したと報告されている.
- 4 億の画像とテキストのペアのデータセット.
- インターネットから検索を行うことで、情報を取得.
多様なデータが取得できることが望ましいので、50 万のクエリで検索.
WebImageText
学習 / Training
自己教師あり学習 の一つである対照学習 / Contrastive Learningを用いて、大規模なデータで事前学習を行う.
事前学習 / Pre Training
対照事前学習を用いたフレームワークを構築する.
Pre Training
- 容易に実行でき、簡単な上流 (Up Stream) タスクで、大規模な学習を行い、下流 (Down Stream) に応用する
- yhayato1320.hatenablog.com
対照学習 / Contrastive Learning
- なんらかの関係のあるデータ同士の関連性を利用した、アノテーションコストの比較的低い学習方法
- yhayato1320.hatenablog.com
画像を Embedding したベクトルと、テキストを Embedding したベクトルが、
「実ペアであるか」、「実ペアでないか」を予測する枠組みを考える.
まず、画像とテキストのペアを 個のバッチで用意する.
画像とテキストを比較するために、Image Encoder と Text Encoder でデータをベクトル化する.
(図中の、 と )
Loss
各画像と各テキストのデータの組み合わせ分 ( 個分) のペアについて考える.
このペアごとに損失 / Loss を計算する.
Metric Learning などに導入されている.
- Multi-Class N-Pair Loss
また、InfoNCE という名称で、対照学習 / Contrastive Learning で紹介されている.
- 対照学習 / Contrastive Learning
下の論文でも利用されている.
- Contrastive Learning of Medical Visual Representations from Paired Images and Text
- [2020]
- arxiv.org
このペアの類似を、コサイン類似度を用いて計算する.
(図中の、)
- コサイン類似度
「実ペア」の類似度が高く、「実ペアでないペア」の類似度が低くなるように、ロス関数を設定して学習を行う.
ロス関数は、コサイン類似度の Symmetric Cross Entropy Loss を利用する.
- Symmetric Cross Entropy Loss
Image Encoder
Vision Transformer をベースに構築.
- Vision Transformer
変更点としては、Transformer と Embedding (Patch / Position Embedding) の間に正規化を追加した.
Text Encoder
Transformer をベースに利用.
- 8 つの Attention Head
- 63 M のパラメータ
- 12 層
512 次元の出力
Transformer
また、GPT-2 で行っている改善を導入.
GPT-2
49152 個の語彙を持つ Byte Pair Encoding (BEP) でベクトルに変換.
- 計算効率のため、最大シーケンス長は、76.
テキストシーケンスは、[SOS] と [EOS] トークンで囲むようにする.
Transormer 層からの [EOS] の出力をテキストの表現ベクトルとして利用する.
Masked Self Attention を利用している.
Zero Shot Prediction
従来の方法での画像分類 / 物体認識では、入力された画像に対し、 個の予測確率を算出していた.
では、このモデルでは、どのように予測するのか.
まず、予測したい画像が Image Encoder に入力され、ベクトル化される.
次に、「A photo of a {object} (xxx の写真)」のような文章が、分類されるカテゴリ分 ( 個) 作られる.
そして、 個の文章を Text Encoder がベクトル化する.
「Image Encoder にベクトル化された画像の情報」と各「Text Encoder にベクトル化された定型文の情報」同士のコサイン類似度を計算する.
類似度が最も大きい文章 (=定型文)に含まれている単語が、分類の予測結果となる.
実験
表現学習 / Representation Learning
Encode した CLIP 空間 (表現空間) のわかりやすさを確認.
様々なパフォーマンスの測定方法があるが、
Encode したベクトルを線形分類器で学習させることで、パフォーマンスを確認する.
参考
- Learning Transferable Visual Models From Natural Language Supervision
- [2021 OpenAI]
- Abstract
- 1 Introduction and Motivating Work
- 2 Approach
- 2.1 Natural Language Supervision
- 2.2 Creating a Sufficiently Large Dataset
- 2.3 Selecting an Efficient Pre-Training Method
- 2.4 Choosing and Scaling a Model
- 2.5 Training
- 3 Experiments
- 3.2 Representation Learning
- arxiv.org
2.3. Selecting an Efficient Pre-Training Method : 対照学習について
2.4. Choosing and Scaling a Model : エンコーダについて
- CLIP: Connecting Text and Images
- OpenAI Blog
- openai.com
書籍
- BERT/GPT-3/DALL-E 自然言語処理・画像処理・音声処理 人工知能プログラミング実践入門
- 5 GPT-3・Vision Transformer・CLIP・Image GPT・DALL-E
- 5.3 CLIP による未学習カテゴリでの画像分類
- 5 GPT-3・Vision Transformer・CLIP・Image GPT・DALL-E
Web サイト
[DL輪読会]Learning Transferable Visual Models From Natural Language Supervision
任意クラスの分類器を生成できるzero-shot転移モデルCLIP
話題のOpenAIの新たな画像分類モデルCLIPを論文から徹底解説!
【論文解説】自然言語処理と画像処理の融合 – OpenAI 『CLIP』を理解する(1)
-
- paper with code の paper のページ
- paper with code の paper のページ