現在のディープニューラルネットワークモデルの圧縮と加速方法の概要

現在のディープニューラルネットワークモデルの圧縮と加速方法の概要

[[208162]]

大規模なニューラル ネットワークには多数のレイヤーとノードがあるため、特にオンライン学習や増分学習などのリアルタイム アプリケーションでは、それらに必要なメモリと計算量を削減する方法を考慮することが非常に重要です。さらに、最近のスマート ウェアラブル デバイスの普及により、研究者はリソース (メモリ、CPU、エネルギー消費、帯域幅など) が限られたポータブル デバイスにディープラーニング アプリケーションを展開する機会も得られています。効率的なディープラーニング手法は、分散システム、組み込みデバイス、人工知能向け FPGA などに大きな影響を与える可能性があります。典型的な例としてはResNet-50[5]が挙げられます。これは50個の畳み込み層を持ち、95MB以上のストレージを必要とし、各画像を計算するために浮動小数点乗算時間を必要とします。いくつかの冗長な重みを削減すると、パラメータを約 75% 節約し、計算時間を 50% 節約できます。数メガバイトのリソースしかない携帯電話や FPGA などのデバイスの場合、これらの方法を使用してモデルを圧縮することが重要です。

この目標を達成するには、機械学習、最適化、コンピューター アーキテクチャ、データ圧縮、インデックス作成、ハードウェア設計など、複数の分野を組み合わせてソリューションを見つける必要があります。本稿では、ディープラーニングコミュニティで大きな注目を集め、近年大きな進歩を遂げているディープニューラルネットワークの圧縮と高速化に関する研究をレビューします。

これらの手法は、パラメータの削減と共有、低ランク因数分解、畳み込みフィルタの転送/圧縮、知識の蒸留の 4 つのカテゴリに分類されます。パラメータの削減と共有に基づく方法は、モデルパラメータの冗長部分の探索に重点を置き、冗長で重要でないパラメータを削除しようとします。低ランク因数分解ベースの方法では、行列/テンソル分解を使用して、深層 CNN で最も重要なパラメータを推定します。転送/コンパクト畳み込みフィルタ方式に基づいて、特別な構造を持つ畳み込みフィルタが設計され、ストレージと計算の複雑さが軽減されます。知識蒸留は蒸留モデルを学習します。つまり、よりコンパクトなニューラル ネットワークをトレーニングして、大規模なネットワークの出力結果を再現します。

表 1 では、これら 4 つの方法を簡単にまとめています。通常、パラメータのプルーニングと共有、低ランク分解、知識蒸留の手法は、完全接続層と畳み込み層を通じて DNN で使用でき、競争力のあるパフォーマンスを実現できます。さらに、転送/圧縮フィルターを使用する方法は、完全畳み込みニューラル ネットワークにのみ適用できます。低ランク分解および転送/圧縮フィルター方式はエンドツーエンドのプロセスを提供し、CPU/GPU 環境で直接実装することが容易です。パラメータのプルーニングと共有では、ベクトル量子化、バイナリエンコード、係数制約などのさまざまなアプローチを使用してこれらのタスクを実行しますが、最終目標を達成するには通常、複数の処理ステップが必要です。

表 1. さまざまなモデル圧縮方法。

トレーニング プロトコルに関しては、パラメータのプルーニング/共有と低ランク分解に基づくモデルを、事前トレーニング済みモデルから抽出することも、最初からトレーニングすることもでき、柔軟かつ効率的です。ただし、転送/圧縮フィルターと知識蒸留モデルは、最初からのトレーニングのみをサポートします。これらの方法は独立して設計されており、互いに補完し合います。たとえば、転送レイヤーとパラメータのプルーニング/共有を一緒に使用したり、モデルの量子化/バイナリ化を低ランク分解と一緒に使用して、さらなる高速化を実現したりできます。論文の著者らは、それぞれの方法の特徴、利点、欠点を含めて詳細に紹介しています。

パラメータの削減と共有

