数学がわからない

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

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

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

2 Distillation

  • 「温度付きソフトマックス関数」について
  • 最も単純な形式の蒸留
    • 蒸留モデルは転送セットで訓練される。
    • 転送セットは、温度を高くしたソフトマックス関数を用いた面倒なモデルで生成されたもの。
    • 蒸留モデルの学習時は同じ温度、学習後は1。
  • 転送セットのラベルが既知の場合、より良い改善方法は、異なる2つの目的関数の加重平均の使用
    • 第1の目的関数はソフトターゲットのクロスエントロピー
    • 第2の目的関数は正しいラベルのクロスエントロピー
    • ソフトターゲットとハードターゲットの総体的な寄与が変わらないように調整
2.1 Matching logits is a special case of distillation
  • 第1の目的関数は、蒸留モデルと面倒なモデルのロジット間の差の二乗を最小化すること
  • 温度Tは高すぎず低すぎない中間の値が有効
3 Preliminary experiments on MNIST(MNISTでの予備実験)
  • 大モデルに対する小モデルの比較をソフトターゲットマッチング追加タスク有無で行ない、蒸留の効果を確認
  • 温度とユニットの数を振った実験の実施
  • 転送セットから一部のクラスを削除した場合でも、ロバスト性を確認

論文読解

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

4 Experiments on speech recognition(音声認識に関する実験)

このセクションでは、自動音声認識(ASR)で使用されているディープニューラルネットワーク(DNN)音響モデルを、アンサンブルすることの効果について調べます。
我々は、本稿で提案する蒸留戦略が次のような望ましい効果を達成することを示します。すなわち、同じサイズのモデルを同じトレーニングデータから直接学習するよりも、はるかにうまく機能する単一のモデルを、モデルのアンサンブルから蒸留することがでます。

この段落は本章の概要説明しています。「自動音声認識(ASR)用DNN音響モデルのアンサンブルに対しても、提案する蒸留戦略を導入することで、良い結果が得られた」と。


特に同じ実験をしようというのでない限り、この先を詳細に読む必要は無さそうです。(詳細に読んでも同じ実験をするのは難しそうですし)
まあ、一応読んだので続けますが。

最先端のASRシステムは現在、DNNを使用して、波形から導出された特徴の(短い)時間的コンテキストを隠れマルコフモデル(HMM)の離散状態にわたる確率分布にマッピングします[4]。より具体的には、DNNはその都度トライフォン状態のクラスタにわたる確率分布を生成し、次いでデコーダはHMM状態を通る経路を見つけます。それは高確率状態を使用することと、言語モデルの下でありそうな転写を生成することとの間の最良の妥協です。

最先端のASRシステム"State-of-the-art ASR systems"に関して説明しています。

デコーダ(ひいては言語モデル)が全ての可能な経路にわたってマージナル化することによって考慮されるようにDNNを訓練することは可能である(そして望ましい)が、一般には、フレームごとの分類を行うようにDNNを訓練する。
ネットによって行われた予測と、各観測についてグランドトゥルース状態列との強制アライメントによって与えられたラベルとの間のクロスエントロピーを(局所的に)最小化することによって。つまり次式である:


\begin{align}
\theta = \arg \underset{\theta ’}{\max} P(h_t|s_t;\theta’)
\tag{-}
\end{align}

ここで、 \thetaは、我々の音響モデルPのパラメータであり、時間 t s_tでの音響観測値を「正しい」HMM状態 h_tの確率 P(h_t|s_t;\theta’)マッピングします。これは、正しい単語のシーケンスを用いた、強制アラインメントによって決定されます。このモデルは、分散型確率勾配降下法で訓練されています。

訓練の仕方と評価関数について述べています。

我々は、それぞれ2560の正規化線形ユニット(ReLU)を含む8つの隠れ層と、14,000ラベル(HMM targets h_t)の最終的なソフトマックス層と、を持つアーキテクチャを使用します。
入力は、フレームあたり10ミリ秒進む40メルスケールのフィルタバンク係数の26フレームであり、我々は21番目のフレームのHMM状態を予測します。
パラメータの総数は約85Mです。
これは、Androidの音声検索で使用される音響モデルのやや古いバージョンであり、非常に強力なベースラインと見なすべきです。
DNN音響モデルを訓練するために、約2000時間の話された英語のデータを使用します、そしてそれは約700Mの訓練例をもたらします。
このシステムは、私たちの開発セットで58.9%のフレーム精度と10.9%のWord Error Rate(WER)を達成しています。

アーキテクチャ、入力、パラメータの総数、訓練データ、そしてその性能について述べています。

ここまでで説明したDNNを用いる最先端のASRシステムをベースラインとして用いています。この性能(58.9%のフレーム精度と10.9%のWord Error Rate(WER))に対し、提案手法でどう改善されるのかが本章のポイントです。

4.1 Results

我々は、ベースラインと全く同じアーキテクチャおよびトレーニング手順を使用して、P(h_t|s_t;\theta)を推論するために10個の別々のモデルをトレーニングした。
モデルは異なる初期パラメータ値で無作為に初期化され、これが訓練されたモデルに十分な多様性を生み出し、アンサンブルの平均推論が個々のモデルよりも著しく優れた性能を発揮することを可能にする。
我々は、各モデルが用いるデータセットを変えることで、モデルに多様性を追加することを検討しましたが、結果が大きく変わらないことがわかったので、より単純なアプローチを選びました。
蒸留では[1、2、5、10]の温度を試し、ハードターゲットのクロスエントロピーには相対重み0.5を使用しました。ここで太字は表1に使用された最良の値を示します。

まずアンサンブルの作り方を説明しています。

  • ベースラインと全く同じアーキテクチャおよびトレーニング手順を使用
  • 異なる初期パラメータを用いた10個の別々のモデルをトレーニン
    • 各モデルが用いるデータセットの変更は試したが結果は大きく変わらず

ベースラインからアンサンブルを作ることで、サイズが10倍になりますが、性能が向上したモデルを作成します。これを蒸留することで性能を維持しつつサイズをベースラインと同等にすることを目指します。

表1は、実際に、私たちの蒸留アプローチは、ハードラベルを使用して単一のモデルをトレーニングするよりも、トレーニングセットからより有用な情報を抽出できることを示しています。
10モデルのアンサンブルを使用することによって達成されたフレーム分類精度の改善の80%以上が蒸留モデルに転送されます。これはMNISTでの予備実験で観察された改善と同様です。
目的関数の不一致のために、アンサンブルはWERの最終目的に対して(23Kワードのテストセットでは)より小さな改善を示しますが、アンサンブルによって達成されたWERの改善は蒸留モデルに転送されます。

このブログには表1は載せていませんが、表1には蒸留の結果、アンサンブルよりも性能はわずかに低下していますが、ベースラインより性能が向上したモデルが示されています。

我々は最近、すでに訓練されたより大きなモデルのクラス確率を一致させることによって、小さな音響モデルを学習することに関する関連研究に気付いた[8]。
ただし、彼等はラベリングされていないデータセットを使用して1の温度で蒸留を実行しており、最良の蒸留モデルは、小さいモデルのエラー率は、ハードラベルで同じ訓練を行った大きいモデルと小さいモデルのエラー率の間の差が、28%減少するだけです。

他の関連研究との比較です。提案手法の方がうまくいっている、と。

まとめ

論文"Distilling the knowledge in a neural network."の4章を読みました。