[論文メモ]ConvNets vs. Transformers: Whose Visual Representations are More Transferable?

arxiv.org
ICCV2021 Workshop
画像は論文より引用

あくまでメモ。興味ある人は論文を読んでください。
間違い等の指摘は大歓迎です。

タイトルどおりConvNetとTransformerでどちらがTransfer Learningに適しているのかを調査した論文。

概要

最近ではNLPで良いとされていたTransformerがViT(Visual Transformer)として画像認識分野にも進出してきた。
ConvNetはtransfer learningが可能でそれなりの効果があることが知られているがViT系モデルはどうなのかよくわかっていない。
そこでこの論文は2つのConvNetと3つのViTモデルを15の画像認識タスクで実験することで確認をした。

まずはpre trainingでtransferするためのベースモデルを学習する。その結果が下の表1。
f:id:Ninhydrin:20210814143649p:plain
INはImageNetの略らしくTop 1 Accuracyを表している。ベースモデルに関しては僅かではあるがConvNetのほうが優勢。
ベースモデルのAccuracyはfine tuning後のモデルのAccuracyに影響する。今回は5つのモデルともほぼ同じAccuracyなのでfine tuning後のAccuracyはアーキテクチャの影響が強く出るはず。

実験

実験に関しては個々の詳細についても記載されているがここでは省略する。

Single-task evaluation

まずは10個のsingle taskについて調べる。色々なドメインに関して調べたいので複数のデータセットを用意。3回実験をした平均で比較している。

Fine-grained classification

Flower102, CUB200の2つのデータセット。タスクはクラス分類。
fine-grainedはサブドメインの分類。花や鳥を分類するのではなくそのドメイン内を分類する。例えば花の種類(チューリップや桜など)。
結果は下の表2。ViTの圧勝といえる結果。fine-grainedな分類にはViTはTransferできる。
f:id:Ninhydrin:20210814144729p:plain

Scene recognition

Indoor67, NYU Depth V2の2つ。タスクはIndoor67クラス分類でNYU Depth V2は深度推定とセグメンテーション。
NYU Depth V2についてはタスクが分類ではないのでConvNetとViTともにヘッド部分を取り替えた。
結果は下の表3。これまたViTの圧勝と言えそう。
クラス分類タスクのネットワークをセグメンテーション等に転移するという少々難しめのタスクでもViTは強い。
f:id:Ninhydrin:20210814145729p:plain

Open-domain classification

WikiArt, COVID-19 Image Data Collectionの2つ。
結果は下の表4。
fine-grainedと同じ傾向でViTの圧勝。
今回の2つのデータセットはImageNetに含まれないようなデータだが、ViTはそのデータに転移するアビリティがあるようだ。
そして相変わらずSwin-Bが強い。
f:id:Ninhydrin:20210814150018p:plain

In-domain classification

Caltech101の1つ
結果は下の表5。
今回はConvNetのほうが良い結果になったが、これはCaltech101がImageNetに近いデータセットであり、ベースモデルもConvNetのほうがより良いAccuracyだったのを考えると正しいといえる。fine tuningするデータセットがベースモデルの学習に使ったデータセットと近いなら、ベースモデルのAccuracyが反映される。
f:id:Ninhydrin:20210814150047p:plain

Face recognition

FG-NETの1つ。
結果は下の表6。
ImageNetには顔画像はそれほど含まれていないので、アーキテクチャのtransferalbeな影響が強いはず。
全体的にはViTのが好成績。面白いことにConvNet、ViTともによりパラメータの少ないモデルのほうが良い結果になった(Swin-Bは別)。
顔認識においては過学習のリスクの低いほうが良いのかもしれない。
f:id:Ninhydrin:20210814150138p:plain

Linear evaluation protocol