冗長性(情報冗長性またはパラメータ空間冗長性)を削減する方法に応じて、これらの手法はさらに、モデルの量子化と二値化、パラメータ共有、構造マトリックスの 3 つのカテゴリに分類できます。

A. 量子化と二値化

ネットワーク量子化は、各重みを表すために必要なビット数を減らすことで、元のネットワークを圧縮します。 Gongら[6]とWuら[7]はパラメータ値にK平均法スカラー量子化を使用した。 Vanhouckeら[8]は、8ビットパラメータ量子化により、精度の低下を最小限に抑えながら大幅な高速化を実現できることを示しました。 [9]の研究では、確率的丸めに基づくCNNトレーニングで16ビット固定小数点表現を使用し、分類精度をほとんど損なうことなくメモリ使用量と浮動小数点演算を大幅に削減しました。

[10]は、まず重要でない接続を削除し、疎に接続されたネットワークを再トレーニングする方法を提案した。次に、重み共有を使用して接続の重みを量子化し、量子化された重みとコードブックにハフマン符号化を使用して、圧縮率をさらに削減します。図 1 に示すように、この方法では、まず通常のネットワーク トレーニングを通じて接続を学習し、次に重みの小さい接続を削除し、最後にネットワークを再トレーニングして残りのスパース接続の最終的な重みを学習します。

欠点: GoogleNet などの大規模な CNN ネットワークを扱う場合、このようなバイナリ ネットワークの精度は大幅に低下します。もう 1 つの欠点は、既存の 2 値化方法が単純な行列近似に基づいており、2 値化による精度の低下への影響が無視されていることです。

図1. [10]で提案された3段階の圧縮方法:剪定、量子化、ハフマン符号化。プルーニングにより、エンコードする必要がある重みの数が削減され、量子化とハフマン符号化により、各重みのエンコードに使用されるビット数が削減されます。スパース表現のメタデータには圧縮率が含まれます。圧縮機構により精度が損なわれることはありません。

B. 剪定と共有

ネットワークの複雑さを軽減し、過剰適合の問題に対処するために、ネットワークの剪定と共有が使用されてきました。初期に適用された剪定方法の 1 つは、Biased Weight Decay と呼ばれ、Optimal Brain Damage 法と Optimal Brain Surgeon 法によって、損失関数のヘッセ行列に基づいて接続の数が減少します。この研究によると、この剪定方法は、重要度に基づく剪定方法 (weightedDecay 法など) よりも正確です。

欠点: 剪定と共有の方法には潜在的な問題がいくつかあります。まず、L1 または L2 正則化を使用する場合、プルーニング法では収束するためにより多くの反復が必要になります。さらに、すべてのプルーニング法ではレイヤーの感度を手動で設定する必要があり、これはハイパーパラメータの微調整を意味し、一部のアプリケーションでは面倒で面倒な場合があります。

C. 構造化マトリックスの設計

mxn 行列を記述するのに m×n より少ないパラメータを必要とする場合、その行列は構造化行列です。通常、このような構造はメモリ消費を削減するだけでなく、高速な行列ベクトル乗算と勾配計算を通じて推論とトレーニングを大幅に高速化します。

低ランク分解とスパース性

典型的な CNN 畳み込みカーネルは 4D テンソルです。これらのテンソルには多くの冗長性がある可能性があることに注意してください。テンソル分解に基づくアイデアは、冗長性を削減するための非常に有望な方法である可能性があります。全結合層は 2D 行列とみなすこともでき、低ランク分解も可能です。

すべての近似はレイヤーごとに行われます。レイヤーが低ランク フィルターによって近似された後、レイヤーのパラメーターは固定され、前のレイヤーは再構成エラー基準を使用して微調整されます。これは、図 2 に示すように、2D 畳み込み層を圧縮するための典型的な低ランク方式です。

図 2. CNN モデル圧縮の低ランク近似。左: オリジナルの畳み込み層。右: ランク K を使用した低ランク制約付きの畳み込み層。

表 2. ILSVRC-2012 データセットにおける低ランクモデルとそのベースラインモデルのパフォーマンス比較。

