[DL輪読会]Ensemble Distribution Distillation

>100 Views

January 10, 20

スライド概要

2020/01/10
Deep Learning JP:
http://deeplearning.jp/seminar-2/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

DEEP LEARNING JP [DL Papers] Ensemble Distribution Distillation Hirono Okamoto, Matsuo Lab http://deeplearning.jp/ 1

2.

書誌情報: Ensemble Distribution Distillation n ICLR 2020 accepted n n 点数: 8,6,6 第⼀著者: Andrey Malinin n 同著者が書いた関連論⽂ n Predictive Uncertainty Estimation via Prior Networks (NIPS 2018) n Reverse KL-Divergence Training of Prior Networks: Improved Uncertainty and Adversarial Robustness (NIPS 2019) n 参考(https://www.slideshare.net/DeepLearningJP2016/dlestimating-predictive-uncertainty-via-prior-networks) n 概要: ⼀般の蒸留は,複数モデルの予測の平均を⼀つのモデルの出⼒に近づけるように学習するため,それ ぞれのモデルの予測を学習しておらず,アンサンブルの多様性を失っている n 提案⼿法は複数モデルの予測の分布を⼀つのモデル(Prior Network)に蒸留することで,分類精度を⼀般 の蒸留モデルと⽐べて落とすことなく,外れ値に対して頑健なモデルにする n

3.

背景: 蒸留とは n 蒸留の⽬的: ネットワークを⼩さくして分類精度を落とさずに推論速度をあげること n 例えば,複数のモデル(親モデル)で学習したモデルをある⼀つのモデル(⼦モデル)に蒸留す ることを考える n one-hotで学習するよりも情報量が多いため,予測性能が⼀般的に良くなる アンサンブル による予測 n しかし,上式の問題点として,それぞれの元のモデルの多様性を失っている n n 新たに学習したい モデルの予測 つまり,アンサンブル(tf.reduce_mean(axis=model))しているので,それぞれのモデルの予測の情 報が消えている これによって,2つの不確かさをもとめるための情報が落ちてしまう n モデルの不確かさがわかると外れ値(Out-of-distribution)が検知できるようになる

4.

背景: 2つの不確かさ データとして⾒分けやすい数字 データとして⾒分けづらい数字 → データの不確かさが⼤きい モデルが学習したデータ モデルが全く⾒たことがないデータ(OOD) → モデルの不確かさが⼤きい

5.

背景: 予測の不確かさ = データの不確かさ + モデルの不確かさ n 不確かさが求まる例として,アンサンブルモデルで3クラス分類をすることを考える それぞれの点はあるサンプルに対する,各モデルの予測(ソフトマックスの出⼒) (a)はどのモデルも⾃信をもってあるクラスに属すと出⼒をしている n (b)はデータの不確かさで,どのクラスに属すかわからないことをわかっている n n n n n どのモデルもどのクラスに属すかわからないということを出⼒しているため これは,クラスの重なりなどによる,避けられない不確かさ → OOD検知に使えない (c)はモデルの不確かさで,どのクラスに属すかわからないことをわかっていない n n どのクラスに属すかわからないというモデルもあれば,⾃信をもってあるクラスに分類しているモデルもある つまり,モデルが知らないから(知識が⾜りないから)不確かということ → OOD検知に使える

6.

背景: 予測の不確かさが⼩さいときの予測の分布 データの不確かさ・モデルの不確かさともに⼩さい → 予測の不確かさが⼩さい n どのモデルもあるクラスに⾼い確率を割り当てる n それぞれのモデルの予測のエントロピーは⼩さい n 平均の予測のエントロピーも⼩さい n

7.

背景: データの不確かさが⼤きいときの予測の分布 どのモデルもどのクラスに対して等確率を割り当てる n それぞれのモデルの予測のエントロピーは⼤きい n 平均の予測のエントロピーも⼤きい n

8.

背景: モデルの不確かさが⼤きいときの予測の分布 どのモデルもあるクラスに対して⾼い確率を割り当てたり,低い確率を割り当てたりする n それぞれのモデルの予測のエントロピーは⼤きかったり⼩さかったりする n 平均の予測のエントロピーは⽐較的⼤きい n

9.

背景: エントロピー計算による不確かさの推定 n ここで,「モデルの不確かさ = 予測の不確かさ – データの不確かさ」の式を利⽤する エントロピー計算 n 上式により,アンサンブルモデルの3つの不確かさが計算できる Total Uncertainty(予測の不確かさ): 予測平均のエントロピーを計算する n Expected Data Uncertainty(データの不確かさ): それぞれのモデルの予測のエントロピーを求める n Knowledge Uncertainty(モデルの不確かさ): 上記2つの不確かさの差を計算する n n n → OOD検出に使う しかし,当初の⽬的は蒸留であり,実際には複数のモデルを使わず,⼀つのモデルでこれらの不 確かさを求めたい → 提案⼿法(Ensemble Distribution Distillation)

10.

提案⼿法: Ensemble Distribution Distillation(EnD$ ) EnD$ とはPrior Network(過去の著者の⼿法)を使って,複数モデルの予測分布を蒸留する⼿法 n まず,アンサンブルというのは,テストデータが⼀つ与えられたときのimplicitな分布からの サンプルたちであるとみなせる n n このπはカテゴリカル分布のパラメタであり,その事前分布であるディリクレ分布のパラメ タをニューラルネットワークでパラメタライズする(のでPrior Network) n 複数のモデル出⼒(親モデル)を使って,⼦モデルのNNのパラメータφを学習することが⽬標 Prior Network

11.

提案⼿法: EnD$ の学習⽅法 n EnD$ の学習⽅法はPrior Network(PN)のパラメータを最尤推定で求めるだけ 𝑝(π ̂ | x): データxを与えたときのアンサンブルモデル(親モデル)の出⼒分布 n α: ディリクレ分布のパラメータでxの関数(PN) n N: サンプル数,K: クラス数,M: モデル数 n n 普通の蒸留とは異なり,複数のモデルの平均ではなく,それぞれの予測を教師として利⽤し ている 普通の蒸留の式

12.

提案⼿法: Prior Networkを使って不確かさを推定する n EnD$ の場合は以下の式を使う n アンサンブルモデルを使う場合はさきほどの式

13.

実験1: ⼆次元トイデータ n ⼆種類の⼆次元トイデータ n n n 左図: ⻘,緑,⾚はそれぞれのデータのクラスを意味する 右図: 上記のクラスに加え,⻩⾊はそれ以外(OOD)であるというクラスを補助的に加える ⽬標: これらの分類における不確かさを複数のモデルではなく,蒸留した⼀つのモデルで求 める

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 n CIFAR100 n TIM n n n 補助OODデータ: CIFAR100,テストOODデータ: LSUN, TIM タスク n 補助OODデータ: CIFAR10,テストOODデータ: LSUN, CIFAR100 クラス分類(評価⽅法): n n n n n 補助OODデータ: CIFAR10,テストOODデータ: LSUN, TIM ERR(誤分類の割合): 低いほうが良い PRR(予測棄却率の割合): 間違った予測を不確かさを利⽤して,どれだけ棄却できるかで,⾼いほうが良い ECE(期待キャリブレーション誤差): クラス分類の結果がどれだけキャリブレーションされているかで,低いほ うが良い NLL(負の対数尤度): 低いほうが良い OOD検知 n n total uncertaintyによる検知(2つの不確かさを⾜したもの) knowledge uncertaintyによる検知(OODを検知できる不確かさ)

18.

実験2: 画像データを使ったクラス分類の定量的結果 クラス分類のエラー率は,アンサンブルして平均をとったほうが低くなる n さらに,おもしろいことにキャリブレーション性能もよくなる n 訓練 データ 評価 ⽅法 ⼀つの モデル 複数の モデル 普通の 蒸留モデル 提案⼿法 +補助データ 蒸留を しないPN

19.

実験2: 画像データを使ったクラス分類の定量的結果 蒸留はアンサンブルモデルを教師としているので,これが⼀番強いのは当然 n 重要なのは,モデルの多様性をより学習しているEnD$ のほうがEnDより性能が良いこと n 訓練 データ 評価 ⽅法 ⼀つの モデル 複数の モデル 普通の 蒸留モデル 提案⼿法 +補助データ 蒸留を しないPN

20.

実験2: 画像データを使ったクラス分類の定量的結果 補助データを使っても, EnDもEnD$ もほぼ性能は変わらない n 理由としては評価⽅法がOODとは関係ないから n 訓練 データ 評価 ⽅法 ⼀つの モデル 複数の モデル 普通の 蒸留モデル 提案⼿法 +補助データ 蒸留を しないPN

21.

実験2: 画像データを使ったクラス分類の定量的結果 蒸留をしないPNというのは,PNの本来の訓練[Malinin+, 2018]を⾏ったという意味 n 蒸留をしているわけではないため,分類誤差としての性能は良くはない n 訓練 データ 評価 ⽅法 ⼀つの モデル 複数の モデル 普通の 蒸留モデル 提案⼿法 +補助データ 蒸留を しないPN

22.

実験2:画像データを使ったOOD検知の定量的結果 アンサンブルモデルにおいて,K.Uncのとき,特にC100のときに性能がでている n C10とTIMでK.UncとT.Uncの差があまりでていないのは,データの不確かさがC100やトイ データと⽐べて⼩さいため,K.Unc ≒ T.Uncとなってしまうからだと考えられる n

23.

実験2:画像データを使ったOOD検知の定量的結果(AUROC) EnDよりモデルの多様性を学習しているEnD$ の⽅が,不確かさをより捉えられており,特に K.Uncを利⽤したときに検知能⼒が⾼い n EnD$ は補助データを利⽤すると,さらに性能があがっていることがわかる n

24.

実験2:画像データを使ったOOD検知の定量的結果(AUROC) 補助データを利⽤していた訓練ができるため,OOD検知の性能はC10においては良いものの, 補助データの選択のせいか,C100やTIMのときは良くない n 補助データの選択に頑健ではない可能性 n

25.

結論・future work n 結論 アンサンブルモデルをPrior Networkに蒸留することで,推論の計算コストを抑えつつ,アンサン ブルモデルと同等のクラス分類性能を達成した n アンサンブルで得られるモデルの不確かさを学習することができるため,OOD検知をすることも 可能にした n n future work ディリクレ混合モデルなど,より柔軟なモデルを試す n Prior Networkの通常の訓練⽅法と組み合わせる n 分類問題だけでなく,回帰問題も解けるようにする n