あざらしとペンギンの問題

主に漫画、数値計算、幾何計算、TCS、一鰭旅、水族館、鰭脚類のことを書きます。

情報がない

前回の話で、エントロピーの大小が当たりのつけにくさを表していることを述べました。この見方によれば、エントロピーが最大となる確率分布のもとでは、出てくる要素の予測が全くできない、言い換えれば何の情報も与えられていないと言うことができます。前回は条件がない場合にそのような分布が一様分布であることを述べましたが、それでは条件がある場合はどうなるでしょうか?というのが今回の話です。

最大エントロピー原理

与えられた条件下でエントロピーを最大にする分布とは、すなわち、条件以外の情報を全く含まない最も普遍的な分布であるということです。この発想によって普遍的な分布を選ぶ考え方を「最大エントロピー原理」と言います。*1なお、確率が非負であることと総和が1であることは自動的に要請されます。

最初に述べたように、一様分布は最大エントロピー原理の適用例になっています。この場合、分布を制限する条件は何もなくて、確率の和が1であることだけが要請されます。最大エントロピー原理によれば、選ばれる分布 p\displaystyle \sum_{x \in \mathcal{X}} p(x) = 1 (簡単のため確率の非負性は一旦忘れることとします。)の条件下でエントロピー \displaystyle \mathrm{H}(p) = - \sum_{x \in \mathcal{X}} p(x) \log p(x) を最大にする分布です。前回の議論を踏まえれば、\mathrm{D}(p || U) \geq 0 において等号が成り立つ分布、すなわち一様分布 p = U が選ばれる分布と決まります。しかし、後に一般化することを考慮して、条件下で関数の最大(小)点を求める一般的な方法である「ラグランジュの未定乗数法」を用いてエントロピーを最大化する方法を示します。

ラグランジュの未定乗数法は、微分積分学の教科書に載っていると思いますが、関数の束縛下での極値を求める方法です。正確には極値をとる点が満たすべき必要条件を与えます。ラグランジュの未定乗数法を定理の形で述べると次のようになります。

f(\mathbf{x}) および g_i(\mathbf{x}) \;(i = 1, \dots, m) をなめらかな n 変数実数値関数とする。ただし、m < n とし、\nabla g_i(\mathbf{x}) \; (i=1,\dots,m) は線形独立であるとする。ここで、実数の組 \Lambda = (\lambda_1, \dots, \lambda_m) に対して \mathbf{x} の関数 L(\mathbf{x} ; \Lambda)\displaystyle L(\mathbf{x} ; \Lambda) := f(\mathbf{x}) - \sum_{i=1}^m \lambda_i g_i(\mathbf{x}) で定義する。

補題5: 関数 f(\mathbf{x}) が束縛条件 g_i(\mathbf{x}) = 0 \;(i = 1, \dots, m) の下で点 \mathbf{x} において極値をとるならば、ある \Lambda が存在して \nabla L(\mathbf{x} ; \Lambda) = \mathbf{0} を満たす。

証明は教科書に載っていますが、直感的に導いた方が教育的だと思われるので、最後に付録としてつけておきます。

条件がない場合

手始めに、ラグランジュの未定乗数法を用いて、何の条件もない場合に最大エントロピー原理から導かれる分布を求めてみましょう。

集合を \mathcal{X} = \{ 1, 2, \dots, N \} と見なして p_i := p(i)\;(i=1,\dots,N) と置くことにします。

変数: \mathbf{p} = (p_1, \dots, p_N)
目的関数(最大化): \displaystyle \mathrm{H}(\mathbf{p}) = - \sum_{i=1}^N p_i \log p_i
束縛条件: \displaystyle \sum_{i=1}^N p_i = 1

まず、ラグランジュの未定乗数法の処方箋に従って、条件を \displaystyle g(\mathbf{p}) := \sum_{i=1}^n p_i -1 = 0 と書き、

L(\mathbf{p} ; \lambda) := \mathrm{H}(\mathbf{p}) - \lambda g(\mathbf{p})

とします。ここで各 i = 1,\dots,N について

