soyamash / read_paper

memo for NLP paper
0 stars 0 forks source link

Hyperparameter Ensembles for Robustness and Uncertainty Quantification #3

Open soyamash opened 4 years ago

soyamash commented 4 years ago

https://arxiv.org/abs/2006.13570

soyamash commented 4 years ago

重みとハイパーパラメータの多様性の両方を持つアンサンブル手法を組み合わせ、batch ensembles と self-tuning networksの層構造をベースにした、パラメータ効率の高いHyper-batch ensembleを提案する

soyamash commented 4 years ago

Batch ensemble

スクリーンショット 2020-11-02 10 10 32

Deep ensembleは初期値を変えたk個のパラメータW_kを用意するが、Batch ensemble はk個のパラメータの代わりに一つのパラメータ行列Wに対して、r_kとs_kをかけることでk個のW_kを生成するようにする。このように分解することで、入力バッチXに対してk回forwardパスを通す代わりに、一度のforwardパスで済むようになる(○はelement-wise product)

soyamash commented 4 years ago

Self-tuning networks

スクリーンショット 2020-11-02 10 23 50

ハイパラλから重みW,bが計算されるように設計する

soyamash commented 4 years ago
スクリーンショット 2020-11-02 10 27 49

ハイパラをランダムに取得し(iterごとに確率分布が変わる)、Lossが最小となるハイパラを探す

スクリーンショット 2020-11-02 10 31 14

trainingとハイパラをサンプリングする確率分布のパラメタのtuningを交互に繰り返す。サンプリングには reparametrization trickを使用し、探索される確率分布が偏らないようにエントロピーによる正則化をかける

soyamash commented 4 years ago

初期値のみでなくハイパラについても効率的にアンサンブルを行う方法を述べる

スクリーンショット 2020-11-02 12 01 39

ハイパラ探索、(ハイパラをK個固定し)初期値探索、得られたモデルセットに対して再度ハイパラ探索を行う。 1-2行目では、まず、入力としてランダム検索[6]の結果に基づいて、hyper_ensに従って1つの「行」を生成します。次に、異なるランダム初期化のためのモデルを学習することで、その「行」をタイル化し、層化します(4-7行目を参照)。結果として得られたモデルのセットを図2(左)に示します。10行目では、最後に階層化したモデルセットにhyper_ensを再適用する。これによってO(K^2)で済む

スクリーンショット 2020-11-02 10 15 45
soyamash commented 4 years ago

Hyper-batch ensembles

上記で説明したBatch ensembleとSelf-tuning networksを組み合わせる。

スクリーンショット 2020-11-02 12 24 24
soyamash commented 4 years ago

アンサンブルに拡張する

スクリーンショット 2020-11-03 16 09 59
soyamash commented 4 years ago
スクリーンショット 2020-11-03 16 18 14

MNISTなどに適用した結果。右は効率的なモデルのみでの比較

soyamash commented 4 years ago
スクリーンショット 2020-11-03 16 20 48

複雑なモデルに対しても良い性能