【論文読み】CLIPで視覚情報と文字情報が分離されるように学習させる


以下の論文の内容をまとめた。

`Disentangling visual and written concepts in CLIP` 2022/06
https://arxiv.org/abs/2206.07835
Joanna Materzynska, Antonio Torralba, David Bau

https://arxiv.org/abs/2206.07835

CLIP[Radford+, ICML 2021]https://arxiv.org/abs/2103.00020 の画像エンコーダについて、自然画像と単語が描画された画像での表現のもつれ現象を調査し、視覚情報と文字情報を分離する手法を提案している。


## まとめ

### 前提/課題
- CLIPは、自然文と画像の類似性を測定する
- (CLIPのようなNNでは)リンゴに「iPad」と書かれた白い紙を貼り付けると、予測はリンゴを認識せず、書かれている方に傾くことが示されている

### 提案
- CLIPの画像エンコーダにおける単語画像と自然画像の表現のもつれについて調査
	- 画像エンコーダが単語画像とその単語が描写する情景の自然画像を照合する能力を持つことを発見
	- CLIPは無意味な単語を照合する能力も高いことがわかり、文字の処理と意味の処理が分離していることが示唆された
- 画像エンコーディングによって、書かれた単語に関する情報と、その単語によって記述される視覚的な概念とを分離することができるかどうかを調べる
    - 簡単な設定と直交投影により、実際にこの2つの能力を分離できることを発見
    - この分離の応用として、テキストから画像への生成におけるテキストアーチファクトの除去や、タイポグラフィ攻撃に対する防御を実証


> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/296108/79f3b580-035c-c7f3-ddf6-8f250b6743a7.png)
オリジナルのCLIPおよび提案手法で学習した2つのCLIP(forget to spell, learn to spell)で誘導しながら、下部に示す単語をプロンプトとしてVQA生成モデルで生成した画像群。オリジナルのCLIP(上段)では画像内にテキストが描画されたりされなかったりするが、画像に写り込んだ文字とテキストとの関連づけをさせないようにしたforget to spellモデル(中断)ではテキストが描画されていない。その逆の学習をしたlearn to spellモデル(下段)は逆に必ずプロンプトの単語が描画されている。


## 詳細

### CLIPの現状を調べるための実験

- テキストエンコーダーを完全に捨てて、CLIPの画像エンコーダーによってエンコードされた画像テキストと自然画像をマッチングする能力をテスト
	- 例えば、「playground」という単語の視覚的な画像テキストと、遊び場のシーンの自然画像をCLIP画像エンコーダがマッチングできるかどうかを調べる
	- Places 365で15.58%のトップ1精度、ImageNetで10.58%のトップ1精度を達成しており、CLIP画像エンコーダーが書かれた単語とその視覚的意味を関連付けていることが示された


> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/296108/f81df8ce-7e10-3d1f-a761-9371b9d86fec.png)
Figure3. 1) playgroundという文字が描かれた画像と遊び場が写った自然画像をマッチングできるか調べるタスク。2) walkという文字が描かれた画像とwalkという単語の埋め込みベクトルをマッチングできるか調べるタスク
Table.1 Figure3の(1)のタスクの結果。ランダムにマッチングを選択するベースライン(最下段)と比較してCLIPを使用した場合は精度が高くなっており、CLIPに「文字が描かれた画像」と「その文字が意味するものが写った自然画像」を関連付ける能力があることがわかる


- CLIPが単語の意味を理解することに依存して単語を読み取るかどうか調査
	- 本物の英単語と、ラテンアルファベットから長さ3～8の文字を一様に抽出した偽単語の無意味文字列を含む任意の文字列で画像テキストを構成し、本物、偽物、全ての文字列の集合について検索スコア（20kのうち1）を計算
	- CLIPは本物の単語も無意味な文字列も、自然な画像で見たことがない（可能性が高い）にもかかわらず、検索することができる


### CLIPベクトル空間の視覚空間を文字空間から分離するため、提案手法でCLIPを学習させる



- 5つの要素(xi , yi , xt, yt, xit)を持つタプルからなるデータセットを収集。
	- 最初の2要素(xi , yi)は自然画像とそのテキストクラスラベルである。画像テキストとテキスト文字列（xt, yt）、そしてxitは合成画像テキストxtの文字列がレンダリングされた自然画像xi
