ベイズ深層学習5章 ニューラルネットワークのベイズ推論 Bayesian deep learning
- 2. 目次
Part1 ニューラルネットワークのベイズ推論
Part2 ニューラルネットワークのベイズ推論の効率化
Part3 ニューラルネットワークの確率的正則化
1. 同時分布のモデリング
2. 事後分布の推論
ハミルトニアンモンテカルロ法による事後分布からのサンプリング
ラプラス近似を用いた近似事後分布の導出
3. 予測分布の計算
1. 確率的勾配ランジュバン動力学法(サンプリングによる推論の効率化)
2. 確率的変分推論法(変分推論の効率化)
スコア関数推定
再パラメータ化勾配
3. 期待値伝搬法によるニューラルネットワークの学習(山場)
1. ドロップアウトのベイズ的解釈
2. バッチ正規化のベイズ的解釈
- 13. 目次
Part1 ニューラルネットワークのベイズ推論
Part2 ニューラルネットワークのベイズ推論の効率化
Part3 ニューラルネットワークの確率的正則化
1. 同時分布のモデリング
2. 事後分布の推論
ハミルトニアンモンテカルロ法による事後分布からのサンプリング
ラプラス近似を用いた近似事後分布の導出
3. 予測分布の計算
1. 確率的勾配ランジュバン動力学法(サンプリングによる推論の効率化)
2. 確率的変分推論法(変分推論の効率化)
スコア関数推定
再パラメータ化勾配
3. 期待値伝搬法によるニューラルネットワークの学習(山場)
1. ドロップアウトのベイズ的解釈
2. バッチ正規化のベイズ的解釈
- 28. 5.2.5.2 近似分布の設定
5.2.5 期待値伝搬法による学習(この章のクライマックス)
計算効率化のために事前分布と同じ分布を用いて、
近似分布の無情報化
学習の妨げとなるようなバイアスが入らないように学習に先立って分布を無情報
化する(各分布が一定になるようにパラメータを設定する)
近似分布qに情報を追加していく準備ができた
- 31. 5.2.5.3 事前分布因子の導入(つづき)
5.2.5 期待値伝搬法による学習(この章のクライマックス)
この分布の対数はそのままmとvで微分できる
←積分計算がガンマ関
数になるように置換
←t分布の2次モーメントをガウス分布の分散とした。
αとβが切り離されていないので定義式から変数変換に
よってベータ関数に帰着させて計算する
←ガウス積分
ガウス分布のパラメータの更新式は
- 33. 5.2.5.4 尤度因子の導入
5.2.5 期待値伝搬法による学習(この章のクライマックス)
なので、
f()は複雑な非線形変換でどんな風に分布が変換されるかわからないので、
も何かしらの分布に従うはずで、
計算しやすいガウス分布 で丸ごと置き換えた
- 35. 5.2.5 期待値伝搬法による学習(この章のクライマックス)
5.2.5.4 尤度因子の導入…
… ReLU
ReLU
ReLU
*中心極限定理*
l-1層のユニット数が十分に大きいとき、
活性の分布は正規分布に従う。
先ほど計算した平均と分散を用いて、
活性化関数はReLUなので0以下の定義域では出力が0になり0以上の領域は
恒等出力、これを二つの分布の混合分布と見なして平均と分散を計算する
- 39. 目次
Part1 ニューラルネットワークのベイズ推論
Part2 ニューラルネットワークのベイズ推論の効率化
Part3 ニューラルネットワークの確率的正則化
1. 同時分布のモデリング
2. 事後分布の推論
ハミルトニアンモンテカルロ法による事後分布からのサンプリング
ラプラス近似を用いた近似事後分布の導出
3. 予測分布の計算
1. 確率的勾配ランジュバン動力学法(サンプリングによる推論の効率化)
2. 確率的変分推論法(変分推論の効率化)
スコア関数推定
再パラメータ化勾配
3. 期待値伝搬法によるニューラルネットワークの学習(山場)
1. ドロップアウトのベイズ的解釈
2. バッチ正規化のベイズ的解釈
- 45. 5.3.1 モンテカルロドロップアウト
KL Condition下では変分エネルギーの最小化と等価
ドロップアウトを適用した学習のベイズ的解釈
再パラメータ化勾配による変分推論とのアナロジー(p128)
1. M個のデータをデータセットからサンプル
2. マスク変数をベルヌーイ分布からM点サンプリング(各データに
対して1点サンプリング)
3. 変数変換によりWmを計算し対数尤度の微分値とKL
Divergenceの微分値を計算
4. 得られた勾配で変分パラメータWを更新し近似事後分布を学習
学習済み事後分布で予測分布を計算することで予測の不確実性が求まる
Editor's Notes
- 気持ち・全体ロジックの流れが大切
- Yが直接出てくるわけではなく、出てくるのはyの平均値
- ここまででモデリング終了。次にやるのは事後分布の導出
- Cはもう書いてないけどリープフロッグの微分のところで消えるから問題ない
- パラメータ数のところ要確認
事前分布から生成されるwからスタートして、誤差逆伝搬で新しいwを計算してそれが受容されたらそのwを更新する。つまり、受容=学習。Lステップたどるのが一回の学習に相当して、Lステップ後のwの値が事後分布からサンプルされたwとなる。Pは各ステップで正規分布からサンプリングする。Pのサンプリングがランダムだから最終的なwの値もランダム。
- さっきも見たけど、この勾配は誤差逆伝搬で計算する
- 第一項は、2階微分の非対角成分の微分はすべて0。第二項はそのままヘッセ行列の定義になる
最後の式の微分はWmapを求めるために更新していった時の最後の値を使う?
これで事後分布は求まった。じゃあ最後のステップで求めた事後分布を使って予測分布を計算する
- Wは重みを縦に並べたベクトル
HM法でこの予測分布を計算する場合は、q(W)からサンプルして、積分をモンテカルロ近似してやればよい
- Alpha_tプライムはsigma_yを含んでいることに注意。
最初の1/2って自然な形で出てくるの?
- 受容率1だと勾配の不偏推定量がえられるのはなんで?
- 周辺尤度はy|xになっていることに注意。Yじゃない
- KLダイバージェンスの方は二つの分布がガウス分布なら解析的に計算できてあとはそれを微分してやるだけ
モンテカルロ近似をしてやるので、サンプリングするわけだが、サンプリングで求めた値(標本空間からのサンプリングで求めた値)がもとの値の不偏推定量(母集団のその値)となる方法でしか近似したらダメ。それを確認する必要がある。もちろんここで紹介する方法はそうなっている
- Https://qiita.com/Kosuke_Matsui/items/5d90af26b14a51accece
Lnqが微分できる必要がある。実際にはIの分散がとても大きくなってしまうらしく、制御変量法などのテクニックが必要
- この方法をqがガウス分布だったときの例で実際に試してみると、
- 次の例はいよいよニューラルネットワーク
- 真面目に変数変換をすると、dε/dwの行列式。各重みは無相関なので、対角行列になって、
独立じゃないと行列式の計算が大変
- 独立なガウス分布をK個かけたらK次元の無相関のガウス分布で、εはこの分布からサンプリングすればよいことがわかる
Εが確定したら、変換gで重みが決まって、ネットワークが決まる。変分パラメータで微分するということは重みで微分しているのと同じなので、誤差逆伝搬で計算できる
- [60]の論文。一つのデータに対して、L個のノイズを使って尤度の微分値を計算してその平均を微分値として使うがM>100とかならノイズのサンプル1つでいい
- 4章では変分推論の次に、さらに期待値伝搬法をやった。それを使ってNNを学習しましょう。つまり事後分布の近似分布を求めましょうということをやっていく。
モデリングは同時分布からスタート。ハイパラも推論します。
P(Y)はw gammay gammawに無関係
- これでモデリングは完了。次は事後分布の推論。
- 近似分布がガンマ分布なら周辺尤度Zが計算できれば、そのパラメータを更新できるし、近似分布がガンマ分布なら。周辺尤度は、尤度×事前分布のパラメータを積分消去したもの。
今回は分布がガンマ分布とガウス分布の積になっているけどそのまま適用できるかという疑問があった。4.2.4の計算を見ると、そのパラメータで微分・積分しているので、片方のパラメータを生成する分布は結局定数になる。
結論から言うと、
- 本が誤植だらけなので気を付けてください。
- Fは非線形変換なのでqハットと同じ分布に従うかどうかはわからない。よくわからんのでガウス分布で丸ごと置き換えてしまう
- mzLは結局ネットワークの出力なので、対数とって微分ってできない。しかもmzLの値自体も順伝搬計算をしないと計算できない
Wが確率変数なので、入力層から確率が伝搬していく
ユニットの個数で平均と分散が変わらないように、ユニットの個数で割る
- 活性化関数はユニットごとに作用されるので、ここからは一つのユニットだけの話を見ていく
この導出は、
- ReLUだと直感的にそうかなと思うのですが、ほかの関数系だったらどうやって混合比求めるの?
- Mかvが変わったらwが変わって、その変化に対する出力の変化を見るので、誤差逆伝搬の枠組みを少し改造すれば計算できる
- Q(W, W)はDoを適用したNNのWmの近似事後分布。DOを適用したNNは重みがWm(確率変数)に見える。これをWからの変換だと解釈すれば、Wがxiに対応するので、KLダイバージェンスの中身もそれで書き換えてやると、(gの中身もちゃんと対応してる)
損失関数をWの関数にして、それをWで微分して勾配を求めることは変分推論法の勾配計算と同じことをしていることになる
- ドロップアウトを適用して、誤差逆伝搬で重みWを更新していくことは、
マスク変数を分布からサンプリングし、変数変換を行って再パラメータ化勾配で変分パラメータWに対する勾配近似を行い、その勾配を用いて近似分布中のWを更新していくことに対応している
学習済みの近似分布qを用いて、予測分布は次のように記述できる