今日のお題
線形回帰の最小二乗法
$ J(w) = \sum_{i=1}^n (y_i - w^T x_i)^2 $を最小化
→ $(X^T X) $が正則なら
$ w = (X^T X)^{-1} X^T Y $
が最小解
これを計算してみます。
関数J(w)の勾配を求める
関数 $ J(w) $ は次のように与えられている。
$ J(w) = \sum_{i=1}^n (y_i - w^T x_i)^2 $
ここで、$ y_i $ は目標値、$ w $ は重みベクトル、$ x_i $ は教師データのベクトルです。
この関数 $ J(w) $ の勾配を求めるために、各 $ w $ に関して微分します。まず、行列形式に変換する。
$ J(w) = (Y - Xw)^T (Y - Xw) $
ここで、 $ Y $ は $ y_i $ のベクトル、$ X $ は $ x_i $ の行列である。
この式を展開すると:
$ J(w) = Y^T Y - 2 Y^T X w + w^T X^T X w $
これを $ w $ に関して微分すると:
$ \nabla J(w) = -2 X^T Y + 2 X^T X w $
したがって、勾配 $ \nabla J(w) $ は次のようになる。
$ \nabla J(w) = 2 X^T (X w - Y) $
勾配が0になる値を求める
$ 2 X^T (X w - Y) = 0 $
$ X^T X w = X^T Y $
これを解くと、重みベクトル $ w $ は次のようになる。
$ w = (X^T X)^{-1} X^T Y $