\displaystyle \frac{\partial \mathrm{H}}{\partial p_i}(\mathbf{p}) = - \log p_i - \frac{1}{\ln 2}
\displaystyle \frac{\partial g}{\partial p_i}(\mathbf{p}) = 1

から

\displaystyle \frac{\partial L}{\partial p_i} (\mathbf{p} ; \lambda) = - \log p_i - \frac{1}{\ln 2} - \lambda

となります。\displaystyle \frac{\partial L}{\partial p_i} (\mathbf{p} ; \lambda) = 0 とすれば関係式

\displaystyle \log p_i = - \frac{1}{\ln 2} - \lambda

が得られます。ここで、右辺が i に依存しないことから

p_1 = p_2 = \dots = p_N

であり、これらの和が1であることから

p_i = 1/N\; (i=1,\dots,n)

が出ます。あとはこれを目的関数に代入すれば

\displaystyle \mathrm{H}(\mathbf{p}) = -\sum_{i=1}^N \frac{-\log N}{N} = \log N

極値の候補として得られます。しかし、これが実際に最大値を達成することを示すのは、実は意外と困難だったりします。ただ、この場合は停留点が1つしかないことと、それより小さい値を取る点が存在することから、停留点が最大点であることが判ります。

というわけで、最大エントロピー原理から一様分布が得られることが判りました。

条件がある場合

それでは、もっと条件をつけて、\displaystyle \sum_{i=1}^N E_i p_i = U とした場合に最大エントロピー原理から導かれる分布はどうなるでしょうか?この条件の意味づけとしては、エネルギー E_i をとる確率が p_i であるときに、その期待値が一定値 U であることが考えられます。都合により今回はエントロピーの対数を自然対数で取ることにします。

変数: \mathbf{p} = (p_1, \dots, p_N)
目的関数(最大化): \displaystyle \mathrm{H}(\mathbf{p}) = - \sum_{i=1}^N p_i \ln p_i
束縛条件: \displaystyle \sum_{i=1}^N p_i = 1, \displaystyle \sum_{i=1}^N E_i p_i = U

今度は

\displaystyle g(\mathbf{p}) := \sum_{i=1}^N p_i - 1
\displaystyle h(\mathbf{p}) := \sum_{i=1}^n E_i p_i - U

未定乗数を \alpha, \beta として

L(\mathbf{p} ; \alpha, \beta) := \mathrm{H}(\mathbf{p}) - \alpha g(\mathbf{p}) - \beta h(\mathbf{p})

と置きます。それぞれの微分を計算すると

\displaystyle \frac{\partial \mathrm{H}}{\partial p_i}(\mathbf{p}) = - \ln p_i - 1
\displaystyle \frac{\partial g}{\partial p_i}(\mathbf{p}) = 1
\displaystyle \frac{\partial h}{\partial p_i}(\mathbf{p}) = E_i

となるので、

L(\mathbf{p} ; \alpha, \beta) = -\ln p_i - 1 - \alpha - \beta E_i

と計算されます。よって、L(\mathbf{p} ; \alpha, \beta) = \mathbf{0} とおくと関係式

\ln p_i = 1 - \alpha - \beta E_i

が得られます。これを変形すると

p_i = \exp(1-\alpha) \exp(-\beta E_i)

となります。ここで、確率の和が1であるという条件から、

\displaystyle Z(\beta) := \sum_{i = 1}^N \exp(-\beta E_i)

とおけば

\displaystyle \exp(1 - \alpha) = \frac{1}{Z(\beta)}

によって \alpha を消去できます。よって、\beta を未知のままとすれば、

\displaystyle p_i = \frac{\exp(-\beta E_i)}{Z(\beta)}

が得られます。

この分布は統計力学で言う所の「ボルツマン分布」(あるいは「ギブズ分布」)というものと同じ形をしています。というよりは、ボルツマン分布からエントロピーの式が導かれたのが先で、逆に最大エントロピー原理の下でボルツマン分布を復元できるというのが歴史的な順序です。ただ、ひとまずエントロピーを確率的不確定性の尺度として捉えれば、ボルツマン分布が最も普遍的な分布として選ばれることは注目に値する事実です。