- CLIPビジョンとテキストエンコーダーを用いて画像とテキストプロンプトのCLIPエンコーディングを事前に計算し、各タスクの直交行列Wを学習(学習された表現の直交する低次元投影を得る)
	- モデルは２種類(画像内に写ったテキストとテキストの表現を関連させないforgot to spellと、それらの表現を関連づけるlearn to spell)
		- タスクに応じて、CLIPの学習手順に従って、与えられた埋込みの組に対称クロスエントロピーLiを適用
		- forget to spellモデルのlossは画像と偽ラベルが貼り付けられた画像の距離が近づき、文字画像と文字encodingとの距離が遠くなる, learn to spellはその逆 等
	- 各タスクのencodingの行列は直行する(積が単位行列になる)ように制約をかける。これがないと検索タスクでの性能が低下した

> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/296108/f0abb479-8229-b6ad-8bed-4949f9c3143f.png)
提案手法で学習する際のlossの構成要素をまとめたもの。各行は画像xi(自然画像), xt(文字が描かれた画像), xit(自然画像の上に、その被写体と関係ないテキストを貼り付けた画像)。各列はxitの他にyt(テキスト文字列), yi(クラスラベル文字列)。各要素が交差する部分にあるL1からL6はlossであり、対応する画像と画像, または画像とテキストをそれぞれencodeしたベクトル間の距離に相当する。提案手法のforget to spellは赤色の距離を最小化し青色を最大化, learn to spellはその逆の最適化を行う。




### 提案手法で学習させたCLIPの評価

- VQGAN生成モデルを使用し、テキストプロンプトに基づく画像生成を行う
	- この手法は、離散潜在コードがランダムにサンプリングされ、生成された画像のCLIP埋め込みとターゲットテキストプロンプトのCLIP埋め込みの間のコサイン類似度が最大となるように最適化するもの
	- 検証用文字列セットから実際の英単語を条件とする1000枚の画像と、検証用文字列セットから無意味な文字列を条件とする1000枚の画像を生成
        - 「forgot to spell」モデルでは、文字なしで単語の視覚的概念を捉えることができ、「learn to spell」モデルでは、不完全ではあるがテキストプロンプトに対応する読みやすい文字が表示される
        - 生成画像に対してOCRを実施し、オリジナルCLIPと「learn to spell」予測との間の全単語にわたる検出の差は25.43%であり、「learn to spell」モデルと「forget to spell」モデルとの間は54.92%で、forget to spellモデルでは文字が画像内に生成されにくい結果
		- 検出された単語の面積が画像の面積の10%より大きく、予測された単語中にターゲットテキストプロンプトと同じ文字が2つ以上あれば検出とみなしている

> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/296108/027586bd-2a49-7335-5436-eb3f25ecae96.png)
CLIPおよび提案手法のモデルを利用して生成した画像に対してOCRを適用した定性的結果。CLIPやlearn to spellではプロンプトの文字列が描画されている事が多いが、forget to spellでは同じ文字が描画されてはいない


> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/296108/39f9e5a8-3fb3-f853-07f7-72773b65ad81.png)
learn to spell, オリジナルCLIP, forget to spell, のモデルを利用して画像生成を行い、CORで画像内に描画されたプロンプト文字列と同じテキストを検出。検出があった画像の割合を示したもの


- タイポグラフィ攻撃の設定を検証するために、20のオブジェクトと8つのタイポグラフィ攻撃からなる180の画像からなるデータセットを収集
	- 真のオブジェクトラベルに対するCLIPの精度は49.4%に留まるのに対し、「forget to spell」モデルは77.2%を得る。forget to spellモデルは画像内の文字に影響されにくいことが示された

> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/296108/87f43abc-b505-7bfa-7e79-b70ab154a3d3.png)
c)のようにテキストを写り込ませた敵対的な画像を200枚作成し、CLIP(a)とforget to spell(b)モデルに認識させた際の画像埋め込みとテキスト埋め込みの類似度行列。a)では敵対的ラベル部分に斜線状のパターンが現れており、敵対的画像が敵対的ラベルと類似度が高くなっている。b)ではそのような傾向は少ない


## 告知

この記事は「Qiita Engineer Festa 2022」に参加しています。

https://qiita.com/official-campaigns/engineer-festa/2022