FRONT-END.AI Blog

FRONT-END.AIやAI/機械学習に関する最新情報を発信しています

CVPR2021より,AIの視覚・言語理解に関する論文の紹介

機械学習エンジニアの大郷です.

2021/06/19~06/25の日程で,コンピュータビジョン分野の国際会議であるCVPR 2021がオンライン開催されました. CVPR 2021採択論文から,AIによる視覚・言語統合領域の理解に関する論文1件をご紹介します.

タイトル: Seeing Out of the Box: End-to-End Pre-Training for Vision-Language Representation Learning

著者: Zhicheng Huang, Zhaoyang Zeng, Yupan Huang, Bei Liu, Dongmei Fu, Jianlong Fu

論文: arxiv.org

ソースコード*1: github.com

1. 前提

今回ご紹介する「Seeing Out of the Box: End-to-End Pre-Training for Vision-Language Representation Learning」は,視覚領域・言語領域にまたがったタスクを対象とした表現学習の手法です. 表現学習とは,タスクを解くために有用な特徴をデータからどのように抽出するかを学習する手法を指します*2

一般的に,視覚領域には,画像分類や物体検出といったタスクが含まれ,言語領域には文書分類や言語生成などが含まれます.その両方にまたがる視覚・言語領域には,画像に写った光景を自然言語で説明させるImage Captioningや,画像と質問文を入力して質問内容に解答させるVisual Question Answering(VQA)といったタスクが含まれます.

2. はじめに

まず,従来の視覚言語事前学習(Vision-Language Pre-Training, VLPT)の研究では,事前に学習した物体検出モデルから出力された領域特徴を学習に利用する手法が成功していますが,ご紹介する論文では物体検出モデルの領域特徴の利用には次に示す3つの課題があると指摘しています.

  1. 領域内の物体は注目できるが,領域外の文脈情報を無視することになる
  2. 理解できる物体は事前定義されたカテゴリに限られる
  3. 物体検出モデルの低品質さ,ノイズ,過剰検出,そして大量の教師データのアノテーションに依存する

そこで,物体検出に依存せずにエンドツーエンドに(=間に余分な手間を挟まずに)訓練できるVLPTモデルであるSOHO(See Out of tHe bOx)を提案する,というのが本論文の主題です.

視覚と言語のエンドツーエンド学習は,2つの異なるモダリティを扱うことに特有の困難があります. ピクセルレベルの視覚表現は,言語の埋め込みに比べて多様で高密度であり,ピクセルレベル言語に対する教師がないため,アラインメント学習は困難になります.すなわち,言語は単語ごとなどの単位に明確に分割できますが,画像はどのピクセルまでが意味的な一単位,のような明確な分割ができず,分割された言語特徴との間でどの部分が関係している,などのアラインメント(位置合わせ)が難しい,という問題があります.

そこで,提案手法では包括的かつコンパクトな視覚表現を可能にするvisual dictionary(VD)という学習可能な辞書を導入しています.VDはmoving-averaged encoderという特徴抽出器を使って,似たような視覚セマンティクスを持つピクセルをグループ化できるように,事前学習中に値が更新されます.

事前学習は,一般的に使用されるMasked Language Modeling(MLM)とImage Text Matching(ITM)タスクに加え,Masked Vision Modeling(MVM)を提案しています.

本論文の貢献は以下の3つに要約されます.

  1. 画像・テキストペアから直接的に表現学習できるVLPTモデル SOHOを提案,物体検出のbounding boxに依存せず,推論が10倍高速化
  2. 視覚特徴と言語トークンの良いアラインメントを得るために,画像中の似た意味の特徴を抽象化する辞書,VDを提案
  3. 4つの下流タスクで実験し,SOTAの性能を改善.MSCOCO text retrieval 5k test splitのR@1で2.0% ,NLVR test-P splitのaccuracyで1.5% ,SNLI-VE test splitのaccuracyで6.7%,VQA2.0 test-std splitのVQA scoreで0.56%の改善.

3. 提案手法

提案手法SOHOは次の要素から構成されます

  • CNNベースのvisual encoder
  • visual dictionary(VD) 埋め込みモジュール
  • 多層 Transformer

一つ目のvisual encoderは入力画像を受け取り,視覚特徴に変換します.二つ目のVD埋め込みモジュールは,提案手法のVDを利用して多様な視覚意味情報を視覚トークンに集約します. 最後のTransformerは視覚と言語の特徴を融合し,タスクにより異なる出力を行います.次の図は提案手法の処理の流れを示しています.

