mathematical foundation of statistical learningwatanabe-...神経素子 x 1 x 2 x 3 x m w 1 w 2 w 3...

51
数理・計算科学 研究プロジェクト ベイズ統計学

Upload: others

Post on 09-Feb-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

  • 数理・計算科学 研究プロジェクト

    ベイズ統計学 ⑤

  • 2

    前回までの復習

    1 真の分布 q(x) ~ Xn、モデル p(x|w)、 事前分布 φ(w)

    2 真 q(x) と予測 p*(x) の違いを K(q||p*) で測る

    3 K(q||p*) は交差検証と情報量規準で推定できる

    4 具体的な問題に応用してみる(教師なし学習)

    今日の目標

    5 具体的な問題に応用してみる(教師あり学習)

  • 同時確率と条件つき確率

    p(x,y)

    p(y)

    x

    y

    p(x)

    y

    p(x,y)

    O

    p(y|x)

    x

  • 4

    教師なし学習

    情報源q(x)

    モデルp(x|w)

    学習

    データから情報源を推定します。

    サンプル

  • 5

    教師なし学習と潜在変数

    情報源q(x)

    モデルp(x|w)

    学習

    データから情報源と潜在変数を推定します。潜在変数を

    含むサンプル

    p(x|w)

    混合正規分布

  • 情報源q(x)

    先生q(y|x)

    p(y|x,w)モデル

    教師あり学習

    入力サンプル

    2,6,8

    出力サンプル

    学習

    データから条件つき確率を推定します。

  • 情報源q(x)

    先生q(y|x)

    神経回路網

    神経回路網の学習

    入力サンプル

    2,6,8出力サンプル

    学習

    データから条件つき確率を推定します。

  • 1 階層型神経回路網

  • データ

    教師ベクトル y : N次元y1 yi yN

    入力ベクトル x : M次元x1 xm xM

    学習データ この組が n 個ある

    目標: この組を使って情報源 q(y|x) を推定し新しい x に対する y をできる限り正確に予測したい。

  • ニューロンの応答関数

    ニューロン

    u

    σ(u) = 1/(1+e-u) : シグモイド関数

    u

    σ( u )1

    0

    1/2

    (注意)最近ではReLu関数や様々な関数が使われています。

  • 神経素子

    x1 x2 x3 xM

    w1 w2 w3 wM

    ∑ wi xiM

    i=1

    σ( ∑ wi xi + θ) : 出力M

    i=1

    神経素子(ニューロン)

    シナプス結合荷重

    バイアスθ

    1個の Neuron のモデル

    (x1,…,xM) : 外界からの入力(w1,…wM, θ):パラメータ

  • 階層型神経回路網のネットワーク

    パラメータ wij, wjk, wkm , θk , θj , θi を学習により最適化する

    x1 xm xM

    o1 oi oN

    oj

    ok

    H2

    H1

    N

    M

    oj=σ(∑wjkok+θj)H1

    k=1

    oi =σ(∑wijoj+θi)H2

    j=1

    中間層2から出力へ

    中間層1から中間層2へ

    ok=σ(∑wkmxm+θk)M

    m=1

    入力から中間層1へ

  • 13

    教師あり学習

    神経回路網の答えと正しい答えの誤差は

    Σ (yi-oi(x,w))2

    誤差が小さくなるようにw を変えていく

    入力 x

    結合荷重 w

    神経回路の出力 o(x,w)

    教師データ y

    誤差

    x1 xm xM

    o1 oi oN

    oj

    ok

    H2

    H1

    N

    M

    y1 yi yN

  • 14

    最急降下法と離散化

    E(w) を w∈ Rd のある関数とする。最急降下法は

    dw/dt = -∇E(w),w(0) = 0.

    w(t+η) – w(t) = -η∇E(w(t)),w0) = 0.

    これの離散化は 単位時間をη>0 として t=η,2η,…

    ∇ E(w) = ( , , …. , )∂E∂w1∂E∂w2

    ∂E∂wd

    ∇E = grad E とも書く

    関数 E(w) について ∇E の定義

  • 最急降下法 → 確率降下法、ミニバッチなど

    ∇ E(w) の計算法は 付録1をご覧ください。

    確率降下法:学習用のデータをランダムに一個ずつとってきてそのデータについての際急降下を行う。

    η>0 を少しずつ小さくしていく。

    ミニバッチ:一個ずつではなく複数個ずつにする。

    注意:本当に E(w) を最小化すると神経回路網の予測精度は非常に劣化するので気をつけてください。

  • 応用例(最急降下法の例)

  • 2 ベイズ学習

    神経回路網では、最尤推定による汎化損失は非常に大きいがベイズ推定では非常に小さくなる。このためベイズ推測を適用することができるととても役にたつ。

  • 条件つき確率の学習

    (1) {Xi,Yi ; i=1,2,…n} ~ q(x)q(y|x)

    (2) 学習モデル p(y|x,w)

    (3) 事前分布 ϕ(w)

    神経回路網では p(y|x,w) ∝exp( -C(y-f(x,w))2 )

    H(w) = -Σ log p(Yi|Xi,w)

    マイナス対数尤度の定義

  • 事後分布と予測分布の定義

    Ew[ ] =∫ ( ) exp( -H(w) ) ϕ(w) dw

    ∫ exp( -H(w) ) ϕ(w) dw

    p*(y|x) = Ew[ p(y|x,w) ] 予測分布

    事後分布

    q(y|x)真

    学習

  • 20

    汎化損失と学習損失

    G = ー E(X,Y) [ log p*(Y|X) ]汎化損失

    T = ー(1/n) Σ log p*(Yi |Xi) 学習損失n

    i=1

  • クロスバリデーション

    定理(Gelfand 1998). 交差損失を次式のCで定義。

    C = (1/n) Σi log Ew[ 1/p(Yi|Xi,w) ]

    E[G] = E[ C ] + O(1/n2).

    21

    E[ ] を学習データの出方に関する平均とすると

  • 22

    情報量規準

    定理(2010) 事後分布による分散を Vw[ ]と書く。広く使える情報量規準を次式で定義。

    E[G] = E[ W ] + O(1/n2).

    W = T + (1/n) Σi Vw[ log p(Yi|Xi,w) ]

    E[ ] を学習データの出方に関する平均とすると

    学習データ{(Xi,Yi)} が独立であればCとWは漸近等価。情報量規準は {Xi} が独立でなくても使える。

  • 23

    3 ランジュバン方程式とフォッカープランク方程式

    ベイズ法を実現するためには、事後分布に従うパラメータを取り出す必要がある。巨大な深層学習では、それは未だに困難であるが、それほど大きくない神経回路網では、最急降下法に雑音を入れることで事後分布を作り出すことができる。

  • 24

    ブラウン運動の定義

    確率変数の集合 { Bt ; t>0 } がブラウン運動であるとは

    (a) 各 Bt の分布は R(x|t) である。

    (b) 任意の有限個の 0

  • 25

    雑音あり離散化最急降下法と Langevin 方程式

    ここで η→ +0 にしたものを考えて次の Langevin 方程式を得る (確率微分方程式の一種)。

    dXt = -∇E(Xt) dt + dBt

    X(t+ η) – X(t) = -η∇E(X(t)) + Bη

    離散化最急降下法にブラウン運動 Bη を加えたもの

    ※ Bηはの標準偏差は sqrt(η) に比例する

  • 26

    Fokker-Planck 方程式

    方程式 X(t+η) – X(t) = -η∇E(X(t)) + Bη

    に従う確率変数 {X(t)} の確率密度関数はη→+0 のとき次のFokker-Planck方程式を満たす関数 p(x|t) に収束する。

    (∂/∂t) p(x|t) -∇・{(∇E(x)) p(x|t) } = D Δ p(x|t)

    定理

    この定理の証明は 付録2をご覧ください。

  • 27

    定常分布は事後分布になる。

    -∇・{(∇E(x)) p(x) } = D Δ p(x)

    t →無限大で p(x|t) → p(x) を仮定すると

    - (∇E(x)) p(x) = D ∇ p(x)

    ||x||→無限大で p(x)→0, ∇ p(x) →0 であることを仮定すると

    - (∇E(x)) = D ∇ log p(x)

    p(x) = C exp(-E(x)/D)

    定常分布があるとすれば温度 D/k のボルツマン分布

  • 28

    4 神経回路網のベイズ学習

  • 簡単な神経回路網

    x1 x2

    f(x,w)真: x=(x1,x2)g(x) = exp( -x12-x22-x1x2)q(y|x) = g(x)y (1-g(x))1-y

    学習モデル : f(x,w) : 神経回路網p(y|x,w) = f(x,w)y (1-f(x,w))1-y

  • 簡単な神経回路網

  • 神経回路網の

    汎化誤差

  • 32

    モデル選択の例

    x1 x2 x10

    y1 y2 y10 真: 10 → 5 →10

    モデルの候補:10 → (1, 3, 5, 7, 9)

    →10

    n =200n_test=1000

  • 33

    実験結果(10回の独立なデータに対して)

    汎化損失 WAIC

    交差損失 AIC

    隠れ層のユニット数 隠れ層のユニット数

    隠れ層のユニット数 隠れ層のユニット数

  • 34

    4 神経回路網のベイズ学習

  • 適用例

    日本全国の市区町村1870について人口に対するX: 15歳以下数Y:16歳から65歳まで数Z: 結婚数

    を相対比に変換し、(X,Y)からZへの回帰関数を神経回路網 (2→10→1) で学習した。

    政府統計の総合窓口(e-Stat)を使わせて頂きました。Http://www.e-stat.go.jp/SG1/estat/eStatTopPortal.do

  • 適用例

  • 37

    研究プロジェクト「ベイズ統計学」 まとめ

    ベイズ統計学について

    1.ベイズ統計の定義

    2.KL情報量

    3.交差検証と情報量規準

    4.混合正規分布の学習

    5.神経回路網の学習

    を勉強しました。

  • 38

    付録

  • 付録1 誤差逆伝播法

  • (5) 中間層1から2へ

    Δwjk = -η(t) δj ok

    δj = Σi δi wijoj(1-oj)

    Δθj = -η(t) δj

    δi = (oi -yi ) oi (1- oi )Δwij = -η(t) δi oj

    (4) 中間層2から出力へ

    Δθi = -η(t) δi

    (6) 入力から中間層1へδk = Σj δj wjkok(1-ok)

    Δwkm = -η(t) δkxmΔθk = -η(t) δk

    誤差逆伝播法

    oi =σ(∑wijoj+θi)H2

    j=1

    (3) 中間層2から出力へ

    oj=σ(∑wjkok+θj)H1

    k=1

    (2) 中間層1から2へ

    ok=σ(∑wkmxm+θk)M

    m=1

    (1) 入力から中間層1へ

  • ミニバッチを実装してみる

    x1 xm xM

    o1 oi oN

    oj

    ok

    H2

    H1

    N

    M

    k : ミニバッチデータの数

    x : M×k

    y : N×k

    o1, o2, o3 : H1×k, H2×k, N×k

    δ1, δ2, δ3 : H1×k, H2×k, N×k

    θ1, θ2, θ3 : H1×1, H2×1, N×1

    w1,w2,w3 :H1×M, H2×H1, N×H2

    n : データの数x : M×n , y : N×n

    ミニバッチではk 個のデータについて並列処理ができる。

  • (5) 中間層1から2へ

    Δw2 = -η(t) δ2 (o1)’δ2 = ((w3)’δ3 ).o2.(1-o2)

    Δθ2 = -η(t) δ2 (Ik)’

    δ3= (o3-y). o3. (1- o3 )Δw3 = -η(t) δ3 (o2)’

    (4) 中間層2から出力へ

    Δθ3 = -η(t) δ3 (Ik)’

    (6) 入力から中間層1へδ1 = ((w2)’δ2 ).o1.(1-o1)

    Δw1 = -η(t) δ1 (x)’Δθ1 = -η(t) δ1 (Ik)’

    行列で書く

    o3=σ(w3o2+θ3 Ik )(3) 中間層2から出力へ

    o2=σ(w2o1+θ2 Ik )

    (2) 中間層1から2へ

    o1=σ(w1x+θ1 Ik )

    (1) 入力から中間層1へ

    積は行列としての積(A)’ は A の転置[x . y] は要素毎の積σ(x) は x の要素毎の関数Ik は 1×kで要素がすべて1

  • 学習誤差とテスト誤差

    ネットワーク出力 o = (oi), 教師出力 y= (yi) .

    1個の出力の二乗誤差 E(w) = ― ∑(oi -yi )2

    N

    i=1

    12

    (N = 出力の次元)

    学習誤差 = 学習に使ったデータについての二乗誤差の平均

    テスト誤差 = テストに使ったデータについての二乗誤差の平均

  • 誤差逆伝播法の導出 (1)

    ネットワーク出力 o = (oi), 教師出力 y= (yi) .

    二乗誤差 E(w) = ― ∑(oi -yi )2N

    i=1

    12

    (N = 出力の次元)

    ∂E∂ wij

    = (oi -yi ) oi (1- oi ) oj

    = (oi -yi ) ∂ oi∂ wij

    (1) 中間層2から出力への学習

    = δi

    oj=σ(∑wjkok+θj)H1

    k=1

    oi =σ(∑wijoj+θi)H2

    j=1

    中間層2から出力へ

    中間層1から中間層2へ

    ok=σ(∑wkmxm+θk)M

    m=1

    入力から中間層1へ

  • E(w) = ― ∑(oi -yi )2

    N

    i=1

    12

    ∂E∂wjk

    = ∑ (oi -yi ) N

    i=1

    ∂oi∂oj

    ∂oj∂wjk

    ∂oi∂oj

    = oi(1-oi)wij∂ oj∂wjk

    = oj(1-oj)xk

    (2) 中間層1から中間層2へ

    = oi(1-oi)wij oj(1-oj)okN

    i=1∑ (oi -yi )

    = δj = Σi δi wijoj(1-oj)

    誤差逆伝播法の導出 (2)

    oj=σ(∑wjkok+θj)H1

    k=1

    oi =σ(∑wijoj+θi)H2

    j=1

    中間層2から出力へ

    中間層1から中間層2へ

    ok=σ(∑wkmxm+θk)M

    m=1

    入力から中間層1へ

  • E(w) = ― ∑(oi -yi )2

    N

    i=1

    12

    ∂oi∂oj

    ∂oj∂ok

    oi(1-oi)wij oj(1-oj)wjkok(1-ok)xm

    ∂ok∂wkm

    (3) 入力から中間層1へ

    ∂E∂wkm

    = ∑ ∑ (oi -yi ) H2

    j=1

    N

    i=1

    H2

    j=1

    N

    i=1∑ ∑ (oi -yi ) =

    = δk = Σj δj wjkok(1-ok)

    誤差逆伝播法の導出 (3)

    oj=σ(∑wjkok+θj)H1

    k=1

    oi =σ(∑wijoj+θi)H2

    j=1

    中間層2から出力へ

    中間層1から中間層2へ

    ok=σ(∑wkmxm+θk)M

    m=1

    入力から中間層1へ

  • 付録2 定理の証明

  • 48

    定理の証明

    表記を簡単にするため N= 1の場合を書く。

    (∂/∂t) p(x|t)–(d/dx){(d/dx)E(x)) p(x|t)} = D(d/dx)2 p(x|t)

    を示せばよい。以下では↑を示す。

    確率分布のフーリエ変換を特性関数という。確率分布の列があるとき特性関数の列がある。ある確率分布の列がある確率分布に収束することと、特性関数の列が特性関数の列に各点で収束することは同値であることが知られている。このことから、特性関数を計算してその収束を示せばよい。

  • 49

    証明

    = ∫{ p(x|t+η) –p(x|t) } / η exp{ ikx } dx

    → ∫(d/dt) p(x|t) exp{ ikx } dx 式☆

    φt(k) = ∫p(x|t) exp{ ikx } dx

    φt+η(k) = ∫p(x|t+η) exp{ ikx } dx

    [ φt+η (k) – φt(k) ] / η

    特性関数の定義から

    次の式を二通りの方法で計算してη→+0 で等しくなることを用いて証明する。まず

  • 50

    証明

    (φt+η (k) – φt(k) )/η

    = ∫p(x|t) exp{ ikx } [exp(-iηkE’(x) -Dηk2 )-1]/ηdx

    = ∫p(x|t) exp{ ikx } [-ikE’(x) -Dk2 ] dx + O(η)

    = ∫p(x|t) exp{ ikx } [-ikE’(x) -Dk2 ] dx+ O(η)

    Lengevin 方程式 X(t+η) = X(t) -ηE’(X(t)) + Bη

    と特性関数の定義 φt(k) = ∫p(x|t) exp{ ikx } dx

    X(t) と Rη が独立と正規分布の特性関数を用いると

    次に

  • 51

    証明

    [ φt+η (k) – φt(k) ] / η

    = ∫(-ik) exp{ ikx } p(x|t) E’(x) dx

    + D ∫ (-ik)2 exp{ ikx } p(x|t) dx+ O(η)

    = ∫exp{ ikx } (d/dx) {p(x|t) E’(x) } dx

    + ∫ exp{ ikx } D (d/dx)2 p(x|t) dx+ O(η)

    この式と式☆とが同じこととフーリエ変換が逆変換を持つこ

    とから 赤字の部分が等しく、定理が証明された。(証明終)

    フーリエ変換に(-ik) をかける=元関数に(d/dx)をかける なので

    スライド番号 1前回までの復習同時確率と条件つき確率教師なし学習教師なし学習と潜在変数スライド番号 6スライド番号 7スライド番号 8データニューロンの応答関数 神経素子階層型神経回路網のネットワーク教師あり学習最急降下法と離散化最急降下法 → 確率降下法、ミニバッチなど応用例(最急降下法の例)2 ベイズ学習条件つき確率の学習事後分布と予測分布の定義汎化損失と学習損失クロスバリデーション情報量規準3 ランジュバン方程式と�フォッカープランク方程式ブラウン運動の定義雑音あり離散化最急降下法と Langevin 方程式Fokker-Planck 方程式定常分布は事後分布になる。4 神経回路網のベイズ学習簡単な神経回路網簡�単�な�神�経�回�路�網神�経�回�路�網�の�汎化誤差モデル選択の例実験結果(10回の独立なデータに対して)4 神経回路網のベイズ学習適用例適用例研究プロジェクト「ベイズ統計学」 まとめ付録付録1  誤差逆伝播法 誤差逆伝播法ミニバッチを実装してみる行列で書く学習誤差とテスト誤差誤差逆伝播法の導出 (1)誤差逆伝播法の導出 (2)スライド番号 46スライド番号 47定理の証明証明証明証明