VoVNet の論文調査

リアルタイムの物体検出のためのエネルギーと GPU 計算効率の高いバックボーン ネットワーク

CNN モデルを実装する際には精度と速度を考慮する必要があり、一般的な ResNet シリーズと DenseNet シリーズは精度を重視し、MobileNet シリーズと ShuffleNet シリーズは効率を重視します。精度と効率の両方を備えたモデルはありますか? 今日検討した VoVNet はそのようなモデルです。一緒に学びに行きましょう。

1. モデル評価指標

VoVNet ネットワークを導入する前に、まずモデルの精度と速度の評価指標とその意味 (例としてターゲット検出) を理解し、後で複数のモデルのパフォーマンスを比較できるようにします。

精度指数

  • mAP
    mAP の正式名は、mean Average Precision で、ここでの Average Precision はさまざまなリコールの下で計算されます。具体的な導入方法についてはここでは詳しく説明しておりませんので、ご参照ください
    mAP が大きいほど、モデルの検出精度が高くなります。

速度インジケーター

  • FPS は
    Frame Per Second を意味し、1 秒あたりに処理される画像フレーム数を表します。FPS が大きいほど、モデルの推論速度が速くなります。
  • Computation Efficiency (GFLOPs/s)
    計算効率、つまり 1 秒間に何回の F 計算を行うかという指標で、GPU の実際の計算量を表します。一部のモデルは適切に設計されており、GPU のコンピューティング能力を最大限に活用できます (VoVNet により、GPU は 1 秒あたり 400G 回の計算が可能になります)。一方で、一部のモデルは設計が不十分で、GPU のコンピューティング能力を完全に活用できません (MobileNet により、GPU は1 秒あたり 37G 回を計算します)。GPU コンピューティングの利点は並列計算にあり、計算されるテンソルが大きい場合、GPU の計算能力が最大限に活用されます。大きな畳み込みをいくつかの小さな畳み込みに分割すると、効果は同じですが、GPU の計算は非効率になります。FLOP と比較して、1 秒あたりの FLOP、つまり、総 FLOP を総 GPU 推論時間で割った値に注意を払う必要があり、指標値が高いほど、GPU 使用率が高くなります。

メモリアクセスコスト(MAC)

