watanabe lab. - ベイズ統計入門...
TRANSCRIPT
-
1
ベイズ統計入門 (13)
目標 階層ベイズ法
東京工業大学
渡辺澄夫
-
旅の地図
(1) ベイズ統計の定義(2) 密度と条件つき密度(3) 混合正規分布+ギブスサンプラー(4) 神経回路網+ランジュバン方程式(5) 真とモデルの関係(6) 正則モデルの漸近理論(7) AIC と BIC (8) ハイパーパラメータ最適化(9) 一般モデルの漸近理論(10) 一般モデルの漸近理論(11) 一般モデルの選択(12) 条件つき独立 高次元(13) 階層ベイズ(14) 相転移(15) まとめ
-
1 構造を持つ統計モデル
-
4
統計モデルp(x|w)事前分布
φ(w|a)
階層ベイズ法
データ xパラメータ w
統計的推測を行なう対象が構造を持つとき、その構造を用いてモデリングを行なうことで精度の良い推測ができることがある。今日の統計モデリングの基本技法のひとつである。
長野県
青森県
台湾
フィリピン
-
5
構造を持つモデリングの例
計算機科学
0.3
0.3
0.3
0
0
0
0
0.1
0
単語
P≠NP
文脈自由文法
チューリングマシン
代数幾何
微分幾何
多変数関数論
ルベーグ積分
環とイデアル
確率微分方程式
純粋数学
0
0
0
0.2
0.2
0.2
0.2
0.1
0.1
応用数学
0.1
0.1
0.1
0.1
0.1
0.1
0.2
0.1
0.1
各トピックごとの単語出現確率国Aでのトピック
出現確率
計算機科学 0.2
純粋数学 0.7
応用数学 0.1
国Bでのトピック
出現確率
計算機科学 0.3
純粋数学 0.4
応用数学 0.3国ABC・・・
の確率
文書は単語の集合である。トピックは明示的には与えられない。文書から複数のトピックを推定
する、国を推定する、・・・では構造を持つ推論システムが構築される。下線部分は推定される。
-
生成過程(ハイパーパラメータ⇒パラメータ⇒データ)
ハイパーパラメータ
パラメータ パラメータ パラメータ
データ データデータ
モデル モデル モデル
事前分布モデル
事前分布 モデル事前分布モデル
-
統計的推測(データ⇒ハイパーパラメータ+パラメータ)
ハイパーパラメータ
パラメータ パラメータ パラメータ
データ データデータ
データが与えられたとき「パラメータとハイパーパラメータ」の分布を推定する
-
モデリングの正しさを推定するには
現実にはデータが与えられるだけであり、真の構造は不明である。階層構造を用いたモデリングが未知である真の分布に近いものを与えているかどうかを調べたいときにはどうしたらよいのだろうか。
⇒ クロスバリデーション、情報量規準、・・・。
ハイパーパラメータ
パラメータ パラメータ パラメータ
データ データ データ
パラメータ パラメータ パラメータ
データ データ データ
モデル1 モデル2
-
9
注意1
○ 未知である真の分布とモデリングによる推測で得られた結果の
誤差を推測する理論と方法は存在しますが、比較する対象が多くなると
演算量は膨大になります (⇒現代でも解決されていない研究課題)。
○ 一般に関数や確率分布は無限次元の空間の中にあるので
ありとあらゆるものを比較検討することはできません。候補として
ふさわしいモデル族を試行できるようになるための経験も大切です。
〇 複雑な構造を積み上げていっても破綻しない推測を可能にした
という点でベイズ法の有用性があります。
-
10
注意2
○ 現実のデータ解析では、ここで紹介したものよりも複雑な構造を
扱うことが多いです。
○ その場合、「真と推測の誤差」は、どの部分に対しての誤差を
考えるかによって異なることに注意してください。
例: ある高校3年生10クラスでテストを行ったとき、すべての生徒の
分布の推測と、各クラスの平均点の分布の推測では、「誤差を測る
真と推測」が異なります。
-
2 階層ベイズ法
-
具体的な例で説明します。
下記は、札幌(1)、仙台(2)、東京(3)、名古屋(4)、京都(5)、大阪(6)、福岡(7)
の各区の人口(X軸)と単独世帯の数(Y軸)を正規化して表示したものである。
札幌 仙台東京 名古屋
京都 大阪 福岡
政府統計の総合窓口より http://www.e-stat.go.jp/SG1/estat/eStatTopPortal.do
-
最尤推定してみたが・・・。
それぞれの都市で、回帰直線 Y=akX+bk (ただし k=1,2,…,7) を求めたい。
二乗誤差最小推定(最尤推定と同じ)で求めてみた。
札幌 仙台東京 名古屋
京都 大阪 福岡
データが少なすぎて、うまく推定できない。例:bkが0から遠すぎる。
-
同種の推測が複数の場所で行なわれる問題
同じ構造を持つ問題はとても多い。
例1.1学年8クラスで英語のテストをする。
例2.アメリカ大統領選挙
例3. コンビニエンスストア・チェーン店での商品の売り上げ
共通する情報を統合抽出し、それぞれの推測に役立てたい。
→ 独立した推測ではなく、パラメータを共通のハイパー事前分布から
得られたものとしてモデリングする。(モデリングの正しさの評価に
ついては、評価の項で述べる)。
-
統計モデリングを図示すると
札幌(1)パラメータ(a1,b1,s1 )
札幌(1)データ{(X1m,Y1m) ;m=1,2,…,n(1)}
仙台(2)データ{(X2m,Y2m) ;m=1,2,…,n(2)}
都市(k)データ{(Xkm,Ykm) ;m=1,2,…,n(k)}
仙台(2)パラメータ(a2,b2,s2)
都市(k)パラメータ(ak,bk,sk )
ハイパーパラメータ(ma,mb,t)
統計モデル
事前分布
ハイパー事前分布
-
推測されるものの確率分布
札幌(1)データ{(X1m,Y1m) ;m=1,2,…,n(1)}
仙台(2)データ{(X2m,Y2m) ;m=1,2,…,n(2)}
都市(k)データ{(Xkm,Ykm) ;m=1,2,…,n(k)}
札幌(1)パラメータ(a1,b1,s1 )
仙台(2)パラメータ(a2,b2,s2)
都市(k)パラメータ(ak,bk,sk )
ハイパーパラメータ(ma,mb,t)
データが与えられると固定される
与えられたデータを固定
したときの (ak,bk,sk ),
ma, mb, t の分布を作る。
-
17
統計モデリングの例
(0) k を都市の番号とする。(k=1,2,…,7)
(1) 第 k 都市のモデル 「Y=akX+bk +正規分布(0,1/sk)」の確率密度関数は
p(y|x,ak,bk,sk )= ( sk / 2π)1/2 exp[ -sk(y-akx-bk)2/2 ].
(2) (ak ,bk ) の事前分布として次のものを用いる。
φ(ak,bk|ma,mb,t) = ( t / 2π) exp[ - t {(ak-ma)2+(bk-mb)2}/2 ]
(3) (sk, t) については正値で十分大きな広がりを持つ事前分布を固定。
ε=0.001とする。(最適化することもできるがカンタンのため)。
ψ(sk|r) ∝ sk r-1 exp(- ε sk)
ψ(t) ∝ exp(- ε t)
(4) (ma,mb) については原点を含む十分に大きな集合上の一様分布を固定
(5) 最も影響の大きなハイパーパラメータ r を最適化する。
(注意:レポート課題では r=1 のときだけを行えばよい)。
-
18
統計モデリングの例
-
19
問2
以下のものは、階層ベイズモデリングが役立つ可能性が高いと思うか。
そうであると思うかどうかを理由とともに述べよ。
1.日本にある100社について、各会社の社員の年齢から給与への
回帰問題を考えたい。
3.ある大学には6個の学部がある。各学部の卒業生が就職する分野を
推定したい。
2.日本全国のそれぞれの都市で、好まれるうどんのつゆの作り方を
推定したい。
-
3 ギブスサンプラーの実装
-
21
準備: 正規分布
標準正規分布(平均0、標準偏差1)に従う x をサンプリングする
関数を準備する。例 x= randn;
平均ベクトル が2次元ベクトル v =(v1,v2)T で
分散共分散行列が S の2次元正規分布(∝exp( - (1/2)||S-1/2(x-v)||2 )
に従う2次元確率変数 x=(x1,x2)T は次式で生成できる。
= + S1/2v1v2
x1x2
randn
randn
-
準備: ガンマ分布
x>0 上の分布 ガンマ分布の定義
G(x|α,β) = 1/(βαΓ(α)) xα-1exp(-x/β)
ガンマ分布に従う x をサンプリングする関数を準備する。
例 x = gamrnd(α,β);
(注意)擬似乱数の使い方は、使用するソフトウエアにより異なります。
代表的なものはネットワークを検索して見つけてください。
-
23
事後分布のサンプリング
データが {(Xki,Yki); k=1,2,…,K, i=1,2,…,n(k)} であるとする。
事後分布の定義:
p(ak,bk,sk,ma,mb,t | データ)
∝ ψ(t) × [ Πk=1K ψ(sk) φ(ak,bk|ma,mb,t) ]
× [ Πk=1K Πi=1
n(k) p(Yki|Xki,ak,bk ,sk ) ]
目標: 事後分布に従う { ak,bk,sk,ma,mb,t } をサンプリングする。
個々の分布の定義:
p(Yki|Xki,ak,bk,sk) = ( sk / 2π)1/2 exp[ -(sk/2)(Yki-akXki-bk)2 ].
φ(ak,bk |ma,mb,t) = ( t / 2π) exp[ - (t/2) {(ak-ma)2+(bk-mb)2} ]
ψ(sk ) ∝ sk r-1 exp(- ε sk )
ψ(t) ∝ exp(- ε t)
-
24
ギブスサンプリング
ギブスサンプラーでは、ある変数に着目しているときは他の変数は
固定して考えることができる。p(ak ,bk ,sk ,ma,mb,t | データ) からの
サンプリングを次の順番で生成する。
(1) t
(2) sk (3) ak , bk(4) ma,mb
それぞれの変数の生成法を以下で述べる(計算は付録を参照)。
-
25
階層ベイズ法の手順
(4) {sk} をガンマ分布 G( n(k)/2+r, 1 / [ ε + (1/2) Σi (Yi-ak Xi-bk )2 ] )で生成(3) t をガンマ分布 G( K+1, 1 / [ ε + (1/2) Σk { (ak -ma)2+(bk -mb)2} ] )で生成
(1) データ {(Xki,Yki) ; k=1,2,…,K, i=1,2,…,n(k)} を得る。必要なら前処理。(2) {(ak,bk) ; k=1,2,…,K} と (ma,mb) は最尤推定(次ページ)を初期値とする。
(5) {(ak,bk ) ; k=1,2,…,K} を下記で生成
(8) (3)に戻ることを繰り返して { ak,bk,sk,ma,mb,t } を J 個採取する。
(6) ma を平均 (1/K) Σk ak で標準偏差 1/(tK)1/2 の正規分布から生成。(7) mb を平均 (1/K) Σk bk で標準偏差 1/(tK)1/2の正規分布から生成。
Hk = vk =t + skΣi=1
n(k) Xki2 skΣi=1n(k) Xki
skΣi=1n(k) Xki t + skn(k)
t ma + skΣi=1n(k) XkiYki
t mb + sk Σi=1n(k) Yki
= Hk-1 vk + Hk-1/2ak bk
randn
randn (←k ごとに独立)
-
26
注意: 階層ベイズ法の手順
レポート課題では定数として r=1, ε=0.01 を固定で使ってよい。
(ak ,bk) の最尤推定量は、 t=0, sk =1 のときの Hk-1 vk と等しい。
(ma,mb) の最尤推定量は、{ (1/K) Σk ak , (1/K) Σk bk } と等しい。
マルコフ連鎖を用いて確率分布を近似するとき、初期値の影響が
残る区間は推定に用いないで捨てる(バーンインという)。
レポート課題ではバーンインを 1000 回としてよい。
レポート課題では採取するパラメータの個数(J)を 1000個としてよい。
(注意)マルコフ連鎖によって事後分布がどの程度に正しく計算
できているかを調べる方法もある(→Gelman-Rubin統計量など)。
-
27
注意 事後分布の自動生成プログラム
○ 従来は、統計モデリングを行う際には、考察するモデルや事前分布
ごとにマルコフ連鎖を設計し構築することが必要であった。
近年、モデルや事前分布をプログラム中で定義することで任意の
モデリングにおける事後分布を自動生成できるソフトウエア(STAN)が
作られて広く使われるようになっている。
○ 統計学や機械学習では、開発効率を大きくあげる環境が整って
きている。それらを的確に使いこなせることは非常に大切である。
しかしながら、講義担当者はそのレベルに到達していないため
自分でプログラムを書いている(非推奨)。
-
4 実データの分析
-
29
実験の例
初期値の影響を消すために最初の100回分を捨てる(バーンイン)。
その後1000回の繰り返しを行なって {ak ,bk ,sk ;k=1,2,…,K} の
それぞれについて1000個のサンプリング結果を得る。これを
{A(k,j),B(k,j),S(k,j); k=1,2,…,K, j=1,2,…,1000} と書く。
{A(k,j)} と {B(k,j)} の j についての平均を {EA(k)} {EB(k)} と書いて
これを階層ベイズ法によるパラメータの推定結果として用いることに
した。
K本の直線 Y= EA(k)X+EB(k) をそれぞれの都市のグラフに描いた。
-
階層ベイズ法による推測結果
札幌 仙台東京 名古屋
京都 大阪 福岡
区の数が少ない都市は最尤推定と階層ベイズの結果が異なることが多い。
-
31
情報量規準と交差検証
階層ベイズ階層でないベイズ
普通のベイズと階層ベイズにおける情報量規準と交差検証とを行い
ハイパーパラメータ r について比較した。
-
32
推測されたパラメータの比較
階層ベイズによる a(k)
階層ベイズによる b(k)
最尤による a(k)
最尤による b(k)
-
付録 計算部分
-
34
事後分布
全部:= p(ak,bk,sk,ma,mb,t | データ, r )
∝ψ(t) Πk=1K [ ψ(sk) φ(ak,bk|ma,mb,t) Πi=1
n(k) p(Yki|Xki,ak,bk ,sk ) ]
全部 ∝ exp(- ε t) Πk=1K [ sk r-1 exp( - ε sk )
t exp{ - (t/2) {(ak-ma)2+(bk-mb)2} }
Πi=1n(k) (sk )1/2 exp{ -(sk/2)(Yki-akXki-bk)2 } ] (式☆)
(ak,bk), (ma,mb) :を最尤推定量で初期化して、次のギブスサンプラーを作る。
t ⇒ sk ⇒ (ak,bk) ⇒ (ma,mb) ⇒ 戻る ・・・
データと r が与えられたときの (ak,bk,sk,ma,mb,t ) の事後分布(全部)は
これにそれぞれの定義を代入すると
-
35
1 ハイパーパラメータ t の生成
t に注目する。
t はガンマ分布 G( K+1, 1 / [ ε + (1/2) Σk {(ak-ma)2+(bk-mb)2} ] )
を使って生成できる。
(式☆)をもう一度書くと
全部 ∝ exp(- ε t) Πk=1K [ sk r-1 exp( - ε sk )
t exp{ - (t/2) {(ak-ma)2+(bk-mb)2} }
Πi=1n(k) (sk )1/2 exp{ -(sk/2)(Yki-akXki-bk)2 } ] (式☆)
ガンマ分布の定義 G(α,β) ∝ xα-1exp(-x/β)
-
36
2 パラメータ sk の生成
従って sk はガンマ分布を使って生成できる。
G( n(k)/2+ 1, 1 / [ ε + (1/2) Σi=1n(k) (Yki-akXki-bk)2 ] )
(式☆)をもう一度書くと
全部 ∝ exp(- ε t) Πk=1K [ sk r-1 exp( - ε sk )
t exp{ - (t/2) {(ak-ma)2+(bk-mb)2} }
Πi=1n(k) (sk )1/2 exp{ -(sk/2)(Yki-akXki-bk)2 } ] (式☆)
ガンマ分布の定義 G(α,β) ∝ xα-1exp(-x/β)
-
37
3 パラメータ (ak,bk) を生成
(式☆)をもう
一度書くと
全部 ∝ exp(- ε t) Πk=1K [ sk r-1 exp( - ε sk )
t exp{ - (t/2) {(ak-ma)2+(bk-mb)2} }
Πi=1n(k) (sk )1/2 exp{ -(sk/2)(Yki-akXki-bk)2 } ] (式☆)
Hk = vk =t + skΣi=1
n(k) Xki2 skΣi=1n(k) Xki
skΣi=1n(k) Xki t + skn(k)
t ma + skΣi=1n(k) XkiYki
t mb + sk Σi=1n(k) Yki
∝ exp[ - (1/2)|| Hk1/2{ uk – Hk-1vk }T ||2 ]
行列 Hk と ベクトル vk を次式で定義する。
全部 ∝ exp[ - (1/2)(uk, Hkuk) + (vk,uk ) } ]
{ (ak,bk) } に注目し ベクトル uk= (ak,bk)T とおくと( {uk} は独立で)
-
38
= Hk-1 vk + Hk-1/2ak bk
randn
randn
4 パラメータ (ak,bk) を生成(つづき)
{ (ak,bk) } は次式で生成できる。(各k について独立)。
-
39
5 ハイパーパラメータ (ma,mb) の生成
(ma,mb) に注目する。 平方完成を行うと
ma は平均が (1/K) Σk akで標準偏差が 1/(tK)1/2 の正規分布
mb は平均が (1/K) Σk bkで標準偏差が 1/(tK)1/2の正規分布
(式☆)をもう一度書くと
全部 ∝ exp(- ε t) Πk=1K [ sk r-1 exp( - ε sk )
t exp{ - (t/2) {(ak-ma)2+(bk-mb)2} }
Πi=1n(k) (sk )1/2 exp{ -(sk/2)(Yki-akXki-bk)2 } ] (式☆)
-
40
6 データの正規化・初期値の設定など
今回の実験では、最尤推定を (ak ,bk), (ma,mb) の初期値とした。
(ak ,bk) の最尤推定量は、 t=0, sk =1 のときの Hk-1 vk と等しい。
(ma,mb) の最尤推定量は、{ (1/K) Σk ak , (1/K) Σk bk } と等しい。
理論上はパラメータの初期値は何でもよい。
データ {(Xki,Yki)} は何でもよいが、数値発散が心配なので [-3, 3] 区間の
程度の値に変換しておくと安心である。 例 log ( exp(-10000) ) = NaN.
ベイズ統計入門 (13)�� 目標 階層ベイズ法スライド番号 2スライド番号 3階層ベイズ法構造を持つモデリングの例生成過程(ハイパーパラメータ⇒パラメータ⇒データ)統計的推測(データ⇒ハイパーパラメータ+パラメータ)モデリングの正しさを推定するには注意1注意2スライド番号 11具体的な例で説明します。最尤推定してみたが・・・。同種の推測が複数の場所で行なわれる問題統計モデリングを図示すると推測されるものの確率分布統計モデリングの例統計モデリングの例問2スライド番号 20準備: 正規分布準備: ガンマ分布事後分布のサンプリングギブスサンプリング階層ベイズ法の手順注意: 階層ベイズ法の手順注意 事後分布の自動生成プログラムスライド番号 28実験の例階層ベイズ法による推測結果情報量規準と交差検証推測されたパラメータの比較スライド番号 33事後分布1 ハイパーパラメータ t の生成 2 パラメータ sk の生成 3 パラメータ (ak,bk) を生成スライド番号 385 ハイパーパラメータ (ma,mb) の生成 6 データの正規化・初期値の設定など