Issue link: https://trendsintech-japan.mouser.com/i/1540382
モデルプルーニング モデルプルーニングとは、ニューラル ネットワークから不要なニューロン や層を除去して、計算やメモリのオー バーヘッドを削減することです。プル ーニングは、構造化プルーニングと非 構造化プルーニングに大別されます。 構造化されたプルーニングは、高 密度のマトリックスを維持しなが ら、ニューロン、チャネル、または レイヤー全体を削除するため、標 準的なハードウェアとの互換性が 高くなります。一般的な構造化アプ ローチとしては、チャネルのプルー ニング(畳み込み層で重要度の低い チャネルを削除)、レイヤーのプル ーニング(特に深いネットワークで 冗長なレイヤーを削除)、グループ ごとのプルーニング(特定のニュー ロンまたはフィルタのグループをタ ーゲットとする)などがあります。 非構造化プルーニングでは、重要 度の低い個々の重み(接続)を削 除します。例えば、重みが 0 に近 いものなどです(図 1)。この処 理により、疎な行列が生成されま す。この行列は、不規則な疎さに より汎用ハードウェアでは効率が 悪くなる可能性があるため、効率 的な計算には専用のライブラリや ハードウェアが必要となります。 図 1:非構造化プルーニングにより、ノード間の重みの総数が削除されます。この例では、元のネットワーク(左)には 36 の重みがあ り、プルーニング後のネットワークには 23 の重みがあります。重みの共有により、メモリに保存する固有の重みの数が減少します。プ ルーニング後のネットワークでは、各線の色は特定の重みを表しています。(出典:Green Shoe Garage。マウザーにより再作成。) 量子化 量子化は、高精度(32 ビットなど) の重みを低精度(8 ビット、あるい はバイナリ精度など)に変換し、ハ ードウェアアクセラレータを使用し てメモリを節約し、計算速度を向上 させます。その1つの手法が、再学 習を行わずに、事前に学習済みの浮 動小数点モデルを量子化する「事後 量子化」です。事後量子化の手法の 1つである「ダイナミックレンジ量子 化」では、重みを低精度に量子化し ますが、推論中は活性化は浮動小数 点数のまま残ります。別の変形とし て、重みと活性化の両方を整数に量子 化する、完全整数量子化があります。 もう 1 つの方法は、トレーニング プロセスに量子化を取り入れた量 子化対応トレーニング (QAT) で す。これは、トレーニング中に低 精度計算をシミュレートして、精 度への影響を最小限に抑えます。 過学習の軽減 過学習とは、トレーニングデータで は非常に優れたパフォーマンスを発 揮するが、未見のデータではパフ ォーマンスが著しく低下する ML モ デルを指します。過学習を軽減する 方法としては、既存のサンプルを変 換して生成したデータセットを拡張 し、汎化性能を向上させる「拡張」 があります(例:画像の回転)。組 み込みシステムによって取得され るセンサデータ(通常は時系列デー タ)の場合、ウィンドウスライシン グ、ジッタリング、タイムワーピン グなどの手法により、過学習を軽減 するのに役立つ連続データにバリエ ーションを導入することができます。 L1/L2 正則化などの他の手法は、大 | 32

