HELLO CYBERNETICS

深層学習、機械学習、強化学習、信号処理、制御工学、量子計算などをテーマに扱っていきます

確率モデリングのための確率分布の式変形基本【ベイズの定理/グラフィカルモデル】

 

 

follow us in feedly

はじめに

確率モデリングでは、複数の確率変数間の関係性を記述するということが必要になります。 そうして確率変数間の関係性を記述したら、あとは観測できているデータは確率変数を所与としてしまい、その観測データの条件付き分布により、他の確率変数の事後分布を表現するということを行います。 この事後分布を求める部分をいわゆる学習と呼び、その後、事後分布を用いて予測したい変数の値を分布として(あるいは分布からのサンプリングとして)出力させることで予測を行います。

しかし、多くの確率モデリングの初学者は、実は確率変数間の関係性を記述するというところの時点で、実は分かっているようで分かっていないまま、「学習」にばかり着目してしまう傾向があるようです。きっと、学習のフェイズでは、MCMCや変分ベイズ法など、ある種華々しい固有名詞が付けられ、そこが最も重要であるかのように錯覚してしまうからだと思われます(重要なのは真実だが)。

今回は、まず確率変数間の関係性を記述するという場面において、ごく基本的な確率分布の式変形とグラフィカルモデルについて説明していきます。 これらは理系大学を受験する高校生レベルの数学知識があれば、十分に使いこなせるはずのものであります。それにもかかわらず非常に重要かつ強力な武器になるため抑えておくメリットは大きいでしょう。

確率モデリング

確率変数間の関係性記述

着目している現象に関する確率変数をすべて列挙します。ここでは $X, Y, Z$ の三種類があるとしましょう。確率モデルを仮定する作業は、列挙した確率変数の同時分布を設計することに他なりません。 ここでは "一例として" 下記のようなモデルを仮定してみることにします。

$$ p(X, Y, Z) = p(X)p(Y \mid X)p(Z \mid Y) $$

これは $X$ が確率分布 $p(X)$ から発生し、その値に依存して $Y$ が $p(Y \mid X) $ から発生し、更にその $Y$ の値に依存して $Z$ が $p(Z \mid Y)$ から発生すると仮定したことになります。これは、そのように同時分布 $p(X, Y, Z)$ を仮定した上で分析を行うと宣言しただけの話であり、他の構想があるならば、それに応じて分析者が設定して良い物になります。

ベイズの定理と条件付き分布

さて、同時分布が定まると、確率分布の乗法定理(=常に成り立つ一般的な関係性)を用いて分析を開始することができます。 繰り返しになりますが、常に成り立つ一般的な関係性を用いているため、同時分布をどんなモデルとして仮定したかに依存せず、下記の式変形は実施できます。 簡単のため、確率変数が $A, B$ の2つのケースを見てから、今見ている $X, Y, Z$ の3つのケースに移りましょう。

確率分布の乗法定理とは

$$ p(A, B) = p(A)p(B \mid A) = p(B)p(A \mid B) $$

というものです。これは "2つの確率変数 $A, B$ の同時分布は $p(A, B)$ は $A$ 単独の確率分布 $p(A)$ と、$A$ に条件付けられた $B$ の確率分布 $p(B \mid A)$ の積に分解しても良いし、その逆で、$B$ 単独の確率分布 $p(B)$ と $B$ に条件付けられた $A$ の確率分布 $p(A \mid B)$ の積に分解しても良い。" ということを述べています。

これは非常に強力なことを言っており、$A, B$ がそれぞれどんな確率変数であったとしても、単独の確率分布と条件付き分布の積に(どちらが条件付けられる形でも)いつでも分解して良いのです。あるいは同時分布$p(A, B)$ に対して、確率変数 $A$ だけの確率分布 $p(A)$ を考えた時に、同時分布と単独の分布の間を等式で繋げられるような分布を条件付き分布 $p(B \mid A)$ と呼んでいるとも言えます(当然、$A, B$ という文字に意味はないのだから、これらを逆転させた関係性も成り立っているべきであるというわけ)。

この2通りの分解の仕方をいつでもして良いのだと認めてしまえば、

$$ p(B \mid A) = \frac{p(A\mid B)p(B)}{p(A)} $$

あるいは

