AI資格ドリル
資格を選ぶ

用語比較

蒸留とプルーニングの違い|小さなモデルに教えるか、接続を削るか(G検定・軽量化)

蒸留とプルーニングは、どちらもモデルを小さくして配備しやすくする手法で、違いは小さくする方法です。蒸留は、大きなモデルの出力を教材にして、別の小さなモデルを学習させます。プルーニングは、同じネットワークから重要な接続だけを残して、接続の数を減らします。

新しい小さなモデルに教えるのが蒸留、今あるネットワークを削るのがプルーニングと覚えると、G検定の軽量化の選択肢を整理できます。

この記事の根拠と出典

各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。

蒸留とプルーニングの要点

蒸留

大きなモデルが出すクラス確率(soft targets)を、小さなモデルの学習に使う。温度Tを上げて柔らかい確率分布を作り、学習後は温度1で使う(Hintonらの論文)。

プルーニング

重要な接続だけを学習で残し、接続の数を減らす。Deep Compression論文では、接続が9倍から13倍に減った。

違いを表で確認

比較軸蒸留プルーニング
小さくなる仕組み蒸留:大きなモデルの出力を教師にして、別の小さなモデルを学習するプルーニング:同じネットワークの中で、重要な接続だけを残す
使うもの蒸留:大きなモデルが出すクラス確率(soft targets)プルーニング:学習で決める「どの接続が重要か」
できあがるモデル蒸留:元より小さい、別のモデルプルーニング:元と同じネットワークから、接続の数が減ったもの
再学習蒸留:小さなモデルの学習そのものが、蒸留の工程プルーニング:Deep Compressionでは、残った接続を微調整する再学習を行う
論文の数字蒸留:圧縮の倍率は論文の要旨に出ていない(本記事では書かない)プルーニング:Deep Compressionで接続が9倍から13倍に減った
試験での手掛かり蒸留:「教師モデル」「生徒モデル」「大きなモデルの出力を使う」プルーニング:「重要でない接続を取り除く」「枝刈り」

どこで迷っているかを切り分ける

01

「蒸留」の名前から、中身が想像できなかった人

大きなモデルの出力する確率を、小さなモデルの正解の手掛かりとして使います。正解ラベルだけでなく、確率の分布まで教える点が特徴です。数値例の1つ目で確認します。

02

プルーニングと量子化が混ざった人

プルーニングは接続の数を減らし、量子化は1つの接続を表すビット数を減らします。違いはプルーニングと量子化の記事で整理しています。

03

どれを選ぶか、場面で決めたい人

別の小さなモデルを学習し直せるなら蒸留、今あるネットワークの接続を減らしたいならプルーニングを疑います。数値例の3つ目で判断の手順を確認します。

具体例で使い分ける

例 1

温度で確率が柔らかくなる様子(架空の数値)

大きなモデルが、3クラスのうち1番目の出力を4、2番目を1、3番目を0とした(softmaxをかける前の値)とします。

  • 温度が1のsoftmaxでは、約0.936、0.047、0.017になります。1番目にほぼ偏った確率です。
  • 温度Tを4に上げると、値を4で割ってからsoftmaxをかけるので、約0.543、0.257、0.200になります。
  • 小さなモデルの学習では、この柔らかい確率を教材にします。2番目や3番目のクラスがどれくらい似ているかの情報も渡せます。

結論: 蒸留は、温度を上げて確率を柔らかくし、クラス同士の関係まで小さなモデルに教える方法です。学習後は温度1で使います。

例 2

プルーニングで接続が減る量を概算する(架空の数値)

接続が1,000万本あるネットワークをプルーニングします。倍率はDeep Compression論文の9倍から13倍を借ります。

  • 9倍減なら、1,000万÷9で約111万本が残ります。
  • 13倍減なら、1,000万÷13で約77万本が残ります。
  • 残った接続は、Deep Compressionでは微調整のために再学習します。

結論: 論文の範囲なら、接続はおよそ77万〜111万本に減る計算です。ただし論文の結果を別のモデルに当てはめた概算で、実際の減り方はモデルで変わります。

例 3

どちらを選ぶかの場面

