論文を読む"Distilling the knowledge in a neural network."⑦
背景
「蒸留(Distillation)」に関して、論文"Ravi Teja Mullapudi, Online Model Distillation for Efficient Video Inference."を読んだ。その中で引用されていたモデル蒸留のために広く使用されている技術の論文として、次の論文を読み進めている。
[18] G. Hinton, O. Vinyals, and J. Dean. Distilling the knowledge in a neural network. arXiv preprint arXiv:1503.02531, 2015.
前回まで
Abstract
- 背景
機械学習アルゴリズムは、複数の異なるモデルの推論を平均化することで性能が向上する(モデルのアンサンブル)。
- 問題
モデルのアンサンブルは計算コストが高すぎる。
- 従来手法
Caruanaらの"Model compression."は、アンサンブル内の知識を単一のモデルに圧縮することを示している。
- 提案手法
従来手法をさらに異なる圧縮技術を用いることで発展させる。また、フルモデルとスペシャリストモデルとで構成するアンサンブルも提案。
- 効果
MNISTでいくつかの驚くべき結果を達成。
商用音響モデルを大幅に改善。
スペシャリストモデルは迅速かつ並行して訓練することが可能。
1 Introduction
- トレーニングと展開、それぞれの最適化
- 機械学習における知識
- 蒸留という有望なアプローチを阻害するのは、「モデルの中の知識と学習されたパラメータを区別してしまう傾向」。
- 知識とは「学習済みマッピング」である。
- だからこそ、不正解に対する確率もごくわずかであれ定義されてしまう。
- モデルを一般化する正しい方法
- 目的関数はユーザーの真の目的を反映すべきであるが、実際は反映できていない。
- モデルを一般化する正しい方法に関する情報が必要であるが、普通は利用不可能。
- ただし、大きなモデルを学習済みで、蒸留によって小さなモデルを作る場合、大きなモデルの学習に用いた方法が小さなモデルにも適用できる。
- 転送の具体的な方法
- 「面倒なモデル」の出力情報の活用
- Caruanaらは確率ではなくロジットを用いた。
- 本論文の「蒸留」では、ソフトマックスの温度(temperature)を使って、より適切なターゲットのソフトセットを生成する。
2 Distillation
- 「温度付きソフトマックス関数」について
- 最も単純な形式の蒸留
- 蒸留モデルは転送セットで訓練される。
- 転送セットは、温度を高くしたソフトマックス関数を用いた面倒なモデルで生成されたもの。
- 蒸留モデルの学習時は同じ温度、学習後は1。
論文読解
Google翻訳した上で、自分の理解しやすいように修正しながら読んでいく。
2 Distillation-3
正しいラベルが転送セットの全部または一部について知られている場合、正しいラベルを生成するように蒸留モデルをトレーニングすることによって、この方法を大幅に改善することができます。
これを行う1つの方法は、ソフトターゲットを修正するために正しいラベルを使用することですが、より良い方法は単純に2つの異なる目的関数の加重平均を使用することだと我々は発見しました。
第1の目的関数はソフトターゲットのクロスエントロピーであり、このクロスエントロピーは、「面倒なモデル」からソフトターゲットを生成するために使用されたのと蒸留モデルのソフトマックスにおける同じ高い温度を使用して計算される。
2番目の目的関数は、正しいラベルのクロスエントロピーです。これは、蒸留モデルのソフトマックス内の正確に同じロジットを使用して計算されますが、温度は1です。
最良の結果は、一般に、2番目の目的関数にかなり低い重みを使用することによって得られることを我々は発見しました。
ソフトターゲットによって生成されるグラジエントの大きさはになるので、ハードターゲットとソフトターゲットの両方を使用する場合は、それらにを掛けることが重要です。
これは、メタパラメータで実験しながら蒸留に使用される温度が変更されても、ハードターゲットとソフトターゲットの相対的な寄与がほぼ変わらないことを保証します。
- 転送セットのラベルが既知の場合の方法改善
- より良い方法は、異なる2つの目的関数の加重平均の使用
- ソフトターゲットとハードターゲットの総体的な寄与が変わらないように調整
「面倒なモデル」の出力がソフトターゲットであり、これは正しいラベルとは異なる。
正しいラベルは、誤りのあるソフトターゲットを修正するために使う、というのが普通の考え方だが、ここではより良い方法として、正しいラベルをハードターゲットとし、そのクロスエントロピーを第2の目的関数とした。
まとめ
論文"Distilling the knowledge in a neural network."の2章を読み進める。次は2.1「Matching logits is a special case of distillation」。
今回の内容はアルゴリズムの詳細に踏み込んでいるはずだが、文章だけなのでおおよそのイメージしか湧かなかった。おそらくこの次に続くであろう式を見ながらこの説明文を振り返る必要があるだろう。