蒸留

蒸留

蒸留 (knowledge distillation)は、大きなニューラルネットワーク (教師モデル)から小さなニューラルネットワーク (生徒モデル)を学習する手法です。これは、教師モデルが出力する確率分布や特徴量を生徒モデルに学習させることで、生徒モデルが教師モデルの精度を再現するように学習させます。

蒸留は、モデル圧縮として用いられ、生徒モデルが教師モデルの精度を再現することで、教師モデルのパラメータ数や計算負荷を大幅に削減することができます。

蒸留には、教師モデルが出力する確率分布を生徒モデルに学習させるソフトマックス蒸留と、教師モデルが出力する特徴量を生徒モデルに学習させるハードマックス蒸留があります。

蒸留は、学習時間や計算負荷を減らすだけでなく、生徒モデルが教師モデルの汎化能力を維持することが示されているため、実用的な手法としても利用されています。