2023-11-16 ML勉強会
Learning Transferable Visual Models From Natural Language Supervision
モチベーション
- 自然言語処理分野においてはGPT-3に代表されるように大規模な生テキストデータを事前学習に用いることで下流タスクにゼロショット転移が可能になってきている
- 一方で画像処理分野ではImageNetのようなラベル付きデータセットで事前学習することが依然として標準的である
- その理由としては、VirTex, ICMLM, ConVIRT といったテキストから画像表現を学習するTransformerベースのモデルの一般的なベンチマークの性能が他のアプローチと比較してはるかに低いためである
- Mahajan らは、Instagram画像のImageNet関連ハッシュタグを予測する弱教師あり学習が効果的な事前学習タスクであることを示したが、静的なsoftmax分類器を用いて予測を行っており動的な出力のための機構を欠いているためゼロショットの能力を大きく制限している
- これらの弱教師ありモデルと、自然言語から直接画像表現を学習する最近の研究との間の決定的な違いはスケールであると仮説をもった
- 弱教師ありモデルでは数百万 ~ 数十億の画像で学習されているのに対して後者は1 ~ 20万程度の画像しか使われていない
- 本研究では、インターネットで公開されている大量のデータから4億組の画像とテキストのデータセットを作成し、CLIP(Contrastive Language-Image Pre-training)と呼ぶConVIRTの簡易版をゼロから学習することが、Natural Language Supervision(自然言語教師)からの効率的な学習方法であることを実証する
アプローチ
1. Natural Language Supervision
- アプローチの核心は自然言語から知覚を学習するという考え方であるが、これ自体は特に新しいアイディアではない (これまでにも教師なし学習や自己教師あり学習など様々なアプローチがあった)
- Natural Language Supervisionの利点
- 従来の教師あり学習のようなアノテーションが不要でありスケールが容易である
- 単に表現を学習するだけでなく、柔軟なゼロショット転送を可能にする
2. 大規模なデータセット
- 従来の研究では主に、MS-COCO, Visual Genome, YFCC100M といったデータセットが使われてきたが、これらのデータセットは規模が小さかったり品質にばらつきがあった
- Webから収集した4億組 (画像, テキスト) のデータセットを構築した
- 可能な限り幅広い視覚的概念をカバーするため、構築プロセスの一環として、50万件のクエリのいずれかをテキストに含む(画像, テキスト)ペアを検索した
- 論文中では、WebImageText / WIT と呼ばれている
3. 効率的な事前学習モデルの選択
- 最初は VirTex と同様に画像キャプションを予測するために、CNNとTransformerをゼロから学習させたが、学習の効率が非常に悪いことが分かった
- 図2にあるようにResNet-50のベースライン(Bag of Words Prediction)と比較してTransformerの学習は同等の精度を達成するのに3倍の画像を要した
- 効率の悪さは画像キャプションの単語を正確に予測するという難易度の高いタスクにあった
- 最近の研究により対照学習でも同等の優れた表現を学習できることがわかってきたので、テキストと画像のペアを予測するだけという簡易なモデルを採用したところ、ベースラインと比較して効率が4 倍向上した
- N組の (画像, テキスト) のペアを与えて、N x Nの組み合わせのうち実際のペアを予測する
- N^2 - N 個のペアではない埋め込みのコサイン類似度を最小にしながら、N個のペアの埋め込みのコサイン類似度を最大にするように画像エンコーダとテキストエンコーダを学習する
4. モデルの選択
- 画像エンコーダは ResNet と Vision Transformer
- テキストエンコーダは Transformer (63M parameter, 12 layer, 512-wide model with 8 attention heads)
- 語彙サイズ49,152
- 計算効率を上げるため最大系列長を76に制限
- テキスト列は[SOS]と[EOS]トークンで括られ、Transformerの最上位層の[EOS]トークンの埋め込みを使う
5. 学習
- 5つのResNetと3つのVision Transformerを学習させた
- ResNet (ResNet-50, ResNet-101, RN50x4, RN50x16, RN50x64)
- RN50x* はEfficientNetと同様にResNet-50をスケーリングしたモデル
- Vision Transformer (Vit-B/32, ViT-B/16, ViT-L/14)
- すべてのモデルは32 epoch学習させている
- RN50x64はV100 x 592で18日間、最大のViTはV100 x 256で12日間
- ViT-L/14については336 pixelの高解像度で追加で1epoch学習させている
- このモデルを ViT-L/14@336px と表記し、特に指定が無い限り本論文でCLIPと報告された結果はすべて最も良い結果を示したこのモデルを使用している
実験
- 実験では未見のデータセットに対する汎化を評価するというモチベーションで主にZero-Shot転移でタスクの性能を測っている
- しかし、多くの既存データセットは特定のタスクの性能を測定のためではなく、画像分類の開発を導くためのベンチマークとして主に研究コミュニティによって作成されたものである
- この種のデータセットではZero-Shot転移はタスク汎化というよりも分布シフトやドメイン汎化に対するCLIPのロバスト性の評価のためのものとしている
CLIPを用いたZero-Shot転移
- CLIPは画像とテキストがペアとなっているか予測するように事前学習されている
- 画像分類をZero-Shotで解くためには、画像の埋め込みとデータセット内のすべてのクラスの名前の埋め込みのコサイン類似度を計算し、温度パラメータでスケーリングし、softmaxにより確率分布に正規化すればよい
- これはL2正則化, バイアス無し, 温度スケーリングを持つ多項ロジスティック回帰分類器と解釈することができる
- クラスの名前の埋め込みを取得する際の問題点とプロンプトエンジニアリングによる対策
- 画像と対になったテキストが1単語となるが、事前学習データセットではそのようなテキストは比較的少ない
- この分布のギャップを埋めるために “A photo of a {label}” というプロンプトテンプレートを使用 (ImageNetの精度が1.3%向上)
- コンテキストが無いため多義語の意味が定まらない
- boxer (ボクサー or 犬種)
- いくつかデータセットでは細かい分類を用いることでカテゴリを指定することができた
- “a photo of a {label}, a type of pet”
Zero-Shot CLIPの性能分析
CLIPとResNet-50の比較
- 27個中16個のデータセットでCLIPが上回った
- きめ細かい分類タスクでは性能に大きなばらつきがある
- これらの違いは主にWITとImageNetの間でタスクごとのsupervisionの量が異なることに起因すると考えられる
- 一般的なデータセット (ImageNet, CIFAR10/100, STL10, PascalVOC2007) ではゼロショットCLIPに優位性があるが比較的同程度の性能
- 動画中の行動認識のための2つのデータセット(Kinetics700, UCF101)でResNet-50を大幅に上回った
- ImageNetでは名詞がほとんどであることに対してWITでは動詞を含む視覚的概念がより含まれているためではないかと推測される
- 以下のように特殊・複雑・抽象的なタスクではCLIPの性能が顕著に悪かった
- 衛星画像の分類 (EuroSAT, RESISC45)
- リンパ節腫瘍の検出 (PatchCamelyon)
- 合成シーンにおけるオブジェクトのカウント (CLEVRCounts)
- ドイツの交通標識認識 (GTSRB)
- 最も近い車までの距離の認識 (KITTI Distance)
Zero-ShotとFew-Shotの比較
- 図6はZero-Shot CLIPとFew-Shot logistic regression (linear probe)を比較したもの
- 直感的にはZero-ShotはFew-Shotより劣ると予想されるが、Zero-Shot CLIPが4-Shot の性能と一致した
- これはZero-ShotとFew-Shotのアプローチの重要な違いによるものと思われる
- CLIPのZero-Shot分類器は視覚的な概念を直接指定できる自然言語で生成される
- 一方で通常の教師あり学習は教師データから間接的に概念を推論する必要があり、特にone-shotの場合は多くの異なる仮説がデータと整合性がとれてしまうという欠点がある
- CLIP以外の他のモデルでは BiT-M の16-Shotと同等
- 図7はデータセットごとの Few-Shot が Zero-Shot の性能に匹敵するために必要なクラスごとのサンプル数の平均の推定値を示している
- サンプル数が1以下 ~ 184までデータセットごとに効率が大きく異なる
- 図8はZero-ShotとLinear Probe CLIPの性能をデータセットごとに比較したもの
- データセットが十分に大きく、それらで学習した線形分類器のパラメータが十分に推定されていると仮定すると、CLIPのZero-Shot分類器も線形分類器と解釈できるため、Linear Probeの性能と一致するはず
- しかし、ほとんどのデータセットにおいてZero-Shotの性能はLinear Probeの性能を大きく下回っており、CLIPの学習とZero-Shot転移の性能を向上させる余地がまだ十分にあることが示唆される
- 5つのデータセット (STL10, CIFAR10, Food101, OxfordPets, Caltech101) のみLinear Probと同等の性能に達することができ、これらは精度がともに90%以上であった
- このことはCLIPの潜在表現が高品質であるタスクはZero-Shot転移がより効果的である可能性を示唆する
表現学習
- 図10はLinear probe CLIPを各種モデルの性能と比較したもの
- 左図: Kornblithらが調査した12のデータセットの平均値
- ResNet-50, ResNet-101のような小さなCLIPモデルはImageNet-1Kで学習したBiT-SやオリジナルのResNetを上回る一方で、ImageNet-21Kで学習したBiT-Mは下回る
- これらの小さなCLIPモデルは同様の計算量を必要とするEfficientNetよりも性能が劣る
- しかしCLIPで学習したモデルは非常によくスケールし、ResNet-50x64はScoreと計算効率の両方で最も性能の良い既存モデル(EfficientNet-NoisyStudent)を上回る
- CLIP-ViTはCLIP-ResNetの約3倍の計算効率
- 最も優れたモデルはViT-L/14であった
- 右図: より多様な分布を含む27のデータセットの平均値
- すべてのCLIPモデルは計算効率の点ですべてのモデルを凌駕している
- ベストモデル (ViT-L/14) の平均スコアは既存のモデルと比較して2.6 ~ 5%向上
- 図11は27データセットにおけるViT-L/14とEfficientNet-NoisyStudentのデータセットごとの比較
- CLIPは27個中21個で上回ったが、いくつかのデータセットでは下回っている
- 当然のことながらEfficientNetが最も優れているデータセットは学習に用いているImageNetである
- CIFARのような低解像度のデータセットで下回っているのはデータ拡張がCLIPでは行われていないことが原因ではないかと推測される
3.3. 自然分布シフトに対するロバスト性
- ImageNetで事前学習したモデルと比較したCLIPの特徴はタスクシフトに対してよりロバストである点
- Linear Prob CLIPの性能はImageNetの性能が同程度の他のモデルよりも高く、このことはImageNetで学習したモデルが過剰に適合していることを示唆している
- 図13. 左図
- 理想的なロバストモデル (破線) はImageNetの分布と他の自然画像分布で同等の性能を発揮するはずである
- Zero-Shot CLIPはこのロバスト性のギャップを最大75%縮小する
- 図13. 右図
- 7つの自然分布シフトデータセットに共通するバナナの分布シフトを可視化
- 図14. はL2正則化 logistic regressionを介してImageNet分布に適応した後のCLIPの性能がどのように変化するか測定したもの
- ImageNetの精度が全体で9.2%改善するがロバスト性は若干低下している
- 図15はZero-ShotからFew-Shotのサンプル数を増やしていった場合の性能を示す
- サンプル数を増やすにつれてImageNetでの性能は上がるがCLIP特有のロバスト性が失われていくことがわかる
CLIPの限界
- Zero-Shot CLIPがあらゆるタスクでSOTAに到達するためには約1000倍の計算量の増加が必要であると推定されており、現在のハードウェアで学習することは不可能
- いくつかの種類のタスクではまだかなり性能が低く、以下の例以外にもまだ多く存在すると確信している
- 細かい分類 (自動車のモデル, 花の種, 航空機のバリエーションを区別 etc)
- 抽象的で体系的なタスク (画像内のオブジェクトの数を数える etc)
- データセットに含まれそうにない新しいタスク (写真中の最も近い車までの距離の分類 etc)
- 分布外のデータにはうまく汎化していない
- OCRを例にすると、SST2の性能からわかるようにデジタルレンダリングテキストで高い性能を発揮するが、MNISTの手書き数字に対して88%の精度しか達成できなかった。これはロジスティック回帰モデルよりも下回る。
- CLIPは様々なタスクやデータセットに対して柔軟にゼロショット分類器を生成することができるが、与えられた概念からのみ選択することに制限されている。画像キャプションの生成ができるようなモデルと比べると大きな制限である。
- 深層学習のデータ効率の悪さにも対処していない。その代わりに何億もの学習例に拡張することができる元データを使用することで補っている。
- Zero-Shot転移に重点を置いているにもかかわらず、数千の検証セットで性能評価を行っており、真のZero-Shotシナリオには非現実的である。既存の教師ありデータセットを再利用するのではなく、幅広いZero-Shot能力を評価するために明示的に設計されたタスクの新しいベンチマークが求められる。
- CLIPの学習に用いるデータはフィルタリングされていないため社会的バイアスを学習する結果となってしまっている。
- Zero-ShotからFew-Shotに移行する際に直感に反して性能が低下する。強力なZero-Shotと効率的なFew-Shotを組み合わせた手法の開発には今後の研究が必要である。