ガウス過程回帰 (Gaussian Process Regression)は,予測が確率分布(ガウス分布)で与えられ,分散の値から予測のばらつき具合も評価することができます。背景にあるガウス過程は様々な分野で研究されており,クリギングやカルマンフィルタ,ニューラルネットワークなど多くの手法に関連するモデルです。本記事では,ガウス過程回帰の定義と解釈について解説します。
pythonによるサンプルプログラムはこちらからどうぞ。
大きい画面で表示したい方はこちらからご覧ください。
スライドの目次
- 本記事の内容と対象
- ①ガウス分布とは
- ガウス分布(正規分布)とは
- 標準偏差と確率
- 分散のイメージ
- 2次元のガウス分布
- 共分散のイメージ
- N次元のガウス分布(多変量正規分布)
- ②ガウス過程回帰をざっくり理解する
- 回帰分析の前提
- 最小二乗法の場合
- ガウス過程回帰の場合
- ガウス過程回帰の特徴
- ガウス過程回帰のざっくりまとめ
- ③ガウス過程とは
- ガウス過程の定義
- 線形回帰モデルの引用
- 非線形写像
- 重みをガウス分布に従って生成
- 出力ベクトルの平均と共分散行列
- まとめると…
- 出力データの平均は0でよいのか?
- ガウス過程の共分散行列の解釈
- カーネル関数の導入
- ④ガウス過程を用いた回帰分析
- 未知のデータをどう予測するか?
- 最小二乗法なら簡単
- ガウス過程では一筋縄ではいかない
- 未知の入力データを含んだ分布を考える
- 予測分布の期待値と分散の解釈
参考文献
- C.M. ビショップ,パターン認識と機械学習 上, 丸善出版 (2012)
- C.M. ビショップ,パターン認識と機械学習 下, 丸善出版 (2012)
- 持橋大地・大羽成征,ガウス過程と機械学習,講談社 (2019)
質問、コメント等ございましたら、下部のコメント欄,もしくはメールやTwitterよりご連絡ください。
コメント
「ガウス過程回帰と機械学習」を読んでいて分からないことを調べている中でこちらの記事にたどり着きました。
有用な解説ありがとうございます。
スライド23の平均で引くという操作ですが、ここでの平均はスカラー average(y_1,…,y_n) で考えているように見えるのですが、それで良いのでしょうか?
ベクトルyの平均はベクトルで、スライド13の点線に乗っている [mu*_1,…,mu*_n] ではないのでしょうか?
こんにちは。質問ありがとうございます。
時間をいただけると幸いです。私が不勉強のせいで,明確な回答がパッと思い浮かびません。
直感的には,
スカラーaverage(y_1,…,y_n)をベクトルyの平均とすることで,尤度の高いエリアでのサンプリングを達成している,ような気がします。(図3.5のイメージ)
また,スライド13の平均はサンプリング(y_1,…,y_n)が与えられたときの事後分布から算出しているので,平均ベクトルにはふさわしくないような気がします。
明確な回答が思い浮かんだら,追記いたします。
時間ができたのであれこれ考えてみました。
私見ですので、間違いがあればご指摘いただけると幸いです。
大前提として、1次元ガウス分布と多変量ガウス分布の違いについて説明しなければなりません。
平均0の1次元ガウス分布はもちろん0付近に分布します。
しかし本書で言う無限次元の多変量ガウス分布は、平均ベクトルが0だとしても超球面上に分布します。
https://qiita.com/ae14watanabe/items/ef5689d40a0fbee957ea#fn3
↑のリンクでは、分散を単位行列としていますが、ガウス過程ではデータに基づく分散共分散行列を考えます。
そのため、ガウス過程で考える高次元の多変量ガウス分布は楕円体型となります。
この直感に反する事実を前提として話を進めます。
言及されているスライド13の点線は、それぞれ訓練データセットが与えられた時の事後分布で、本質的には1次元ガウス分布です。(予測値が複数(y1,y2)でも、それぞれの予測値(y1)の確率分布は他の予測値(y2)を全て周辺化して与えられるため。)
それに対し、当該のガウス過程は、十分に高次元多変量ガウス分布を考えています。
ですので、前者は平均mu(必ずしも0ではない)近くに分布し、後者は平均0ですが超球面状に分布します。
この違いが、感じられている違和感につながっているのではないか、と推測します。
ではなぜスライド23の平均で引くという操作が成立するかですが、
こちらは超球面の原点を0に持っていく、という操作と等価なのではないでしょうか。
以上が私の考察です。
ご不明点等あれば、ご気軽にどうぞ。
考えていただきありがとうございました。
私の感じている違和感の原因に推測がついてきた気がします。
本のp.63「観測データyは、あらかじめ平均を引いておけば平均を0にできますから、本書では多くの場合で式(3.17)のガウス過程を扱います。」を読んで、
本当は
f~N(mu,K) (3.24)
で考えるべきだけども、平均をキャンセルして
y~N(0,K) (3.17)
で考えても一般性を失わない、という趣旨と思って、それならここでの平均はmuだろうと思ったのですが、そういう趣旨ではないのかもしれません。すみません。
上記を頭から追い出して考えて、yuki さんの言われた「尤度の高いエリアでのサンプリングを達成している」というヒントを考えると、average(y_1, …, y_n)で引く理由付けが分かってきた気がします。
スライド13の左のグラフで原点付近に分布するモデルからサンプリングしたものだと言うと、それは強引じゃない?と言われそうだけど、右のグラフでそう言うと納得性が高い、だから右のグラフで考える、右のグラフは左のグラフからaverage(y_1, …, y_n)を引いたものだ、だからaverage(y_1, …, y_n)で引く方法を推奨する、という感じでしょうか?
なお、紹介いただいたQiitaの記事の多次元分布に関する話は初めて知りました。
貴重な情報、ありがとうございます。
距離でヒストグラムをプロットすると、単調減少でないことは初めて知った事実で、とても勉強になりました。
(ただ高次元でも、確率密度関数の最大値はあくまで原点にあると思いますし、距離のヒストグラムにおいてピークが0付近でないことを超球面状に分布する、と呼ぶのはちょっと誇大広告ではないかという気もするのですが。。。)
ご返信ありがとうございます。
私も些か考えを拡げすぎたかもしれません。
サンプリングの話なので、平均0のデータセットであれば平均0のガウス過程からのサンプリングを仮定しても問題ない、くらいのニュアンスなんでしょうね。
お返事ありがとうございます。
きっとそういうことなんでしょうね。
理解が深まりとても助かりました。ありがとうございました。