EfficientNet B6+AutoAugと同等程度の精度で5倍早いAssemble-ResNet

この記事について

この記事は、EfficientNet B6+AutoAugと同等程度の精度で5倍早いAssemble-ResNetを提案した2020/1/17投稿の論文””Compounding the Performance Improvements of Assembled Techniques in a Convolutional Neural Network [1]の解説記事です。

この記事では以下のこと説明します。

  1. 論文のサマリ
  2. BaseLineのEfficientNetとAutoAugment
  3. Assemble-ResNetで使用しているテクニック
  4. 結果

この論文のサマリは以下のような感じです。

既存のあらゆるテクニックを組み合わせて、EfficientNet B6+AutoAugと同等程度の精度で5倍早いネットワークを構築した研究。著者たちがいうにはAugMix等の最新のものはここでは使ってないので、まだ精度があがる可能性があるとのこと。

BaseLine手法の解説

ここでは、Assemble-ResNetのベースライン比較となっているEfficientNet+AutoAugmentの解説をします。EfficientNetは2019年に発表された既存のネットワークより大幅に軽くて高精度なネットワークです。AutoAugmentは2018年に発表された論文で、最適なデータ拡張を自動で探索する研究です。どちらも画像認識では頻繁にベースラインとして登場する強力な手法です。

EfficientNet

EfficientNet[2]は2019/5/28に投稿された論文で、それまでの既存のネットワークより高速で高精度なネットワークです。論文の内容をまとめると下記のような感じです。今まで成されていなかった解像度・深さ・チャネル数を同時に最適化することによって、高速かつ高精度なネットワークを構築。式3におけるφ=1にしてMnasNetの探索空間でαβγを最適化(B0)、後にφを変えて再最適化を繰り返してB1->B7を構築する。パラメータ探索はグリッドサーチで行う。

パラメータ探索は深さ、モデルの幅(CNNのチャネル数)、解像度の3つを同時に探索します。α、β、γの3つを制御する拘束条件を設け、その範囲でgrid searchを行うことにより、最適なネットワークを見つけます。探索の拘束条件が厳しい順に、EfficientNetB0, B1…B7となっています。

AutoAugment

AutoAugmentは2018/5/24に投稿された論文で、最適なデータ拡張手法を強化学習で探索するという内容です。5つのsub policyから成るデータ拡張policyをvalidation dataのロスが小さくなるように最適化していきます。

AutoAugmentの概念図(左) 5つのsub policyの例(右)

下記がAutoAugmentの結果です。このようにAutoAugmentだけでかなり強力な手法なのですが、EfficientNetにAutoAugmentを加えたモデルにすら勝ったしまったのが今回紹介するAssemble-ResNetです。

Key Insightと手法

EfficientNetに勝ってしまうほど強力なAssemble-ResNetのポイントは、「既存の良さげなネットワーク構造と正則化手法を全部ResNetに載せた」ということに尽きます。ImageNetの精度改善において、アーキテクチャ改善に使ったのは、ResNet-D[4], Selective-Kernel[5], Anti-Alias Downsampling[6]、Big Little Network[10]です。正則化はLabel Smoothing, Mixup[7], DropBlock[8], Knowledge Distillation[9]、AutoAugment[2]を使っています。

以下で、Assemble-ResNetに使用したネットワーク構造の改善手法と正則化手法を説明します。

ネットワーク構造の改善

ネットワーク構造の改善1. ResNet-D

ResNet-DはCVPR2019に提案されたResNetの改善アーキテクチャ[4]です。下図のような構造をしており、あまり計算コストを上げずに精度を押し上げることができる手法です。

ネットワーク構造の改善2. Selective Kernel

Selective Kernel[5]は、人間の画像認識の受容野の大きさがニューロン毎に異なっていることにヒントを得て、CNNのカーネルサイズ3x3, 5x5それぞれでたたみ込んだものにAttentionをかけて統合する仕組みになっています。Assemble-ResNetでは、速度と精度のバランスを鑑みて5x5サイズのカーネルを使う代わりにチャネル数を倍にした3x3のフィルターで代替することを検討しています。検討の結果、Table2のC3の構造を採用しています。

ネットワーク構造の改善3. Anti-Alias Downsampling

Anti-Alias Downsampling[6]は、画像の並行移動に対して頑健性をもたせるために考えられた機構です。MaxPooling等のDownsampling手法は、画素上だとshift invariantにならなりません。そのため、CNNの出力が位置ずれに対して頑健性がありませんでした。donwsamplingの過程で、anti-aliasing処理を入れること(BlurPool)により、shift invariant性を持たせるという手法です。

ネットワーク構造の改善4. Big Little Network

Big Little Networkは、複数の解像度の画像を効率よく処理するためのネットワーク構造です。下図は解像度の枝分かれ数K=2の例で、下のルートでは入力の解像度と同じ画像を処理し、上のルートでは縦横の大きさ1/2の解像度の画像を処理しています。Assemble-ResNetでは、通常のResidual Blockに加えて、解像度を下げた画像を処理するルートを加えています。

Assemble ResNet Architecture

