RigelのR言語メモであーる(R言語だけとは言っていない)

RigelのR言語メモであーる(主にpython)

興味あることや趣味、やったことについて書くよ

最大エントロピー法による正規分布の導出

正規分布。一番使われる確率分布ですね。
様々な統計手法や機械学習で、前提としてデータに正規分布を仮定している場合が多いです。
みなさん知っての通り正規分布確率密度関数
{ \displaystyle f(x)=\frac{1}{\sqrt{2\pi\sigma^2}}\exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right) }
ですね。本などでいきなりでてきますが、この関数がどこからきたのか疑問に思う人は少なくないと思います。
その導出方法はいくつかありますが、今回は最大エントロピー法により正規分布を導出します。

情報量とエントロピー

ある事象{ \displaystyle x }を観測したときの情報量{ \displaystyle h(x) }とはどんなでしょうか。
情報量は確率変数{ \displaystyle X }の値を得たときの「驚きの度合い」と言えます。
つまり、滅多に起こらない事象は情報量が大きいですし、頻繁に起こる事象は情報量が小さいです。
天気が晴れだった場合は大きなニュースにならないですが、もし槍が降ってきたら大ニュースになります。
従って、ある事象{ \displaystyle x }の情報量{ \displaystyle h(x) }は、確率分布{ \displaystyle p(x) }に依存していて、さらに確率{ \displaystyle p(x) }の単調な関数としたいです(仮定1)。
次に、無関係な2つの事象{ \displaystyle x,y }を観測したときの情報量について考えます。
2つの事象が無関係なら両方を観測したときの情報量は、それぞれを観測したときの情報量の和としたいです。
すなわち、{ \displaystyle h(x,y)=h(x)+h(y) }としたいです(仮定2)。
この二つの仮定から、情報量は
{ \displaystyle h(x)=-\log p(x) }
と定義できます。
なぜならこのように定義することで仮定1を満たすことは容易に分かりますし、
{\begin{eqnarray}
h(x,y)&=&-\log_2 p(x,y)\\
&=&-\log_2 p(x)p(y)\\
&=&-\log_2 p(x)-\log_2 p(y)\\
&=&h(x)+h(y)
  \end{eqnarray}}
となり仮定2も満たすことが分かります。ただし、対数の底は一般に用いられている2としておきます。
ここで、マイナス記号は情報量の値が0以上であることを保証しています。
さて、情報量について定義できたのでエントロピーに進みます。
ある確率変数{ \displaystyle X }に対するエントロピー{ \displaystyle H(X) }とはいわゆる平均情報量です。
{ \displaystyle X }は確率変数なのでいろいろな値をとります。よって、情報量もいろいろな値になります。
その情報量の平均はいくつですか?というのがエントロピーです。
従って、{ \displaystyle X }が離散の確率変数の場合は
{\begin{eqnarray}
H(X)=-\sum_x p(x)\log_2 p(x)
  \end{eqnarray}}
となりますし、連続の確率変数の場合は
{\begin{eqnarray}
H(X)=-\int_{-\infty}^{\infty} p(x)\log_2 p(x)dx
  \end{eqnarray}}
となります。
最大エントロピー法とはこのエントロピーが最大となる{ \displaystyle p(x) }を求めることです。

エントロピーの最大化(離散系での場合)

まず手始めに、確率変数{ \displaystyle X }が離散値の場合について考えます。
確率変数{ \displaystyle X }{ \displaystyle x_1,x_2,...,x_N }の値をとるとします。
{\begin{eqnarray}
H(X)=-\sum_{i=1}^N p(x_i)\log_2 p(x_i)
  \end{eqnarray}}
を最大化する{ \displaystyle p(x_i) }を求めたいわけですが、一つ制約条件があります。それは、
{\begin{eqnarray}
\sum_{i=1}^N p(x_i)=1
  \end{eqnarray}}
です。全事象が起きる確率は1になるよというコルモゴロフの第二公理です。
従って、どうやって最大化するかというと、ラグランジュの未定乗数法を使います。
ラグランジュの未定乗数法の詳細については他のブログや本を参考にしてください。
では、ラグランジュの未定乗数法の処方箋に従って、制約条件を
{\begin{eqnarray}
g(p)=\sum_{i=1}^N p(x_i)-1=0
  \end{eqnarray}}
