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