デメリット: 低ランク方式はモデルの圧縮と高速化に適しており、このアプローチはドロップアウト、正規化ユニット、マックスアウトなどのディープラーニングの最近の進歩を補完します。ただし、低ランク法の実装は、計算コストの高い分解操作を伴うため、簡単ではありません。もう 1 つの問題は、現在の方法では、低ランク近似をレイヤーごとに実行し、異なるレイヤーには異なる情報があるため、非常に重要なグローバル パラメーターの圧縮を実行できないことです。最後に、分解が収束するには、多数の再トレーニングが必要になります。

畳み込みフィルタのシフト/圧縮

CNNモデルを圧縮するために転移畳み込み層を使用する方法は、同変群理論を導入した[42]の研究に触発されたものである。 xを入力、Φ(·)をネットワークまたはレイヤー、T(·)を変換行列とします。そして、同変概念は次のように定義できます。

つまり、入力 x は変換行列 T (·) を使用して変換され、ネットワークまたはレイヤー Φ(·) に渡されます。結果は、最初に x をネットワークにマッピングし、次にマッピングを変換した後の表現結果と一致します。

理論によれば、ネットワークモデル全体を圧縮するために、レイヤーまたはフィルターΦ(·)に変換行列を適用するのが合理的です。

表 3. CIFAR-10 および CIFAR-100 データセットにおける転送畳み込みフィルタに基づくさまざまな手法のパフォーマンス比較。

欠点: 畳み込みフィルタに転送情報を適用する方法では、いくつかの問題を解決する必要があります。まず、これらの方法のパフォーマンスは、ワイド/フラット アーキテクチャ (VGGNet など) に匹敵しますが、ナロー/特殊なアーキテクチャ (GoogleNet、Residual Net など) には匹敵しません。第二に、転送仮定はアルゴリズムを導くには強すぎる場合があり、一部のデータセットでは結果が不安定になります。

知識の洗練

私たちの知る限りでは、Caruanaら[49]が知識移転(KT)を利用してモデルを圧縮することを初めて提案した。彼らは、強力な分類器によって注釈が付けられた疑似データを統合することで圧縮モデルをトレーニングし、元の大規模ネットワークの出力を再現しました。しかし、彼らの仕事は浅いネットワークに限られています。このアイデアは最近[50]の知識蒸留(KD)に拡張され、深くて広いネットワークを、より複雑なモデルの機能を模倣した浅いモデルに圧縮できるようになりました。 KDの基本的な考え方は、ソフトマックスを通じて教師の出力のカテゴリ分布を学習することで、大規模な教師モデルの知識をより小さなモデルに洗練させることです。

[51]の研究では、KD圧縮フレームワークが導入されました。これは、教師の出力を弱めることによって生徒にペナルティを課す生徒教師パラダイムに従うことで、深層ネットワークのトレーニング量を削減します。このフレームワークは、深層ネットワーク (教師) の集合を、同じ深さの生徒ネットワークに圧縮します。これを達成するために、生徒は教師の出力、つまり実際のクラスラベルを予測するように訓練されます。 KD 法はシンプルであるにもかかわらず、さまざまな画像分類タスクで有望な結果を示しています。

デメリット: KD ベースの方法では、より深いモデルをより浅くすることができ、計算コストを大幅に削減できます。しかし、KD 法は Softmax 損失関数を使用した分類タスクにしか使用できないなど、いくつかの欠点もあり、これが適用の妨げとなっています。もう 1 つの欠点は、モデルの仮定が厳しすぎる場合があり、そのパフォーマンスが他の方法ほど良くない場合があることです。

表 4. モデル圧縮 さまざまな代表的な研究で使用されるベースライン モデル。

議論と課題