f:id:e4exp:20210711162905p:plain
提案手法SOHOのアーキテクチャ全体

SOHOはMasked Vision Modeling(MVM), Masked Language Modeling(MLM), Image-Text Matching(ITM)といった事前学習タスクで訓練され,Image-Text Retrieval, VQA, NLVR, Visual Entailmentといった下流タスクに転用できます.

次に提案手法の各要素について説明していきます.

3.1. 訓練可能なVisual Encoder

近年の多くの視覚言語研究は,領域レベル視覚特徴をVisual Genomeデータセットで訓練した物体検出モデルFaster R-CNNで抽出するという手法に従っています.これはBottom up and Top-Down attention[Anderson et al. 2018 CVPR]で提案された手法です.

このような領域抽出ベースで表現できる範囲は事前定義された物体と属性カテゴリに限られ,領域外に存在するコンテキスト情報は,物体検出モデル学習時の事前定義カテゴリになかったという理由で無視されることになります.また,物体検出モデルを視覚言語タスクで直接fine-tuneすると複雑になるため,VLPTの多くの手法では事前抽出済みの領域特徴で学習を行っています*3

物体検出ベースでは無視されてしまう情報も含めてすべての視覚情報を保持するため,提案手法では訓練可能なCNN visual encoderを使用しています.これは画像全体を入力し,領域レベルの特徴ではなく,画像レベルの特徴を出力します.visual encoderは事前学習の損失やタスク固有の損失からエンドツーエンドに学習・更新可能です. visual encoderは次式で表します.

 \displaystyle
V = E(I, \theta) \in {\bf R}^{l \times c} \tag{1}

ここで Iが入力画像, E(\cdot, \theta)がパラメタ \thetaを持つvisual encoder, lは埋め込み特徴ベクトルの数, c は埋め込み次元です. encoder Eには,ImageNetで事前学習されたResNetに1 x 1 畳み込み層と 2 x 2 max pooling層を適用したものを採用しています. 以降では Vのi番目の特徴ベクトルを表すのに v_iと表記します.

3.2. Visual Dictionary

visual encoderで抽出された視覚特徴 Vは言語の単語トークンよりも密で多様なため,画像・言語間のクロスモーダル理解の学習を困難にします. そこで,類似した意味を持つ特徴を同じ特徴へ集約することでトークン化する,visual dictionary(VD)を提案しています.

Visual Dictionary 埋め込み

visual dictionary(VD)は D \in {\bf R}^{k \times c}で定義されます.これは c次元の埋め込みベクトルを k個持った行列です.VDの j番目の埋め込みベクトルを d_jとします.visual encoderで抽出された視覚特徴 v_iについて, Dにおける最近傍を検索してマッピングのインデックスを得ます(次式, h_iがインデックス).

 \displaystyle
h_i = {argmin}_j || v_i - d_j||_2 \tag{2}

また, v_i Dにマップするマッピング関数 fで,VD埋め込みを定義します.

 \displaystyle
f(v_i) = d_{h_i} \tag{3}

これはencoderから得た視覚特徴 v_iを表現するために,VDの中で最も近い埋め込みベクトル d_{h_i}を使うという状態を表しています.

Visual Dictionary 更新のためのMomentum Learning

VD  Dはランダム初期化され,一つのmini-batchにおいて次式のように移動平均で更新されます.

 \displaystyle
\hat{d}_j = \gamma * d_j + (1 - \gamma) * \frac{\sum_{h_i=j}{v_i}}{|f^{-1}(j)|} \tag{4}

ここで,インデックス jを視覚特徴グループへ戻す逆関数を f^{-1}(j)としています.また |f^{-1}(j)|は逆マッピング後のグループのサイズ,つまりj番目のグループへと変換された特徴ベクトルの数を表します.

 \hat{d_j}は更新後の d_jの埋め込みベクトル, \gamma [0, 1 ]の範囲を取るモメンタム係数です.(4)式は |f^{-1}(j)| \neq 0の場合のみ適用できます. 感覚的には,VD内のj番目のベクトル d_jにマッチしたすべての画像特徴ベクトル v_iの平均で d_j自体を更新するという処理になっています.

勾配逆伝播

VD内の埋め込みベクトルと画像特徴ベクトルのマッピングのインデックスを計算する(2)式でargminを使用しましたが,argminは微分可能ではないため,これではVDにより勾配の逆伝播が停止してしまいます.そこで,次式で f(v_i)を更新します.

 \displaystyle
f(v_i) = sg[ d_{h_i} - v_i ] + v_i \tag{5}