大きな画像認識モデルをスマートフォンに載せたい場面です。

  • 手元に大きなモデルがあり、小さな別のモデルを学習し直せるなら、大きなモデルの出力を教材にする蒸留が選べます。
  • 今あるネットワークから、重要な接続だけを残して減らしたいなら、プルーニングです。
  • Deep Compression論文は、プルーニングのあとに量子化などを組み合わせて保存容量を35倍から49倍に減らしており、手法は組み合わせて使えます。

結論: 「別のモデルを学習」なら蒸留、「接続を削る」ならプルーニングです。どちらも、他の手法と組み合わせる場合があります。

問題文から答えを選ぶ手順

  1. 1

    小さくする対象を読む

    別の小さなモデルが出てくるなら蒸留、同じネットワークの接続が減るならプルーニングです。

  2. 2

    教材に使うものを探す

    大きなモデルの出力(確率)を使うと書いてあれば蒸留です。

  3. 3

    減らすものを確認する

    接続の数を減らすならプルーニング。ビット数を減らすなら量子化で、別の手法です。

  4. 4

    組み合わせの記述に注意する

    手法は排他ではありません。Deep Compressionのように、プルーニングと量子化を続けて使う例があります。

試験での見分け方

  • 1蒸留は、大きなモデルの出力(soft targets)を教材に、小さなモデルを学習する。
  • 2蒸留では、温度Tを上げて柔らかい確率を作り、学習後は温度1で使う。
  • 3プルーニングは、重要な接続だけを残し、接続の数を減らす。
  • 4接続の数を減らすのがプルーニング、ビット数を減らすのが量子化。
  • 5Deep Compressionでは、プルーニングで接続が9倍から13倍に減った。

誤答しやすい選択肢

蒸留を、モデルの重みを削る手法だと考える

修正: 蒸留は、別の小さなモデルを学習させる手法です。削るのはプルーニングです。

プルーニングを、新しいモデルを作る手法だと考える

修正: プルーニングは、今あるネットワークから重要でない接続を減らします。別のモデルを学習するわけではありません。

蒸留でも、論文が示した倍率で必ず小さくなると考える

修正: 本記事で挙げた9倍から13倍は、Deep Compression論文のプルーニングの結果です。蒸留で何倍になるかは、本記事では示しません。

確認問題

Q1大きなモデルが出すクラス確率を、小さなモデルの学習に使う手法は?

答え: 蒸留(知識蒸留)

大きなモデルの出力をsoft targetsとして教材にします。

Q2重要な接続だけを残し、接続の数を減らす手法は?

答え: プルーニング

Deep Compression論文では、接続が9倍から13倍に減りました。

Q3蒸留で、大きなモデルから柔らかい確率分布を作るとき、softmaxの何を上げる?

答え: 温度T

温度を上げると確率が柔らかくなります。学習後は温度1で使います。

Q41つの接続を表すビット数を減らす手法は?

答え: 量子化

接続の数を減らすプルーニングとは別の手法です。Deep Compressionでは32ビットから5ビットに減らしました。

到達チェック

  • 蒸留を、大きなモデルの出力を教材に小さなモデルを学習する手法として説明できる
  • プルーニングを、重要な接続だけを残す手法として説明できる
  • 蒸留の温度を上げると確率が柔らかくなると説明できる
  • プルーニングと量子化の違い(数とビット数)を言える

同じ資格で次に知りたいこと

よくある質問

Q蒸留とプルーニングは何が違う?

A

蒸留は、大きなモデルの出力を教材にして別の小さなモデルを学習させます。プルーニングは、同じネットワークから重要な接続だけを残します。

Q蒸留では、なぜ温度を上げる?

A

Hintonらの論文は、softmaxの温度Tを上げて大きなモデルから柔らかい確率分布を作り、小さなモデルの学習でも同じ高い温度を使い、学習後は温度1で使うと述べます。

QG検定に出る?

A

公式シラバスのキーワードには「蒸留」が挙がります。プルーニングは項目名として確かめていないため、蒸留との対比として、軽量化の整理に使ってください。

次に見る比較

執筆: AI資格ドリル編集部(運営者情報を見る)