と書き換えて、ラグランジュ関数を
{\begin{eqnarray}
L(p)=H(X)+\lambda g(p)
  \end{eqnarray}}
とします。
ここである{ \displaystyle p(x_i) }に着目して偏微分してイコール0とすると、
{\begin{eqnarray}
\frac{d L(p)}{d p(x_i)}=-\log_2 p(x_i)-\frac{1}{\log 2}+\lambda=0
  \end{eqnarray}}
となります。整理して、
{\begin{eqnarray}
\log_2 p(x_i)=-\frac{1}{\log 2}+\lambda
  \end{eqnarray}}
となります。
ここで右辺に{ \displaystyle x_i }がないことから、
{\begin{eqnarray}
p(x_1)=p(x_2)=,...,=p(x_N)
  \end{eqnarray}}
となることが分かりまして、制約条件を考慮すると、
{\begin{eqnarray}
p(x_i)=1/N\ \ (i=1,2,...,N)
  \end{eqnarray}}
となります。
従って、確率変数{ \displaystyle X }が離散値の場合、最初の制約条件のもとでエントロピーが最大となる確率分布は一様分布であることが分かりました。

エントロピーの最大化(連続系での場合)

ではいよいよ本題、確率変数{ \displaystyle X }が連続値の場合について考えます。
先ほどの離散系での場合と違い、連続系での場合は以下の3つの制約条件のもとでエントロピーを最大化します。
{\begin{eqnarray}
&&\int_{-\infty}^{\infty} p(x)dx=1\\
&&\int_{-\infty}^{\infty} xp(x)dx=\mu\\
&&\int_{-\infty}^{\infty} (x-\mu)^2 p(x)dx=\sigma^2
  \end{eqnarray}}
このような制約条件のもとでエントロピーを最大化する密度関数{ \displaystyle p(x) }はなんだろうか?という問題です。
すでにネタバレしてますが、正規分布がでてきます。
さっそく、制約条件を先ほどと同様に書き換えて、ラグランジュ関数は、
{\begin{eqnarray}
L&=&-\int_{-\infty}^{\infty} p(x)\log p(x)dx+\lambda_1 \left(\int_{-\infty}^{\infty}p(x)dx-1\right)\\
&&\ \ \ +\lambda_2 \left(\int_{-\infty}^{\infty}xp(x)dx-\mu\right)+\lambda_3 \left(\int_{-\infty}^{\infty}(x-\mu)^2 p(x)dx-\sigma^2\right)\\
&=&\int_{-\infty}^{\infty}\left( -p(x)\log p(x) +\lambda_1 p(x) +\lambda_2 xp(x) +\lambda_3 (x-\mu)^2 p(x) \right)dx-\lambda_1-\lambda_2\mu-\lambda_3\sigma^2
  \end{eqnarray}}
となります。ここで、エントロピーの対数は自然対数としておきます(としても最大化する関数が定数倍になるだけなので、本質的には変わらない)。
この関数をまずは{ \displaystyle p(x) }偏微分してイコール0とおきます。
関数で偏微分とはなんぞやって感じですが、細かいことは置いときます(汎関数とか変分法とかよく分かっていない)。
オイラー方程式(よく分かっていない)より、
{\begin{eqnarray}
\frac{\partial L}{\partial {p(x)}}= -\log p(x) -1 +\lambda_1+\lambda_2 x+ \lambda_3(x-\mu)^2 =0
  \end{eqnarray}}
となりまして、{ \displaystyle p(x) }について解くと、
{\begin{eqnarray}
p(x)&=&\exp\left( -1+\lambda_1+\lambda_2 x+ \lambda_3(x-\mu)^2  \right)\\
&=&\exp\left( -1+\lambda_1+\mu^2\lambda_3-\frac{\lambda_3}{4}\left(\frac{\lambda_2}{\lambda_3}-2\mu \right)^2+ \lambda_3 \left( x+\frac{1}{2}\left( \frac{\lambda_2}{\lambda_3}-2\mu \right)\right)^2 \right)\\
&=&\exp\left( -1+\lambda_1+\mu^2\lambda_3-\frac{\lambda_3}{4}\left(\frac{\lambda_2}{\lambda_3}-2\mu \right)^2+ \lambda_3 \left( x-\mu+\frac{\lambda_2}{2\lambda_3} \right)^2 \right)\\
&=&\exp\left( -1+\lambda_1+\mu^2\lambda_3-\frac{\lambda_3}{4}\left(\frac{\lambda_2}{\lambda_3}-2\mu \right)^2\right)\exp\left(\lambda_3 \left( x-\mu+\frac{\lambda_2}{2\lambda_3} \right)^2 \right)
  \end{eqnarray}}
