- Deep Compressionは枝刈り、重みの共有を伴う量子化、ハフマン符号化を順に適用する。
- ImageNet用AlexNetは240MBから6.9MB、VGG-16は552MBから11.3MBになった。
- 論文は層ごとの3〜4倍の速度改善を報告するが、モデル全体の応答時間が同倍率とは限らない。
何を確かめた研究か
Deep Compressionの原論文は、大きなニューラルネットの重みを、精度を失わずに記憶装置へ収められるかを調べた。まず重要度の低い接続を削り、残りを再学習する。次に複数の重みを少数の代表値で共有し、その代表値も学習で調整する。最後に出現頻度に応じたハフマン符号でさらに保存量を減らす。三段階の組み合わせが研究の対象だ。
どう検証したか
ImageNet分類用のAlexNetとVGG-16を圧縮前後で比べた。図1では各段階の圧縮率を分け、表ではTop-1/Top-5の精度変化も調べる。CPU、GPU、モバイルGPUで層ごとの速度とエネルギーを測る。疎な重み表現には接続位置のメタデータが必要だが、論文の保存量計算はそのメタデータも含める。
何が分かったか
要旨ではAlexNetが240MBから6.9MBへ35倍、VGG-16が552MBから11.3MBへ49倍の圧縮で、論文のImageNet精度を維持した。枝刈りだけでは接続数を9〜13分の1にし、量子化で接続あたりの保存ビットを32から5へ減らす。測定した層では3〜4倍の速度、3〜7倍のエネルギー効率を報告する。三段階のどれか一つだけで49倍になったわけではない。
疎な行列は非ゼロの重みだけを保存する一方、各重みが元のどこにあったかを示す索引も要る。量子化では似た重みを共有値へまとめるため、値の種類は減るが誤差が生じ得る。著者らは各段階で再学習してその誤差を抑えた。保存量の改善には、学習済みモデルを加工する工程全体が含まれる。
限界と仕事との接点
圧縮形式を速く扱える実装やハードウェアが必要で、ファイルが小さいだけでは推論が速くならない。枝刈り後の再学習と量子化中心値の調整も計算を要する。導入時は自社のGPU・CPUで、起動時間、実使用メモリ、全モデルの遅延、精度を合わせて測る。後半はTRAIL編集部の提案である。