ICCV2019 |香港科技大学、清華大学、Megviiは、メタラーニングに基づく自動ニューラルネットワークチャネルプルーニングネットワークを提案しています

MetaPruning:自動ニューラルネットワークチャネルプルーニングのためのメタ学習

著者:Zechun Liu、Haoyuan Mu、Xiangyu Zhang、Zichao Guo、Xin Yang、Tim Kwang-Ting Cheng、Jian Sun(香港科技大学、清華大学、科学技術に応じてオープン)

紙のアドレス: https //arxiv.org/pdf/1903.10258.pdf

オープンソースアドレス: https //github.com/liuzechun/MetaPruning

序文

この記事では、ICCV2019カンファレンスペーパー「MetaPruning:自動ニューラルネットワークチャネルプルーニングのメタ学習」について説明します。これは、ニューラルネットワーク圧縮の分野でのチャネルプルーニングにおいて革新的です。メタ学習法に基づいて、著者は最初にPruningNetネットワークをトレーニングして、特定のターゲットネットワークの調整された構造の重み係数を生成し、次に進化的プロセスを使用して、さまざまな制約を通じて優れたパフォーマンスの剪定ネットワークを検索しました。 PruningNetであり、検索プロセス中に微調整する必要はありません。現在の最新のプルーニングアルゴリズムと比較して、作成者が使用したアルゴリズムは、MobileNet V1 / V2およびResNetで非常に優れたパフォーマンスを発揮します。

関連作業

チャネルプルーニング

チャネルプルーニングは、効果的なニューラルネットワークの圧縮/高速化方法です。プルーニング方法は、業界で広く使用されています。プルーニング方法には、大規模なハイパーパラメータネットワークのトレーニング、重要度の低い重みまたはチャネルのプルーニング、プルーニングネットワークの微調整または再トレーニングの3つの段階があります。の。その中で、第2段階は、精度を維持するために、レイヤーごとの反復プルーニングと迅速な微調整または重みの再構築を実現するための鍵です[Jose MAlvarezおよびMathieuSalzmann。深いネットワーク内のニューロンの数を学習します。InAdvancesinNeural情報処理システム、ページ2270-2278、2016]。

重みの剪定では、Han et al。は、モデルサイズを圧縮するために単一の重みをトリミングします[Song Han、Huizi Mao、およびWilliam J Dally。深層圧縮:剪定による深層ニューラルネットワークの圧縮]。ただし、重みのプルーニングは、構造化されていないスパースフィルターにつながり、汎用ハードウェアではほとんど加速できません。近年、HuとLiらは、個々の重みではなくCNNでのチャネルトリミングに焦点を当てました。この方法では、重みフィルター全体が削除されます[Hengyuan Hu、Rui Peng、Yu-Wing Tai、Chi-Keung Tang。ネットワークトリミング:A効率的なディープアーキテクチャに向けたデータ駆動型ニューロン刈り込みアプローチ。arXivpreprintarXiv:1607.03250、2016]。

従来のチャネルプルーニング方法は、主にデータ駆動型のスパース性制約に依存しています[ZehaoHuangとNaiyanWang。ディープニューラルネットワーク用のデータ駆動型のスパース構造の選択。欧州コンピュータビジョン会議(ECCV)の議事録、304〜320ページ、2018年]または人工的に設計された戦略[YihuiHe、Xiangyu Zhang、およびJianSun。非常に深いニューラルネットワークを加速するためのチャネルプルーニング。IEEEInternationalConferenceonComputer Vision、pages 1389-1397、2017]。ほとんどの従来のチャネルプルーニングでは、各レイヤーの圧縮率を人為的に設定する必要があります。これは時間がかかり、次善のソリューションに陥りやすいものです。

AutoML(自動機械学習)

