PP-LCNetの原理解析

論文:PP-LCNet: 軽量 CPU 畳み込みニューラル ネットワーク

正式実装:PaddleClas/pp_lcnet.py at release/2.5 · PaddlePaddle/PaddleClas · GitHub 

サードパーティ実装:メインの pytorch-image-models/mobilenetv3.py ·huggingface/pytorch-image-models ·GitHub

この記事の革新性

軽量ネットワークは数多くありますが、MKLDNN の制限により、MKLDNN を使用する Intel CPU ではこれらのネットワークの速度は理想的ではありません。この論文では、ほとんどの SOTA 軽量モデルよりも優れた CPU 間ネットワーク PP-LCNet を設計します。

メソッドの紹介

ARM アーキテクチャベースのデバイスで高速に推論する軽量モデルは数多くありますが、特に MKLDNN などのアクセラレーション戦略が有効な場合、CPU 間での速度を考慮しているネットワークはほとんどありません。ARM デバイス上では推論時間を増加させることなく精度を向上できる多くのメソッドが、Inter-CPU デバイスに移行すると結果が異なる可能性があります。この記事では、推論時間をほとんど増加させずにモデルの精度を向上させるいくつかの方法を要約します。MobileNet v1 の DepthSepConv を基本ブロックとして使用します。これにはショートカットが含まれていないため、モデルの推論速度が低下するだけでなく、精度も向上しない concat や elementwise-add などの操作がありません。小さなモデルの。さらに、このブロックは Intel アクセラレーション ライブラリによって徹底的に最適化されており、inverted-block や shufflenet-block などの他の軽量モジュールよりも推論速度が高速です。これらのブロックを基本的なネットワークに積み重ね、いくつかの既存のテクノロジーを組み合わせて PP-LCNet を実現します。

より良いアクティベーション機能

ネットワークの性能は活性化関数の性能によって決まることが多く、Sigmoid から ReLU に至るまでネットワークの性能は大幅に向上しました。最近、さらに多くのアクティベーション関数が提案されており、より優れたパフォーマンスを達成するために EfficientNet の Swish アクティベーション関数を使用した後、MobileNet v3 の作成者は、多数の指数演算を回避するためにそれを H-Swish にアップグレードしました。本論文でも基本ネットワークのReLUをH-Swishに置き換えたところ、性能が大幅に向上し、推論時間もほとんど増加しなかった。

SEモジュールを適切な位置に配置

SE モジュールは提案されて以来、多くのネットワークで使用されていますが、Inter-CPU では推論時間が増加するため、ネットワーク全体で使用することはできません。多くの実験を通じて、著者は、SE モジュールをネットワークの終端で使用すると、より良い役割を果たすことができることを発見したため、この論文では、ネットワークの終端のブロックでのみ SE モジュールを使用して、精度と速度のバランスが向上します。MobileNet v3 と同様、SE モジュールの 2 つの層の活性化関数はそれぞれ ReLU と H-Sigmoid です。

より大きな畳み込みカーネル

コンボリューション カーネルのサイズもネットワークのパフォーマンスに影響します。MixNet では、著者はさまざまなサイズの畳み込みカーネルがネットワーク パフォーマンスに与える影響を分析し、最終的にネットワークの同じ層でさまざまなサイズの畳み込みカーネルを使用しました。しかし、この種の混合はネットワークの推論速度を低下させるため、この論文では同じ層内で 1 つのサイズの畳み込みカーネルのみを使用し、大きな畳み込みカーネルは低遅延と高精度の前提の下でのみ使用されるようにします。著者は実験を通じて、SE モジュールと同じ位置を使用し、ネットワークの最後で 3x3 コンボリューションを 5x5 コンボリューションに置き換えるだけで、ネットワーク全体で 5x5 コンボリューションを使用した場合と同様のパフォーマンスを達成できることを発見しました。畳み込みはネットワークの末端で使用されました。

GAP 後のより大きな次元の 1x1 コンバージョン レイヤー

PP-LCNet では、GAP 後の出力次元は非常に小さいため、後で直接分類層を追加すると、特徴の組み合わせが失われます。ネットワークのフィッティング能力を高めるために、著者は GAP の後に 1280 次元の 1x1 畳み込みを追加しました。これにより、モデルの容量が増加し、推論時間は無視できるほど増加しました。

実験結果

ImageNet 上のさまざまなスケールでの PP-LCNet の精度と遅延を表 2 に示します。

他の軽量モデルとの比較を表3に示します。

 

ターゲット検出モデル PicoDet では、PP-LCNet と MobileNet v3 がバックボーンとして使用されており、モデルの mAP と遅延の比較を表 4 に示します。

 

セマンティック セグメンテーション モデル Deeplabv3+ では、PP-LCNet と MobileNet v3 がバックボーンとして使用され、モデルの mIoU と遅延の比較が表 5 に示されています。

 

 

おすすめ

転載: blog.csdn.net/ooooocj/article/details/131061279