数学がわからない

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

論文を読む"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の目的関数は正しいラベルのクロスエントロピー
    • ソフトターゲットとハードターゲットの総体的な寄与が変わらないように調整

論文読解

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

2.1 Matching logits is a special case of distillation

転送の各ケースは、蒸留モデルの各ロジットz_iに関して、クロスエントロピー勾配 dC/dz_iに寄与します。

面倒な(cumbersome)モデルがソフトターゲット確率p_iを生成するロジットv_iを持ち、転送トレーニングがTの温度で行われる場合、この勾配は次の式で与えられます。


\begin{align}
\displaystyle \frac{\partial C}{\partial z_i} =\frac{1}{T}(q_i − p_i) =\frac{1}{T} 
\left( 
\frac{e^{z_i/T}}{\sum_j e^{z_j/T}}
-
\frac{e^{v_i/T}}{\sum_j e^{v_j/T}}
\right)
\tag{2}
\end{align}

クロス(交差)エントロピー微分が式(2)の前半のようになるのは、良く知られた話のようで、ググれば勉強になるサイトがすぐに出てきます。それを式(1)で展開したものが式(2)の後半です。

ロジットの規模と比較して温度(temperature)が高い場合は、次のように近似できます。


\begin{align}
\displaystyle \frac{\partial C}{\partial z_i} \approx 
\frac{1}{T} 
\left( 
\frac{1+z_i/T}{N+\sum_jz_j/T}
-
\frac{1+v_i/T}{N+\sum_jv_j/T}
\right)
\tag{3}
\end{align}

式(2)を近似して式(3)を得る方法についてもう少し詳細に述べます。
ますこの近似は、次式の線型近似(接線近似、一次近似)を用いて行われています。


\begin{align}
f(x) \approx f(a)+f'(a)(x-a)
\end{align}
この近似は、xaに十分近い場合に成り立ちます。

指数関数f(x)=e^xの線型近似は、f'(x)=e^xであることから次の通りです。


\begin{align}
f(x) \approx e^a+e^a(x-a)
\end{align}

温度Tが高い場合とは、指数{z_j/T}が0に近い場合です。従って、a=0として、


\begin{align}
f(x) \approx e^0+e^0(x-0)=1+x
\end{align}

これを式(2)に適用すると式(3)が得られます。

ここで、各転送ケースに対してロジットが\sum_jz_j=\sum_jv_j=0となるように別々にゼロ平均されていると仮定すると、式3が単純化できる。


\begin{align}
\displaystyle \frac{\partial C}{\partial z_i} \approx 
\frac{1}{NT^2} 
(z_i - v_i)
\tag{4}
\end{align}


つまり、高温限界で、ロジットが各転送ケースで別々にゼロ平均される場合、蒸留は1/2(z_i  -  v_i)^2を最小化することと同じです。

Tが大きいこと、ロジットがゼロ平均されていることといった条件のもと、クロスエントロピーの勾配の式が単純化できるということがここまでに述べられた。
結局は蒸留モデルのロジットz_iと面倒なモデルのロジットv_iの差の二乗を最小化するという当たり前の式に落ち着いている、ということだろうか。

より低い温度では、蒸留は平均よりはるかに否定的であるマッチングロジットにあまり注意を払いません。

これは潜在的に有利である。なぜなら、これらのロジットは、「面倒なモデル」を訓練するために用いられるコスト関数によってほとんど完全に制約されないため、それらは非常にノイジーになり得る。

一方、非常に否定的なロジットは、「面倒なモデル」によって獲得された知識についての有用な情報を伝えるかもしれません。


これらの効果のどれが支配的かは経験的な問題です。

我々は、蒸留モデルが「面倒なモデル」の知識をすべて捉えるには小さすぎる場合、中間温度が最もうまく機能することを示します。これは大きな負のロジットを無視することが役立つことを強く示唆しています。

温度は高すぎるとノイズが多くなるし、低すぎると情報量が少なくなる。適当が良い、とのこと。

まとめ

論文"Distilling the knowledge in a neural network."の2.1「Matching logits is a special case of distillation」を読んだ。