Posted at

【論文メモ】NAS-FPN: Learning Scalable Feature Pyramid Architecture for Object Detection

注意:この文書は荒いメモなので、細かい内容に関してはご自身で元論文に当たるなどしてください。


概要

各種ConvNetの複数のスケールの特徴量マップを利用するFeature Pyramid Network(FPN)は、物体検出手法でよく利用されている。しかし、複数のスケールの特徴量マップを混合してFeaturePyramidを構成する方法として、通常のFPNが本当に最良の方法なのかは疑問が残る。

本論文では、Neural Architecture Search(NAS)の枠組みよって、最適なFeaturePyramidのアーキテクチャを探索している。

image.png


手法

複数のスケールの特徴量マップに対し、どのような処理を加えてFeaturePyramidとするのかを、NASによって探索する。図中の「×N」は、同じモジュールをNステップ繰り返すということではなく、相異なるN個の処理(論文中では、merging cellと呼称される)を行うという意味である。通常のFPNと同様、各スケールでそれぞれの分類器とBox回帰モジュールに接続されている。

NAS-FPNが最適化する部分


NASによるFeaturePyramidの設計

NASでは、RNNControllerを強化学習(Proximal Policy Optimization)によって訓練することで、最適なFeaturePyramidの探索を行う。

RNNControllerは、以下の4つの要素を予測する。


  1. 入力となるレイヤー1

  2. 入力となるレイヤー2

  3. 出力レイヤーの解像度(スケール)

  4. レイヤー1とレイヤー2に対するBinary操作の種類

入力となりうるレイヤーの選択肢は、バックボーンのConvNetによって得られた特徴量マップだけでなく、前のmerging cellで出力されたレイヤーも含んでいる(下図のappendの線が、feature layersに向かっており、選択肢が追加されていることに注目)。

RNNの出力と処理の流れの対応

Binary操作は、SumとGlobalPoolingの2種類のうちから選択する。

BinaryOperation

出力レイヤー(3の操作)の後には、3x3のConv層とBatchNormalizationが続く。


Proxy Task

RNN Controllerを訓練する際、物体検出器を学習・評価しながら行うことになるので、時間が非常にかかる。そのため、個々の学習・評価を簡略化するために、ProxyTaskを導入する。

ProxyTaskは、本質的な探索対象(merging cellの組み合わせによるFeaturePyramidの構造)以外の部分を簡略化する。バックボーンとなるConvNetはResNet-10とし、画像のサイズは512x512とする。また、訓練時のエポック数も10エポックまでで止めている。

RNNControllerの報酬は、ProxyTaskのAP(Average Precision)として与えられる。


NAS-FPNLite

モバイルなどでの推論のためのNAS-FPNLiteも考案し、実験している。

通常のNAS-FPNが$P_3,P_4,P_5,P_6,P_7$という5つのスケールでFeaturePyramidを出力するのに対して、Liteの方では、$P_3,P_4,P_5,P_6$の4つのスケールで出力する。NAS-FPNのConv層を、SSDLite1に倣って、depth-wise separable convolutionで置き換えている。バックボーンはMobileNetV2である。


実験

データセットは、MS Coco2017のtrainとvalのデータを用いている。

NAS-FPNのバックボーンは、MobileNet、ResNet-50を用いている(NAS-FPNLiteは上記のとおりMobiliNetV2)。

精度一覧

表の中の「7 @ 384」というような表記は、merging cellの個数Nの数が7で、Conv層のフィルター数が384であることを示している。

また、DropBlock2を用いたケースも実験している。こちらはエポック数が3倍必要だが、全体的に精度の向上が得られている。


NASによる設計結果

NASによって、以下のようなFeaturePyramidの設計が得られている。

NAS-FPN

縦の5つの点はスケールの種類に対応し、横の7つの点は、merging cellの個数Nに対応する。

緑の丸は入力となる特徴量マップで、赤の丸が出力となる特徴量マップである。

NASによって、通常のFPN(a)とは異なるアーキテクチャのFeaturePyramidが得られている。スキップコネクションもある。

図中の精度は、ProxyTaskにおけるAPであることに注意。このように得られたFeaturePyramidで訓練した結果が、上記の表である。


議論

NAS-FPNの利点の一つとして、DeeplySupervise可能なアーキテクチャとなっていることが挙げられる。

DeeplySupervise可能とは、FeaturePyramidの過程で生じる全ての特徴量マップが、検出器に接続でき、訓練できるということを表す。DeeplySuperviseの利点としては、ネットワークの浅い位置に教師信号を与えることができるため、正則化の効果があることがまず挙げられる。また、推論時には、多少の精度を犠牲にして、浅い段階での予測ができるためと、簡単に高速化することができる。


感想

FPNは非常に美しいアーキテクチャだと思うが、美しいことが最善だとは限らない。

RNNControllerの訓練は、リソース的には趣味でやるには少々厳しい。