10
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

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

概要

各種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の訓練は、リソース的には趣味でやるには少々厳しい。

  1. SSDLite(MibileNetV2論文)

  2. DropBlock

10
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?