はじめに
データを使って仮説の生成と検証を行なうための方法であるベイズ最適化を学ぶために,今村秀明・松井孝太 著「ベイズ最適化 ー適応的実験計画の基礎と実践ー」を読むことにした。
本記事は,「第2章 ブラックボックス関数のベイズモデリング」における,ガウス過程回帰モデルに関する読書メモである。
- 本書の紹介ページ
2.2 ガウス過程回帰モデル
ベイズ最適化では,関数を近似する際にベイズモデリングを用いる。良く用いられるモデルとして,ベイズ線形回帰モデルとガウス過程回帰モデルが用いられる。
関連記事
ガウス過程回帰は,森賀新・木田悠歩・須山敦志 著 「Pythonではじめるベイズ機械学習入門」を読んだ際にも出てきた話題であり,読書メモは以下にまとめた。
stern-bow.hatenablog.com
ベイズ線形回帰モデルからガウス過程回帰モデルへ
ベイズ線形回帰モデルでは,モデルパラメータと基底関数
を用いて関数
をモデル化していた。しかしこの場合,入力
の次元や学習データの数が増えると,推定するべきモデルパラメータの数が指数関数的に増える(次元の呪い)という問題がある。
次元の呪いを回避するために,パラメータに依存しないノンパラメトリックなモデリング方法を用いることが考えられる。ガウス過程回帰は,ノンパラメトリックな方法に含まれる。
モデルパラメータが,多変量正規分布
にしたがうとする。
このとき関数値ベクトルがしたがう分布は,
になる。これは,関数値ベクトルが,モデルパラメータ
の線形変換になっているからである。
また関数値ベクトルがしたがう確率分布には,モデルパラメータ
が含まれていないので,ノンパラメトリックなモデルとなっている。
この式は,次元の関数値ベクトル
が正規分布にしたがうという仮定を表している。また関数
がガウス過程(Gaussian process)にしたがっていることを表し,
と表す。ただしは平均関数,
は共分散関数またはカーネル関数と呼ぶ。
カーネル関数をと表現すると,基底関数
を明示的に表さなくてもよいことが分かる。
ガウス過程の基本的な性質
カーネル関数として,ガウスカーネル を用いると,ブラックボックス関数
に対して,
入力[tex; x, x']が近ければ,
も近い値を取る。
また入力[tex; x, x']が離れていれば,はほとんど独立であるように振舞う。
という性質をモデルに反映することが分かる。
数値実験
本書P36 図2.6を参考に,ガウス過程事前分布モデルのサンプルパスと,観測データで条件付けたガウス過程事後分布モデルのサンプルパスを描画した。
データが得られることにより,そのデータ周りでの誤差が低減されることが確認できた。

上記の分析用pythonコードはこちら。
ガウス過程モデルの推論
ベイズ線形回帰モデルの時と同様に,ガウス過程回帰モデルでも,新しい入力が得られたときの出力
を推論することに興味がある。
関数に対して,平均関数が0のガウス過程事前分布を仮定する。すなわち,
である。
観測誤差がない場合
個の入力データ
を用いて,関数値ベクトル
を算出する。
このとき,新しい入力と,これに対する関数値
について,
となる。ただし, は
となるカーネル行列であり,また
である。
これはと
の同時分布になっている。いま興味がある
は,条件付き確率分布
を求めればよいが,これは多変量正規分布の条件付き確率の性質を用いれば求めることができる。
観測誤差がある場合
観測誤差がある場合,すなわちの場合を考える。
このとき,について,
となるので,
となる。