ネットワーク射影を使用したニューラル ネットワークの圧縮
著者 Antoni Woss、MathWorks
大規模化と複雑化が進むディープラーニング ネットワークをリソースに制約のあるデバイスに展開することは、多くの AI 実務者が直面する大きな課題となっています。この課題が生じるのは、最新のディープ ニューラル ネットワークが通常、ハイパフォーマンスのプロセッサおよび GPU で実行され、数百万個の学習可能なパラメーターを備えているためです。こうした強力なディープラーニング モデルをエッジデバイスに展開するには、多くの場合、高い精度とモデル表現力を維持しながら、モデルを圧縮してディスク上のサイズ、ランタイムメモリ、および推論時間を削減する必要があります。
枝刈りや量子化など、ディープラーニング ネットワークを圧縮する手法は数多くあり、複数の手法を併用できます。この記事では、新しい手法 "ネットワーク射影" を紹介します。この手法は目的の層でのニューラル励起の共分散を解析し、射影空間で演算するように層を変更することで、学習可能なパラメーターの数を減らします。層の演算は基本的に低いランクの射影空間で行われますが、層の表現力は高い状態で維持されます。これは、幅、つまりニューラル活性化の数が、元のネットワーク アーキテクチャと比較して、変更なく維持されるためです。この手法は、枝刈りや量子化の代わりに、あるいは枝刈りや量子化に加えて使用できます。
射影によるネットワーク圧縮
ディープ ニューラル ネットワークの学習では、指定された損失関数を最小化する、学習可能なパラメーターの対応する高次元空間内の点を判別することになります。この最適な値を判別する最も一般的な手法は、勾配降下法およびそのバリエーションを使用した最小化です。基礎となる、判別しようとする関数についての知識不足を克服するために、適切な関数の検出に必要な表現力が十分に得られるよう、多数の学習可能なパラメーターを使用するディープ ネットワーク アーキテクチャが提案されています。これらは最終的に、実際のタスクにとっては過剰にパラメーター化され、必然的にネットワーク内のニューロン間の高い相関につながってしまう可能性があります。
ネットワーク射影では、これらのニューラル相関を解析してから、重要なニューラル関係を保持して精度と表現力を維持しながら、ネットワーク内の学習可能なパラメーターの数を最終的に減らす射影演算を注意深く導入することで、圧縮の問題に対処します。
背景
説明のために、まずは単純なネットワーク
ここで、
"ニューロン" は
ニューラル共分散
ディープラーニング ネットワークの学習を行うと、学習可能なパラメーターが互いに相関している形で高次元空間を移動します。軌跡は、選択された最小化ルーチン、ネットワーク初期化、および学習データによって決定されます。そのため、結果として得られる学習済みネットワーク内のニューロンは高い相関を示すことがあります。ネットワークの学習に使用する真のデータの分布を表すデータでニューロンを刺激することで各層のニューロン間の共分散を測定してから、それらのニューロン励起について "ニューラル共分散行列" を計算します。
層
ここでは、
共分散行列は半正定値かつ対称的であり、固有値
共分散のこの解析が射影作用素
ここで、固有ベクトルは固有値の降順
ここで、
射影フレームワーク
層のニューロンに適用される射影演算では "射影層" を定義します。より正式には、射影演算を使用して、ある層から、以下で与えられる射影された層
ここでは、入力ニューロンと出力ニューロンが射影されます。このマッピングは、ネットワークの射影に拡張されます。"射影ネットワーク" は、次のように、射影層の合成です。
射影作用素を層ごとに適用すると、各層のニューロンを対応する固有ニューロンに変換し、低分散の固有ニューロンを削除してランクを低減し、元のベースとなるニューロンに変換してから、次の層に入力することになります (図 2)。
このフレームワークでは、層の入力および出力の射影作用素のランクに応じて数量を変更することで、さまざまな層を射影できます。さらに、下流のアーキテクチャを変更することなく、任意の層を射影された層に交換できます。そのため、この射影法は、フィードフォワード ネットワークだけでなく、ほぼすべてのネットワーク アーキテクチャに適用可能です。
圧縮
全結合、畳み込み、LSTM など、学習可能なパラメーターをもつ多くの層では、層の演算を変更して、射影演算を学習可能なパラメーターに吸収できます。これにより、最終的には射影層の学習可能なパラメーターの数が元の層と比較して減少するため、層が圧縮されます (図 3)。
図 1 の全結合層および図 3 の射影された全結合層では、簡単にするためにバイアス項がないものと仮定されており、各エッジは学習可能なパラメーター、つまり重み行列の要素を表しています。図 1 では、重み行列に 6 つの学習可能なパラメーターがあります。一方、射影層には、これが 5 つあります。これにより、層のサイズが削減され、1 つの大きな行列乗算が 2 つの小さな行列乗算になります。
学習データの分布によって射影演算の作成が推進され、射影演算によって重み行列の分解が推進されることに留意してください。これは、単に層内の重み行列の特異値分解を行うのとは異なります。ニューラル共分散行列は、SVD 係数の範囲に含まれる部分空間とは異なる部分空間を選択する可能性があるためです。
射影の正確な実装は、層自体によって異なります。さらに、各層のニューロンの数
微調整
事前学習済みのネットワークから開始し、それに相当する射影されたネットワークを上記のフレームワークの概要に従って直接計算できます。高いデータ共分散は維持されますが、精度が圧縮後に低下することがあるため、ネットワークを微調整する必要が生じることがあります。たとえば、ネットワーク内のニューロン間の高次非線形関係の結果として、線形変換や多くの層を一度に射影した場合の複合効果を考慮して再調整する必要があることがあります。射影されたモデルは、さらに再学習を行うことで、微調整用の優れた初期設定となります。通常、微調整用の再学習では、元の学習よりもはるかに少ないエポック数で精度が横ばいとなり、多くの場合、元のネットワークの精度を大幅に回復できます。
例、その他
射影を使用した圧縮の適用がうまくいった一例として、バッテリー充電状態 (BSOC) 推定用のバーチャルセンサーの構築が挙げられます。
さまざまな理由により、展開可能なセンサーを作成して SOC を直接測定することは物理的に不可能です。これは、バッテリーに限らず、あらゆる産業分野の多くのシステムにとって共通の課題です。思い浮かぶ選択肢として、拡張カルマンフィルター (EKF) を使用した SOC の推定があります。EKF は高精度ですが、バッテリーの非線形数学モデルが必要になります。しかし、常にこのモデルの利用や作成ができるわけではありません。カルマンフィルターは計算コストがかかることがあり、また、初期状態に誤りがあったり、モデルの初期状態が正しくない場合、生成される結果が不正確になることもあります。
これに代わる手段として、LSTM 層を備えた RNN ネットワークを使用してバーチャルセンサーを開発できます。そのようなモデルは、高品質のデータで学習した場合に高い結果の精度が得られることが明らかになっています。しかし、多くの場合、モデルのサイズが大きくなり、推論速度が遅くなってしまいます。射影を使用してネットワーク内の LSTM 層を圧縮することで、データセットで高い精度を維持しながら、全体的なネットワークサイズを削減し、推論速度を向上させることができます。BSOC 推定で使用される射影 LSTM ネットワークの標準的なアーキテクチャを、表 1 に示します。
名前 | タイプ | 活性化 | 学習可能なプロパティ | |
1 | sequenceinput 3 次元のシーケンス入力 |
シーケンス入力 | 3(C) x 1(B) x 1(T) | - |
2 | lstm_1 256 個の隠れユニットをもつ射影 LSTM 層 |
射影 LSTM | 256(C) x 1(B) x 1(T) | InputWeights 1024 x 3 RecurrentWeights 1024 x 11 Bias 1024 x 1 InputProjector 3 x 3 OutputProjector 256 x 11 |
3 | dropout_1 20% ドロップアウト |
ドロップアウト | 256(C) x 1(B) x 1(T) | - |
4 | lstm_2 128 個の隠れユニットをもつ射影 LSTM 層 |
射影 LSTM | 128(C) x 1(B) x 1(T) | InputWeights 512 x 11 RecurrentWeights 512 x 8 Bias 512 x 1 InputProjector 256 x 11 OutputProjector 128 x 8 |
5 | dropout_2 20% ドロップアウト |
ドロップアウト | 128(C) x 1(B) x 1(T) | - |
6 | fc 1 つの全結合層 |
全結合 | 1(C) x 1(B) x 1(T) | Weights 1 x 128 Bias 1 x 1 |
7 | layer シグモイド |
シグモイド | 1(C) x 1(B) x 1(T) | - |
8 | regressionoutput 応答 'Response' をもつ平均二乗誤差 |
回帰出力 | 1(C) x 1(B) x 1(T) | - |
表 1. BSOC 推定で使用される射影 LSTM ネットワーク アーキテクチャの解析。
図 4 では、LSTM 層をもつこの BSOC RNN ネットワークについて、モデルの精度 (RMSE の測定値)、モデルのサイズ (学習可能なパラメーターの数)、および推論速度 (MATLAB で MEX ファイルとして実行した場合) の、射影および微調整する前後の比較を示しています。
独自のネットワークを射影して圧縮するには、Deep Learning Toolbox Model Quantization Library とともに Deep Learning Toolbox™ をインストールして、MATLAB R2022b で利用可能な機能 compressNetworkUsingProjection
および neuronPCA
をお試しください。
公開年 2023