stMind

You'll never blog alone

ビショップ本(上) 〜多項式曲線フィッティング〜

はじめに

ここでは、\bf{y}\(\bf{x}\)の求め方を具体例を通して理解する。

問題

単純な回帰問題を考える。つまり、実数値の入力変数xを観測し、実数値の目標変数tを予測したいとする。このとき、関数\sin(2\pi x)により人工的に生成したデータにより、モデルを求める。(人工データを使うのは、学習したモデルとの比較がしやすいため)

訓練集合として、N個の観測値xを並べた\bf{x}{\equiv}\{x_1, \ldots , x_N\}^Tと、それぞれに対応する観測値\bf{t}{\equiv}\(t_1, \ldots, t_N\)^Tが与えられたとする。

多項式と目的関数

このとき、以下の多項式を用いて訓練集合に対するフィッティングを行う。

y\(x, \bf{w}\) = {w_0} + {w_1}x + {w_2}{x^2} + \ldots + {w_M}{x^M} = \sum_{j=0}^{M} {w_j} {x^j}

係数の値は、訓練集合に多項式を当てはめる事で求める。これは、\bf{w}を任意に固定したときの関数y\(x, \bf{w}\)の値と訓練集合のデータ点とのずれを測る誤差関数の最小化で達成できる。誤差関数は、各データ点x_nにおける予測値y\(x_n, \bf{w}\)と対応する目標値t_nとの二乗和誤差を使う。

 E\(\bf{w}\) = 1/2 \sum_{n=1}^N {y\(x_n, \bf{w}\) - t_n}^2
ただし、M多項式の次数

E\(\bf{w}\)を最小にする\bf{w}を選ぶことで問題を解く事ができる。

今日の最後に

誤差関数に対して微分して最小値を求めるという処理は基本。覚えて使えるようにしておこう。