論文を読む"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。
- 転送セットのラベルが既知の場合、より良い改善方法は、異なる2つの目的関数の加重平均の使用
2.1 Matching logits is a special case of distillation
- 第1の目的関数は、蒸留モデルと面倒なモデルのロジット間の差の二乗を最小化すること
- 温度は高すぎず低すぎない中間の値が有効
3 Preliminary experiments on MNIST(MNISTでの予備実験)
- 大モデルに対する小モデルの比較をソフトターゲットマッチング追加タスク有無で行ない、蒸留の効果を確認
- 温度とユニットの数を振った実験の実施
- 転送セットから一部のクラスを削除した場合でも、ロバスト性を確認
4 Experiments on speech recognition(音声認識に関する実験)
- 自動音声認識(ASR)で使用されているディープニューラルネットワーク(DNN)音響モデルを、アンサンブルすることの効果について調査
- 本稿で提案する蒸留戦略が望ましい効果を達成することを証明
- すなわち、同じサイズのモデルを同じトレーニングデータから直接学習するよりも、はるかにうまく機能する単一のモデルを、モデルのアンサンブルから蒸留することが可能
Google翻訳した上で、自分の理解しやすいように修正しながら読んでいく。
論文読解
5 Training ensembles of specialists on very big datasets(非常に大きなデータセットに関する専門家アンサンブルのトレーニング)
モデルのアンサンブルの学習は並列計算を利用するための非常に簡単な方法であり、アンサンブルはテスト時に過度の計算を必要とするという通常の反論は、蒸留を使用することによって対処することができます。
ただし、アンサンブルにはもう1つの重要な反論があります。それは、個々のモデルが大規模なニューラルネットワークで、データセットが非常に大きい場合、並列化は簡単だとしても、トレーニング時に必要な計算量があまりに多くなることです。
モデルをパラメータの初期化やデータセットを変えながら複数訓練した時、ではどれを製品に用いるのか、と悩んだことがあります。
そのとき、アンサンブルの精度を求めることすらしていなかったのですが、やってみたら精度向上ができることがわかっていたのかもしれません。しかし、精度向上できてもやっぱり規模が大きくなりすぎてどう実装しようかとまた悩んでいたかもしれません。
今後、同じような実装をするときは、この論文のような蒸留を試すことになりそうです。ただ、放っとけばいいとはいえ、PCを占有して数週間学習させて結果を取得するのは面倒ですが。
ということで、本章の「計算量があまりに多い場合にどうするか」は非常に興味があるところです。
In this section we give an example of such a dataset and we show how learning specialist models that each focus on a different confusable subset of the classes can reduce the total amount of computation required to learn an ensemble. The main problem with specialists that focus on making fine-grained distinctions is that they overfit very easily and we describe how this overfitting may be prevented by using soft targets.
この章では、そのようなデータセットの例を示し、それぞれが異なる混同しやすいクラスのサブセットに焦点を当てる「専門家モデル」を学習する方法によって、アンサンブルの学習に必要な計算量を削減できることを示します。
きめ細かい区別をすることに焦点を当てている専門家の主な問題は、彼らが非常に簡単にオーバーフィットするということであり、我々はこのオーバーフィットが、ソフトターゲットを使用することによってどのように防止されるかについて説明します。
この章の概要は、
- 問題
- アンサンブル用の個々のモデルのネットワーク規模、データセットサイズが非常に大きい場合、計算量大
- 解決手段
- 「専門家モデル」を学習
- 課題
- オーバーフィットしやすい専門家を、ソフトターゲットの使用することでオーバーフィット防止
- 効果
- アンサンブルの学習に必要な計算量を削減
まとめ
論文"Distilling the knowledge in a neural network."の5章を読み始めました。この先、5.1から5.5節まであるのでそれなりに先は長いです。