$$ p(A \mid B) = \frac{p(B\mid A)p(A)}{p(B)} $$

もいつでも使えるということになります。これは俗にベイズの定理と呼ばれます。この式では、$p(A \mid B)$ は分かっている…というケースにおいて上の式を用いれば $p(B \mid A)$ を計算できるという嬉しさが直接見える形式になっているので、わざわざ固有名詞が付いているのだと思われます。 ただし、ここで重要なのは、ベイズの定理は、乗法定理において同時分布と単独の分布を条件付き分布が繋げていた、という式を単に単独の分布で割っているだけということです。すなわち

$$ p(A \mid B) = \frac{p(A, B)}{p(B)} $$

という乗法定理を割り算しましたというだけの式が本質的であり、確率モデリングでもここが非常に重要になります。

今、確率変数 $A, B$ というのはそれぞれスカラーであろうがベクトルであろうが、特に形式について言及していません。仮に $A = (Y, Z)$ というベクトルで $B = X$ というスカラーであったのだと思っても構わないので、それを真に受けてしまえば

$$ p(Y, Z \mid X) = \frac{p(X, Y, Z)}{p(X)} $$

というスカラー3個のケースも考慮することができます。こうして自由にスカラーN個のケースも考えられるようになりました。もちろんそのうち幾つかをまとめてベクトルにした方が良いと思うならばそれでも構いません。

さて、もしも今、観測データとして $X$ だけを得られるのだとしたら、上記の条件付き分布の右辺の分子 $p(X, Y, Z)$ に対して、先ほど勝手に仮定した同時分布

$$ p(X, Y, Z) = p(X)p(Y \mid X)p(Z \mid Y) $$

を代入することで、"一般的に成り立っている確率分布の法則の話から、モデリングした特有のモデルの話に切り替わります。" すなわち、今着目している確率変数の関係性(モデリング)を考慮した場合は

$$ p(Y, Z \mid X) = \frac{p(X)p(Y \mid X)p(Z \mid Y)}{p(X)} = p(Y\mid X)p(Z \mid Y) $$

と書けることになります。

さて、ここまでの操作を見てみると、乗法定理というものを認めて単に割り算や代入操作を行ってきただけでした。 そしてその際、モデリングという個々の分析者が考慮しなければいけないことは、単に"同時分布 $p(X, Y, Z)$ なるものをどのように仮定するか"という部分だけでした。

さて、おさらいのために下記にここまでのことをまとめてみます。

関係性の記述と事後分布の導出

  1. 考慮すべき確率変数を列挙する。
  2. 確率変数の同時分布に対して 分析者が仮定を設ける (=モデリングする)
  3. 確率変数のうち観測できる変数とそれ以外の変数を分ける。
  4. 観測できる変数(すなわちデータ)による条件付き分布を乗法定理(を観測できる変数の確率分布で割った式)で書き下す(機械的な式変形)。

というものになります。これを形式的に数式で書くことで更に復習してみます。今回は、上記までとは違う同時分布の仮定を設け、更に観測できる変数の設定も少し変えてみます。

いろいろなパターンの練習

パターン1

考慮すべき確率変数は $X, Y, Z$ であるとします。同時分布を

$$ p(X, Y, Z) = p(X)p(Y \mid X)p(Z \mid X) $$

と仮定します。ここで観測できる変数は $Y$ だけです。観測できる変数によるその他の変数の条件付き分布は乗法定理で

$$ p(X, Z \mid Y) = \frac{p(X, Y, Z)}{p(Y)} $$

となっているのでした。ここに仮定したモデルを代入すると、

$$ p(X, Z \mid Y) = \frac{p(X)p(Y \mid X)p(Z \mid X)}{p(Y)} $$

となるのでした(一先ずココが最低限の代入操作)。これはもっと簡略化できないでしょうか。 常に成り立っている乗法定理はいつでも使って良いのでしたから、分子の $p(X)p(Y\mid X)$ に着目しましょう。ここは

$$ p(X)p(Y\mid X) = p(X, Y) = p(Y)p(X \mid Y) $$

としてしまうことができます。これを代入して、

$$ p(X, Z \mid Y) = \frac{p(Y)p(X \mid Y)p(Z \mid X)}{p(Y)} = p(X \mid Y)p(Z \mid X) $$