AutoMLメソッドは、フィードバックループ[Jiahui Yu、Linjie Yang、Ning Xu、Jianchao Yang、ThomasHuang。スリム化可能なニューラルネットワーク。arXivpreprintarXiv:1812.08928、2018]または強化学習[Yihui He、Ji Lin、Zhijian Liu、 Hanrui Wang、Li-Jia Li、SongHan。Amc:モバイルデバイスでのモデルの圧縮と高速化のためのAutoml。コンピュータービジョンに関する欧州会議(ECCV)の議事録、784〜800ページ、2018年]、チャネルを反復的に自動的にトリミングします。モード。AutoML方式は、従来のチャネルプルーニング方式と比較して、人的資源を節約し、チャネルプルーニングのハイパーパラメータに必要な手作業を削減し、ハードウェア遅延(推論遅延)などのインジケータを直接最適化できます。

メタ学習

メタ学習とは、さまざまな機械学習方法がさまざまな学習タスクをどのように実行するかを観察することによる学習を指します。重み予測とは、ニューラルネットワークの重みが、直接学習するのではなく、別のニューラルネットワークによって予測されることを意味します[David Ha、Andrew Dai、およびQuocVLe。Hypernetworks。arXivpreprintarXiv:1609.09106,2016]。メタ学習は、少数/ゼロショット学習[SachinRaviおよびHugoLarochelle。少数ショット学習のモデルとしての最適化。2016]および転移学習[Yu-XiongWangおよびMartialHebert。学習の学習:モデル回帰に使用できます。簡単な小さなサンプル学習のためのネットワーク。コンピュータビジョンに関するヨーロッパ会議、ページ616-634。Springer、2016]。

ニューラルアーキテクチャ検索

強化学習による神経構造検索[BarretZoph and Quoc VLe。強化学習による神経構造検索。arXivpreprintarXiv:1611.01578、2016]、遺伝的アルゴリズム[Lingxi Xie andAlanYuille。Geneticcnn。InProceedingsof the IEEE International Conference on Computer Vision、pages 1379-1388、2017。]または勾配に基づく[Bichen Wu、Xiaoliang Dai、Peizhao Zhang、Yanghan Wang、Fei Sun、YimingWu、Yuandong Tian、Peter Vajda、Yangqing Jia、KurtKeutzer。Fbnet:微分可能なニューラルアーキテクチャ検索によるハードウェア対応の効率的なconvnet設計。arXivpreprintarXiv:1812.03443、2018。]最適なネットワーク構造とハイパーパラメータを見つける方法。著者は、PruningNetをトレーニングして、重み予測を通じて継続的なチャネルプルーニングを実行します。

全体の構造

次の図に示すように、MetaPruningには2つの段階があります。(1)PruningNetのトレーニング:各反復で、ネットワークコーディングベクトル(つまり、各レイヤーのチャネル数)がランダムに生成され、それに応じてプルーニングネットワークが構築されます。PruningNetは、上記のネットワークコーディングベクトルを入力として受け取り、プルーニングネットワークの重みを生成します。(2)最適なプルーニングネットワークの検索:ネットワークコーディングベクトルを変更して多くのプルーニングネットワークを構築し、PruningNetによって予測された重みを使用して、検証セットの長所と短所を評価します。探す。

MetaPruningには次の利点があります。

•従来のプルーニング方法と比較して、MetaPruningはハイパーパラメーターを手動で調整する必要がなく、最適化インジケーターを直接指定できます。

•他のAutoMLメソッドと比較して、MetaPruningは、強化学習ハイパーパラメーターを手動で調整することなく、必要な構造を簡単に検索できます。

•メタ学習を使用して、ResNet構造と同様の「ショートカット」をトリミングします。

方法

チャネルプルーニングの問題の説明 

チャネルプルーニングの問題は次のように定式化されます。

この式では、Aは剪定前のネットワークです。剪定ネットワークのレイヤー1からレイヤーLまでのチャネル幅(c_1、c_2、····、c_l)を見つけて、トレーニング後の重みが最小同時に、Cは対応する制約(FLOPまたは遅延)を満たします。この目的のために、作成者はPruningNetメタネットワークを構築します。これにより、検証セットを通じて、考えられるすべてのプルーニングネットワーク構造をすばやく評価できます。次に、検索方法(作成者は進化的アルゴリズムを使用)を使用して、最適な剪定ネットワークを検索します。

PruningNetトレーニング