ここで sg[\cdot ]は勾配停止演算子です*4

VDの学習は,視覚特徴に対してオンラインクラスタリングを行い,各特徴ベクトルをクラスタ中心で表していることになります*5. 似たようなセマンティクスを持つ特徴ベクトルは同じクラスタに集約され,各クラスタのインデックスはセマンティクスに対する仮想的なラベルとみなすことができます.

VDはcold-startと呼ばれる問題の影響を受けます.すなわちランダム初期化された埋め込みベクトルから直接勾配をコピーすると,モデルの最適化方向が誤った方向になります. そこで,最初の10エポックはvisual encoderのResNetのパラメタをフリーズさせています*6

3.3. 事前学習パイプライン

視覚・言語特徴のクロスモーダル表現を学習するため,Transformerで事前学習を行います. 事前学習には自己教師学習の手法を利用しており,よく利用されるMasked Language Modeling(MLM), Image-Text Matching(ITM)に加え,Masked Visual Modeling(MVM)を提案しています.

Cross-Modal Transformer

視覚表現はsin関数で2Dの位置埋め込みを適用します. 言語の入力系列についてはBERTに従い,トークンを埋め込みベクトル Wで表現します. i番目の埋め込みベクトルを w_iで表記します. 単語埋め込みとVD埋め込みの次元数は共に cであり,これらの埋め込みを結合してクロスモーダル学習の入力系列とします. 他のVLPTモデル同様に,[CLS]と[SEP]の特殊トークンを入力系列に追加し,分類と文章終了の位置を示します. これらの入力に対して多層Transformerを適用し,attentionが適用された特徴を出力します.

以降では各事前学習手法を説明します.

Masked Language Modeling

マスクされた単語を,他の単語 W_{\backslash i}および画像特徴 f(V)に基づいて予測します.自然言語処理で一般的なMLMとは少し違い,画像特徴も与えています.負の対数尤度を最小化するよう次式で学習します.

 \displaystyle
L_{MLM} = -\mathbb{E}_{(W, f(V)) \sim D} log p (w_i | W_{\backslash i}, f(V)) \tag{6}

 Dは訓練データ全体を表します.

Masked Visual Modeling

MLMと対照的な,本論文で提案されたVDを利用したタスクです.Transformerに入力する前に画像特徴をランダムにマスクし,マスクされた画像特徴を周囲の画像特徴 f(V)_{\backslash j}とすべての言語トークン Wから予測するタスクです.次式により負の対数尤度を最小化して学習します.

 \displaystyle
L_{MVM} = -\mathbb{E}_{(W, f(V)) \sim D} log p (f(v_j) | W, f(V)_{\backslash j}) \tag{7}

MVMはモデルが視覚的な知識を視覚文脈情報と言語から推定することを助けます. ある画像特徴 v_iがマスクされているとして,VDにおけるそのマッピングインデックス h_iはその画像特徴に対するラベルであると解釈できます.視覚特徴マップにおいて,隣り合う特徴は似たような値を持つ可能性があり,その場合VDにおいて同じマッピングインデックスが割当てられるので,こうなるとモデルは単純に周囲の特徴からラベルの値をコピーするだけで予測できます.これを防ぐために,マスキング処理では既存のラベルインデックス jをランダムに選び, f^{-1}(j)に該当するすべての視覚埋め込みベクトルを特殊トークン[MASK]のベクトルで置き換えます.

Image-Text Matching

クロスモーダルなマッチングを改善するためにImage-Text Matching(ITM)も採用しています.二値分類器 \phi(\cdot)に,Transformerから出力される[CLS]トークンの結合埋め込み特徴を入力し,画像とテキストがマッチしているかどうかを予測します.ITMは次式で学習します.

 \displaystyle
L_{ITM} = - \mathbb{E}_{(W, f(V)) \sim D} log p(y | \phi (W, f(V))) \tag{8}

ここで y \in {0, 1}は画像とtextがマッチしている( y=1)か,していない( y=0)を表します.

これまでに説明した,視覚特徴エンコーダ,VDベース画像埋め込みモジュール,クロスモーダルTransformer,は同時にエンドツーエンドに訓練できます.これまで説明した事前学習の目的関数にすべて同じ重みを割り当て,SOHOの事前学習の目的関数は次式で表現されます.

 \displaystyle
L_{Pre-training} = L_{MLM} + L_{MVM} + L_{ITM} \tag{9}

3.4. 事前学習のデータセット

