初めてのベイズ学習








このページをご覧いただきありがとうございます。

2015年に用語の修正をしました。



1.基礎概念


ベイズ学習あるいはベイズ統計を初めて習う人に紹介します.まず,基礎概念と,その名前を 覚えましょう.




(1.A) 情報源が確率分布で表されているものとします.情報源からサンプルが 得られたとき,サンプルから情報源を推測することを 学習 (Learning) あるいは 統計的推測 (Statistical estimation) といいます.




(1.B) 以下では,情報源がユークリッド空間上の確率分布である場合を 考えます.情報源を表す確率密度関数を q(x) とします.これを 真の確率密度関数 (True probability density function) と呼ぶことにします.真の確率密度関数 q(x) に独立に従う n 個の確率変数の集合

D ={ x1, x2, ..., xn }


サンプル,データ,学習例 あるいは単に (Example) といいます.

ここではサンプルを確率変数として述べますが,確率変数の実現値をサンプルと呼ぶ場合もあるようです.

実世界では,真の確率密度関数 q(x) は分からないことが多いので, サンプルから q(x) を推測します.




(1.C) パラメータ w によって定まる x の確率密度関数 p(x|w) と, w の集合上の確率密度関数φ(w) を準備します.この p(x|w) を 確率モデル,統計モデル,学習モデル (Probabilistic model, Statistical model, Learning machine) といい,φ(w)を 事前確率密度関数 (A priori probability density function, Prior)といいます.

(注意)初めてベイズ法を習う人は,必ず次のことを疑問に思います. 「真の密度 q(x) がわからないのに,モデル p(x|w) や事前密度 φ(w) は,なぜ 与えられるのだろうか」.この疑問に対する答えは,以下に順を追って書かれています. 最初の段階では,モデルと事前密度が何でもOKであると思ってください. モデルは真の密度と無関係でOKですし,事前密度は事前の知識を表していなくてOKです. モデルと事前密度は,何でもいいから,あるペアがひとつ与えられていると思ってよいのです.

さて,確率モデル p(x|w), 事前密度 φ(w),サンプル D が与えられたとき, w の確率密度関数 p(w|D) を

p(w|D) = (1/Z) p(x1|w) p(x2|w) ・ ・ ・ p(xn|w) φ(w)


と定義します.これを 事後確率密度関数 (A posteriori probability density function)といいます.ここで Z は ∫ p(w|D) dw = 1 を満たすように定めた正規化定数

Z=∫ p(x1|w) p(x2|w) ・ ・ ・ p(xn|w) φ(w) dw


です.




(1.D) 正規化定数は,定数に過ぎませんが,実は非常に重要な意味を 持っています.例えば Z はサンプル D の確率密度関数です.つまり Z を D=(x1,x2,...,xn) の関数だと考えて Z(x1,x2,...,xn) と書くと

∫dx1 ∫dx2 ・ ・ ・ ∫dxn Z(x1,x2,...,xn) = 1


が成り立ちます.このことから,

Z はペア「p(x|w)とφ(w)」が与えられたもとでの D の確率密度関数


です.つまり,Z は「p(x|w) と φ(w)」 のペアが, どれくらいサンプル D を説明するのに ふさわしいかを表している量である,と考えることができます. Z が大きいほど上記のペアは適切ではないかと感じられます. この Z のことを, 周辺尤度 (Marginal likelihood) あるいは 証拠(エビデンス)(Evidence)と呼びます.




(注意)ベイズ推測を発案したのは誰であるかという問題は 歴史的には謎であるようです.(16〜18世紀ころ?). そもそも,統計的推測という概念,すなわち, 「確率分布で表される情報源があったとき,実現値から 確率分布を推測する」という概念が意識されたのは, いつ頃だったのでしょうか.

【ベイズ】は Thomas Bayes という人の名前からつけられたものですが, 実際に Bayes がどのくらいにベイズ推測を研究していたのかはよくわかっていない そうです.統計的推測の方法としての確立は数学者 Laplace によってなされました (18世紀から19世紀ころ).統計的推測における Z の重要性を最初に指摘したのは1950年頃の 統計学者 I.J.Good ではないかと推定されるそうです. 統計数理研究所において Z の最大化によって高度な統計モデルを設計する方法が 本格的に研究されてきました(1980年頃から).後に Mackay も同じことを提案しています(1990年頃).




(注意)Z は,事後確率密度 p(w|D) について統計力学的な 情報を持っているので 分配関数 (Partition function) と呼ばれることもあります. 統計力学の教える所によれば,定数に過ぎないように見える Z が,しかし, 事後分布について,ほとんど全ての情報を持っています(母関数). このように大切な量は普通は簡単には計算されてはくれません. ごく稀にこの量が計算できる方法が見つかるとき, 新しい数学的構造・不明だった物理現象・素晴らしい統計学アルゴリズムが 証明・発見・発明されることが多いことは歴史的に良く知られています. つまり,次のことが経験的に成り立ちます.

分配関数 Z は【最初に現れて最後の目標となる者】です.





(1.E) さて,確率モデル p(x|w) を事後確率密度 p(w|D) で平均して得られる x の密度関数

p(x|D)=∫ p(x|w) p(w|D) dw


