PRML1.2(最小二乗誤差) – PRMLで出てくる数式を掘り下げる

本シリーズの一覧はこちら
前回はこちら

今回の式を見ていきましょう。

$$ E(\bf w \rm)=\frac{1}{2}\sum_{n=1}^{N}\{y(X_n,\bf w \rm)-t_n\}^2 \tag{1.2} $$

「パターン認識と機械学習 上」P.6「1.1 例:多項式曲線フィッティング」より

この式は誤差関数の式ですね。

最小二乗誤差とか二乗和誤差(mean squared error)とも言われますが、損失関数の一つとしてよく出てきます。

損失関数とは

損失関数とは、ニューラルネットワークの性能の”悪さ”を示す指標です。現在のニューラルネットワークが教師データに対してどれだけ適合していないか、教師データに対してどれだけ一致していないかということを表します。

(ゼロから作るDeep Learning P.88)

ニューラルネットワークの性能を測るために使用される最小二乗法ですが、これは「ITエンジニアのための機械学習入門」に詳しいです。

最小二乗法の仕組み

求めるべき関数関係としてxの多項式を仮定し、観測データに対する二乗誤差を最小にするという条件から、多項式の係数を決定します。

(ITエンジニアのための機械学習入門 P.60)

機械学習では、はじめにいくつかの観測点xと教師データtが与えられ、
そこから一定のパターンを見出していきます。
機械学習の分野では、xを特徴変数、tを目的変数と呼びます。

前回定義した関数\( y(x,\bf w \rm ) \)に観測点\( x_1, x_2, … x_n \)を代入して値を算出し、
教師データ\( t_1, t_2, … t_n \)と差分を出して二乗したものを足していきます。

式にするとこんな感じです。

$$ \{y(x_1,\bf w \rm) – t_1 \}^2 + \{y(x_2,\bf w \rm) – t_2 \}^2 + … + \{y(x_n,\bf w \rm) – t_n \}^2 $$

これをΣで書き直して二分の一したものが冒頭の式になります。

なぜ二分の一するのか

最小二乗誤差はその名称を額面通りに受け取れば\( \sum_{n=1}^{N}\{y(X_n,\bf w \rm)-t_n\}^2 \)でいいはずです。
なぜ二分の一したものを最小二乗誤差として定義したのでしょうか。

ニューラルネットワークの性能を測るために定義された最小二乗誤差ですが、
『ニューラルネットワークの性能が良い』と言うためには、\( y(X_n,\bf w \rm)と教師データt_n \)の差が小さいことが条件になります。
この差が小さければ小さいほどそれを二乗して足した最小二乗誤差の値も小さくなります。

すなわち、性能の良いw(\( \{w_m\}_{m=0}^M \))を決定するためには、最小二乗誤差を\( \{w_m\}_{m=0}^M \)の関数とみなした際の変微分係数が0になるように計算していくのです。

$$ \frac{\partial E(\bf w \rm)}{\partial w_m}=0  (m=0,…,M) $$

$$ \frac{\partial \{\frac{1}{2}\sum_{n=1}^{N}\{y(X_n,\bf w \rm)-t_n\}^2\}}{\partial w_m}=0 $$

前回の式を代入して

$$ \frac{\partial \{\frac{1}{2}\sum_{n=1}^{N}\{\sum_{j=1}^{M}w_{j}x^j-t_n\}^2\}}{\partial w_m}=0 $$

偏微分の計算をして

$$ \sum_{n=1}^{N}(\sum_{j=1}^{M}w_{j}x_n^j-t_n)x_n^m\}=0 $$

と、1/2が消えて以降の計算がしやすくなるのです。

以降の計算は「ITエンジニアのための機械学習入門」のP.65に載っているので興味のある方は参考にしてください。


投稿日

カテゴリー:

投稿者:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください