1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

深層学習 Day 4 - 量子化、蒸留、プルーニング のまとめ

Last updated at Posted at 2020-11-29

この記事は個人的なお勉強用のメモです。

講義

軽量化の方法
・量子化
・蒸留
・プルーニング

※ 量子化がよく使われる。

量子化

Quantization

浮動小数点のデータ型を精度の低いデータ型にする。
例:64 bit 変数を 32 bit 変数に変更

【効果1】省メモリ化
 64 bit を 32 bit にすると、消費メモリは半分になる。

【効果2】計算の高速化
 bit 数を減らすと、浮動小数点の計算量が少なくて済む。
 = 同じ時間で他の計算を多く行えるようになる。

【欠点】数値の精度が下がる。
 ただし、ほとんどの場合、半精度(16bit)で問題ない。

現実的には、16 bit を選択するのが最も良い。

蒸留

概要

規模の大きなモデルの知識を使って(知識を継承して)、
軽量なモデルを作成する。

構成

・教師モデル
 予測精度の高い、複雑なモデルやアンサンブルされたモデル

・生徒モデル
 教師モデルを元に作られた軽量なモデル

生徒モデルの作り方

  1. 教師モデル(学習済み)と生徒モデル(未学習)を並列に配置する
  2. これらのモデルに同じ入力を与える
  3. 教師モデルの重みは変更しない
  4. 生徒モデルの重みのみを更新する

プルーニング

概要

モデルの精度に寄与が少ないニューロンを削減する。
⇒ モデルの軽量化、高速化

枝刈りするイメージ。

ニューロンの削減方法

重みがしきい値以下の場合に、ニューロンを削減して、再学習する。

ニューロンを削減しても、意外と性能は落ちないことがわかっている。
パラメータの数を10分の1以下にしても、精度は90%近くを保つ結果あり。

関連記事

黒本で補習。

量子化
・活性化を二値化すると、ほとんどの勾配が 0 になってしまう。
・回避策は、ストレート・スルー・エスティメータ(Straight-Through Estimator, STE)
・STE を適用して逆伝播する。

蒸留
・ソフトターゲット損失($L_{soft}$)を算出する際は、先生の出力(予測結果)を目標分布に用いる。
・ハードターゲット損失($L_{hard}$)を算出する際は、正解ラベルを目標分布に用いる。
・$L_{soft}$ と $L_{hard}$ の加重平均値を最小値の対象にする。

L=\frac{\lambda_1 T^2 L_{soft} + \lambda_2 L_{hard}}{\lambda_1 + \lambda_2}

 ※ $L$ は2つのターゲット損失を加重平均した値
 ※ $\lambda_1$ と $\lambda_2$ は $L_{soft}$ と $L_{hard}$ の相対的な重みを意味する定数
 ※ $T$ を二乗する理由は、スケールを合わせるため

・温度付きソフトマックス関数を使う。

Softmax(z)_i=\frac{\exp(z_i/T)}{\sum_j \exp(z_j/T)}

・温度 $T$ を高くすると、不正解に対する確率を大きくできる。

プルーニング
・あるチャンネル剪定では、ラッソに基づく。
・「部分ネットワーク構造」と「初期値」の組み合わせに当たりが存在し、
 その当たりを引き当てると効率的に学習できるという仮説(宝くじ仮説)がある。
・剪定によって、その構造と初期値を見つけられる。
・剪定は学習中または学習後に行われる。
・剪定とは、精度に大きく影響を与えないノードやエッジを刈ること。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?