SOTA性能を得るためのResNetsの学習とスケーリング戦略!
3つの要点
✔️ ResNets(とEfficientNets)の精度を向上させるための学習とスケーリングの戦略のセット
✔️ EfficientNetsよりも最大で3倍高速なResNets-RSを導入
✔️ 半教師付き、伝達学習、ビデオ分類タスクでの印象的なパフォーマンス
Revisiting ResNets: Improved Training and Scaling Strategies
written by Irwan Bello, William Fedus, Xianzhi Du, Ekin D. Cubuk, Aravind Srinivas, Tsung-Yi Lin, Jonathon Shlens, Barret Zoph
(Submitted on 13 Mar 2021)
Comments: Accepted to arXiv.
Subjects: Computer Vision and Pattern Recognition (cs.CV)
code:
はじめに
ResNetアーキテクチャは導入当初、いくつかのコンピュータ・ビジョン・タスクにおいて大きく進化させました。導入されてから約5年が経過しましたが、ResNetやその派生型は、現在も研究や実用化のために広く利用されています。
現在の研究は、優れた学習方法やハイパーパラメータを使用しているにもかかわらず、ほとんどがアーキテクチャの変更に焦点を当てています。新しいモデルは、古い手法で学習された古いアーキテクチャとよく比較されます(ImgNetのResNetでtop-1精度が76.5%)。
現在のSOTA手法を用いて正統的なResNetモデルの学習を試みたところ、ImageNetのtop-1精度を79から82.2%に向上させることができました。これらの戦略を用いて、EfficientNetsよりも高速(TPUでは最大2.7倍、GPUでは3.3倍)なResNetアーキテクチャのファミリーであるResNet-RSを導入しました。この戦略はEfficientNetsにも役立ち、Kinetics-400のtop-1ビデオ分類の精度をベースラインから4.8%も向上させます
ResNetの修正
オリジナルのResNetアーキテクチャに対して、以下のようなアーキテクチャの変更と学習の変更を行っています。
アーキテクチャの変更
全てのボトルネックモデルに、ResNet-DとSqueeze and Excitation(SE)を使用しています。ResNet-Dでは、以下の3つの変更を行っています。
- ステムの7×7 convolutionを3×3 convolutionに変更
- ダウンサンプリングブロックの最初の2つのconvolutionのストライドを変更
- ダウンサンプリングブロックのスキップ接続のストライド-2の1×1 convolutionをストライド-2の2×2 average poolとそれに続く非ストライド1×1 convolutionに変更
また、stride-2 3×3 max pool層は各ブロックから削除され、ダウンサンプリングは次のresnetブロックの最初の3×3 convolutionで行われます。
SE層は、最初に畳み込みブロックの特徴マップをグローバルに平均プールし、チャネル間の相互作用を計算することでチャネルをスケーリングし、ネットワークが各特徴マップの重み付けを適応的に調整できるようにします。すべての実験では、0.25の比率を使用しています。
学習の変更
学習方法はEfficientNetsと同じですが、いくつかの点を変更しました。
- RandAugment(translate, shear, color distortions)、momentum optimizer、Cosine LR schedulingを用いて350エポックの学習を行う。
- 正則化にはweight decay、label smoothing、dropout、stochastic depthを適用しています。
精度向上
ベースラインのResNet-200モデルを学習したところ、top-1精度は79.0でした。しかし、学習方法の改善(紫と緑で強調)により、82.2%の精度を達成することができています。SEとResNet-Dのアーキテクチャの変更(黄で強調)により、83.4%の精度に向上しました。学習方法だけで性能向上の3分の2を達成しており、ImageNetの性能に対する学習方法の影響力を示しています。
また、dropout DO)、stochastic depth(SD)、label smoothing(LS)、RandAugment(RA)などの正則化を用いる場合にも、重み減衰を抑える必要があることが判明しました。Data augmentationはweight decayと同じように重みのL2ノルムを減少させ、weight decayの効果を冗長にするという証拠が示されています。
スケーリング戦略
ImageNetでは、異なる幅の乗数[0.25,0.5,1.0,1.5,2.0]・深さ[26,50,101,200,300,350,400]・画像解像度[128,160,224,320,448]を用いて、ResNetモデルをテストしました。すべてのモデルは350回のエポックで学習されました。その結果低FLOPs領域(10^9まで)では、FLOPSの増加に伴って誤差がべき乗で減少することがわかりました.FLOPsが高い領域では、この傾向が崩れ、FLOPsの増加が不利になる場合があります。
上の図は10,100,350回のエポックにおいて、異なる画像解像度[128,160,224,320]に対する深さのスケーリングと幅のスケーリングを示しています。ここではすべてのモデルが4種類の深度[101,200,300,400]と幅の倍率[1.0x, 1.5x, 2.0x]で学習されています。最適なスケーリング戦略は、学習方法によって異なることがわかりました。一番右の図にあるように、高いエポック(350)で学習する場合、幅のスケーリングよりも深さのスケーリングの方が有益であることがわかります。同様に、低エポック領域では、幅方向のスケーリングがより有益であることがわかりました。したがって、小規模なレジームでスケーリングルールを作成するという一般的な方法は、それらのルールがより大きなレジームやより長い学習期間ではうまく一般化されない可能性があるため、避けなければなりません。最適なスケーリング戦略を理解するためには、異なるスケールのモデルの小さなサブセットを、完全な学習エポックでテストする必要があります。
また、画像の解像度が高いと、小さいモデルには不利になることがわかりました。したがって、EfficientNetのような以前のモデルよりも、画像解像度を徐々にスケーリングすることが提案されています。
実験と評価
上述の学習・設計戦略を用いて、私たちはResNet-RSと呼ばれるResNetsファミリーを学習し、評価を行いまし。
ResNet-RSとEfficientNetsの速度-精度
ResNet-RSはEfficientNetに比べてパラメータ数やFLOP数が多いものの、TPU上では最大1.7~2.7倍の速度を実現しています。FLOPsには、モデルの速度を決定する上で重要な要素であるメモリアクセスコスト(MAC)と並列度に関する情報が含まれていません。Multi-branchモジュールは、GPUやTPUなどの最新の並列コンピューティングデバイスではうまく動作しない、断片的な演算から構成されています。また、EfficientNetはアクティベーションの数が多いため、より多くのメモリを消費します。例えば、EfficientNet-B6に比べて3.8倍のパラメータを持つResNet-RSモデルは、ImageNetの精度に対して2.3倍のメモリを消費します。
ResNet-RSによる半教師付き学習
ResNets-RSは、120万枚のラベル付きImageNet画像と130万枚の疑似ラベル付き画像の組み合わせで学習されました。疑似ラベルの生成には、ImageNet精度88.4%のEfficientNet-L2モデルが使われています。
ResNet-RSは非常に優れた自己教師付き学習者であることがわかりました。EfficientNetsよりもトップ1の精度が高く、約5倍の速度が出ています。
ResNet-RSを用いた転移学習
自己教師付きのSimCLRとSimCLRv2の転移性能を、標準的な教師付きResNetと改良した教師付き学習戦略(RS)と比較しました。SimCLRの学習設定(RandAugment、ラベルスムージング、ドロップアウト、ウェイト減衰の減少、400エポックのコサイン学習率の減衰など)にできるだけ合わせるようにしましたが、stochastic depth や exponential moving average (EMA) of the weight は使用していません。
改良された教師付き表現(RS)は、下流のタスクの5/10でSimCLRを、8/10のタスクでSimCLRv2を上回りました。
ビデオ分類への拡張
スケーリング戦略と学習戦略は、ビデオタスクにも使用できます。学習戦略により,ベースラインが73.4%から77.4%に向上しました(+4.0%)。ResNet-DとSqueeze-and-Excitationのアーキテクチャの変更により、性能はさらに向上し、78.2%となりました。
まとめ
本論文で紹介したようなシンプルな戦略は、さまざまなタスクにおいて大幅なパフォーマンスの向上をもたらします。本稿では研究活動において、アーキテクチャの変更による改善と、学習手法による改善を区別することが不可欠であることを示しました。学習方法による改善は、必ずしもうまく一般化されないため、この2つの変更を組み合わせると、モデルの比較が難しくなります。さらに、パラメータ数やFLOPsだけでなく、モデルのレイテンシやメモリ消費量を報告することも重要である。これらの行動規範により、研究活動がより早く進むことは間違いありません。
この記事に関するカテゴリー