数学がわからない

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

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

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

論文読解

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

1 Introduction-4

「面倒なモデル」の汎化能力を「小さいモデル」に転送する明確な方法は、「面倒なモデル」によって生成されたクラス確率を「小さいモデル」を訓練するための「ソフトターゲット」として使用することです。

この転送段階では、同じトレーニングセットまたは別の「転送」セットを使用できます。

「面倒なモデル」がより単純なモデルの大規模なアンサンブルである場合は、それらの個々の予測分布の算術平均または幾何平均をソフトターゲットとして使用できます。

ソフトターゲットのエントロピーが高い場合、ハードターゲットよりもトレーニングケースごとにはるかに多くの情報が得られ、トレーニングケース間の勾配の変動がはるかに少なくなるため、「小さいモデル」では元の「面倒なモデル」よりはるかに少ないデータ、はるかに高い学習率でトレーニングできます。

転送の具体的な方法について。

  • 「面倒なモデル」の生成するクラス確率を、「小さなモデル」を訓練するための「ソフトターゲット」として使用
    • 「面倒なモデル」がアンサンブルの場合、個々のモデルの予測分布の平均をソフトターゲットとして使用
  • 同じトレーニングセット、または別の「転送」セットを使用
  • ソフトターゲットのエントロピーが高い場合、「小さいモデル」は効率よくトレーニングが可能

この段落に、2段落目に記載されていた「不正解にも確率が割り当てられていること」の話題がつながる?
不正解にも確率が割り当てられているから、クラス確率のエントロピーが高くなり、小さなモデルのトレーニングが効率的に進むようなソフトターゲットを作ることができる、ということなのだろうか。

まとめ

論文"Distilling the knowledge in a neural network."を読み進めた。今日はイントロダクションの4段落目まで。2、3段落目の意味が多少分かった?