ディープモデルの圧縮および加速技術はまだ初期段階にあり、次のような課題が残っています。

  • 現在の最先端の方法のほとんどは、適切に設計された CNN モデル上に構築されており、構成 (ネットワーク構造やハイパーパラメータなど) を変更する自由が制限されています。より複雑なタスクを処理するには、より信頼性の高いモデル圧縮方法が必要です。
  • プルーニングは、CNN を圧縮して高速化する効果的な方法です。現在のほとんどの剪定技術は、ニューロン間の接続を減らすように設計されています。一方、チャネルをプルーニングすると、特徴マップの幅を直接縮小し、モデルを圧縮できます。これはうまく機能しますが、チャネル数を減らすと次のレイヤーへの入力が大幅に変わる可能性があるため、課題も生じます。このような問題にどのように対処できるかを判断することも重要です。
  • 前述したように、構造化行列と転送畳み込みフィルタ方式では、モデルが人間の事前知識を持つようにする必要があり、これはモデルのパフォーマンスと安定性に大きな影響を与えます。課せられた事前知識の影響をどのように制御するかを研究することが重要です。
  • 知識蒸留 (KD) 手法には、特定のハードウェアや実装を必要とせずにモデルを直接高速化するなど、多くの利点があります。 KD ベースの方法を開発し、パフォーマンスを向上させる方法を検討することは依然として価値があります。
  • さまざまな小型プラットフォーム (モバイル デバイス、ロボット、自動運転車など) のハードウェアの制限は、依然としてディープ CNN のスケーラビリティを妨げる主な問題となっています。限られた利用可能なコンピューティング リソースを最大限に活用する方法と、これらのプラットフォームに固有の圧縮方法を設計する方法は、依然として課題となっています。

<<:  テクノロジー大手はAI人材の獲得に競い合い、新卒でも巨額の給与を得られる

>>:  音声認識の次のピークは「人間の領域」でしょうか?

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

...

おそらく2030年までに、量子コンピューティングのChatGPTの瞬間が到来するだろう

2030 年までに RSA 暗号を解読できるマシンが登場するでしょうが、まずは量子センシングやその他...

2021年に注目すべき人工知能と機械学習の5つのトレンド

人工知能と機械学習は市場で注目されている技術であり、その重要性は 2020 年にピークに達しました。...

顔認識訪問者システムの利点は何ですか?

[[373764]]顔認識訪問者システムの利点は何ですか?以前は、訪問者の管理に手書きの登録が使用...

AIサイバーセキュリティの今後の課題:最初で最後の防衛線となる方法

ニューヨーク・タイムズ紙によると、世界の AI サイバーセキュリティの求人市場では、2021 年まで...

PyTorch を使用した文字ベースの再帰型ニューラル ネットワークの実装

ここ数週間、私は PyTorch で char-rnn のバージョンを実装することに多くの時間を費や...

機械学習に基づくユーザーエンティティ行動分析技術のアカウント異常検知への応用

企業ビジネスの継続的な拡大と電子化の発展に伴い、企業独自のデータや負荷データが急増し始めています。し...

ロボットはサービス業界に参入できるのか?事実が教えてくれる

有名なアニメーション会社ディズニーは、近々人工知能とロボット工学の分野に参入すると発表しました。ディ...

ChatGPT は最近、Microsoft によって内部的に無効化されました。 GPT の新しいバグ: たった 2 つのプロンプトでデータが盗まれる可能性があります

知らせ! GPT を作成するときにアップロードしたデータは、誰でも簡単にダウンロードできます...た...

マシンビジョンを超えて、ロボット認識完成計画

人工知能の目標の 1 つは、コンピューターが人間の視覚、聴覚、触覚などの知覚能力をシミュレートし、画...

静的な知識を動的にする: ナレッジグラフからファクトグラフへ

[[392524]]ソーシャル ネットワークには、有名な「6 次の隔たり理論」があります。 「世界中...

コレクションにおすすめ!素晴らしい AWS 機械学習ツールキットの概要

[[330619]]テクノロジーとエコロジーの継続的な進化、およびアプリケーション シナリオの継続的...

寒波警報(黄色)発令中、ドローンの使用にはご注意ください!

11月3日、中央気象台は今年初の黄色寒波警報を発令し、最強の寒波が来ています!警報によると、11月...

テキスト生成画像は非常に人気があり、これらの技術の進化を理解する必要があります

OpenAIは最近、AIコミュニティに「地震」を引き起こしたDALL・E 2システムをリリースしま...