以前のプルーニング方法は、チャネルプルーニングの問題をサブ問題に分解します。つまり、重要でないチャネルをレイヤーごとにプルーニングするか、スパース正則化を追加します。プルーニングされたネットワーク構造全体を考慮して、チャネルプルーニングタスクを実行します。これは、プルーニングの最適なソリューションを見つけるのに役立ち、「ショートカット」チャネルのプルーニング問題を解決できます。また、調査によると、剪定後の重みは、剪定後のネットワーク構造と比較して重要ではありません[Zhuang Liu、Mingjie Sun、Tinghui Zhou、Gao Huang、TrevorDarrell。ネットワーク剪定の価値を再考します。arXivpreprintarXiv:1810.05270、2018] 。この観点から、著者は、重みフィルターを繰り返し決定することなく、最良の剪定ネットワークを直接予測できると考えています。PruningNetは、ネットワークコーディングベクトル(c_1、c_2、····、c_l)を入力として受け取り、次のようにプルーニングネットワークの重みを出力するメタネットワークです。

次の図に示すように、PruningNetブロックは、完全に接続された2つのレイヤーで構成されています。フォワードパスでは、PruningNetはネットワークコーディングベクトルを入力として受け取り、重み行列を生成します。同時に、プルーニングネットワークを構築し、各レイヤーの出力チャネル幅をネットワークエンコーディングベクトルの要素と等しくします。生成された重み行列をプルーニングして、プルーニングネットワークの入力チャネルと出力チャネルの数に一致させます。入力画像のバッチが与えられると、上記で生成された重みを使用して、剪定ネットワークの損失を計算できます。

バックワードパスプロセスでは、プルーニングネットワークの重みは更新されませんが、PruningNetの重みの勾配が計算されます。PruningNetの完全に接続された層の出力とPrunedNetの前の畳み込み層の出力の間の再形成と畳み込みも微分可能であるため、PruningNetの重みの勾配は連鎖律によって計算できます。

各反復で、作成者はネットワークコーディングベクトルをランダム化します。PruningNetは、ベクトルを入力として受け取ることによって重みを生成します。各反復でネットワークコーディングベクトルを調整した後、PruningNetは、さまざまなプルーニングされたネットワークに対して異なる重みを生成することを学習できます。

上の図(a)は、PrunedNetworkに接続されたPruningNetのネットワーク構造を示しています。PruningNetとPrunedNetworkは、ネットワークコーディングベクトルと画像の小さなバッチの入力を通じて共同トレーニングを実施します。(B)PruningNetブロックによって生成された重み行列を再形成およびトリミングします。

Web検索の剪定

PruningNetがトレーニングされた後、入力ネットワークをPruningNetにエンコードし、対応する重みを生成して検証セットで評価し、可能な各プルーニングネットワークの精度を取得できます。ネットワークコーディングベクトルの数が非常に多いため、制約の下でより高い精度でプルーニングされたネットワークを見つけるために、作成者はソフトまたはハードの制約を考慮して進化的検索を使用します。

各プルーニングされたネットワークは、「プルーニングされたネットワークの遺伝子」と呼ばれる、各レイヤーのチャネル数を含むベクトルにエンコードされます。厳しい制約の下で、最初に複数の遺伝子をランダムに選択し、評価を通じて対応する剪定ネットワークの精度を取得します。次に、上位k個の遺伝子を正確に選択して、突然変異と交差を伴う新しい遺伝子を生成します。突然変異は、遺伝子内の要素の比率をランダムに変更することによって実現され、クロスオーバーは、2つの親遺伝子内の遺伝子をランダムに再結合して子孫を生成することによって実現されます。上記のプロセスを複数回繰り返した後、制約条件を満たす遺伝子を取得でき、最高の精度を得ることができます。

実験

MobileNets、ResNetネットワーク処理

1.MobileNet V1

MobileNetV1にはショートカット構造はありません。この目的のために、作成者はMobileNet v1の畳み込み層の数に等しいPruningNetブロックを構築し、各PruningNetブロックは直列に接続された2つの層で構成されます。元の重み行列の左上部分を入力チャネルと出力チャネルに一致するようにトリミングすることにより、さまざまな反復で、さまざまなチャネル幅のエンコードベクトルが生成されます。