メモリアクセスコスト CNNの場合、計算よりもメモリアクセスの方がエネルギー消費量が増加します ネットワーク内の特徴量が比較的大きい場合、同じモデルサイズでもメモリアクセスコストが増加するため、CNN層のMACを十分に考慮する必要があります。畳み込み層 MAC の計算方法は shuffleNetV2 論文に記載されています:
MAC = hw (ci + co) + k 2 cico MAC = hw(c_i + c_o) + k^2c_ic_o \\マック_ _=うわ( c _私は+cああ+k2c _私はcああ

这里的 k , h , w , c i , c o k, h, w, c_i,c_o k c私はcああk、h、w、c_i、c_o はそれぞれ、畳み込みカーネルのサイズ、特徴の高さとボックス、入力チャネルと出力チャネルの数です。畳み込み層の計算量B = k 2 hwcico B=k^2hwc_ic_oB=k2時間__私はcああB=k^2hwc_ic_o、BBが固定されている場合B Bの場合

MAC ≥ 2 hw B k 2 + B hw MAC \geq 2\sqrt{\frac{hwB}{k^2}} + \frac{B}{hw} \\マック_ _2k2ああ、 WB +うわー_B

平均不等式より、入出力チャネル数が同じ場合に MAC が最小値となり、このときの設計が最も効率的であることがわかります。

  • 3x3 畳み込みが使用できる場合は、1x1 畳み込みは使用しないでください。1x1 畳み込みの計算効率は低く、1x1 畳み込みは一般にチャネル数を変更するために使用されるため、アクセス コストが増加します。
  • 大きな特徴マップの方が計算効率が高いため、小さな特徴マップの代わりに大きな特徴マップを使用できます。

メモリメトリクス

  • FLOPs(G)
    浮動小数点演算とは、浮動小数点演算の数を指します。これは計算量として理解され、アルゴリズム/モデルの複雑さを測定するために使用できます。計算プロセスについてはリファレンスを参照してください
  • Param(M)
    モデルのパラメータ量(下図参照
    参考
  • メモリ フットプリント (MB)
    メモリ要件: コンピュータでモデルをトレーニングするには行列計算が必要であり、メモリを消費します。
  • エネルギー効率 (J/img)
    エネルギー効率は、画像を認識するために消費されるエネルギーを反映します。

2. DenseNet モデルの概要 (参考)

VoVNet ネットワークは基本的に DenseNet ネットワーク上で改良されており、DenseNet モデルの精度を上回り、モデル推論時間が短縮され、GPU が効率的に利用されます。したがって、VoVNet ネットワークを導入する前に、まず DenseNet ネットワーク構造を理解します。
より高い精度を追求するために、研究者は ResNet-18、50、101 層、さらには 1000 層までネットワークの深さを増やし続けることがよくあります。ネットワークを深くし続けると、そのような長いパスを介して入力に逆伝播すると勾配が消えることがありますが、ネットワークを深くしても勾配が消えないネットワークはありますか? DenseNet は、以前のすべての層の機能と後続の層の機能の間に密な接続を確立することで、この問題を解決するために機能を直接再利用する簡単な方法を提案しています。次の図は、ネットワーク構造の一部を示しています。
ここに画像の説明を挿入します
次の図は、DenseNet ネットワークの詳細な構造図です。 DenseNet
ここに画像の説明を挿入します
ネットワーク構造の観点から見ると、この密な接続により、各層のさまざまなスケールの特徴を抽出できます。精度が高いです。密な接続により、勾配逆伝播が容易になります。
ただし、FLOP とモデル パラメーターを制限すると、各層の出力チャネルが固定されるため、入力チャネルと出力チャネルが不一致になり、MAC が増加します。さらに、前の層でチャネルが継続的に蓄積されるため、固定チャネルを出力するには、1x1 畳み込みを使用してチャネル数を圧縮する必要があり、その結果、GPU 使用率が低くなります。 DenseNet モデルは大きくないため、推論は効率的ではありません。

ここに画像の説明を挿入します
上の図は、DenseNet のさまざまな畳み込み層間の関係を示しています。(s,l)は、s層目とl層目の畳み込み層の重みの正規化L1ノルムサイズを表し、XsとXlの関係を表す。図からわかるように、ほとんどのレイヤー間の関係はそれほど大きくありません。したがって、DenseNet の接続のほとんどは冗長です。接続の一部を削除できますか? 削除すると精度に影響が出ますか?

VoVNet

VoVNetは、前述のDenseNetに基づいて提案されたモデルであり、OSA(One-Shot Aggregation)モジュールが提案されている。
ここに画像の説明を挿入します
DenseNet とは異なり、OSA モジュールでは各層が最後の層でのみ集約され、中間層の集約部分が削除されていることがわかります。
ここに画像の説明を挿入します
これを除去すると、図の青い部分 (層が密接に接続されていない部分) が明らかに大幅に小さくなっていることがわかります。これは、OSA モジュールの各接続が比較的有用であることを示しています。

モデルの具体的な計算構造:
ここに画像の説明を挿入します各ステージの最後には、フィーチャの次元を削減するための 3x3、stride=2 の最大プーリング層が存在します。
各検出モデルのバックボーンとしての VoVNet の結果と他のバックボーンの具体的な比較については、論文を参照してください。

参考

  • https://zhuanlan.zhihu.com/p/393740052
  • https://arxiv.org/pdf/1904.09730v1.pdf
  • https://zhuanlan.zhihu.com/p/141178215

追記:この一連の記事はあくまで私の個人的な研究のためのものです

おすすめ

転載: blog.csdn.net/qq_44846512/article/details/128588327