以上のテクニックを用いて構成したネットワークが下図です。通常のResNet-50に上記のテクニックを加えた構成にしてあります。

正則化のテクニック

正則化1. ラベル平滑化

ラベル平滑化は、[0.0, 1.0] のようなone-hot形式のhard labelではなく、[0.1, 0.9]のようなsoft labelというラベルを使う手法です。この研究[11]によるとラベル平滑化はカテゴリ毎の分布をまとまらせる効果があり、またデータへの過適合(softmaxの値が0.99でもペナルティが発生する)を抑えるため、有効だということです。

正則化2. MIXUP

MIXUP[7]は入力と出力両方を混ぜ合わせるデータ拡張手法です。β分布から混合比率をサンプリングし、2つのデータの入出力両方を混ぜ合わせます。各クラスのクラスタ間に内挿データを作るため、潜在空間を滑らかにする働きがあると言われています。

正則化3. DropBlock

DropBlock[8]はCNN用のDropoutです。通常のDropoutだと、下図bのように画像が歯抜け状態になりますが、Dropされた画素に隣接する画素はDropされていないことが多いため、画像の正則化としては弱くなってしまいます。そこでDropBlockでは、2次元空間上で隣り合った画素もまとめてDropすることにより正則化効果を高めています。

正則化4. Knowledge Distillation

Knowledge Distillation(蒸留)は、巨大で高精度なネットワークの知識を、小規模で軽いネットワークに移植する手法です。蒸留元の大規模なネットワークは教師モデル、蒸留先の小規模なネットワークは生徒モデルと呼ばれ、生徒モデルは、通常の教師ラベル(hard label)とのクロスエントロピーだけでなく教師モデルの出力(soft label)も教師信号として目的関数に取り込み、学習させます。この手法を使うと、生徒モデルとラベル付きデータだけで学習さえるよりも、高精度な教師モデルに近い精度が得られることが知られています。

(引用https://nervanasystems.github.io/distiller/knowledge_distillation.html)

結果

以上のテクニックを用いたAssemble-ResNetの成果は以下の通りです。

Assemble-ResNet-152は、EfficientNet B6 + AutAugmentとtop-1 Accuracyで同等の精度ですが、推論速度は5倍高速です。mCEは、画像のノイズに対してどれほど頑健性があるかを測る指標で、ImageNetにノイズを載せたデータセットで計測します。mCEの詳細が気になる方は以前発表した資料をご覧ください。

また、導入した手法それぞれが効果を上げていることがわかります。AutoAugmentなしでもEfficientNetB3+AutoAugmentに匹敵する精度で、3倍以上の推論速度になっています。

まとめ

このブログでは、高精度で高速なAssemble-ResNetの解説をしました。Knowledge distillationやAutoAugmentを使っているので、このネットワーク構造さえあれば高精度な予測ができる!というわけではないですが、このように既存の有効な手法を組み合わせることで実務でも高精度なモデルが実装できるのではないかと期待しています。

Reference

  1. Jungkyu Lee, Taeryun Won, Kiho Hong. Compounding the Performance Improvements of Assembled Techniques in a Convolutional Neural Network, arXiv:2001.06268
  2. Mingxing Tan, Quoc V. Le. EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks. arXiv:1905.11946
  3. Ekin D. Cubuk, Barret Zoph, Dandelion Mane, Vijay Vasudevan, Quoc V. Le. AutoAugment: Learning Augmentation Policies from Data. arXiv:1805.09501
  4. Tong He, Zhi Zhang, Hang Zhang, Zhongyue Zhang, Jun- yuan Xie, and Mu Li. Bag of tricks for image classification with convolutional neural networks. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recogni- tion, pages 558–567, 2019
  5. Xiang Li, Wenhai Wang, Xiaolin Hu, and Jian Yang. Selec- tive kernel networks.arXiv:1903.06586( 2019)
  6. Richard Zhang. Making Convolutional Networks Shift-Invariant Again, ICML2019
  7. Hongyi Zhang, mixup: BEYOND EMPIRICAL RISK MINIMIZATION, arXiv:1710.09412 (2017)
  8. Golnaz Ghiasi, Tsung-Yi Lin, and Quoc V Le. Dropblock: A regularization method for convolutional networks. In Advances in Neural Information Processing Systems, pages 10727–10737, 2018
  9. Geoffrey Hinton, Oriol Vinyals, and Jeff Dean. Distill- ing the knowledge in a neural network. arXiv preprint arXiv:1503.02531, 2015.
  10. Chun-Fu Chen, Quanfu Fan, Neil Mallinar, Tom Sercu, and Rogerio Feris. Big-little net: An efficient multi-scale fea- ture representation for visual and speech recognition. arXiv preprint arXiv:1807.03848, 2018
  11. Rafael Müller, Simon Kornblith, Geoffrey Hinton. When Does Label Smoothing Help?. NeurIPS 2019(2019)

Data Scientist (Engineer) in Japan Twitter : https://twitter.com/AkiraTOSEI LinkedIn : https://www.linkedin.com/mwlite/in/亮宏-藤井-999868122