注意:この文書は荒いメモなので、細かい内容に関してはご自身で元論文に当たるなどしてください。
概要
各種ConvNetの複数のスケールの特徴量マップを利用するFeature Pyramid Network(FPN)は、物体検出手法でよく利用されている。しかし、複数のスケールの特徴量マップを混合してFeaturePyramidを構成する方法として、通常のFPNが本当に最良の方法なのかは疑問が残る。
本論文では、Neural Architecture Search(NAS)の枠組みよって、最適なFeaturePyramidのアーキテクチャを探索している。
手法
複数のスケールの特徴量マップに対し、どのような処理を加えてFeaturePyramidとするのかを、NASによって探索する。図中の「×N」は、同じモジュールをNステップ繰り返すということではなく、相異なるN個の処理(論文中では、merging cellと呼称される)を行うという意味である。通常のFPNと同様、各スケールでそれぞれの分類器とBox回帰モジュールに接続されている。
NASによるFeaturePyramidの設計
NASでは、RNNControllerを強化学習(Proximal Policy Optimization)によって訓練することで、最適なFeaturePyramidの探索を行う。
RNNControllerは、以下の4つの要素を予測する。
- 入力となるレイヤー1
- 入力となるレイヤー2
- 出力レイヤーの解像度(スケール)
- レイヤー1とレイヤー2に対するBinary操作の種類
入力となりうるレイヤーの選択肢は、バックボーンのConvNetによって得られた特徴量マップだけでなく、前のmerging cellで出力されたレイヤーも含んでいる(下図のappendの線が、feature layersに向かっており、選択肢が追加されていることに注目)。
Binary操作は、SumとGlobalPoolingの2種類のうちから選択する。
出力レイヤー(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の設計が得られている。
縦の5つの点はスケールの種類に対応し、横の7つの点は、merging cellの個数Nに対応する。
緑の丸は入力となる特徴量マップで、赤の丸が出力となる特徴量マップである。
NASによって、通常のFPN(a)とは異なるアーキテクチャのFeaturePyramidが得られている。スキップコネクションもある。
図中の精度は、ProxyTaskにおけるAPであることに注意。このように得られたFeaturePyramidで訓練した結果が、上記の表である。
議論
NAS-FPNの利点の一つとして、DeeplySupervise可能なアーキテクチャとなっていることが挙げられる。
DeeplySupervise可能とは、FeaturePyramidの過程で生じる全ての特徴量マップが、検出器に接続でき、訓練できるということを表す。DeeplySuperviseの利点としては、ネットワークの浅い位置に教師信号を与えることができるため、正則化の効果があることがまず挙げられる。また、推論時には、多少の精度を犠牲にして、浅い段階での予測ができるためと、簡単に高速化することができる。
感想
FPNは非常に美しいアーキテクチャだと思うが、美しいことが最善だとは限らない。
RNNControllerの訓練は、リソース的には趣味でやるには少々厳しい。