Estimating Mutual Information for Discrete‐Continuous Mixtures 離散?連続混合の相互情報量の推定Yuya Takashina
?
NIPS論文読み会@PFN
Gao, Weihao, et al. "Estimating mutual information for discrete-continuous mixtures." Advances in Neural Information Processing Systems. 2017.
https://arxiv.org/abs/1709.06212
Estimating Mutual Information for Discrete‐Continuous Mixtures 離散?連続混合の相互情報量の推定Yuya Takashina
?
NIPS論文読み会@PFN
Gao, Weihao, et al. "Estimating mutual information for discrete-continuous mixtures." Advances in Neural Information Processing Systems. 2017.
https://arxiv.org/abs/1709.06212
1. #TokyoWebmining
Infer.NET でグラフィカルモデルを計算する
C. M. Bishop: “Pattern Recognition and Machine Learning”, Springer (2006)
“Infer.NET 2.4β User Guide and Code Documentation (Infer.chm)”, Microsoft
の内容紹介
Twitter: @wk77
#TokyoWebmining Infer.NET でグラフィカルモデルを計算する by @wk77 p. 1
3. ある同時分布を様々なグラフにより表現する
A B A B A B A B
C C C C
D E D E D E D E
有向グラフ 無向グラフ 因子グラフ ハイパグラフ
- 有向グラフ:条件つき分布の積による表現を意識し、対応関係を矢印で表す
? p(A, B, C, D, E) = p(A) p(B) p(C|A, B) p(D|C) p(E|C)
- 無向グラフ:独立でない確率変数同士をエッジで結合したもの
? p(A, B, C, D, E) = p(A, B, C) p(C, D) p(C, E)
- 因子グラフ:因子(■で記述)への分解を表現する。様々な分解がありうる
? p(A, B, C, D, E) = f(A) f(B) f(A, B, C) f(C, D) f(C, E)
- ハイパグラフ:結合分布部分をハイパエッジで表現する。確率伝搬法で有用
? p(A, B, C, D, E) = f(A, B, C) f(C, D) f(C, E)
#TokyoWebmining Infer.NET でグラフィカルモデルを計算する by @wk77 p. 3
5. ベイズの定理とグラフィカルモデル
A B p(A, B)=p(A)p(B|A) と分解可能である
- A, B は確率変数で、p(A), p(B|A), p(A, B) の存在を表現する
- p(A) と p(B|A) は任意の関数であり、未知でも良いが、
事前分布 p(A) と尤度関数 p(B|A) を与えれば p(A, B) も求まる
- p(A, B) が周辺化できれば p(A) や p(B) も求まる
A B p(A)p(B|A) で A が観測される
- A=a' と観測 → p(A=a', B)=p(A=a')p(B|A=a')
- A による条件づけ p(A=a', B)/p(A=a')=p(B|A=a') を表現する
A B p(A)p(B|A) で B が観測される
- B=b' と観測 → p(A), p(B|A) が既知なら、ベイズの定理で
事後分布 p(A|B=b') を推論でき、矢印反転して次のグラフになる
A B p(A|B)p(B) で B が観測される
- B=b' と観測 → p(A, B=b')/p(B=b')=p(A|B=b') で整合性がある
#TokyoWebmining Infer.NET でグラフィカルモデルを計算する by @wk77 p. 5
6. ベイズ多項式回帰をグラフで表現する(1)
? 目的変数 t を多項式 y(x, w) = ∑j wj xj で回帰する
- p(t, w) = p(w) Πn p(tn|y(xn, w)) w:パラメータ x:入力変数
w
tn w
t1 tN N
PRML本 fig 1.3 プレートによる表現
- ハイパパラメータ α, β と入力変数 xn を追記する
xn α
- p(t, w|x, α, β) =
p(w|α) Πn p(tn|w, xn, β)
- p(w|α) = N(w|0, α-1I)
tn w
β - p(tn|w, xn, β) =
N N(tn|y(xn, w), β-1)
#TokyoWebmining Infer.NET でグラフィカルモデルを計算する by @wk77 p. 6
7. ベイズ多項式回帰をグラフで表現する(2)
? 事後分布 p(w|t) を推論し、最大確率となる w を決定する
- 最大事後確率推定(MAP 推定)と呼ぶ
tn w
事前分布 p(w) と尤度関数 Πn p(tn|w) は既知
p(t, w) = p(w) Πn p(tn|w)
N
tn w
tn で条件づけると事後分布 p(w|t) が求まる
p(w|t) ∝ p(w) Πn p(tn|w)
N
- 入力 xn は固定。最も尤もらしく t を表す w を最適化計算
- 対数尤度関数 ln Πn p(tn|w) = Σn ln N(tn|y(xn, w), β-1)
? w で微分すれば w が求まる
? w を固定して β で微分すれば β の点推定となる
- 事前分布 p(w|α) の対数を加え最適化すれば正則化も可能
α は固定。データ数 n が増えると ln p(w|α) は相対的に小さくなる
#TokyoWebmining Infer.NET でグラフィカルモデルを計算する by @wk77 p. 7
8. 予測分布を表現するグラフィカルモデル(1)
? 学習が完了して w と β を推定したところで、
新たな入力 x が与えられたときに、
その未知の目標値 t を分布 p(t) として予測したい
- p(t|w, x, β) は p(t|w, x, β) と同じ分布なので、
予測分布のグラフィカルモデルは左下図となる
- α, β 固定で単純化し、ベイズの定理を反映したのが右下図
xn α xn
tn w tn w
N N
x x
β t t
#TokyoWebmining Infer.NET でグラフィカルモデルを計算する by @wk77 p. 8
9. 予測分布を表現するグラフィカルモデル(2)
? 前ページの右下図と同じグラフ
tn w t
xn x
N
- p(t|x, w)p(w|x, t) となっていることがわかる
? 求めたい予測分布は、上記で w を周辺化したもの
p(t|x, x, t) = ∫ p(t|x, w) p(w|x, t) dw
? 先に述べた結果から、ベイズの定理によって
p(t, w|x) = p(w) Πn p(tn|w, xn)
∴ p(w|x, t) ∝ p(w) Πn p(tn|w, xn)
? したがって予測分布は、次の式で与えられる
p(t|x, x, t) ∝ ∫ p(t|x, w) p(w) Πn p(tn|w, xn) dw
#TokyoWebmining Infer.NET でグラフィカルモデルを計算する by @wk77 p. 9
10. ナイーブベイズによる分類
? ナイーブベイズは、クラス分類のための一手法である
- 観測変数は D 次元ベクトルで、観測値 x を
K 個のクラスのうちの一つに対応させるとする
- クラスに関する複数の項目が、独立に得られると仮定する
p(x1, x2|Ck) = p(x1|Ck)p(x2|Ck)
- x1 は離散変数、x2 は連続変数というように、
p(x1|Ck) と p(x2|Ck) のモデルが異なる種類のものでも良い
- x1 と x2 の両方のデータが得られたときの事後確率は
xi
p(Ck|x1, x2) ∝ p(x1, x2|Ck)p(Ck)
z
∝ p(x1|Ck)p(x2|Ck)p(Ck)
D ∝ p(Ck|x1)p(Ck|x2) / p(Ck)
- 事前確率 p(Ck) は、各クラスに含まれる
データ点の個数から容易に推定可能
#TokyoWebmining Infer.NET でグラフィカルモデルを計算する by @wk77 p. 10
11. 条件つき独立性
? 3変数 a, b, c についての条件つき独立性
- c で条件づけられた a が、b と独立であると仮定する
p(a|b,c) = p(a|c)
- このとき、c で条件づけられた a と b の同時分布は、
p(a, b|c) = p(a|b, c)p(b|c) = p(a|c)p(b|c)
となり、a の周辺分布と b の周辺分布の積に分解できる
- このことを a || b | c と表す
- c がどのような値でも、a と b が独立となることが重要
? 「条件つき独立性の概念は重要である」(PRML 8.2)
- パターン認識に用いる確率モデルを簡略化したり、
推論や学習に必要な計算を効率化する際に重要
- 変分ベイズ法や期待値伝搬法における近似の根拠
- 条件つき独立性がグラフの形から判定できることが利点
#TokyoWebmining Infer.NET でグラフィカルモデルを計算する by @wk77 p. 11
12. 3つのグラフについて条件つき独立性を考える
? c が未観測: p(a,b)=Σc p(a,b,c)=p(a)p(b) なら独立
? c が観測: p(a,b|c)=p(a|c)p(b|c) なら条件つき独立
? tail-to-tail a
c
b a
c
b
- p(a,b)= Σc p(a|c)p(b|c)p(c)≠p(a)p(b) 独立でない
- p(a,b|c)=p(a,b,c)/p(c)=p(a|c)p(b|c) 条件つき独立
? head-to-tail a c b a c b
- p(a,b)=p(a) Σc p(c|a)p(b|c)=p(a)p(b|a) 独立でない
- p(a,b|c)=p(a)p(c|a)p(b|c)/p(c)=p(a|c)p(b|c) 条件つき独立
? head-to-head a
c
b a
c
b
- p(a,b)= Σc p(a)p(b)p(c|a,b)=p(a)p(b) 独立
- p(a,b|c)=p(a)p(b)p(c|a,b)/p(c)≠p(a|c)p(b|c) 条件つき独立でない
#TokyoWebmining Infer.NET でグラフィカルモデルを計算する by @wk77 p. 12
13. 有向分離性(d-separation)
? tail-to-tail や head-to-tail となるノード c について
未観測時は独立でなく、観測時は条件つき独立となる
- c の観測により、a と b を結ぶ経路が遮断されると言う
? head-to-head であるノード c か a b
c
c の子孫のノードが観測されると、
a と b は独立ではなくなる d
- 左図の例では p(a,b|d) ≠ p(a|d)p(b|d) となる
- 観測により、a と b の遮断が解かれると言う
? 重複しない、ノードの部分集合 A, B, C について、
A と B を結ぶ全ての経路が C で遮断 → A || B | C
- パラメータや訓練データ入力値など、小さな円のノードは
観測済みノードと同様の振る舞いをし、影響を与えない
#TokyoWebmining Infer.NET でグラフィカルモデルを計算する by @wk77 p. 13
14. 有向分離性の性質
? 1変数ガウス分布で平均の事後分布を求める
μ ? μ が与えられたとき、観測値は独立
- p(D|μ) = Πn p(xn|μ)
- xi→μ→xj(≠i) の経路は tail-to-tail
xn ? μ を潜在変数とみなし周辺化→観測値は非独立
N
- p(D) = ∫p(D|μ)p(μ)dμ ≠ Πn p(xn)
? ベイズ線形回帰の予測分布について考える
tn w t
xn x
N
- w の観測で t と t を結ぶ全経路は遮断 → t || t | w
- すなわち学習によって w を決定(=観測)した後では
t と t が独立なので、 t の分布の計算に t は必要ない
- 学習の過程と、予測分布を求める過程とを分離できる
#TokyoWebmining Infer.NET でグラフィカルモデルを計算する by @wk77 p. 14
15. (参考)無向グラフと周辺化(確率伝搬法…)
? 確率変数同士に何らかの関係が存在する、
すなわち独立ではないとき、エッジで結んで表現する
- A が a 個、B が b 個の状態をとり、表で表せる分布とする
- A と B が独立ではない場合
A B p(A, B) ≠ p(A)p(B)
? p(A, B) を表すのに必要なパラメータ数は a × b
- A と B が独立な場合
A B p(A, B) = p(A)p(B)
? p(A, B) を表すのに必要なパラメータ数は a + b
? ある変数についての周辺化を、次のように表す
A B p(A) = ∑B p(A, B)
A B p(B) = ∑A p(A, B)
#TokyoWebmining Infer.NET でグラフィカルモデルを計算する by @wk77 p. 15
35. Infer.NET のコンポーネントとアーキテクチャ
“Infer.NET 2.4β User Guide and Code Documentation (Infer.chm)” から転載
#TokyoWebmining Infer.NET でグラフィカルモデルを計算する by @wk77 p. 35
36. Infer.NET の動作
“Infer.NET 2.4β User Guide and Code Documentation (Infer.chm)” から転載
- ユーザがモデルと推論クエリを与える
? モデルやクエリを得る API を利用する
? C# などによる、内部 DSL 相当の記述となる
- モデルコンパイラが、推論の計算を行う C# ソースを生成
- C# コンパイラが、その C# ソースをコンパイルする
- 推論エンジンのパラメータや、観測データを与える
- 推論クエリにもとづき、値や分布が返される
#TokyoWebmining Infer.NET でグラフィカルモデルを計算する by @wk77 p. 36
37. Infer.NET で扱える分布の因子(1)
? 離散変数に関する分布
“Infer.NET 2.4β User Guide and Code Documentation (Infer.chm)” から転載
#TokyoWebmining Infer.NET でグラフィカルモデルを計算する by @wk77 p. 37
38. Infer.NET で扱える分布の因子(2)
? 連続変数に関する分布
? 多変量分布
“Infer.NET 2.4β User Guide and Code Documentation (Infer.chm)” から転載
#TokyoWebmining Infer.NET でグラフィカルモデルを計算する by @wk77 p. 38
39. Infer.NET のファーストサンプルプログラム
? 実際の問題にどう適用できるかはこのあとで!
@tsubosaka 先生お願いします!><
#TokyoWebmining Infer.NET でグラフィカルモデルを計算する by @wk77 p. 39
40. 参考文献
? C. M. Bishop: "Pattern Recognition and Machine Learning", Springer
(2006)
? C. M. ビショップ, 元田浩, 栗田多喜夫, 樋口知之, 松本裕治, 村田昇: "パター
ン認識と機械学習 上 / 下 - ベイズ理論による統計的予測", シュプリンガー?ジャ
パン (2007-2008)
? "Infer.NET 2.4β User Guide and Code Documentation (Infer.chm)",
Microsoft
? S. S. J. Wang and M. P. Wand: "Using Infer.NET for Statistical
Analyses", Working Paper at Centre for Statistical and Survey
Methodology, 06-10 (2010)
? 田中和之: "ベイジアンネットワークの統計的推論の数理", コロナ社 (2009)
? 伊庭幸人: "ベイズ統計と統計物理", 岩波書店 (2003)
? 汪金芳, 手塚集, 上田修功, 田栗正章, 樺島祥介: "計算統計Ⅰ", 岩波書店
(2003)
? 竹村彰通, 谷口正信: "統計学の基礎Ⅰ", 岩波書店 (2003)
#TokyoWebmining Infer.NET でグラフィカルモデルを計算する by @wk77 p. 40