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

gaussianprocessregression

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for yuki yuki
March 07, 2021
15k

 gaussianprocessregression

Avatar for yuki

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𝒌∗ が大きくなり 分散が小さくなり,予測の信頼度が向上すると解釈できる