知識蒸留とは、大規模な教師モデルから小型で効率的な生徒モデルへ知識を伝達する機械学習の手法です。ソフトターゲットを使う基本プロセス、軽量化と性能維持の両立、モバイルやエッジデバイスでの応用例、混同されやすい転移学習との違いまで、順を追って分かりやすく解説します。
知識蒸留とは、大規模で複雑なモデル(教師モデル)から、より小型で効率的なモデル(生徒モデル)へ知識を伝達する機械学習の手法です。教師モデルは高い精度をもつものの、計算コストやメモリ使用量が大きいため、リソースが限られた環境での利用には適さない場合があります。
そこで、知識蒸留を用いて、教師モデルの知識を保持しつつ、軽量な生徒モデルを訓練することで、実用的なAIシステムを構築します。精度を落とさずにモデルを小さくする、という発想が中心にあります。
「蒸留」という言葉は、大きなモデルが持つ知識の本質を、小さなモデルに凝縮して受け渡す様子を表しています。
知識蒸留の基本的なプロセスは、まず教師モデルを訓練し、その出力(ソフトターゲット)を生徒モデルの訓練データとして利用することです。ソフトターゲットは、教師モデルが予測した各クラスの確率分布であり、正解ラベル(ハードターゲット)よりも多くの情報を含んでいます。
| 種類 | 内容 | 例 |
|---|---|---|
| ハードターゲット | 正解ラベル。正しいクラスだけを示す | 「これは犬である」 |
| ソフトターゲット | 教師モデルが予測した各クラスの確率分布 | 犬80%、猫15%、その他5% |
たとえば、ある画像が犬である確率が80%、猫である確率が15%、その他の動物である確率が5%といった情報です。生徒モデルは、このソフトターゲットを模倣するように訓練されることで、教師モデルがもつ知識を効率的に学習できます。
生徒モデルは、教師モデルよりもパラメーター数が少ないため、計算コストやメモリ使用量を削減できます。また、ソフトターゲットを用いることで、ハードターゲットだけでは得られない教師モデルの知識を学習できるため、生徒モデルの精度向上が期待できます。
とくに、教師モデルが持つクラス間の類似性や、誤った予測に対する確信度などの情報を生徒モデルが学習することで、汎化性能が向上します。「犬に似ているが猫でもある」といったニュアンスを引き継げる点が、ソフトターゲットの利点です。
知識蒸留は、さまざまな分野で応用されています。自然言語処理では、大規模な言語モデル(BERTなど)から軽量なモデルへ知識を蒸留することで、モバイルデバイスやエッジデバイスでの自然言語処理タスクを実現できます。
また、画像認識では、高精度な画像認識モデルから軽量なモデルへ知識を蒸留することで、監視カメラや自動運転システムなど、リアルタイム処理が求められる環境での利用が可能になります。エッジAIのように、端末側で処理したい場面と相性がよい手法です。
知識蒸留は、学習済みの知識を別のモデルへ活かすという点で転移学習と近い発想を持ちます。
ただし、転移学習がタスクをまたいで知識を移すのに対し、知識蒸留はあるモデルの振る舞いを別のモデルに引き継がせる点が異なります。モデルの大きさを表すパラメータ数の削減が目的の一つであることも押さえておきましょう。
実際は:軽量化が主目的ですが、ソフトターゲットによって精度や汎化性能が向上することもあり、性能面の利点もあります。
実際は:設計によっては、生徒モデルが教師モデルに匹敵する、あるいは上回る精度を示すこともあります。
実際は:どちらも知識の受け渡しを扱いますが、目的と方法が異なります。蒸留は振る舞いの引き継ぎ、転移学習はタスクをまたぐ知識の活用が焦点です。
A. 性能を保ちながらモデルを小さくしたい場面、すなわちモバイルやエッジでの実行が求められる場面で広く使われます。
A. 必要です。蒸留の出発点となる高い精度のモデルが前提となり、その出力を生徒モデルの学習に用います。
A. 小さくしすぎると教師モデルの知識を十分に引き継げず、精度が落ちることがあります。大きさと精度のバランスが重要です。
用語の一覧はAI用語辞典トップからたどれます。実際のツール比較はAIツール一覧をご覧ください。
本記事にはアフィリエイトリンクを含む場合があります。経由での申し込み時に当サイトが報酬を受け取ることがありますが、掲載内容・評価は報酬の有無に左右されません。記載情報は公開時点のものであり、最新情報は各公式サイトをご確認ください。
編集部の評価方法論を見る →