1. 1
DEEP LEARNING JP
[DL Papers]
http://deeplearning.jp/
Ensemble Distribution Distillation
Hirono Okamoto, Matsuo Lab
2. 書誌情報: Ensemble Distribution Distillation
n ICLR 2020 accepted
n 点数: 8,6,6
n 第⼀著者: Andrey Malinin
n 同著者が書いた関連論⽂
n Predictive Uncertainty Estimation via Prior Networks (NIPS 2018)
n 参考(https://www.slideshare.net/DeepLearningJP2016/dlestimating-predictive-uncertainty-via-prior-networks)
n Reverse KL-Divergence Training of Prior Networks: Improved Uncertainty and Adversarial Robustness (NIPS
2019)
n 概要:
n ⼀般の蒸留は,複数モデルの予測の平均を⼀つのモデルの出⼒に近づけるように学習するため,それ
ぞれのモデルの予測を学習しておらず,アンサンブルの多様性を失っている
n 提案⼿法は複数モデルの予測の分布を⼀つのモデル(Prior Network)に蒸留することで,分類精度を⼀般
の蒸留モデルと⽐べて落とすことなく,外れ値に対して頑健なモデルにする
3. 背景: 蒸留とは
n 蒸留の⽬的: ネットワークを⼩さくして分類精度を落とさずに推論速度をあげること
n 例えば,複数のモデル(親モデル)で学習したモデルをある⼀つのモデル(⼦モデル)に蒸留す
ることを考える
n one-hotで学習するよりも情報量が多いため,予測性能が⼀般的に良くなる
n しかし,上式の問題点として,それぞれの元のモデルの多様性を失っている
n つまり,アンサンブル(tf.reduce_mean(axis=model))しているので,それぞれのモデルの予測の情
報が消えている
n これによって,2つの不確かさをもとめるための情報が落ちてしまう
n モデルの不確かさがわかると外れ値(Out-of-distribution)が検知できるようになる
アンサンブル
による予測
新たに学習したい
モデルの予測
5. 背景: 予測の不確かさ = データの不確かさ + モデルの不確かさ
n 不確かさが求まる例として,アンサンブルモデルで3クラス分類をすることを考える
n それぞれの点はあるサンプルに対する,各モデルの予測(ソフトマックスの出⼒)
n (a)はどのモデルも⾃信をもってあるクラスに属すと出⼒をしている
n (b)はデータの不確かさで,どのクラスに属すかわからないことをわかっている
n どのモデルもどのクラスに属すかわからないということを出⼒しているため
n これは,クラスの重なりなどによる,避けられない不確かさ → OOD検知に使えない
n (c)はモデルの不確かさで,どのクラスに属すかわからないことをわかっていない
n どのクラスに属すかわからないというモデルもあれば,⾃信をもってあるクラスに分類しているモデルもある
n つまり,モデルが知らないから(知識が⾜りないから)不確かということ → OOD検知に使える
9. 背景: エントロピー計算による不確かさの推定
n ここで,「モデルの不確かさ = 予測の不確かさ – データの不確かさ」の式を利⽤する
n 上式により,アンサンブルモデルの3つの不確かさが計算できる
n Total Uncertainty(予測の不確かさ): 予測平均のエントロピーを計算する
n Expected Data Uncertainty(データの不確かさ): それぞれのモデルの予測のエントロピーを求める
n Knowledge Uncertainty(モデルの不確かさ): 上記2つの不確かさの差を計算する
n → OOD検出に使う
n しかし,当初の⽬的は蒸留であり,実際には複数のモデルを使わず,⼀つのモデルでこれらの不
確かさを求めたい → 提案⼿法(Ensemble Distribution Distillation)
エントロピー計算
10. 提案⼿法: Ensemble Distribution Distillation(EnD$
)
n EnD$
とはPrior Network(過去の著者の⼿法)を使って,複数モデルの予測分布を蒸留する⼿法
n まず,アンサンブルというのは,テストデータが⼀つ与えられたときのimplicitな分布からの
サンプルたちであるとみなせる
n このπはカテゴリカル分布のパラメタであり,その事前分布であるディリクレ分布のパラメ
タをニューラルネットワークでパラメタライズする(のでPrior Network)
n 複数のモデル出⼒(親モデル)を使って,⼦モデルのNNのパラメータφを学習することが⽬標
Prior Network
11. 提案⼿法: EnD$
の学習⽅法
n EnD$
の学習⽅法はPrior Network(PN)のパラメータを最尤推定で求めるだけ
n ̂𝑝(π | x): データxを与えたときのアンサンブルモデル(親モデル)の出⼒分布
n α: ディリクレ分布のパラメータでxの関数(PN)
n N: サンプル数,K: クラス数,M: モデル数
n 普通の蒸留とは異なり,複数のモデルの平均ではなく,それぞれの予測を教師として利⽤し
ている
普通の蒸留の式
13. 実験1: ⼆次元トイデータ
n ⼆種類の⼆次元トイデータ
n 左図: ⻘,緑,⾚はそれぞれのデータのクラスを意味する
n 右図: 上記のクラスに加え,⻩⾊はそれ以外(OOD)であるというクラスを補助的に加える
n ⽬標: これらの分類における不確かさを複数のモデルではなく,蒸留した⼀つのモデルで求
める
14. 実験1: アンサンブルモデルによる定性的結果
n データの不確かさ(b): 理想的な振る舞いをしている
n データがあるところは不確かさが⼤きく,データがないところは不確かさが⼩さい
n モデルの不確かさ(c): 理想的な振る舞いをしている
n データがないところは不確かさが⼤きく,データがあるところは不確かさが⼩さい
⽩,⾚,紫,⿊の順で不確かさが⼤きい
15. 実験1: EnD$
(提案⼿法)による定性的結果
n データの不確かさ(e): 理想的な振る舞いをしている
n データがあるところは不確かさが⼤きく,データがないところは不確かさが⼩さい
n モデルの不確かさ(f): 理想的な振る舞いをしていない
n データがあるところは不確かさが⼩さいが,データがないところは不確かさが⼤きい場所と⼩さ
い場所がある
⽩,⾚,紫,⿊の順で不確かさが⼤きい
16. 実験1: EnD$
(+補助のOODデータ)による定性的結果
n データの不確かさ(h): 理想的な振る舞いをしている
n データがあるところは不確かさが⼤きく,データがないところは不確かさが⼩さい
n (が,データがないところにも若⼲不確かさであると推定している)
n モデルの不確かさ(i): 理想的な振る舞いをしている
n データがないところは不確かさが⼤きく,データがあるところは不確かさが⼩さい
⽩,⾚,紫,⿊の順で不確かさが⼤きい
17. 実験2: 画像データ
n 訓練データ:
n CIFAR10
n 補助OODデータ: CIFAR100,テストOODデータ: LSUN, TIM
n CIFAR100
n 補助OODデータ: CIFAR10,テストOODデータ: LSUN, TIM
n TIM
n 補助OODデータ: CIFAR10,テストOODデータ: LSUN, CIFAR100
n タスク
n クラス分類(評価⽅法):
n ERR(誤分類の割合): 低いほうが良い
n PRR(予測棄却率の割合): 間違った予測を不確かさを利⽤して,どれだけ棄却できるかで,⾼いほうが良い
n ECE(期待キャリブレーション誤差): クラス分類の結果がどれだけキャリブレーションされているかで,低いほ
うが良い
n NLL(負の対数尤度): 低いほうが良い
n OOD検知
n total uncertaintyによる検知(2つの不確かさを⾜したもの)
n knowledge uncertaintyによる検知(OODを検知できる不確かさ)
25. 結論・future work
n 結論
n アンサンブルモデルをPrior Networkに蒸留することで,推論の計算コストを抑えつつ,アンサン
ブルモデルと同等のクラス分類性能を達成した
n アンサンブルで得られるモデルの不確かさを学習することができるため,OOD検知をすることも
可能にした
n future work
n ディリクレ混合モデルなど,より柔軟なモデルを試す
n Prior Networkの通常の訓練⽅法と組み合わせる
n 分類問題だけでなく,回帰問題も解けるようにする