ConvNet、ViTを特徴量抽出モデルとして固定し、全結合層を学習するタスク。
データセットはCUB200, Indoor67, WikiArtの3つ。
結果は下の表7。
面白いことに、ConvNetがViTと同等の成績。ViT-B/16とViT-L/16の特徴量はtransfer learningには向かないらしい。
ただ、Swin-Bだけは別でConvNetより良い結果に。feature pyramidは効果的なようだ。
同じデータセットで比べたときに(表2, 3, 4)、Accuracyの伸び具合からViTのほうがfine tuningによる調整が上手そうだ。
f:id:Ninhydrin:20210814150250p:plain

また、もう一つのタスクとして特徴量を利用した画像検索も行った。
データセットはOxford5。
その結果が下の表8。
ConvNetのほうが好成績だが、これはOxford5データセットがImageNetに近いからと考えられる(Caltech101と同じ要因)。
Swin-Bも好成績。feature pyramidはConvNetのような特徴を獲得できるのかもしれない。
少なくともViTの特徴量で画像検索をするならfeature pyramidのような階層的な構造がより良い特徴量を獲得できそう。
f:id:Ninhydrin:20210815101634p:plain

Multi-task evaluation

ここからはMulti-taskについての実験。
単純にConvNetとViTで比較するだけでなく、single-taskのときとも比較する。
ただ注意してほしいのはどのタスクを組み合わせると有効なのかを検証しているのではなくConvNetとViT、どちらがmulti-taskにおいてtranserしやすいのかの検証である。
single-taskのときと同様に3回実験を行った平均で比較する。

Scene segmentation and depth estimation

NYU Depth V2を用いて深度推定とセグメンテーションのmulti-task。
結果は下の表9。
この2つのタスクはmulti-task learningにおいてお互いに効果的(single-taskと比較)。
結果としてはViTのが好成績。
f:id:Ninhydrin:20210814150401p:plain

Scene and in-domain classification

Indoor67とCaltech101の2つの組み合わせ。
結果は下の表10。
結果としてはViTのがよく、Swin-Bがトップ。
この2つのデータセットの組み合わせは効果的ではなさそう。
ViTのほうがAccuracyの減少は少ない。
f:id:Ninhydrin:20210814150433p:plain

Open-domain and in-domain classification

Caltech101とWikiArtの2つ。一つ前の実験におけるIndoor67をWikiArtにした。
結果は下の表11。
ViTのほうが好成績だけど、どちらのモデルもsingle-taskと比較してAccuracyは下がった。
データセットドメインが大きく異り、識別に必要な特徴も異なるのが原因か。
f:id:Ninhydrin:20210814150539p:plain

Scene segmentation with different classification problems

セグメンテーションとクラス分類の組み合わせ。
NYU Depth V2とIndoor67の組み合わせと同じくNYU Depth V2とWiki Artの組み合わせの2セット。
結果は下の表12と表13。
ViTのほうが好成績。
同時に解くクラス分類のデータセットがセグメンテーションのデータセットに近い場合でもmulti-taskは難しいようだ。
ただ、それでもViTのほうが好成績で、未知の組み合わせ等でもViTを使うほうが良さそう。
f:id:Ninhydrin:20210814150644p:plain
f:id:Ninhydrin:20210814150647p:plain

結論

ConvNetに比べViTのほうがtransfer learningには向いている(よりよいアーキテクチャ)。
またmulti-task learningにおいてもよりロバスト
ConvNetに関しても、もとのデータセットに近いデータセットの場合や、画像検索などの特徴量を利用する場合は効果がありそう。ただSwin-Bは侮れない。

所感

ViTというかTransformerの方がよりdomain specificな特徴になっていてtransferしにくいのかなとか思っていたけどそんなことはなかったようだ。
単純にattention部分がうまいこと切り替わって、タスクにうまくフィットするのかもしれない?
そう考えるとConvNetと違って中間の特徴を大きく変化する必要もないのでtransferしやすそうでもある。
Swin-Bについて詳しく知らなかったが読んだ感じただのViTよりも、より画像タスク用にチューニングされた印象を受けた。
そろそろ本当にConvNetはViTに置き換わるのかもしれないな。