視覚言語の事前学習用にいくつかの大規模データセットが提案されていますが,それらは"in-domain"か"out-domain"に分類できます*7. 提案手法では多くの視覚言語事前学習タスクと同様に"in-domain"なデータセット(MSCOCOとVisual Genome)を事前学習に使用しています. データリークを防ぐために,MSCOCOではtrainおよびrestvalを使用し,Visual Genomeではtrainおよびvalのみを訓練に使用しています.事前学習に使用したデータセットの詳細は次の表にあります.

f:id:e4exp:20210711224054p:plain
タスクごとに使用するデータセットの詳細

4. 実験

実験ではImageNetで事前学習したResnet-101,およびBERTをvisual backboneおよびTransformer構造に使用しています.また,入力画像は600 x 1000以下にリサイズして使用しています.

論文では4つの下流タスクで性能を報告していますが,ここではImage-text retrievalの結果だけご紹介します. Image-text retrievalは,候補画像に最も関連するキャプションを選ぶimage-to-text retrieval(TR)と,その逆のtext-to-image retrieval(IR)というサブタスクに分けられます.

この問題は二値分類問題として定式化し,ミニバッチ内に t個のマッチした画像-textペアと,マッチしていない t - 1個のペアをサンプルして訓練しています.Transformerから出力される結合埋め込み[CLS]トークンを使って,画像-キャプションペアがマッチしているかどうかを予測します.これは事前学習のimage-text matchingと同じ設定です.

実験結果はMSCOCOデータセット(表2)とFlickr30K(表3)について示されています.

f:id:e4exp:20210712003814p:plain
Image-text retrievalの結果(MSCOCO)

f:id:e4exp:20210712003716p:plain
Image-text retrievalの結果(Flickr30K)

表中のUNITER[Chen et al. 2020 ECCV]は"out-of-domain"なデータセットも追加で使用してますが,それらを使用していない提案手法SOHOが多くの指標で他を上回る性能を示していることがわかります.

Visual Dictionaryの可視化

論文では,VDが学習したものを明らかにするため,VDのインデックスの代表的なものを可視化しています.VDのインデックス1件は多くの視覚特徴と相関があり,それぞれの視覚特徴は一つの画像パッチと対応しています. 論文ではランダムにVDのインデックスを選び,それに対応する画像パッチを可視化していますが,VDが意味的に一貫した画像パッチをグループ化できていることがわかります.

f:id:e4exp:20210712005830p:plain

f:id:e4exp:20210712010328p:plain

5. まとめ

提案手法SOHOはエンドツーエンドに訓練できる視覚言語領域の事前学習モデルです. 言語トークンと融合可能な視覚特徴を学習するためにvisual dictionaryを提案し,3つの事前学習タスクを通して視覚・言語の接続を学習します.実験では下流タスクにおいて先行する領域ベースのモデルよりも優れた結果を示しており,領域ベースモデルで必要なbounding boxのラベリングコストが不要,さらに本稿では省略しましたが,先行研究より推論時間が約10倍高速化することも報告されています.

6. おわりに

株式会社Tsunagu.AIでは機械学習エンジニアを募集しています! 本稿のような分野の研究・開発に興味がある方とカジュアルにお話できると嬉しいです. エントリーはこちら:

www.wantedly.com

*1:2021/07/12現在,VQAタスクに関するコードのみ公開.また,Visual Dictionaryの実装が論文に記載されているものと異なるようです.

*2:表現学習とは何か: https://qiita.com/ps010/items/13eee6455d9cf2bf2eac

*3:つまり物体検出モデルは固定され,訓練されません

*4:この式は VQ-VAE[Oord et al. 2017 NeurIPS]が元になっており,出力側の勾配をそのままコピーすれば問題なく動作するという説明がなされています.(5)式では d_{h_i}の値を決定するためにargminを使用し,sg演算子によりその部分の勾配計算を避けています. v_i d_{h_i}と一致する場合はsg演算子の対象部分は0になるので, f(v_i)は恒等写像になります.異なる場合は,その差分を f(v_i)に足せば目的の
d_{h_i}になります.どちらの場合もargminの勾配計算を避けて出力側の勾配を入力に戻す事ができます.

*5:VDの値を画像特徴ベクトルの平均で更新しているためです

*6:ResNetのパラメタがおかしくなることを避けるために,VDだけが更新されるようにしています

*7:Chen et al. 2020 ECCV. 視覚言語分野の事前学習では一般的にMSCOCOおよびVisual Genomeが使用されており,これらを"in-domain"と呼称しています."out-domain"はConceptual Captions等,この2つ以外のデータセットを指します.