と書くことができます。

パターン2

考慮すべき確率変数は $X, Y, Z$ であるとします。同時分布を

$$ p(X, Y, Z) = p(X)p(Y)p(Z \mid X, Y) $$

と仮定します。観測できるのは $Z$ だけであるとします。すると求めるべき条件付き分布は

$$ p(X, Y \mid Z) = \frac{p(X, Y, Z)}{p(Z)} $$

です。仮定したモデルを代入してみて

$$ p(X, Y \mid Z) = \frac{p(X)p(Y)p(Z \mid X, Y)}{p(Z)} $$

これはこれ以上簡単になりそうにありません。

同時分布とグラフィカルモデル

基本事項

さて、ここまで単に数式を並べて説明してきました。これは不慣れな人にとっては中々に骨が折れるところだったかもしれません(実際には割り算や掛け算してるだけなのに…!)。

ここで同時分布のモデリングを可視化してみましょう。題材として確率変数は $X, Y, Z$ の3つがあるとします。

すべて互いに関連

$$ p(X, Y, Z) $$

f:id:s0sem0y:20200814055205p:plain

すべて互いに独立

$$ p(X, Y, Z) = p(X)p(Y)p(Z) $$

f:id:s0sem0y:20200814055347p:plain

以上の2つがおおよそ最も極端な例であると思って構いません。確率変数がすべて独立であるというのは、互いの確率分布に一切の影響を及ぼさないわけであり、そもそも同時に考える意義すら無いような非常に問題が簡略化されているケースです(独立であるという性質は非常に強く、極めて特殊な事例であると言えます)。モデリングをする上では大なり小なり、列挙した確率変数は何らかの関係があると思っているから列挙したのであって、全て互いに関連があるケースを起点にした方がわかりやすいかもしれません。

さて、ここに勝手なモデリングを入れていってみます。

有向グラフ化

$$ p(X, Y, Z) = p(X)p(Y \mid X)p(Z \mid X, Y) $$

f:id:s0sem0y:20200814060158p:plain

ここではすべて互いに関連している中で、その依存関係に方向性が付与されました。 これは要は図で単に先が繋がっていたところを矢印に変えているだけです。このような図と数式の対応をしっかり把握しておきましょう。

矢印を発射元は $X$ のみであります。したがって同時分布は $p(X)$ という因子を持つことになります。また $X$ を受け取っている $Y$ の分布は $p(Y \mid X)$ という因子で表現されることになります。そして $Z$ は $X$ と $Y$ 両方を受け取っているので $p(Z \mid X, Y)$ という因子で右辺に表れます。このように矢印と条件付き分布が対応づいている(そして何が条件になるのかも!)ということを把握しておくだけでモデリングがグッとやりやすくなるはずです。

ところで、ここで重要な事実を述べます。乗法定理はいつでも使ってよかったのですから、

$$ p(X, Y, Z) = p(X)p(Y \mid X)p(Z \mid X, Y) = p(X, Y)p(Z \mid X, Y) = p(Y)p(X\mid Y)p(Z \mid X, Y) $$

と変形してしまうことが "いつでも" できてしまうのです。これは $X$ と $Y$ の間の矢印の向きが逆転し

f:id:s0sem0y:20200814061017p:plain

となっていても、"同時分布という観点で言えば" 区別がつかない全く等価なものになっているということになります。そしてそれは無論、矢印が無いケースも含んで等価なのです。乗法定理を使って、条件付き分布が一切ない状態に戻せてしまうからです。

関連を断ち切ることによるモデリング

従って、同時分布に "ドメインならではの" 仮定を付与するとしたら、それは、列挙したすべての確率変数の中で直接は関係が無いであろう部分を切ることによって達成されることになります。

$$ p(X, Y, Z) = p(X)p(Y\mid X)p(Z \mid Y) $$

f:id:s0sem0y:20200814061456p:plain

これで $X$ と $Z$ の直接の関連性が切られました。無論 $Y$ を介して $X$ の値は $Z$ に影響を及ぼすのですが、これによって同時分布は先程までとは全く異なるモデルへと変貌したことになります。

最後に

意外と長くなったので一旦区切ります。 続きは下記の記事

www.hellocybernetics.tech