数学がわからない

日々の勉強をアウトプットする。

論文を読む"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-1,2,3,4

  • レーニングと展開、それぞれの最適化
    • 昆虫はそれぞれ全く異なる要件に最適化した幼虫形態と成虫形態を持つ
    • 同様に機械学習も、トレーニング段階と展開段階で要件は大きく異なるのだから、それぞれで最適化した形態を持てば良い。
    • レーニング用の面倒なモデルから展開用の単純なモデルへの移行戦略はRich Caruanaらの”Model compression.”で提案されており、これを「蒸留」と呼ぶ。
  • 機械学習における知識
    • 蒸留という有望なアプローチを阻害するのは、「モデルの中の知識と学習されたパラメータを区別してしまう傾向」。
    • 知識とは「学習済みマッピング」である。
    • だからこそ、不正解に対する確率もごくわずかであれ定義されてしまう。
  • モデルを一般化する正しい方法
    • 目的関数はユーザーの真の目的を反映すべきであるが、実際は反映できていない。
    • モデルを一般化する正しい方法に関する情報が必要であるが、普通は利用不可能。
    • ただし、大きなモデルを学習済みで、蒸留によって小さなモデルを作る場合、大きなモデルの学習に用いた方法が小さなモデルにも適用できる。
  • 転送の具体的な方法
    • 「面倒なモデル」の生成するクラス確率を、「小さなモデル」を訓練するための「ソフトターゲット」として使用
    • 同じトレーニングセット、または別の「転送」セットを使用
    • ソフトターゲットのエントロピーが高い場合、「小さいモデル」は効率よくトレーニングが可能

論文読解

Google翻訳した上で、自分の理解しやすいように修正しながら読んでいく。

1 Introduction-5,6

「面倒なモデル」がほとんど常に非常に高い信頼性で正しい答えを生成するMNISTのようなタスクでは、学習された機能についての情報の多くは、ソフトターゲット内の非常に小さい確率の比率の中にあります。

たとえば、”2”のあるバージョンでは、"3"である確率が10^{-6}、"7"である確率が10^{-9}と与えられるかもしれませんが、一方、別のバージョンでは、その逆になる可能性があります。

これは、データ上の豊富な類似性構造を定義する貴重な情報です(つまり、どちらの2が3のように見え、どちらが7のように見えるかを表します)が、転送段階でのクロスエントロピーコスト関数にはほとんど影響がありません。なぜなら確率がほとんどゼロだからです。

Caruanaと彼の共同研究者たちは、この問題を次のように回避しました。「小さなモデル」を学習するためのターゲットとして、ソフトマックスによって生成された確率ではなく、ロジット(最終的なソフトマックスへの入力)を用い、「面倒なモデル」によって生成されたロジットと「小さいモデル」によって生成されたロジットの間の二乗誤差を最小化することによって。

(本論文の蒸留による解決策)
私たちの、「蒸留」と呼ばれる、より一般的な解決策は、「面倒なモデル」が適切にターゲットのソフトセット(soft set of targets)を生成するまで、最終的なソフトマックスの温度(temperature)を上げることです。

我々は、次に、これらのソフトターゲット(soft targets)を一致させるための「小さなモデル」をトレーニングするとき、同じ高い温度(temperature )を使用します。

我々は、「面倒なモデル」のロジットを一致させることが、実際は蒸留の特別なケースであること、を後で示します。

  • 情報の多くはソフトターゲット内の非常に小さい確率の中にある。
  • 情報を活用するために、Caruanaらは確率ではなくロジットを用いた。
  • 本論文の「蒸留」では、ソフトマックスの温度(temperature)を使って、より適切なターゲットのソフトセットを生成する。

面倒なモデルが出力する情報を活用するための方法がこの論文の工夫しているところ?
ここで出てきたロジットやターゲットのソフトセット(soft set of targets)、ソフトマックスの温度(temperature)をといった用語は読み進めないと理解できないだろうから、さっさと次に進むことにする。

「小さなモデル」の学習に使用される転送セットは、ラベルなしデータ[1]だけで構成することも、オリジナルトレーニングセットを使用することもできます。

特に、「面倒なモデル」によって提供されるソフトターゲットへのマッチングと同様に、「小さなモデル」が真のターゲットを予測することを奨励する目的関数に、小さな項を追加する場合、オリジナルトレーニングセットを使用することがうまくいくことがわかりました。

通常、「小さなモデル」はソフトターゲットと正確に一致できず、正しい答えの方向を誤って入力すると役に立ちます。

[1] C. Buciluˇa, R. Caruana, and A. Niculescu-Mizil. Model compression. In Proceedings of the 12th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, KDD ’06, pages 535–541, New York, NY, USA, 2006. ACM.

用いるトレーニングセットについて。
「小さなモデル」の学習に、オリジナルトレーニングセットを使用可能とのことだが、後の2文は意味が分からないので読み飛ばす。

まとめ

論文"Distilling the knowledge in a neural network."を読み進め、これでイントロダクションが終了。途中も意味が分からなかったが、今回の内容もここだけで理解するのは難しい内容なのだと思う。あまりこだわらずに次に進むとする。