評価関数の値を微分で最小化する

スポンサーリンク

評価関数とは?

モデルの予測式は$y=ax+b$で表すことができ、aとbをパラメータといいます。

モデルが実際のデータの並びに近づく最適なパラメータを見つけ出すことを「最適化」といい、「評価関数」はモデルのパラメータが最適かどうかを評価する指標です。

評価関数の式として最小二乗法があります。

$x$を説明変数、$y$を目的変数といいます。

最小二乗法とは?

最小二乗法が示す値は予測値と実際のデータの差の合計であり、予測値とサンプルデータの値にどれだけの誤差があるかを確認できます。

$$L=\sum_{n=1}^{N} (y_n-\hat{y}_n)^2$$

誤差を二乗することで、マイナスを意識せずに処理できるように考えられています。

誤差は小さいに越したことがありません。高い評価を得られるのは評価関数の値が可能な限り小さいモデルであり、評価関数の値が最小になるパラメータを探し出すために、評価関数の値を最小化します。

データを中心化する

データから平均値を引くことで、データが中心化され、中心化されたデータの平均値が0になります。

パラメータaとbを求める問題設定ですが、中心化すると切片が0になるので、中心化したあとの予測式は$\hat{y_c}=ax_c$となり、求めるべきパラメータはaのみとなります。

$x_c=x-\bar{x}$

$y_c=y-\bar{y}$

データは中心化済みと仮定して、$\hat{y}=ax$とします。※cは省略

微分で評価関数の値を最小化する

微分を利用して、評価関数の最小値に該当する「極値」を求めます。

接線の傾きを意識して最適なパラメータを求めます。傾きがゼロになる部分がモデルのパラメータとして最も適切と考えられます。

$$L= \sum_{n=1}^{N} (y_n-\hat{y}_n)^2 = \sum_{n=1}^{N} (y_n-ax_n)^2$$

$$=\sum_{n=1}^{N} ({y_n}^2 -2y_nax_n +a^2{x_n}^2)$$

$$=\sum_{n=1}^{N} ({y_n}^2 -2x_ny_na +{x_n}^2a^2)$$

$$= (\sum_{n=1}^{N} {y_n}^2) -2(\sum_{n=1}^{N} x_ny_n)a +(\sum_{n=1}^{N} {x_n}^2)a^2$$

$$=C_0 -2C_1a+C_2a^2$$

$$\frac{d}{da}(L)=0$$

$$\frac{d}{da}(C_0 -2C_1a+C_2a^2)=0$$

$${-2C_1 \times (\frac{d}{da}a)} + {C_2 \times (\frac{d}{da}a^2)} = 0$$

$$-2C_1+2C_2a=0$$

$$2C_2a=2C_1$$

$$a=\frac{C_1}{C_2}$$

$$a=\frac{(\displaystyle \sum_{n=1}^{N} x_ny_n)}{(\displaystyle \sum_{n=1}^{N} {x_n}^2)}$$

コメント

タイトルとURLをコピーしました