G検定(ジェネラリスト検定)
もでるあっしゅく
モデル圧縮
Model Compression
モデル圧縮とは、深層ニューラルネットワークの性能を大きく落とさずに、モデルを小さく、速く動くようにする技術の総称です。計算量とメモリの負担が大きいモデルを、メモリの少ない機器や応答の速さが求められる応用で動かすために使われます。G検定シラバスでは、モデルの解釈性と軽量化の項目に含まれ、プルーニング、量子化、蒸留などの具体的な手法をまとめる上位の概念にあたります。
詳しい説明
モデル圧縮が必要になる理由
深層ニューラルネットワーク(DNN)は、画像認識をはじめとする多くのタスクで大きな成果を上げてきました。その一方で、既存のモデルは計算量が多く、メモリも大量に使います。チェン(Cheng)らのサーベイ論文(2017年)は、この点がメモリ資源の少ない機器への搭載や、遅延の要件が厳しい応用での利用を妨げていると指摘しています。
そこで、モデルの性能を大きく下げることなく、ネットワークを圧縮し、高速化しようという考え方が生まれました。これがモデル圧縮です。同じ論文は圧縮と高速化を並べて扱っており、モデル圧縮の目的は、ファイルを小さくすることだけでなく、少ない計算資源で速く動かすことにもあります。
4つのアプローチ
チェンらは、モデル圧縮と高速化の手法を、その性質にもとづいて次の4つに分類しています。
1. パラメータのプルーニングと量子化
2. 低ランク分解
3. 転移フィルタやコンパクトな畳み込みフィルタ
4. 知識蒸留
パラメータのプルーニングと量子化
モデルのパラメータに含まれる冗長性を調べ、性能にあまり影響しない、重要でないパラメータを取り除こうとする手法です。畳み込み層にも全結合層にも使え、ゼロから訓練するモデルにも、事前学習済みのモデルにも適用できるとされています。
低ランク分解
行列やテンソルの分解を使い、DNN の中で情報を持つパラメータを推定する手法です。畳み込み層にも全結合層にも使えます。手順が標準化されていて実装しやすく、ゼロからの訓練にも事前学習済みのモデルにも対応できるとされています。
転移フィルタやコンパクトな畳み込みフィルタ
特殊な構造を持つ畳み込みフィルタを設計して、パラメータの空間を小さくし、記憶領域と計算を節約する手法です。対象は畳み込み層に限られ、ゼロからの訓練にだけ対応するとされています。
知識蒸留
大きなネットワークの出力を再現するように、よりコンパクトなネットワークを訓練する手法です。大きなモデルから蒸留した知識を使って、小さなモデルを学習させます。畳み込み層にも全結合層にも使えますが、ゼロからの訓練にだけ対応し、性能は応用やネットワークの構造に左右されやすいとされています。
何を減らすかで整理する
G検定でよく目にするプルーニング、量子化、蒸留の3つは、上の4分類の中で次のように位置づけられます。何を減らすかという軸で見ると、違いがつかみやすくなります。
- プルーニング: 1つ目の分類に入ります。重要でないパラメータを取り除き、パラメータの数を減らします。
- 量子化: 同じく1つ目の分類に入ります。パラメータを表すのに使うビット数を減らします。
- 蒸留: 4つ目の知識蒸留にあたります。個々のパラメータを削るのではなく、大きなモデルの代わりになる小さなモデルを新しく訓練し、モデルそのものを作り替えます。
プルーニングと量子化は、元のモデルのパラメータに手を加える点で共通しており、チェンらも1つの分類にまとめています。これに対して蒸留は、別の小さなモデルを用意して学習させる点で性格が異なります。
それぞれの手法の具体的な手順は、プルーニング、量子化、蒸留の各語のページで説明しています。このページでは、それらがモデル圧縮という大きな枠組みのどこに位置するかを押さえることを目的としています。
手法ごとの適用範囲の違い
4つのアプローチは、使える層と訓練の条件が異なります。
- 畳み込み層と全結合層の両方に使える: プルーニングと量子化、低ランク分解、知識蒸留
- 畳み込み層にしか使えない: 転移フィルタやコンパクトな畳み込みフィルタ
- 事前学習済みのモデルにも適用できる: プルーニングと量子化、低ランク分解
- ゼロからの訓練にだけ対応する: 転移フィルタやコンパクトな畳み込みフィルタ、知識蒸留
どの手法を選ぶかは、対象のモデルの構造や、すでに訓練済みのモデルがあるかどうかによって変わります。
試験で問われること
G検定
- モデル圧縮が求められる背景として、DNN の計算量とメモリの負担が、メモリの少ない機器や遅延要件の厳しい応用への搭載を妨げていることを説明できますか。
- チェンらのサーベイが示す4分類(パラメータのプルーニングと量子化、低ランク分解、転移フィルタやコンパクトな畳み込みフィルタ、知識蒸留)を挙げられるか確認しておきましょう。
- プルーニングはパラメータの数、量子化はパラメータを表すビット数、蒸留はモデルそのものを減らす、という何を減らすかの違いを説明できますか。
- モデル圧縮の目的は、性能を大きく落とさずにモデルを小さく速くすることであり、性能を犠牲にして小さくすることではない点を確認しておきましょう。
最終更新日: 2026/09/23