要約: Bayesian Learning via Stochastic Gradient Langevin Dynamics
https://www.ics.uci.edu/~welling/publications/papers/stoclangevin_v6.pdf
著者はMax WellingとYee Whye Tehの二人。
θをモデルパラメータとしてもつxの確率分布p(x|θ)を考える。
またθは事前分布p(θ)を持つとする。
データX={x1, x2, …, xN}を観測した場合に得られるθの事後分布p(θ|X)からパラメータθをサンプリングすることを考える。
Langevin Dynamics
Langevin Dynamics (ランジュバン動力学)はMCMCの一種である。事後分布p(θ|X)からパラメータθをサンプリングしたい場合に利用可能な手法の一つである。
具体的には、パラメータθを以下のΔθtを用いてθt+1=θt+Δθtというように変化させていく:
ここでNは全サンプルの数である。
また、ノイズを除いた部分はp(X|θ)p(θ)の微分値となっていることに注意したい。
これをMetropolis-Hastings法と組み合わせることによってp(θ|X)からパラメータθをサンプリングすることができる。なおεを小さくすると棄却率が0に近づいていくらしい(離散化誤差が減少するため)。
詳細はMCMC Using Hamiltonian Dynamicsを参照。
Stochastic Gradient Langevin Dynamics
Langevin DynamicsにおけるΔθtを得るためには、全サンプルについてのp(xi|θt)の勾配を計算して足し合わせる必要がある。
しかしデータセットの規模が大きい場合には全サンプルについて毎回計算することは大変である。
そこで、以下のように確率的に選択したサンプルだけを用いてΔθtを計算するStochastic Gradient Lengevin Dynamicsを提案:
ここでεtは次の条件を満たすように設定する:
なお著者らは、εが0に近づくとLangevin DynamicsではMetropolis-Hastings法の棄却率が0に近づくことを踏まえてStochastic Gradient Lengevin DynamicsではMHを無視することとしている。
t→∞において得られるθtが実際に事後分布p(θ|X)から得られるサンプルに近づいていくことの説明
全体の勾配をg(θ)、確率的に選択したサンプルを用いて計算した勾配をh(θ)として定義する:
また、ε0<<1であり、ステップtsとts+1を、以下の式を満たすような部分列の先頭と最後のindexとする:
この時、g(θ)の勾配が滑らかに変化し、またminibatchがランダムに選択されるということを仮定すれば、ステップtsからts+1までの確率的な勾配の和は以下が成り立つ:
パラメータθがtsとts+1の間でそこまで変わらないとすると、二列目の式よりこの和はminibatchのランダム性に大きく依存すると考えられる。 また最後の式よりこの和は全体の勾配に対してO(ε0)の差分があることが言えるが、ΔθtにはO(√ε0)のノイズを加えることを考えると、Stochastic Gradient Langevin Dynamicsで得られるθの列は、step sizeがε0で固定されたLangevin Dynamicsで得られるものに近づいていくだろうと述べている。
勾配の大きいθから勾配の小さいθに進んでいくにつれて確率的最適化を行っているような状態から事後分布からのサンプリングを行っているような状態に自然に変化していくと言えるとも述べている。
人工データでの実験
人工的に作った確率分布を用いたパラメータθのサンプリング実験:
上二つの図より綺麗に事後分布が得られることがわかる。また、左下の図より途中までは勾配についてのNoiseが支配的であるが途中から追加するノイズの方が支配的になることがわかる(なお図中のθ1とθ2は二つあるモデルパラメータの一方ともう片方を意味している)。
この実験結果から実際に途中から事後分布からのサンプリングの様相を呈しているのではないかと想像することができる。
このほかにLogistic RegressionとICAについても実験を行っている。
後続の論文
Stochastic Gradient Riemannian Langevin Dynamics on the Probability Simplex
Approximation Analysis of Stochastic Gradient Langevin Dynamics by using Fokker-Planck Equation and Ito Process
要約: Using Deep Learning to Reveal the Neural Code for Images in Primary Visual Cortex
https://arxiv.org/pdf/1706.06208.pdf
この論文では、猿に見せた画像を入力として猿のV1(一次視覚野)のニューロン355個それぞれの発火を予測するようなCNNの学習を試みている。
予測のために用いたモデルは以下:
発火予測実験を通じて以下の結果を得ている:
- 学習されたモデルにより予想されたニューロンの発火率は、実際にニューロンが発火したかどうかと非常に高い相関(r=0.56±0.02)があった。
- 線形モデルを用いた場合に得られる相関はr=0.008±0.003とCNNを用いて予測した場合と比べてかなり低かった。
- 実験で発火を予測する対象とした355個のニューロンのうち、54個はかなり理論値に近い予測精度を発揮するモデルを学習させることができた。
- 方位選択性のあるニューロンはそうでないニューロンに比べCNNによる発火予測の精度が高かった。
さらに、Deep Dream風の手法を用いて各ニューロンを予測する出力変数がどのような画像に反応するかを可視化した結果が以下:
単純なものに反応するようなニューロンもある一方で、抽象的なものに反応するようなニューロンもあるということが予想できるような新たな結果が得られている!
要約: Multi-view Recurrent Neural Acoustic Word Embeddings
https://arxiv.org/pdf/1611.04496.pdf
音声データと文字列データについて、両者の共通空間への射影をそれぞれ学習させる研究。 目標は文字列cとして表現される単語を発音する音声データxがあった時に、両者を音声データの共通空間への射影f(x)と文字列データの共通空間への射影g( c)を用いてそれぞれ共通空間に飛ばし、その空間におけるf(x)とg( c)のcosine類似度が大きくなるようfとgを学習させることである。
評価関数
以下の4種類の評価関数を使用してfとgを学習させる。 また、marginをadaptiveに設定することも試している: ここで、editdisはLevenshtein距離(編集距離)である。このmargin設定法はobj0についてのみ試しているとのこと。
射影のためのNetwork
実験
学習したモデルが音声データ/文字列データの類似度を計測する能力があるかを確認するために実験を三つ行っている。
二つの音声データが与えられ、それが同じ単語を発音しているかどうかを見分ける実験
音声データと文字列が与えられ、それらが同じ単語のものかどうかを見分ける問題
文字列二つが与えられた場合に、その文字列のLevenshtein距離と学習したモデルによって計算された類似度の間にどの程度相関があるかを計測する実験
可視化
t-SNEを用いた特徴量の可視化も行っている。同じ単語を発音している音声データは同じような場所に、またLevenshtein距離の近い文字列は同じような場所に射影されることがわかる。
要約: Bayesian Optimization with a Finite Budget: An Approximate Dynamic Programming Approach
N回しか関数実行ができないという設定のもとでのBayesian Optimizationのアルゴリズムを考える論文。 Bayesian Optimizationは基本的に次のステップだけを考えるgreedyなアルゴリズムであるが、この論文ではrollout[1]という近似DPアルゴリズムを活用して数ステップ分の先を考慮しながら選択を行う手法を提案している。
はじめに、N-step目までの報酬をなるべく大きくするためには1-step目の選択をどうするべきかを考える。
k-step目のrandom disturbanseをwr、control(方策と考えて良い)をur、状態をzr、得られる報酬をrk(zk, uk, wk)、動的システムの状態を吐き出す関数をF(zk, uk, wk)とすると、N-step目に得られる報酬をなるべく大きくするためには、以下の式を入れ子式に解いていき、最後に得られたu1=J1(z1)を1-step目の方策として採用すれば良いわけである:
(なお上記の期待値はrandom disturbanseについてとっている)
Bayesian OptimizationのN回目までの利得関数の和を最大化したい場合には、上記の報酬r_kとして対象とする利得回数をそのまま採用すれば良い。 が、上記の式をそのまま解くのは大変である。
そこで、入れ子式に最大値を求めていくことにより最適な方策を求めるという戦略を捨て、代わりに最適なpolicyと近そうなbase policy πをこちら側で定義して(後方の説明参照)、そのpolicyを用いて次のステップのxを選択するという戦略を採用する。こうすることで非常に計算の大変な入れ子式に最大値を求める処理を省略することが可能になる。
また、期待値を計算する際は実際に積分を計算することは困難なのでガウス-エルミート求積法による近似計算に置き換える。
まとめると以下の式中に出てくるH~n(Sn)で上記のJnを置き換えることになる:
なおαnはガウス-エルミート求積法の係数である。またSnはサンプリングしたxとそのxをもとにGPからサンプリングした出力値fのペアの集合である:
base policyとしては、N-step目(最終step)でなければExpected Improvement(EI)を最大化するxを選択し、N-step目であればGPの平均値を最小にするxを選択するという戦略を採用している。
実験結果はいい感じ。
Reference
[1] D. P. Bertsekas. Dynamic programming and optimal control, volume 1. Athena Scientific, 1995
要約: One Model To Learn Them All
https://arxiv.org/pdf/1706.05137.pdf
Google Brainからの論文
多様なドメインからなる複数タスクを同時に学習することのできるMultiModel Architectureを提案。
MultiModelは「入力データから前半部の中間特徴量への変換器」と「後半部の中間特徴量からの出力データへの変換器」をタスクごとに用意し、「前半部の中間特徴量から後半部の中間特徴量への変換器」はタスク間で共有するというような構造になっている。
なおこの論文ではタスクごとに用意するNetはModality-Netと呼んでいる。
「前半部の中間特徴量から後半部の中間特徴量への変換器」は、①Modality-Netによって出力された中間特徴量をEncoderで変換→②EncoderとDecoderの出力をMixerで変換→③Mixerの出力をDecoderで変換、という流れで変換をしており、得られたDecoderの出力をModality-Netに入力することによって出力を生成する。
Encoder / Mixer / Decoderの図は以下。複雑。
実験ではMultiModelを用いて8種のタスクを同時に解くということに取り組んでいる。 タスクによっては精度が向上しているものの、ImageNet識別や英語からドイツ語への翻訳タスクのようにほぼ精度が変化していないタスクもあった。
確かに複数タスクで学習させることによってモデル正則化の効果を引き起こすことができるということは示唆できているかもしれないが、精度が上昇したタスクについてはそもそもそのタスクに対して複雑すぎるモデルを用いているのではという気もする。