最後に、未知変数として残った \beta は、期待値の条件から決めることができます。

まず重要な関係式として、Z(\beta)微分すると

\displaystyle \frac{\partial Z}{\partial \beta}(\beta) = -\sum_{i = 1}^N E_i \exp(-\beta E_i) =-\sum_{i = 1}^N E_i p_i  Z(\beta) = -U Z(\beta)

からエネルギーの期待値が出てきます。

すべての E_i が定数として与えられているとき、\betaU への依存性を見るために、期待値を微分してみましょう。

\displaystyle \frac{\partial}{\partial \beta} \sum_{i=1}^N E_i p_i = \sum_{i=1}^N E_i \frac{\partial}{\partial \beta} \frac{\exp(-\beta E_i)}{Z(\beta)}
\displaystyle = \sum_{i=1}^N E_i \exp(-\beta E_i) \frac{-E_i Z(\beta) - \frac{\partial Z}{\partial \beta}(\beta)}{Z(\beta)^2}
\displaystyle  = \sum_{i=1}^N E_i \exp(-\beta E_i) \frac{-E_i + U}{Z(\beta)}
\displaystyle  = -\sum_{i=1}^N E_i^2 p_i + \sum_{i=1}^N E_i p_i U
= - \left(\langle E_i^2 \rangle - \langle E_i \rangle^2 \right)

が出ます。ただし、\langle \cdot \rangle は中のものの期待値を表します。ここで、括弧の中は分散公式そのものであることが判ります。すると、分散は非負なので

\displaystyle \frac{\partial}{\partial \beta} \sum_{i=1}^N E_i p_i = -\mathrm{Var}(E_i) \leq 0

となります。この式の意味するところは、\displaystyle \sum_{i=1}^N E_i p_i = U の左辺が \beta に関して単調減少であるということです。よって、U が大きいほど \beta が小さいことが判ります。

この \beta統計力学では温度の逆数として振る舞うことから「逆温度」と呼ばれています。直感的には系のエネルギー的な安定性を表す秩序パラメータであると考えられます。もし \beta=0 ならば、すべての状態が等しい確率で出現するのでエネルギー的に不安定であり、\beta が大きいほどエネルギーが小さい状態に集中するので安定と考えられます。

まとめ

今回は、最大エントロピー原理とその例を紹介しました。これは、与えられた情報以外には何の情報も用いないという意味で普遍的な分布を選ぶ方法であり、簡単な場合の計算はラグランジュの未定乗数法などによって行うことができます。それによって、何の情報も与えられていない場合は一様分布が、期待値一定の元ではボルツマン分布が得られました。

ラグランジュの未定乗数法

付録として、ラグランジュの未定乗数法の証明を書いておきます。是非、2、3変数の場合にベクトルを手で書いて理解を深めましょう。

f(\mathbf{x}) および g_i(\mathbf{x}) \;(i = 1, \dots, m) をなめらかな n 変数実数値関数とする。ただし、m < n とし、\nabla g_i(\mathbf{x}) \; (i=1,\dots,m) は線形独立であるとする。ここで、実数の組 \Lambda = (\lambda_1, \dots, \lambda_m) に対して \mathbf{x} の関数 L(\mathbf{x} ; \Lambda)L(\mathbf{x} ; \Lambda) := f(\mathbf{x}) - \lambda_i g_i(\mathbf{x}) で定義する。

補題5: 関数 f(\mathbf{x}) が束縛条件 g_i(\mathbf{x}) = 0 \;(i = 1, \dots, m) の下で極値をとるための必要条件は、ある \Lambda が存在して \nabla L(\mathbf{x} ; \Lambda) = \mathbf{0} を満たすことである。

証明: まず、束縛条件 g_i(\mathbf{x}) = 0 で定められる(超)曲面

S_i := \{ \mathbf{x} \in \mathbb{R}^n : g_i(\mathbf{x}) = 0 \}

