数学がわからない

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

論文を読む"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

  • 昆虫はそれぞれ全く異なる要件に最適化した幼虫形態と成虫形態を持つ
  • 同様に機械学習も、トレーニング段階と展開段階で要件は大きく異なるのだから、それぞれで最適化した形態を持てば良い。
  • レーニング用の面倒なモデルから展開用の単純なモデルへの移行戦略はRich Caruanaらの”Model compression.”で提案されており、これを「蒸留」と呼ぶ。

1 Introduction-2

2段落目からいきなり理解できなくなる。

  • 蒸留という有望なアプローチを阻害するのは、「モデルの中の知識と学習されたパラメータを区別してしまう傾向」。
  • 知識とは「学習済みマッピング」である。
  • だからこそ、不正解に対する確率もごくわずかであれ定義されてしまう。

論文読解

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

1 Introduction-3

(目的関数はユーザーの真の目的を反映)
レーニングに使用される目的関数は、ユーザーの真の目的をできるだけ厳密に反映すべきであることが、一般に受け入れられています。それにもかかわらず、実際の目的が新しいデータにうまく一般化することである場合、モデルは通常トレーニングデータのパフォーマンスを最適化するようにトレーニングされます。

(一般化する正しい方法)
モデルを一般化するように訓練することは、明らかに良いことでしょう。しかし、訓練は一般化する正しい方法に関する情報を必要としており、この情報は普通利用不可能です。しかし、大きなモデルから小さなモデルへと知識を蒸留しているとき、我々は大きなモデルと同じ方法で、小さなモデルを一般化するように訓練することができます。

(一般化する正しい方法の例)
たとえば、異なるモデルの大規模なアンサンブルの平均であるために「面倒なモデル」がうまく一般化されている場合、同じ方法で一般化するように訓練された小さなモデルは、アンサンブルを訓練するために使用されたのと同じトレーニングセットを用いた通常の方法で訓練された小さなモデルより、一般にテストデータにおいてより良い結果を出す。

この段落もやっぱりちゃんと理解できているのかどうか分からない。

  • 目的関数はユーザーの真の目的を反映すべきであるが、実際は反映できていない。
  • モデルを一般化する正しい方法に関する情報が必要であるが、普通は利用不可能。
  • ただし、大きなモデルを学習済みで、蒸留によって小さなモデルを作る場合、大きなモデルの学習に用いた方法が小さなモデルにも適用できる。

話がどうつながっているのかが理解できない。

まとめ

論文"Distilling the knowledge in a neural network."を読み進めた。今日はイントロダクションの3段落目まで。2段落目から意味が分からなくなり、ここも意味が分からない。