Upgrade to Pro — share decks privately, control downloads, hide ads and more …

gaussianprocessregression

yuki
March 07, 2021
14k

 gaussianprocessregression

yuki

March 07, 2021
Tweet

Transcript

  1. 2 本記事の内容と対象 ✓ ガウス過程による回帰を なんとなく理解するための記事 ✓ この順番で説明 ① ガウス分布とは ②

    ガウス過程回帰をざっくり理解する ③ ガウス過程の導出と意味 ④ ガウス過程を用いた回帰分析
  2. 4 ガウス分布(正規分布)とは ✓ 確率密度が次式で与えられる分布を ガウス分布(正規分布)と呼び, 𝑁 𝜇, 𝜎2 で表す 𝑁

    𝜇, 𝜎2 = 1 2𝜋𝜎2 exp − 𝑥 − 𝜇 2 2𝜎2 変数 x 確率密度 𝑥 = 𝜇 1 2𝜋𝜎2 exp − 𝑥 − 𝜇 2 2𝜎2 𝜇: 平均 𝜎2: 分散 𝜎: 標準偏差
  3. 5 標準偏差と確率 ✓ 平均を中心とした標準偏差の整数倍以内のデータが 出力される確率は下図のとおり ±1σの領域 𝜇 𝜇 𝜇 𝜇

    + 3𝜎 𝜇 − 3𝜎 𝜇 + 2𝜎 𝜇 − 2𝜎 𝜇 + 𝜎 𝜇 − 𝜎 ±2σの領域 ±3σの領域 全体の68.3% 全体の95.4% 全体の99.7% 95.4%の確率で 𝜇 ± 2𝜎 の間の値が出力される!という意味
  4. 7 2次元のガウス分布 ✓ ガウス分布を2次元に拡張すると次式のようになる 𝑁 𝝁, 𝚺 = 1 2𝜋

    𝚺 exp − 1 2 𝒙 − 𝝁 𝑇𝚺−1 𝒙 − 𝝁 変数 x 1 変数 x 2 確率密度 𝑥1 = 𝜇1 𝑥2 = 𝜇2 𝒙 = 𝑥1 𝑥2 : 確率変数ベクトル, 𝝁 = 𝜇1 𝜇2 : 平均ベクトル,𝚺 = 𝜎1 2 𝜎12 𝜎21 𝜎2 2 : 分散共分散行列 x 1 の分散 x 1 とx 2 の共分散 (σ 12 = σ 21 ) x 2 の分散
  5. 8 共分散のイメージ ✓ 変数間に相関があるとき,共分散の絶対値は大きくなる 𝚺 = 1 0 0 1

    𝚺 = 1 −0.9 −0.9 1 𝚺 = 1 0.7 0.7 1 相関なし(独立) x 1 x 2 x 1 x 2 x 1 x 2 正の相関 負の相関 x 1 x 2 x 1 x 2 x 1 x 2 確率密度分布 ガウス分布からのサンプル
  6. 9 N次元のガウス分布(多変量正規分布) ✓ ガウス分布をN次元に拡張すると次式のようになる 𝑁 𝝁, 𝚺 = 1 2𝜋

    𝑁/2 𝚺 exp − 1 2 𝒙 − 𝝁 𝑇𝚺−1 𝒙 − 𝝁 ✓ 多変量正規分布とよぶ 𝒙 = 𝑥1 𝑥2 ⋮ 𝑥𝑁 : 確率変数ベクトル,𝝁 = 𝜇1 𝜇2 ⋮ 𝜇𝑁 : 平均ベクトル, 𝚺 = 𝜎1 2 𝜎12 𝜎21 𝜎2 2 … 𝜎1𝑁 … 𝜎2𝑁 ⋮ ⋮ 𝜎𝑁1 𝜎𝑁2 ⋱ ⋮ … 𝜎𝑁 2 : 分散共分散行列 分散 共分散
  7. 12 最小二乗法の場合 ✓ 最小二乗法により求めた3次の多項式近似曲線は下図の通り ✓ 未知データ x* の予測 f(x*) は定数として与えられる

    入力変数 x 目的変数 y 𝑦 = 𝑓 𝑥 = 𝑤0 + 𝑤1 𝑥 + 𝑤2 𝑥2 + 𝑤3 𝑥3 ✓ 最小二乗法の詳細はこちら ✓ https://yuyumoyuyu.com/2020/12/13/simpleregressionwithols/ x* f(x*)
  8. 13 ガウス過程回帰の場合 ✓ ガウス過程回帰の場合は予測が確率として与えられる! ✓ 未知データ x* の予測 f(x*) はガウス分布に従う

    入力変数 x 目的変数 y 𝜇∗ 𝑓 𝑥 の平均を繋いだ線 𝑓 𝑥 の 𝜇 ± 𝜎 の領域 𝜇∗ − 𝜎∗ 𝑥∗ 𝜇∗ + 𝜎∗ 𝑓 𝑥∗ ~𝑁 𝜇∗, 𝜎∗2
  9. 14 ガウス過程回帰の特徴 ✓ ガウス過程回帰の予測結果は,入力(教師)データから 遠ければ遠いほど分散が大きくなる (予測の信頼度が低下) 入力変数 x 目的変数 y

    教師データから遠いため 分散が大きい! (予測の信頼度が低い!) 教師データに近いため 分散が小さい! (予測の信頼度が高い!)
  10. 15 ガウス過程回帰のざっくりまとめ ✓ ガウス過程回帰の特徴は下記の通り ⚫ モデルの予測値が確定した値ではなく確率で与えられる ⚫ その予測値はガウス分布に従い, 分散の値により予測の信頼度が求められる ⚫

    教師データに近い入力変数が与えられた場合は, 予測値の分散が小さくなる(予測の信頼度が高くなる) ✓ なんとなく理解出来たら, 先にプログラムを動かしてみるのも手↓ ✓ https://github.com/yshimizu12/GaussianProcessRegression
  11. 17 ガウス過程の定義 ✓ ガウス過程の定義は以下の通り ✓ 入力 x 1 , x

    2 ,…, x N が与えられたとき 対応する出力ベクトル f が多変量ガウス分布に従うとき f はガウス過程に従う,という 𝒇 = 𝑓 𝑥(1) 𝑓 𝑥(2) ⋮ 𝑓 𝑥(𝑁) ~𝑁 𝝁, 𝜮 ✓ 次ページから,この導出と意味について説明
  12. 18 線形回帰モデルの引用 ✓ n組のデータが与えられた場合の線形回帰モデルは 以下の通り 𝑦(1) 𝑦(2) ⋮ 𝑦(𝑛) =

    𝑤0 + 𝑤1 𝑥 1 (1) 𝑥 1 (2) ⋮ 𝑥 1 (𝑛) + ⋯ + 𝑤𝑚 𝑥𝑚 (1) 𝑥𝑚 (2) ⋮ 𝑥𝑚 (𝑛) = 1 1 ⋮ 1 𝑥 1 (1) 𝑥 1 (2) ⋮ 𝑥 1 (𝑛) ⋯ ⋯ ⋯ 𝑥𝑚 (1) 𝑥𝑚 (2) ⋮ 𝑥𝑚 (𝑛) 𝑤0 𝑤1 ⋮ 𝑤𝑚 ⟺ 𝒚 = 𝑿𝒘 𝑦(𝑖):i番目の出力データ(i = 1,…,n) 𝑥1 𝑖 , … , 𝑥𝑚 (𝑖):i番目のm種類の 入力データ(i = 1,…,n) 𝑤0 , … , 𝑤𝑚 :重み係数 ✓ こちら↓で定義したモデル ✓ https://yuyumoyuyu.com/2020/12/20/multipleregression/
  13. 19 非線形写像 ✓ 関数の表現力をあげるため, 入力ベクトルを関数化して表現する 𝑦(1) 𝑦(2) ⋮ 𝑦(𝑛) =

    𝜙0 𝒙(1) 𝜙0 𝒙(2) ⋮ 𝜙0 𝒙(𝑛) 𝜙1 𝒙(1) 𝜙1 𝒙(2) ⋮ 𝜙1 𝒙(𝑛) ⋯ ⋯ ⋯ 𝜙𝑚 𝒙(1) 𝜙𝑚 𝒙(2) ⋮ 𝜙𝑚 𝒙(𝑛) 𝑤0 𝑤1 ⋮ 𝑤𝑚 ⟺ 𝒚 = 𝚽𝒘 𝑦(𝑖):i番目の出力データ (i = 1,…,n) 𝒙(𝑖):i番目の入力ベクトル (i = 1,…,n) 𝜙𝑗 :j番目の関数 (j = 0,…,m) 𝑤0 , … , 𝑤𝑚 :重み係数 関数の例 𝜙 𝑥 = 𝑥2, 𝑥3, sin 𝑥 , log 𝑥 , … 様々な非線形表現を用いることでモデルの表現力を向上!
  14. 20 重みをガウス分布に従って生成 ✓ 重み w が以下のガウス分布から生成されるものとする 𝒘 = 𝑤0 𝑤1

    ⋮ 𝑤𝑚 ~𝑁 𝟎, 𝜆2𝚰 = 𝑁 0 ⋮ 0 , 𝜆2 𝟎 ⋱ 𝟎 𝜆2 分散は全て 𝜆2 共分散は全て0⇒独立! ✓ 行列 Φ は定数行列であるため, 出力ベクトル y = Φw も同様にガウス分布に従う 平均0
  15. 21 出力ベクトルの平均と共分散行列 ✓ 出力ベクトルの期待値は以下のとおり 𝔼 𝒚 = 𝔼 𝚽𝒘 =

    𝚽𝔼 𝒘 = 𝟎 𝔼 𝑋 : Xの期待値 Φは定数 wの期待値は0 ✓ 出力ベクトルの共分散行列は以下のとおり 𝛴 = 𝔼 𝒚 − 𝔼 𝒚 𝒚 − 𝔼 𝒚 𝑇 = 𝔼 𝒚𝒚𝑇 = 𝔼 𝚽𝒘 𝚽𝒘 𝑇 = 𝔼 𝚽𝒘𝒘𝑇𝚽𝑇 = 𝚽𝔼 𝒘𝒘𝑇 𝚽𝑇 = 𝚽 𝜆2𝚰 𝚽𝑇 = 𝜆2𝚽𝚽𝑇 E[y]=0 y=Φwを代入 転置行列の積の公式 Φは定数 wの分散をV[w]とすると V[w]=E[wwT]-E[w]E[w]T =E[wwT]
  16. 22 まとめると… ✓ これまでの計算をまとめると次のようになり これは最初のガウス過程の定義に一致 𝒚~𝑁 𝟎, 𝜆2𝚽𝚽𝑇 ✓ この計算には重みベクトル

    w が出てこない! ✓ つまり,他の機械学習手法のように重みを学習する 必要がなく,共分散行列を計算するだけでよい!
  17. 23 出力データの平均は0でよいのか? 𝒚~𝑁 𝟎, 𝜆2𝚽𝚽𝑇 ✓ 平均ベクトルが 0 になっているが 観測データ

    y はあらかじめ平均を引いておけば 平均が 0 になるため,以下では平均 0 のガウス過程を扱う x y 平均で引く x y 平均
  18. 24 ガウス過程の共分散行列の解釈 ✓ 共分散は特徴ベクトル Φ の内積で計算できるため 類似した入力ベクトル x に対応する出力 y

    も似た値をとる 𝚺 = 𝜆2𝚽𝚽𝑇 = 𝜆2 ⋮ 𝜙0 𝒙(𝑖) ⋯ 𝜙𝑚 𝒙(𝑖) ⋮ 𝜙0 𝒙(𝑗) ⋯ ⋮ ⋯ 𝜙𝑚 𝒙(𝑗) = 𝜆2 ⋮ 𝝓 𝒙(𝑖) 𝑇 ⋮ ⋯ 𝝓 𝒙(𝑗) ⋯ ⟹ 𝚺𝑖𝑗 = 𝜆2𝝓 𝒙(𝑖) 𝑇 𝝓 𝒙(𝑗) 共分散行列の(i,j)要素 𝒙(𝑖) と 𝒙(𝑗) が 似たベクトル 𝝓 𝒙(𝑖) と 𝝓 𝒙(𝑗) の 内積が大きい 𝜮𝑖𝑗 が大きい 𝑦(𝑖)と𝑦(𝑗)が 似た値と なりやすい (p.8参照)
  19. 25 カーネル関数の導入 ✓ 共分散行列の各要素は特徴ベクトル Φ の内積によって 決まるため,特徴ベクトルを明示的に求める必要はない ✓ 適当なカーネル関数を用いることで,共分散行列を表現 ✓

    カーネル行列やグラム行列と呼ばれる 𝚺 = 𝐊 = 𝑘 𝒙(1), 𝒙(1) 𝑘 𝒙(1), 𝒙(2) 𝑘 𝒙(2), 𝒙(1) 𝑘 𝒙(2), 𝒙(2) … 𝑘 𝒙(1), 𝒙(𝑁) … 𝑘 𝒙(2), 𝒙(𝑁) ⋮ ⋮ 𝑘 𝒙(𝑁), 𝒙(1) 𝑘 𝒙(𝑁), 𝒙(2) ⋱ ⋮ … 𝑘 𝒙(𝑁), 𝒙(𝑁) 𝑘 𝒙(𝑖), 𝒙(𝑗) = 𝜆2𝝓 𝒙(𝑖) 𝑇 𝝓 𝒙(𝑗) カーネル関数:x(i)とx(j)の類似度を表現する関数 共分散行列をカーネル行列(グラム行列)K を用いて表現
  20. 27 未知のデータをどう予測するか? ✓ 図のように既知のデータセットが与えられた前提で 未知の入力変数 x* に対応する y* を予測する 入力変数

    x 目的変数 y 𝑥(1), ො 𝑦(1) 𝑥(2), ො 𝑦(2) 𝑥(3), ො 𝑦(3) 𝑥(4), ො 𝑦(4) 𝑥(5), ො 𝑦(5) 𝑥(6), ො 𝑦(6) 𝑥(7), ො 𝑦(7) x* y*はどこ?
  21. 28 最小二乗法なら簡単 ✓ 以下のように,最小二乗法により3次多項式を求めた場合 重み係数 w 0 , w 1

    , w 2 , w 3 が全て計算済みなので 未知の入力データ x* を代入するだけでよい 入力変数 x 目的変数 y 𝑦 = 𝑓 𝑥 = 𝑤0 + 𝑤1 𝑥 + 𝑤2 𝑥2 + 𝑤3 𝑥3 x* f(x*)
  22. 29 ガウス過程では一筋縄ではいかない ✓ ガウス過程の場合,既知データの確率分布だけが与えられ 重み係数は明示的に計算されておらず,予測ができない! 𝒚 = 𝑦(1) 𝑦(2) 𝑦(3)

    𝑦(4) 𝑦(5) 𝑦(6) 𝑦(7) 𝑇~𝑁 𝟎, 𝑲 入力変数 x 目的変数 y 𝑥(1), ො 𝑦(1) 𝑥(2), ො 𝑦(2) 𝑥(3), ො 𝑦(3) 𝑥(4), ො 𝑦(4) 𝑥(5), ො 𝑦(5) 𝑥(6), ො 𝑦(6) 𝑥(7), ො 𝑦(7) x* y*はどこ?
  23. 30 未知の入力データを含んだ分布を考える ✓ ガウス過程回帰では,未知の入力データを含んだ分布を 再定義して考える! 𝒚′ = 𝑦 1 ⋮

    𝑦 7 𝑦∗ ~𝑁 0 ⋮ 0 0 , 𝑘 𝒙(1), 𝒙(1) ⋯ 𝑘 𝒙(1), 𝒙(7) ⋮ ⋱ ⋮ 𝑘 𝒙(7), 𝒙(1) ⋯ 𝑘 𝒙(7), 𝒙(7) 𝑘 𝒙(1), 𝒙∗ ⋮ 𝑘 𝒙(7), 𝒙∗ 𝑘 𝒙∗, 𝒙(1) ⋯ 𝑘 𝒙∗, 𝒙(7) 𝑘 𝒙∗, 𝒙∗ 𝒚 𝐊 𝒌∗ 𝒌∗ 𝑇 未知データと既知データの カーネル関数 ✓ この多変量ガウス分布から,予測分布は次式で与えられる (証明は参考文献参照) 𝑝 𝑦∗|𝑥∗, 𝒙, 𝒚 = 𝑁 𝒌∗ 𝑇𝐊−1𝒚, 𝑘 𝒙∗, 𝒙∗ − 𝒌∗ 𝑇𝐊−1𝒌∗ 分散 期待値 𝑥∗, 𝒙, 𝒚 が与えられた 時の 𝑦∗ の確率
  24. 31 予測分布の期待値と分散の解釈 ✓ 予測分布の解釈は次の通り 期待値 𝒌∗ 𝑇𝐊−1𝒚 𝑲−1によって線形変換された 𝒚 と

    𝒌∗ 𝑇 の内積と解釈可能 𝒌∗ 𝑇 は未知データと既知データの類似度を表しているため 𝑥∗ に類似した 𝑥(𝑖) の出力 𝑦(𝑖) に期待値が類似すると解釈できる 分散 𝑘 𝒙∗, 𝒙∗ − 𝒌∗ 𝑇𝐊−1𝒌∗ 𝑲−1によって線形変換された 𝒌∗ と 𝒌∗ 𝑇 の内積が 𝑘 𝒙∗, 𝒙∗ から 差し引かれる 𝒌∗ 𝑇 は未知データと既知データの類似度を表しているため 𝑥∗ に類似した 𝑥(𝑖) が多ければ多いほど 𝒌∗ 𝑇𝐊−1𝒌∗ が大きくなり 分散が小さくなり,予測の信頼度が向上すると解釈できる