xiangze's sparse blog

機械学習、ベイズ統計、コンピュータビジョンと関連する数学について

Fisher行列とKL Divergenceの関係とEMアルゴリズム、変分ベイズ推定について少し

Relations between Kullback-Leibler distance and Fisher information
に書いてあることそのものです。行列といいながら1次元のときのことしか書いていないのが良くないです(上記ドキュメントではmatrixとは言っていない)。

示したいこと

\( \frac{\partial^2 D(p_t||p_u)}{\partial^2 t}|_{t=u}=\int_\Omega ( \frac{ d log p_t(x)}{d\theta})^2 p_t(x) dx \)

deBruijn identitiesあるいはBruijn‘s identitiesと呼ばれるらしいです。
http://djafari.free.fr/MaxEnt2014/papers/47_paper.pdf

導出

確率分布関数p_0(x),p_1(x)に対する

\( p_t(x)=\frac{p_0(x)^{1-t}p_1(x)^t}{ N_t } \)
\( N_t =\int_\Omega p_0(x)^{1-t}p_1(x)^t dx \)
という量に対して
KL Divergence
\( D(p_t||p_u)=\int_\Omega p_t(x)log(\frac{p_t(x)}{p_u(x)}) dx \)
をlog内にp_t(x),p_u(x)の式を代入し計算することで
\( D(p_t||p_u)= \int_\Omega (t-u)p_t(x)log(\frac{p_1(x)}{p_0(x)})dx-log\frac{N_t}{N_u} \)
となる。*1
上記documentではその前に積分領域を分割することでFisher行列の有限性を示している。
log(p_t(x))を微分することで
\( \frac{dp_t(x)}{dt}=p_t(x)(log\frac{p_1(x)}{p_0(x)}-\frac{dlogN_t}{dt}) \)
\( \frac{dlogN_t}{dt}=\int_\Omega p_t(x) log(\frac{p_1(x)}{p_0(x)}) dx \) (KL-Divergenceに似ている)
となることが分かるので、KL-divergenceのt微分
\( \frac{\partial D(p_t||p_u)}{\partial t}= \int_\Omega (t-u)\frac{dp_t(x)}{dt} log\frac{p_1(x)}{p_0(x)} dx+\int_\Omega p_t(x) log\frac{p_1(x)}{p_0(x)}dx-\frac{dlog N_t}{dt}\)
\( = (t-u)\int_\Omega p_t(x)log \frac{p_1(x)}{p_0(x)}(log\frac{p_1(x)}{p_0(x)}-\frac{log N_t}{dt})dx \)
となる。
一方p_t(x)のFisher行列F(t)
\( F(t)=\int_\Omega ( \frac{ d log p_t(x)}{dt})^2 p_t(x) dx \)

\( \frac{dlog p_t(x)}{dt}= log\frac{p_1(x)}{p_0(x)}- \int_\Omega p_t(x)log\frac{p_1(x)}{p_0(x)} dx \) *2
を用いて
\( F(t)=\int_\Omega p_t(x) (log\frac{p_1(x)}{p_0(x)})^2 dx -(\int_\Omega p_t(x) log\frac{p_1(x)}{p_0(x)}dx )^2 \)
\( F(t)=\int_\Omega p_t(x) (log\frac{p_1(x)}{p_0(x)})^2 dx -(\frac{dlogN_t}{dt} )^2 \)
と書ける。

これらを比較すると(\( \frac{dlogN_t}{dt}=\int_\Omega p_t(x) log(\frac{p_1(x)}{p_0(x)}) dx \) に再度注目して)
\( \frac{\partial D(p_t||p_u)}{\partial t}=(t-u)F(t) \)
であることがわかる。
さらに微分して
\( \frac{\partial^2 D(p_t||p_u)}{\partial^2 t}|_{t=u}=F(u) \)
となる。また
\( D(p_t||p_0)=\int_0^t uF(u)du \)
\( D(p_1||p_0)+D(p_0||p_1)=\int_0^1 F(t)dt \)

感想

  • これがすぐに理解できなかったのはやばい。
  • 英語が苦手です。
  • sympyでやろう。

付録

英語が苦手なので日本語の文書を紹介します。

Kullback–Leibler DivergenceとEMアルゴリズムの幾何的解釈

EMアルゴリズムはパラメータθに対してモデルの隠れた変数zとデータxに対する対数尤度の平均
\( Q(\theta)= E[log( f(z|\theta) |x,\theta ) ] =\int f(z|\theta,x) log(z|\theta) dx \)

を計算するステップ(E-step)とQ(\theta)に対する最小のθを求める(M-step)によって構成される。
この2つのステップは特定の条件下では2つの異なる確率分布族の作る多様体への射影の繰り返しとして理解することができる。

EMアルゴリズムの幾何学

変分ベイズ推定

一方変分ベイズ推定の考え方では最尤なz,θではなく、データDに対するその分布関数p(z|D),p(θ|D)の推定を行う。
\( q(z,\theta|D)=q(z)q(\theta) \)
という近似(因子分解)をすることで最大化すべき量である変分自由エネルギー(KL-Divergence)
\( F(q)=\int \int q(z,\theta|D) log \frac{p(D,z,\theta)}{q(z,\theta|D) } dz d\theta \)
過学習を防ぐ正則化項を含む形になり、データ数を多くした極限においてはBIC(MDL)に一致することが示される。
自然言語処理のための変分ベイズ法
変分ベイズについての資料まとめ(随時更新)

Reference?

Fisher information metric - Wikipedia, the free encyclopedia
リーマン計量としてのFisher行列 複素数への拡張でFubini–Study 計量が出てきます

*1: p_t(x)は分布p_0(x)とp_1(x)の中間にあるものと解釈できる。実際 \( log(p_t(x)=(1-t)*log(p_0(x) )+t*log(p_1(x) )-(logN_t) \) で線形補間のようになっている。

*2:最初にlogを計算すると良い