皆さん、こんにちは。AnyTechの立浪と申します。
突然ですが、技術の進展は速いものですね。特に巨大テック企業は我々には使えないような莫大な計算リソースを使って、日々研究を進めています。羨ましい限りです。そんな莫大な研究リソースを手にしているGoogleから、「いまさらわかったの?もっと早くやってよ」と思わず言いたくなるようなTechnical Reportが出されました。この記事ではこの記事の内容についてご紹介したいと思います。
ConvNets Match Vision Transformers at Scale
これが論文のタイトルです。ConvNetsはViTとスケールと一致する...?ViTはデータやモデルサイズのスケーリング則に従うという話は、知られていました。それに対して、ConvNetsは小規模または中規模のデータセット(ImageNetくらいまでの規模のこと)には、「帰納バイアスのおかげで、うまくフィッティングできるよ。大規模データを使うとViTのほうがいいよ。」というのがこの3年程度の通説だったはずです。それがこの論文ではNFNetsというConvNetsでILSRCV2012の分類のTop-1精度90.4%を達成したとのことです。一体何が起きているのか、そしてこれが本当だとしたら3年程度も放置されてきたのか、莫大な計算リソースを使えない野党の我々としては追求したい気分です。
Introduction
Computer VisionやDeep Learningに明るくない読者もいると思うので、本文のIntroductionをつまみながら、少し解説も加えて導入のお話をしましょう。
ILSRCV2012という2012年の画像認識のコンペでAlexNetというDeep Learningに注目が集まりました。AlexNetはConvNet、畳み込みニューラルネットワークと呼ばれるデザインのニューラルネットワークでした。それ以降、画像認識といえばConvNetという時代がしばらく続いたのですが、2020年に"An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale"という論文が、GoogleのDosovitskiyらから発表されました。この論文はVision Transformer(ViT)というアーキテクチャを提案しており、これは自然言語処理で利用されていたTransformerというアーキテクチャを画像向けに転用したデザインのアーキテクチャです。中規模のデータセットImageNetの画像分類のデータセットではそうでもないけど、大規模のデータセット(Googleの人しか使えないJFT-3B)であれば、ConvNetを超えちゃうよ!という大変画期的な論文でした。この論文を契機に、Computer Vision分野のアーキテクチャはTransformerにシフトし、データも大量に集めようよという路線にシフトしました。
「ConvNetsは小規模または中規模のデータセットだよね〜。ViTのようなスケーリング特性はないよね〜。」みたいな先入観が多くの研究者の中にありました(私もその一人です)。ViTを論じる際のベースラインにResNetという古い種類のConvNetsが引き合いに出されるからではないか。この仮説の証拠も少ないし、ちょっくら研究してみる価値あるんじゃないか?と思い、ConvNetsのスケーリング性について研究を始めたようです。
NFNetという純粋なConvNetsのアーキテクチャがあったらしいんですが(知らなかった!)、そのアーキテクチャを使ってスケーリング則を検証したようです。JFT-4B(JFT-3Bだったはずなのにいつの間にか4Bに増えている...?)という40億枚規模の30000クラスのラベル付きデータセットを使い実験を行ったところ、Validation setの損失と計算資源の割当量の間にlog-logのスケーリング則が観測されたとのことです。さらに、ImageNetでファインチューニングをしたら、"Getting ViT in Shape: Scaling Laws for Compute-Optimal Model Design"の論文などで報告されている、同等の計算資源を割り当てられて事前学習されたViTの場合と、精度がマッチしたとのことです。
Introductionでほぼ要点は書かれており、皆さんの知識欲は満たせるとは思いますが、せっかくなんで実験の詳細も見ていくことにしますが、本論に直接関係ない細かいハイパーパラメータ等は省略します。
NFNetの事前学習
様々な幅と深さのNFNetを準備し、0.25~8epoch訓練したようです。様々な幅と深さは以下のような関係があるとのこと。
幅: F3=F7<F3+=F7+ 深さ: F0→F1→F3=F3+→F7=F7+(2倍ずつ変化)
Validation setの損失とTPU-v4 Core Hoursを比較した結果が以下のとおりであり、たしかに直線的な傾向が観測されているようです。
ImageNetのファインチューニング
事前学習済の上記のモデルに対して、解像度384x384のImageNetでファインチューニングし、解像度480x480のImageNetで評価したそうです。その結果のエラー率とTPU-v4 Core Hoursの関係が次のとおりです。こちらも計算時間が増えるほどエラー率が減ることが確認できます。また、その関係が直線的になっており、スケーリング則が確認できますね。8epoch事前学習したNFNet-F7+は、90.3%の精度を達成しており、Repeated Augmentation(同一画像に対して複数の水増しを適用し、それらを同一バッチ内に含める。そのようなバッチを使って損失を計算し、誤差逆伝播法でパラメータを更新する方法で訓練すること)を利用してファインチューニングすると、90.4%の精度になったとのこと。NFNetのPlotにViT系のモデルを加えても、スケーリング則に違和感なく当てはまっていることがわかります。
結局のところ
この記事ではConvNetsはViTとスケールと一致するという驚愕の事実をご紹介しました。この事実は、何でもかんでも考えなしにViTだ、Attentionだを使うのはよくなく、適切なときに適切なものを使うべきだということを示唆していますね。マルチモダリティの場合は確かにTransformerは扱いやすいですが、そうでない場合は必ずしもTransformerである必要性がないですし、ConvNetsなどの他のネットワークも検討してみるべきかもしれませんね。