のことを 予測分布 (Predictive distribution)といいます. この分布は「例 D をもとに次に現れる x を予測している」と思うことができるからです. ベイズ推測とは,

「予測分布 p(x|D) は,きっと,真の密度関数 q(x) に近いであろう」


と推測する方法です.




(1.F) この推測は,もちろん,サンプルからの推測ですから,完全に正しいことは ありえません.つまり学習の結果 p(x|D) は真の情報源 q(x) と似ていることが望ましいですが, 完全には一致していません. それでは,この推測は,どの程度に正しいと言えるでしょうか.また,その誤差は, n が増えるにつれて,どのように減っていくでしょうか. 推測の誤差を次のようにして測ります.真の密度関数 q(x) から予測分布 p(x|D) までの カルバック・ライブラ距離(相対エントロピー)

G = ∫ q(x) log (q(x)/p(x|D)) dx


のことを 汎化誤差 (Generalization error) といいます. 汎化誤差 G が小さいほど, ベイズ推測の結果 p(x|D) は真の密度関数 q(x) に近いと考えることが できますので,G が小さいほど, ペア「p(x|w)とφ(w)」は,推測精度において優れていると 考えられます.




(注意)G はサンプル D の関数です.つまり,G はサンプルの確率的なばらつきに 伴って確率的に変動します.言いかえれば,G は非負の実数に値を取る確率変数です.




(1.G) さて,周辺尤度 Z の対数を取ることで定義される

F = -log Z


もまた,サンプル D の関数ですから F もまた確率変数ですが,この F のことを 対数周辺尤度,ベイズ符号長,確率的複雑さ (Log marginal likelihood, Bayes description length, Stochastic complexity) と呼びます. 自由エネルギー (Free energy) と呼ばれる場合もあります. 数学的にはひとつのものであるにも関わらず,いろいろな名前がついているのは, この量が,それぞれ,統計学,情報理論,学習理論,および統計力学において, 決定的な役割を果たしているからです.確率変数 F の意味を感じ取れるようになることは, それぞれの分野が理解できるようになることと,ほとんど同じと 言ってもよいくらいです.




(注意)関数 (-log( )) は単調減少関数なので,Z が最大になることと F が最小になることは等価です. つまり Z と F は情報論的には同じものですが,F の方が挙動がマイルドであることと,実世界的な意味を 有している(具体物を直接に現している,あるいは,単位を持っている・jので, 理論や実験においては F を指標として用いることが少なくありません.




(注意)数学的に同じものであっても,F は,応用される分野に依存して異なる意味を 持っています.あるひとつの分野において F の意味を理解していても, 他分野における F の意味が習わずにわかるということはありませんから,どれかひとつの 分野を専門としている人は,この点に十分な注意を払う必要があるでしょう. このことを考えるための例題として,次の問題を出しておきます.

(1) エネルギーと自由エネルギーの違いを述べよ.
(2) F が符号長であるということを説明せよ.
(3) F が「モデルと事前分布」の尤度であるとは,どういうことであるか.

この問題を考えると自動的に,それぞれの分野におけるエントロピーの意味を 考えることになります.




以上で,ベイズ学習の基礎概念の説明は終了です.


2.研究課題

次にベイズ学習に関する研究の課題を述べます. ベイズ学習においては,非常に多くの研究課題がありますが,主なものをあげてみます.




(2.A) まず理論の課題から.

(i) 真の確率密度 q(x) とペア「p(x|w)とφ(w)」が与えられたとき, 確率的複雑さ F や汎化誤差 G が従う確率分布を導出せよ. 例えば, n が大きいときの確率変数 F や G の漸近挙動を 調べたい.

(ii) 真の確率密度 q(x) がわからないとき,サンプルで表される量だけから G を 求めることができる関係式を導出せよ.

(iii) 上記の課題が数学的に自由に行えるようになるための理論的な基盤を整備せよ. そのとき,数学のどのような世界とつながりがあるだろうか.




(2.B) 次にアルゴリズムの課題をあげます.

(i) 事後確率密度 p(w|D) に従うパラメータの集合をサンプリングするアルゴリズムを作れ.

(ii) ペア「p(x|w)とφ(w)」とサンプル D が与えられたとき, F を計算するアルゴリズムを作れ.

(iii) 上記の二つのアルゴリズムが演算量の点で困難であるとき,どうしたら良いかを考えよ.


以上の課題が学習理論において重・vであることは広く知られていますので, それぞれの課題について,多くの研究がなされていますが,まだ, 完成には至っておりません.




(注意)上でも述べたように<Fを計算する>ということには,二つの異なる 課題があります.つまり,

(A) 三組 (q(x),p(x|w),φ(w)) を固定したとき,確率変数 F の挙動を数理的に導出せよ.

(B) q(x) が不明であって,(p(x|w),φ(w),D) (つまり,モデルとデータ)が与えられたとき, 数値としての F を算出するアルゴリズムを作れ.

という二つの課題があります.この二つは,どちらも非常に重要です.




以上でベイズ学習あるいはベイズ統計の説明は終わりです.



ベイズ学習あるいはベイズ統計について研究を行う場合に 知っておいた方が良い事項は以上で終わりです.

以下に上記の続きについて述べますが,続きについては読む必要はありません. また,理解できないことが書いてあったとしても気にする必要はありません.


続きに進む  


Sumio Watanabe Homepage