重回帰分析で評価関数の値を最小化する

スポンサーリンク

モデルを決める

教師データとして、M次元の説明変数xと、対応する目的変数yが与えられたとき、

$$\hat{y}=w_0x_0+\ldots+w_mx_m$$

と近似できるパラメータ、

$$w=[w_0, \ldots, w_m]$$

を求めます。

予測式の$w_0$は定数項(切片)で、説明変数の変動に影響されないように$x_0=1$とおきます。

このモデルが持つパラメータは、定数項を含めてM+1個あり、M+1次元のベクトルwで表します。

$$\hat{y}=w_0x_0+\ldots+w_mx_m$$

$$=\begin{bmatrix}w_0&\ldots&w_m\end{bmatrix}
\begin{bmatrix}x_0\\\vdots\\x_m\end{bmatrix}$$

$=w^Tx=x^Tw$

評価関数を決める

重回帰分析は、単回帰分析と同じ評価関数を使います。

$$L=(y_1-\hat{y}_1)^2+\ldots+(y_m-\hat{y}_m)^2$$

$$=\begin{bmatrix}y_1-\hat{y}_1&\ldots&y_n-\hat{y}_n\end{bmatrix}
\begin{bmatrix}y_1-\hat{y}_1\\\vdots\\y_n-\hat{y}_n\end{bmatrix}$$

$$=(y-\hat{y})^T(y-\hat{y})$$

式変形する

$$\hat{y}=\begin{bmatrix}\hat{y}_1\\\vdots\\\hat{y}_n\end{bmatrix}
=\begin{bmatrix}x_1^Tw\\\vdots\\x_n^Tw\end{bmatrix}
=\begin{bmatrix}x_1^T\\\vdots\\x_n^T\end{bmatrix}w
$$

$$=\begin{bmatrix}x_{10}&\ldots&x_{1m} \\
\vdots&\vdots&\vdots \\
x_{n0}&\ldots&x_{nm}\end{bmatrix} w$$

$$=Xw$$

NxM行列Xは、各行が各データを表しており、各列が各入力変数を表しています。各列は入力変数の種類に対応しており、例えば、部屋の広さや、駅からの距離などです。

$$L=(y-\hat{y})^T(y-\hat{y})$$

$$=(y-Xw)^T(y-Xw)$$

$$=(y^T-w^TX^T)(y-Xw)$$

$$=y^Ty-y^TXw-w^TX^Ty+w^TX^TXw$$

$$=y^Ty-2y^TXw+w^TX^TXw$$

$(1)^T=1$のように、スカラーは転置しても同じである性質から、
$$y^TXw=(y^TXw)^T=w^TX^Ty$$

$$=y^Ty-2(X^Ty)^Tw+w^TX^TXw$$

$$=C+b^Tw+w^TAw$$

w以外の変数に具体的な数値を当てはめて考えてみましょう。

$$A=\begin{bmatrix}1&2\\3&4\end{bmatrix} \quad
b=\begin{bmatrix}1\\2\end{bmatrix} \quad
c=1 \quad
w=\begin{bmatrix}w_1\\w_2\end{bmatrix}$$

$$L=C+b^Tw+w^TAw$$

$$=1+\begin{bmatrix}1&2\end{bmatrix}
\begin{bmatrix}w_1\\w_2\end{bmatrix}+
\begin{bmatrix}w_1&w_2\end{bmatrix}
\begin{bmatrix}1&2\\3&4\end{bmatrix}
\begin{bmatrix}w_1\\w_2\end{bmatrix}$$

$$=1+w_1+2w_2+
\begin{bmatrix}w_1&w_2\end{bmatrix}
\begin{bmatrix}w_1+2w_2\\3w_1+4w_2\end{bmatrix}$$

$$=1+w_1+2w_2+w_1(w_1+2w_2)+w_2(3w_1+4w_2)$$

$$=1+w_1+2w_2+5w_1w_2+w_1^2+4w_2^2$$

w1, w2それぞれについて二次関数になっていることが分かります。

最適なパラメータを求める

評価関数Lをwで微分して0となる、パラメータwを求めます。

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

$$\frac{d}{dw}(C+b^Tw+w^TAw)=0$$

$$0+b+(A+A^T)w=0$$

$$-2X^Ty+(X^TX+X^TX)w=0$$

$$-2X^Ty+2X^TXw=0$$

$$2X^TXw=2X^Ty$$

$$X^TXw=X^Ty$$

$$(X^TX)^{-1}X^TXw=(X^TX)^{-1}X^Ty$$

$$w=(X^TX)^{-1}X^Ty$$

m行n列のXとn行m列のX^Tの積は、m行m列の正方行列となり、逆行列の条件が成立します。

コメント

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