
ガウス過程回帰(1):基底関数を使う
線形回帰か、非線形回帰か、それが問題だ
何かモデルを作って予測すると言えば、回帰分析の出番だろう。目的変数(出力変数)は1つとして、説明変数(入力変数)が1つの場合は単回帰分析、2つ以上の場合は重回帰分析と呼ばれる。
入出力間の関係が線形なら、線形回帰モデルが妥当と考えられ、最小二乗法で回帰係数を求めることができる。ここまでは当然知っているとしよう。
今、図1のような説明変数xと目的変数yのデータ(赤点)が得られているとする。
このとき、xの測定値からyの予測値を計算するモデルはどのように構築すればよいだろうか。
図1中に書いてある数式を見るまでもなく、xとyの関係は非線形であり、 のような線形モデルではデータをうまく表現できない。
図1 説明変数xと目的変数yのデータ
変数間の関係が非線形なのだから、何かしらの非線形回帰手法を用いなければならない。これは本当だろうか。確かに、xとyの関係は非線形であるが、x2も説明変数とみなして、 とおけば、
のような線形モデルでデータを表現できる。こうすれば、非線形回帰手法を用いることなく、最小二乗法でモデルを構築できる。
ただ、この方法がいつもうまくいくとは限らない。最大の問題は、 のような元の説明変数の非線形関数が簡単には見付けられそうにないことだ。多次元空間でグニャグニャに曲がったグラフをイメージしてみよう(これすら難しい)。そのグラフを巧妙に表現できる非線形関数をズバッと言い当てられるだろうか。これは絶望的に難しい。
基底関数
ここまでの話を一般化してみよう。説明変数xの関数を とすると、先程登場したモデル
は次のように書ける。
このような関数を を基底関数と呼ぶ。基底関数をうまく見付けることができれば、線形回帰手法で非線形モデルを構築できる。しかし現実には、基底関数として多項式を用いるのでは十分でなく、もっと複雑な関数を採用しなければ予測精度を向上させられない。しかし、そのような基底関数を見付けるのは難しい。
動径基底関数
この問題に対処するためによく使われるのが動径基底関数(Radial Basis Function)である。
図2のように、平均値 を変えながら、この釣り鐘型の動径基底関数を沢山用意すれば、その重み付き和で複雑な非線形関数を表現できる。しかし、説明変数の数が多い(入力の次元が大きい)と、用意しなければならない動径基底関数が急激に増えてしまい、この方法は破綻する。
図2 動径基底関数とその重み付き和
もっと良い方法が必要だ。そこで、巧妙に基底関数を決めるためにガウス過程を利用するのがガウス過程回帰である。次回、ガウス過程回帰について説明する。