[PRML] 1.1 多項式曲線フィッティング

回帰(regression)とは、教師あり学習(supervised learning)のひとつです。

  1. 機械を訓練するためのデータ(training set) {\mathbf x}_{train} とそれぞれに対応する目標ベクトル(target vector) {\mathbf t}_{train} があらかじめ与えられているので、それらをもとに関数 y を求めます。
  2. 新たな入力 {\mathbf x}_{test} が来たときに、求めた関数 y を使って、対応する目標ベクトル {\mathbf t}_{test} を予測します。

曲線フィッティング(curve fitting)を例に紹介します。
以下の多項式を使ってデータへのフィッティングを行います。
y は、ある入力値 x が与えられると、x^iが係数 \omega_i によって重み付けされた和を返す関数になっています。

y(x, {\mathbf w}) = \omega_0 + \omega_1 x + \omega_2 x^2 + \cdots + \omega_M x^M = \sum_{j=0}^{M} \omega_j x^j

M は多項式の次数、多項式の係数 (\omega_0, \omega_1, \ldots , \omega_M)^T = {\mathbf w} とおくことにします。
この多項式は、未知のパラメータ {\mathbf w} に関して線形になっているのがポイントです。こういった関数を線形モデル(linear model)と呼びます。

訓練データをもとに、この多項式のパラメータが決まれば、新たなデータ x_{test} が来たときに、予測される目標値 t_{test} を出力してくれることになります。

ここで、決めなくてはならないパラメータは2つあります。

  • 多項式の係数 {\mathbf w}
  • 多項式の次数 M

係数 {\mathbf w} の決め方
まず、どうすればパラメータ {\mathbf w} を決めることができるのでしょうか。

あらかじめ与えられているのは訓練データだけです。
そこで、{\mathbf w} を任意の値に固定したときの関数 y(x, {\mathbf w}) の値と訓練データの目標値 t とのずれを測り、この誤差(error)が最も小さくなるときの関数 y(x, {\mathbf w^{*}}){\mathbf w^{*}} を選択します。

誤差を測る関数を誤差関数(error function)と呼びます。
二乗和誤差(sum-of-squares error)が単純なのでよく使われます。

E({\mathbf w}) = \frac{1}{2} \sum_{n=1}^{N} \{t_n - y(x_n, {\mathbf w})\}^2

この関数は係数 {\mathbf w} の二次関数なので、{\mathbf w} に関する微分は線形になります。誤差関数を最小にするただ1つの解を持つことになり、その解 {\mathbf w}^* は閉じた形で求められます。

次数 M の決め方
次に、多項式の次数 M は、どう選べばよいのでしょうか。