あらゆる下流タスクに対応可能な転移学習システムGAIA
3つの要点
✔️ 物体検出の分野に焦点を当て、GAIAと呼ばれる転移学習システムを提案
✔️ 転移学習と重み付け学習を組み合わせ、様々なアーキテクチャに対して強力な事前学習済みモデルの同時生成や、下流のタスクに適したアーキテクチャを見つけるた効率的で信頼性の高いアプローチを発見
✔️ COCO, Objects365, Open Images, Caltech, CityPersons, KITTI, VOC, WiderFace, DOTA, Clipart, ComicなどのデータセットであるUODBで有望な結果を得ることを確認
GAIA: A Transfer Learning System of Object Detection that Fits Your Needs
written by Xingyuan Bu, Junran Peng, Junjie Yan, Tieniu Tan, Zhaoxiang Zhang
(Submitted on 21 Jun 2021)
Comments: CVPR2021.
Subjects: Computer Vision and Pattern Recognition (cs.CV)
code:
本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。
はじめに
近年、コンピュータビジョンや自然言語処理において、大規模なデータセットに対する事前学習を用いた転移学習が重要な役割を担っています。
しかし、遅延の制約や特殊なデータ分布など、独自の要求を持つアプリケーションシナリオが数多く存在するため、タスクごとの要求に対して大規模な事前学習を利用することは法外なコストがかかります。
そこで、本論文は物体検出の分野に焦点を当て、下流タスクに応じてカスタマイズされたソリューションを自動的かつ効率的に生み出すことを可能としたGAIAと呼ばれる転移学習システムが提案されています。
GAIAは、事前に学習された強力な重みを提供し、遅延の制約や指定されたデータ領域などの下流の要求に適合するモデルを選択し、タスクのためのデータポイントが非常に少ないときに関連データを収集することが可能です。
本論文の具体的な貢献は以下のとおりです。
- 転移学習と重み付け学習をうまく組み合わせることで、様々なアーキテクチャに対する強力な事前学習済みモデルを同時に生成する方法を示す。
- また、下流のタスクに適合したアーキテクチャを見つけるための効率的で信頼性の高いアプローチを提案
GAIAは、事前学習とタスクに特化したアーキテクチャの選択により、ハイパーパラメータを専用に調整することなく、10個の下流タスクに対して驚くほど良い結果を達成 - GAIAは、下流タスクにおいて、1カテゴリあたり2枚の画像から関連データを発見し、ファインチューニングを支援する機能を保持
これにより、データ不足の環境におけるGAIAの有用性が向上
GAIAでは、COCO, Objects365, Open Images, Caltech, CityPersons, KITTI, VOC, WiderFace, DOTA, Clipart, ComicなどのデータセットであるUODBで有望な結果を得ることができました。
COCOを例にとると、GAIAは16msから53msまでの広い範囲の遅延をカバーするモデルを効率的に作成することができ、38.2~46.5までのAPを効率的に得ることができます。
次章以降では、事前知識として転移学習について簡単に説明した後に提案手法と実験内容、結果について解説していきます。
転移学習とは
転移学習では、事前に何らかのデータを学習したモデルからパラメータを流用することで、学習済みのモデルを再利用します。
ここで、事前に学習したデータをソースデータ、事前にソースデータを学習したモデルをソースモデルとします。
また、次に学習するデータをターゲットデータ、学習するモデルをターゲットモデルとします。
ソースモデルは学習によって、ソースデータの特徴を検出できるようになっており、そのソースモデルを再利用することで、ターゲットデータからソースデータと共通の特徴を検出できる状態から学習をスタートでき、これにより、少ない学習量で高精度なモデルを作成することが可能になるという手法です。
転移学習には、以下の図に示すようにソースモデルのパラメータは更新せず、ソースモデルから流用した部分以外をターゲットデータで更新する方法と、ターゲットデータを用いて全層を再学習する方法の2種類があり、場合によって使い分けられています。
提案手法
転移学習フレームワークであるGAIAとその詳細な実装を紹介します。
GAIAは、タスクにとらわれない単一化とタスクに特化した適応の2つの主要なコンポーネントから構成されます。
タスクにとらわれない統一化では、複数のソースからデータを収集し、統一されたラベル空間を持つ大規模なデータプールを構築します。
そして、スーパーネットの学習に重み共有学習という手法を用いることで、様々なアーキテクチャのモデルを一括して最適化することを可能にする。
タスク別適応では、GAIAは与えられた下流タスクに対して最適なアーキテクチャを探索し、事前に学習したスーパーネットから抽出した重みでネットワークを初期化し、下流データを用いてファインチューニングを行います。
このプロセスを "Task-Specific Architecture Selection"(TSAS)と呼びます。
また、タスクのデータ数が少ない時のために、GAIAは膨大なデータプールから、与えられたタスクと最も相関のあるデータを関連データとして収集することができます。
このプロセスを"Task-Specific Data Selection"(TSDS)と呼びます。
ラベル空間の統一及び、巨大データプールの構築
提案手法では、タスクのデータポイントが少ない時のために、膨大なデータプールから与えられたタスクと最も相関のあるデータを関連データとして収集するため、複数の独立したデータセットを統一したラベル空間∪Lを持つ巨大なデータプールを構築することを考えます。
扱うデータセット数を$N$とすると、データセット$D$とそれに対応するラベル$L$をそれぞれ、$D={d_1,d_2,…d_N}$、$L={l_1,l_2,...l_N}$と定義します。
$L$の$i$番目の要素である$l_i$は$l_i={c_{i1},c_{i2},...c_{i|l_i|}}$となります。
ここで、$c_{ij}$はデータセット$d_i$の$j$番目のラベルを意味します。
目的である統一したラベル空間∪Lを構成するために、$L$のなかで最大のラベル空間を持つものを初期値とします。
次に、他のラベル空間を∪Lに写像します。
この時、データセット$d_i$から$p$番目のカテゴリ$c_{ip}$のword2vec類似度が閾値0.8より高ければ、同一カテゴリとします。
word2vec類似度が閾値0.8より小さければ、新規カテゴリとしてマークし、$c_{ip}$を∪Lに追加する処理を行います。
これらの処理を全てのデータセットに対して行い、巨大なデータプールを構築します。
Task-Specific Architecture Selection(TSAS)
TSASでは、与えられた下流タスクに対して最適なアーキテクチャを探索し、事前に学習したスーパーネットから抽出した重みでネットワークを初期化し、下流データを用いてファインチューニングを行います。
スーパネットの学習には、前節で説明した手順で構築された巨大データプールを用います。
具体的なTSASのアルゴリズムは以下のようになっています。
- 入力スケールと深さの組み合わせごとに5つのモデルをランダムに選択し、それらが目的ドメインや計算コストの制約を満たすか確認
そうして選んだモデルを直接評価し、最も性能が良いモデルを選択 - そうして選ばれたモデルの中で直接評価の値が上位50%に位置するものをfast fine-tuning(1epochのウォームアップを行った後に、2epochの学習を行う)し、その結果に基づき、最適なアーキテクチャの選択
ここで、初めに入力スケールと深さの組み合わせごとに代表となるモデルを選んだのは、図1に示すように入力スケールや深さが似ているモデルは同等程度の精度が得られることを確認したためである。
図1: 入力スケールや深さが似ているモデルのCOCOデータセットに対する性能
Task-Specific Data Selection(TSDS)
TSDSでは、タスクのデータ数が少ない時のために、膨大なデータプールから与えられたタスクと最も相関のあるデータを関連データとして収集します。
データ収集は、大量の上流リーム上流データセット$D_s$と特定のタスク(下流)データセット$D_t$が与えられたとき、タスク(下流)データセット$D_t$に対するモデル$\mathcal{F}$のリスクを$D_s^*$が最小にするようなサブセット$D_s^* \in P(D_s)$($P(D_s)$は$D_s$の冪集合)を見つけることと言い換えられます。これを数式にすると以下の数式1のようになります。
ここで、$\mathcal{F}(D_t \cup D_s^*)$は$D_t$と$D_s^*$で学習したモデル、$\mathbb{E}_{D_t}$は$D_t$の検証集合におけるリスクを意味します。
具体的なデータ補完アルゴリズムは以下のようになります。
- $D_s=\left\{I_{s_1}, I_{s_2}, \cdots, I_{s_P}\right\}$、$D_t=\left\{I_{t_1}, I_{t_2}, \cdots, I_{t_Q}\right\}$ の各画像に対してクラスごとの表現ベクトルを計算
- 各画像・クラスについてモデルの全ての全結合層からの出力を平均化することで表現ベクトル$V(I_{s_i},c_{\lor q})$を得る
- $V(I_{s_i},c_{\lor q})$と$V(I_{t_j},c_{\lor q})$のコサイン類似度を用いて各クラスで最も関連するデータを見つける
- 各$I_{tj}$に対して$D_s$から上位$k$枚を選択(top-k)、または$P\times Q$全てのペアで類似画像を収集(most-similar)
- top-k、またはmost-similarのうちどちらかの処理を目標枚数収集するまで続ける。ex.)|$D_s^*$|=1000
実験設定
GAIAは、Open Images, Objects365, MS-COCO, Caltech, CityPersonsを用いて統一ラベル空間下で学習を行いました。
Open Images, Objects365, MS-COCO は一般的な検出データセットで、それぞれ500, 365, 80のクラス数があります。
本論文でのそれぞれのデータセットの使用方法は以下の通りになります。
- Open Images 2019challenge:1.7M画像を訓練用、40k画像を検証用
- Objects365:600k画像を訓練用、30k画像を検証用
COCO:115kのサブセットを訓練用、5kを検証用 - Caltech:42k画像を訓練用、4k画像を検証用
- CityPersons:3k画像を訓練用、0.5k画像を検証用
これらの上流データセットを統一した結果、700のクラスからなる統一的なラベル空間が得られました。
また、下流タスクとして、UODB(Universal Object Detection Benchmark)に対して広範な実験を行いました。
UDOBを構成する10の多様なサブデータセット全てに対して公式のデータ分割(訓練用と検証用に分ける)とメトリックに従って行っています。
結果と考察
COCOデータセットを用いて、GAIAがデータ補完と最適なアーキテクチャ探索・使用により、高品質なモデルを生成できることを確認するための実験を行いました。
まず、ResNet50とResNet101を異なる重みの初期化で学習させた結果を比較します。
図2に示すように、GAIAの事前学習を行ったモデルは、ImageNetの事前学習を行ったモデルに対して、ResNet50で5.83%、ResNet101で6.66%と大きな改善効果を得ることができました。
また、COCOデータセットのデータはスーパーネットのデータプールに含まれているため、公平性を保つため、ImageNetの事前学習を3倍したモデルの結果(*がついている結果)とGAIAの結果も比較しました。
その結果、GAIAは3.23%、COCOは4.22%と大幅に改善され、他ソースからのデータが有効であることが示されました。
図2:GAIAの事前学習を行ったモデルは、ImageNetの事前学習を行ったモデルの精度比較
また、GAIAはレイテンシの範囲が広いモデルを効率的に生成することができます。
ResNet50とResNet101以外のモデルは、事前に学習された重みがないため、カスタマイズされたアーキテクチャのモデルは一から学習する必要があります。
図3に示すように、GAIAで学習したモデルは、同様の学習時間でスクラッチから学習したモデルを平均12.67%上回ります。
図3:学習時間ごとのCOCOデータセットに対するGAIAの精度とスクラッチから学習した際の精度比較
GAIAの汎用性を評価するために、UODBへの転移学習実験を行いました。
図4に、その結果(平均精度)を示します。
図4からGAIAがあらゆるデータセットに対して優れた精度を発揮していることを確認できます。
また、COCOの事前学習は2.9%向上していることもわかります。
これらの結果はGAIAの有効性を検証するのに十分なものであると言えます。
GAIAは、統一されたラベル空間と大規模データセットによる事前学習により、平均4.4%の性能向上を達成しました。
さらに、GAIAのTSASは、全体でさらに2.5%の改善をもたらす。 図4:UODBへの転移学習実験による精度
図5に示すように、TSDSを用いないGAIAの平均精度は、COCOの事前学習済みベースラインを5.6%上回りました。
データ補完では、関連するデータを選択することが重要です。
そのため、ランダムにデータを選択すると領域外のデータが多く含まれ、目標領域の学習が阻害されるため、精度に悪影響があります。
これに加え、top-kやmost-similarがTSDSを用いない場合と比べ、平均0.8%〜2.3%の精度向上をもたらし、データ補完におけるGAIAの有効性も確認できます。
図5:TSDSを用いた場合(top-kとmost-similar)と用いない場合のGAIAの平均精度とCOCOの事前学習済みベースラインの精度比較
まとめ
本研究では、転移学習の有効な汎化性と下流タスクへの適応について再考し、下流タスクに応じてカスタマイズされたソリューションを自動的かつ効率的に生み出すことを可能としたGAIAと呼ばれる転移学習システムを提案しました。
GAIAは、下流タスクに対して最適なアーキテクチャを探索する"Task-Specific Architecture Selection"(TSAS)と、タスクのデータ数が少ない時にデータプールから、タスクと最も相関のあるデータを関連データとして収集する"Task-Specific Data Selection"(TSDS)の2つの方法を用いて、さまざまな条件下の実験で有効性が確認されました。
本論文の具体的な貢献は以下のとおりです。
- 転移学習と重み付け学習をうまく組み合わせることで、様々なアーキテクチャに対する強力な事前学習済みモデルを同時に生成する方法を示す。
- また、下流のタスクに適合したアーキテクチャを見つけるための効率的で信頼性の高いアプローチを提案
GAIAは、事前学習とタスクに特化したアーキテクチャの選択により、ハイパーパラメータを専用に調整することなく、10個の下流タスクに対して優れた結果を達成 - GAIAは、下流タスクにおいて、1クラスあたり2枚の画像から関連データを発見し、ファインチューニングを支援する機能を保持
これにより、データ不足の環境におけるGAIAの有用性が向上
この記事に関するカテゴリー