となります。途中の式変形は今後のための平方完成です。
これから、{ \displaystyle \lambda_1,\lambda_2,\lambda_3 }を消去していきます。
ちなみに、ラグランジュ関数を{ \displaystyle \lambda_1,\lambda_2,\lambda_3 }偏微分すると、3つの制約条件がでてきます。

  • { \displaystyle \lambda_1 }の消去

まず、1つ目の制約条件を使います。
{\begin{eqnarray}
&&\int_{-\infty}^{\infty} p(x)dx\\
=&&\int_{-\infty}^{\infty} \exp\left( -1+\lambda_1+\mu^2\lambda_3-\frac{\lambda_3}{4}\left(\frac{\lambda_2}{\lambda_3}-2\mu \right)^2\right)\exp\left( \lambda_3 \left( x-\mu+\frac{\lambda_2}{2\lambda_3} \right)^2\right)dx\\
=&& \exp\left( -1+\lambda_1+\mu^2\lambda_3-\frac{\lambda_3}{4}\left(\frac{\lambda_2}{\lambda_3}-2\mu \right)^2\right) \int_{-\infty}^{\infty} \exp\left(\lambda_3 \left( x-\mu+\frac{\lambda_2}{2\lambda_3} \right)^2 \right)dx\\
=&& \exp\left( -1+\lambda_1+\mu^2\lambda_3-\frac{\lambda_3}{4}\left(\frac{\lambda_2}{\lambda_3}-2\mu \right)^2\right) \sqrt{\frac{\pi}{-\lambda_3}}=1
  \end{eqnarray}}
となります。最後の式変形での積分ガウス積分です。また。{ \lambda_3<0 }とします。
最後の行から
{\begin{eqnarray}
\exp\left( -1+\lambda_1+\mu^2\lambda_3-\frac{\lambda_3}{4}\left(\frac{\lambda_2}{\lambda_3}-2\mu \right)^2\right) =\sqrt{\frac{-\lambda_3}{\pi}}
  \end{eqnarray}}
となります。
これを先ほどの{ \displaystyle p(x) }に代入して、
{\begin{eqnarray}
p(x)&=&\exp\left( -1+\lambda_1+\mu^2\lambda_3-\frac{\lambda_3}{4}\left(\frac{\lambda_2}{\lambda_3}-2\mu \right)^2\right)\exp\left(\lambda_3 \left( x-\mu+\frac{\lambda_2}{2\lambda_3} \right)^2 \right)\\
&=&\sqrt{\frac{-\lambda_3}{\pi}}\exp\left(\lambda_3 \left( x-\mu+\frac{\lambda_2}{2\lambda_3} \right)^2 \right)
  \end{eqnarray}}
と無事に{ \displaystyle \lambda_1 }を消去することができ、一気に正規分布に近づきました。

  • { \displaystyle \lambda_2 }の消去

続いて、2つ目の制約条件を使います。
{\begin{eqnarray}
&&\int_{-\infty}^{\infty} xp(x)dx\\
=&&\int_{-\infty}^{\infty} \left( x-\mu+\frac{\lambda_2}{2\lambda_3} \right)p(x)dx-\int_{-\infty}^{\infty} \left( -\mu+\frac{\lambda_2}{2\lambda_3} \right)p(x)dx\\
=&&\int_{-\infty}^{\infty} \left( x-\mu+\frac{\lambda_2}{2\lambda_3} \right)\sqrt{\frac{-\lambda_3}{\pi}}\exp\left(\lambda_3 \left( x-\mu+\frac{\lambda_2}{2\lambda_3} \right)^2 \right)dx-\left( -\mu+\frac{\lambda_2}{2\lambda_3} \right)\int_{-\infty}^{\infty} p(x)dx\\
=&&\frac{1}{2\lambda_3}\sqrt{\frac{-\lambda_3}{\pi}}\left[ \exp\left(\lambda_3 \left( x-\mu+\frac{\lambda_2}{2\lambda_3} \right)^2 \right)\right]_{-\infty}^{\infty}-\left( -\mu+\frac{\lambda_2}{2\lambda_3} \right)\\
=&&0-\left( -\mu+\frac{\lambda_2}{2\lambda_3} \right)\\
=&&\mu-\frac{\lambda_2}{2\lambda_3}=\mu
  \end{eqnarray}}
