画像認識モデルの軽量化手法まとめ
量子化・蒸留・プルーニングなど、エッジ推論に向けた軽量化テクニックを比較。どのケースでどれを選ぶかの判断軸を整理する。
スマートフォンやエッジデバイスで画像認識モデルを動かす場合、精度だけでなく推論時間・メモリ・消費電力を同時に満たす必要があります。近年の主要な軽量化手法を、実装難易度と期待できる効果で整理します。
量子化 (Quantization)
float32 の重み・活性を int8 や int4 で表現する手法。メモリが 1/4〜1/8 になり、整数演算が速いハードでは実行も高速化します。
- PTQ (Post-Training Quantization): 学習済みモデルにキャリブレーションデータだけ通して量子化。手軽
- QAT (Quantization-Aware Training): 学習中に量子化誤差をシミュレート。精度を最大限に保てる
知識蒸留 (Knowledge Distillation)
大規模な teacher モデルの softmax 出力 (ソフトラベル) を小さな student モデルに学習させる手法。ハードラベルだけよりも豊富な情報が渡るため、小モデルでも精度が伸びやすくなります。
プルーニング (Pruning)
- 非構造的プルーニング: 重みを個別にゼロにする。理論上圧縮率は高いがハードで加速しづらい
- 構造的プルーニング: チャネル単位 / ブロック単位で削除。速度効果がはっきり出る
削除対象の重要度評価には L1 ノルム、Taylor 展開、勾配ベースなどが使われます。
アーキテクチャの工夫
そもそも軽量なアーキテクチャを選ぶのも重要です。MobileNet 系、EfficientNet、ShuffleNet は depthwise separable convolution など計算量削減の工夫を持っています。近年は NAS (Neural Architecture Search) でターゲットデバイスに最適化された構造を探すアプローチも一般化しました。
どれを選ぶか
| 条件 | おすすめ |
|---|---|
| 開発期間が短い | PTQ + MobileNet 置換 |
| 精度を最大限保ちたい | QAT + 知識蒸留 |
| モデルサイズ重視 | プルーニング + 量子化の併用 |
最終的には必ず実機での計測が必要です。FLOPs や MACs はあくまで目安で、メモリ帯域・ディスパッチコスト・OS の影響で実測は大きくブレます。