ナレッジ・ディスティレーションがAIモデルを圧縮して推論を高速化し、精度を向上させ、エッジ・デバイスの展開を効率化する方法をご覧ください。
知識蒸留とは、機械学習(ML)における手法の一つで、より大きく複雑なモデル(「教師」)の振る舞いを再現するために、より小さくコンパクトなモデル(「生徒」)を学習させるものである。主な目的は、大きな教師モデルによって学習された「知識」を、より小さな生徒モデルに伝達することであり、生徒が同等の性能を達成しながら、サイズと計算コストの点で大幅に効率化できるようにすることである。これは、モバイル機器やエッジAIシステムのようなリソースに制約のある環境でモデルを展開する場合に特に有効です。
Knowledge Distillationのコアとなる考え方は,元の教師モデルを訓練するために使用された真実のラベル(ハードターゲット)だけでなく,教師モデル自体によって生成された出力でも生徒モデルを訓練することである.多くの場合、これらの教師出力は「ソフトターゲット」- 教師の最終層(例えば、ソフトマックス関数の後)によって生成されたクラス確率または分布です。これらのソフト・ターゲットは、異なるクラス間の関係について、ハード・ラベルだけよりも豊かな情報を含んでいます。例えば、教師モデルはトラックの画像を70%トラック、25%車、5%バスと予測し、生徒が学習できるニュアンス情報を提供するかもしれません。生徒モデルの学習目的は、通常、標準的な損失関数(生徒の予測とグランドトゥルースを比較する)と蒸留損失(生徒の予測/ソフトターゲットを教師のソフトターゲットと比較する)を組み合わせます。このプロセスは、Hinton, Vinyals, and Deanの論文で最初に一般化されたもので、生徒が教師の推論プロセスを模倣するように効果的にガイドします。
知識蒸留にはいくつかの重要な利点がある:
実際の応用例としては、以下のようなものがある:
知識蒸留は、他のモデル最適化技法と関連していますが、そのアプローチは異なります: