回帰(regression)とは、教師あり学習(supervised learning)のひとつです。
- 機械を訓練するためのデータ(training set) とそれぞれに対応する目標ベクトル(target vector) があらかじめ与えられているので、それらをもとに関数 を求めます。
- 新たな入力 が来たときに、求めた関数 を使って、対応する目標ベクトル を予測します。
曲線フィッティング(curve fitting)を例に紹介します。
以下の多項式を使ってデータへのフィッティングを行います。
は、ある入力値 が与えられると、が係数 によって重み付けされた和を返す関数になっています。
は多項式の次数、多項式の係数 とおくことにします。
この多項式は、未知のパラメータ に関して線形になっているのがポイントです。こういった関数を線形モデル(linear model)と呼びます。
訓練データをもとに、この多項式のパラメータが決まれば、新たなデータ が来たときに、予測される目標値 を出力してくれることになります。
ここで、決めなくてはならないパラメータは2つあります。
- 多項式の係数
- 多項式の次数
係数 の決め方
まず、どうすればパラメータ を決めることができるのでしょうか。
あらかじめ与えられているのは訓練データだけです。
そこで、 を任意の値に固定したときの関数 の値と訓練データの目標値 とのずれを測り、この誤差(error)が最も小さくなるときの関数 の を選択します。
誤差を測る関数を誤差関数(error function)と呼びます。
二乗和誤差(sum-of-squares error)が単純なのでよく使われます。
この関数は係数 の二次関数なので、 に関する微分は線形になります。誤差関数を最小にするただ1つの解を持つことになり、その解 は閉じた形で求められます。
次数 の決め方
次に、多項式の次数 は、どう選べばよいのでしょうか。