2.MobileNet V2

各ステージは、2つのステージ間でディメンションのボトルネックブロックを一致させることから始まります。ショートカット構造がある場合は、入力特徴マップと出力特徴マップを追加します。この構造をトリミングするために、2つのネットワークエンコーディングベクトルが生成されます。1つは、ショートカット内のチャネルでステージ全体の出力チャネルをエンコードします。各ブロックをエンコードするもう一方の中間チャネル。PruningNetでは、ネットワークコーディングベクトルが最初に各ブロックの入力、出力、および中間チャネル圧縮率にデコードされ、次にブロック内の対応する重み行列が生成されます。

3.ResNet

ResNetは構造がMobileNetv2に似ていますが、畳み込みタイプ、ダウンサンプリングブロック、および中間層の各ステージのブロック数が異なるため、処理プロセスは同じです。

FLOPSでの剪定

次の表は、MetaPruningの効果を示しています。MobileNet V1では、MetaPruningにより0.25xで精度が6.6%向上します。MobileNet V2では、4,300万フロップスに制限されている場合、MetaPruningにより精度が3.7%向上します。

ResNet-50では、MetaPruningは、統合ベンチマークやその他の従来のプルーニング方法よりも大幅に優れています。

また、著者はAutoML剪定方法と比較し、その結果を次の表に示します。およびAMC【YihuiHe、Ji Lin、Zhijian Liu、Hanrui Wang、Li-Jia Li、SongHan。Amc:モバイルデバイスでのモデルの圧縮と高速化のためのAutoml。コンピュータビジョンに関する欧州会議(ECCV)の議事録、ページ784-800、2018] MetaPruningと比較して、MobileNetV1とMobileNetV2はそれぞれ0.1%と0.4%の改善があり、FLOPはさらに低くなっています。さらに、MetaPruningは、強化学習のハイパーパラメーターを手動で調整する手間を省きます。

待ち時間の制約の下での剪定

まず、ターゲットデバイスで実行される入力チャネル幅と出力チャネル幅が異なる畳み込み層の遅延を推定し、ルックアップテーブルを作成します。次に、このルックアップテーブルからネットワークを構築するための遅延を計算します。次の表に示すように、MobileNetV1およびMobileNetV2では、MetaPruningプルーニングネットワークの精度が高く、同じ遅延が発生します。

剪定ネットワークの視覚化

著者は、次の図に示す現象を発見しました。(1)ダウンサンプリング方法がstride = 2ディープコンボリューションの場合、フィーチャマップの解像度の低下を補うためにより多くのチャネルが必要になり、MetaPruningは自動的に保存を学習します。ダウンサンプリング中に変化します。より多くのチャネル。(2)MetaPruningメソッドは、最終段階でより少ないショートカットチャネルをトリミングすることを学習します。たとえば、145Mネットワークの最終段階で予約されるチャネルの数は300Mネットワークの数と同様ですが、前の段階ではより多くのチャネルがトリミングされます。ステージ。

アブレーション実験

メタ学習の重み予測メカニズムは、さまざまな剪定構造の重みを効果的に非相関化できるため、PruningNetの精度が高くなります。

総括する

著者は、チャネルプルーニング用のMetaPruningを紹介します。これには、次の利点があります。1)統合プルーニングベンチマークおよび他のチャネルプルーニング方法(従来および最新のAutoMLを含む)と比較して、パフォーマンスが優れています。2)さまざまな制約に柔軟に最適化できます追加のハイパーパラメータを導入することなく、3)ResNetのような構造を効果的に処理できます。4)プロセス全体が非常に効率的です。

誰もが見ています:

AAAI2020がリストにリリースされ、レビュー担当者は必死に不満を漏らしました。厳選された8つの論文を事前にご覧ください!

ICCV2019 | Megviiは、軽量のターゲット検出ネットワークであるThunderNetを提案します

ICCV2019 | SinGAN:さまざまな画像処理操作に適用できる単一の画像からモデルを生成する方法を学びます

おすすめ

転載: blog.csdn.net/AMiner2006/article/details/103082560