となります。3行目から4行目の第2項は1つ目の制約条件を用いました。4行目から5行目の第1項は{ \lambda_3<0 }を用いました。
最後の行から
{ \lambda_2=0 }
となります。
他の本やブログで2つ目制約条件がないのを見てちょっとよく分からなかったのですが、実はあってもなくても一緒だったわけですね。
{ \lambda_2 }を先ほどの{ p(x) }へ代入して、
{\begin{eqnarray}
p(x)&=&\sqrt{\frac{-\lambda_3}{\pi}}\exp\left(\lambda_3 \left( x-\mu+\frac{\lambda_2}{2\lambda_3} \right)^2 \right)\\
&=&\sqrt{\frac{-\lambda_3}{\pi}}\exp\left(\lambda_3 \left( x-\mu \right)^2 \right)
  \end{eqnarray}}
と無事に{ \displaystyle \lambda_2 }を消去することができ、あとは{ \lambda_3 }だけ、もう一息です。

  • { \displaystyle \lambda_3 }の消去

最後に、3つ目の制約条件を使います。
{\begin{eqnarray}
&&\int_{-\infty}^{\infty} (x-\mu)^2 p(x)dx\\
=&&\int_{-\infty}^{\infty} (x-\mu)^2 \sqrt{\frac{-\lambda_3}{\pi}}\exp\left(\lambda_3 \left( x-\mu \right)^2 \right)dx\\
=&&\sqrt{\frac{-\lambda_3}{\pi}} \int_{-\infty}^{\infty} (x-\mu)^2 \exp\left(\lambda_3 \left( x-\mu \right)^2 \right)dx\\
=&&\sqrt{\frac{-\lambda_3}{\pi}} \frac{1}{-2\lambda_3} \sqrt{\frac{\pi}{-\lambda_3}}\\
=&& \frac{1}{-2\lambda_3} = \sigma^2
  \end{eqnarray}}
となります。途中、ガウス積分の公式的なものを用いました。
ここまでくればあとはもう少しですが、最後まで丁寧に書きます。
最後の行から
{ \lambda_3=\frac{1}{-2\sigma^2} }
となります。
ちゃんと{ \lambda_3<0 }となりました。
{ \lambda_3 }を先ほどの{ p(x) }へ代入して、
{\begin{eqnarray}
p(x)&=&\sqrt{\frac{-\lambda_3}{\pi}}\exp\left(\lambda_3 \left( x-\mu \right)^2 \right)\\
&=&\frac{1}{\sqrt{2\pi\sigma^2}}\exp\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)
  \end{eqnarray}}
と無事に{ \displaystyle \lambda_3 }を消去することができ、正規分布がでてきました。
従って、確率変数{ \displaystyle X }が連続値の場合、最初の制約条件のもとでエントロピーが最大となる確率分布は正規分布であることが分かりました。

まとめ

最大エントロピー法により正規分布を導出しました。
自然界に存在するものは何かを最大化(もしくは最小化)した結果生まれたものが多いですよね。
正規分布もそのうちの一つです。
改めて眺めてみると、エントロピー正規分布情報理論から統計学への架け橋のようですね。
それから、3つ制約条件を挙げましたが、制約条件がまた違う時には別の分布が出てきます。
ちなみに、下の参考図書の演習問題1.34に似たような問題がありますので、興味のあるかたはどうぞ。
この記事が誰かの理解の助けになると嬉しいです。
間違いの指摘や質問等ありましたら、お問い合わせフォームやコメントから気軽にお願いします。

参考図書

パターン認識と機械学習 上

パターン認識と機械学習 上

続きの記事

strawberry-kyon.hateblo.jp