について考えます。これの点 \mathbf{x} における接平面 P_{i, \mathbf{x}} を考え、任意に点 \mathbf{y} \in P_{i, \mathbf{x}} を取ります。すると、ベクトル \mathbf{y} - \mathbf{x} は曲面 S_i の接ベクトルとなります。点 \mathbf{x} を始点とするベクトルが接ベクトルであるとは、その方向への微分係数が0となることを言います。すなわち、接ベクトルは

\nabla g_i(x) \cdot (\mathbf{y} - \mathbf{x}) = 0

を満たすものとして定められます。言い換えれば、ベクトル \nabla g_i (\mathbf{x})接平面 P_{i, \mathbf{x}} の法ベクトルです。よって、接平面 P_{i, \mathbf{x}}

P_{i, \mathbf{x}} = \{ \mathbf{y} : \nabla g_i(x) \cdot (\mathbf{y} - \mathbf{x}) = 0\}

と書くことができます。

これをすべての g_i について考えます。前提として曲面の共通部分

S := \{ \mathbf{x} \in \mathbb{R}^n : \forall i \in \{ 1,\dots,m\} ; g_i(\mathbf{x}) = 0 \} = S_1 \cap \dots \cap S_m

は空でないとします。(空ならばすべての条件を満たすことができないので解はありません。)このとき、点 \mathbf{x} における接平面 P_{\mathbf{x}}

P_{\mathbf{x}} = \{ \mathbf{y} : \forall i \in \{ 1,\dots,m\} ; \nabla g_i(x) \cdot (\mathbf{y} - \mathbf{x}) = 0\} = P_{1, \mathbf{x}} \cap \dots \cap P_{m, \mathbf{x}}

となります。よって、任意の y \in P_{\mathbf{x}}\Lambda = (\lambda_1, \dots, \lambda_m) に関して

\displaystyle \left( \sum_{i=1}^m \lambda_i \nabla g_i (\mathbf{x}) \right) \cdot (\mathbf{y} - \mathbf{x}) = 0

が成り立ちます。先と同様にして、これは任意の \lambda に関してベクトル

\displaystyle \mathbf{z}_{\Lambda} := \sum_{i=1}^m \lambda_i \nabla g_i (\mathbf{x})

接平面 P_{\mathbf{x}} の法ベクトルであることを意味します。

P_{\mathbf{x}} の法ベクトルの全体を P_{\mathbf{x}}^{\bot} で表すことにします。これは線型空間になっています。曲面 S および接平面 P_{\mathbf{x}} の次元は n - m なので、P_{\mathbf{x}}^{\bot} の次元は残りの m です。ここで、\nabla g_i(\mathbf{x}) \in P_{\mathbf{x}}^{\bot} \; (i=1,\dots,m) の線形独立性を用いると、\nabla g_i(\mathbf{x}) \; (i=1,\dots,m)P_{\mathbf{x}}^{\bot} の基底となります。すなわち、P_{\mathbf{x}}^{\bot} の任意のベクトルは、ある \Lambda をとれば \mathbf{z}_{\Lambda} の形で表されます。

他方、関数 f が束縛条件で定められる曲面 S 上で極値をとるならば、S の接ベクトル方向への微分係数が0となります。これを式で書けば、任意の \mathbf{y} \in P_{\mathbf{x}} について

\nabla f (\mathbf{x}) \cdot (\mathbf{y} - \mathbf{x}) = 0

すなわち、\nabla f(\mathbf{x}) \in P_{\mathbf{x}}^{\bot} です。よって、ある \Lambda が存在して、

\displaystyle \nabla f (\mathbf{x}) = \mathbf{z}_{\Lambda} = \sum_{i=1}^m \lambda_i \nabla g_i (\mathbf{x})

と書けます。よって、ある \Lambda について

\nabla L(\mathbf{x} ; \Lambda) = \displaystyle \nabla f (\mathbf{x}) - \sum_{i=1}^m \lambda_i \nabla g_i (\mathbf{x}) = \mathbf{0}

が成り立ちます。(終)

*1:ジャイニズ(E. T. Jaynes)の1957年の論文で提唱されました。