正規方程式(最小二乗法)を導出してみる

最小二乗法でポイントなる正規方程式の導出を残しておきます。すぐ忘れてしまうので。。。

前提として、

  • nはサンプル数。
  • dは特徴量ベクトルの次元数。
  • yはターゲットで(n×1)のベクトル。
  • X~は特徴量で(n×d)の行列。
  • wはパラメータで(d×1)のベクトル。

です。

最小二乗法では、関数とターゲットとの差の二乗の和を最小化したいため、その値をE(w)とします。

(1)E(w)=|yX~w|2(2)=(yX~w)T(yX~w)(3)=yTyyTX~wwTXT~y+wTXT~X~w(4)=yTy(yTX~w)TwTXT~y+wTXT~X~w(5)=yTywTXT~ywTXT~y+wTXT~X~w(6)=yTy2wTXT~y+wTXT~X~w

(1)から(2)においては、A2=ATAを利用しています。

(2)から(3)(4)から(5)においては、(AB)T=BTATを利用しています。

(3)から(4)においては、「yTX~wがスカラーである」ことからA=ATを利用しています。なぜ「yTX~wがスカラーである」かというと、この計算結果の行数、列数を考えれば自明となります。yT(1×n)のベクトル、X~(n×d)の行列、w(d×1)のベクトルであり、三者の積は(1×1)の行列、即ちスカラーとなります。

E(w)を最小化するwを求めるため、E(w)の勾配を考えます。

E(w)=2XT~y+2XT~X~w

ここでは、xTAx=2Axを利用しています。

E(w)=0となるwを計算すると、

2XT~y+2XT~X~w=02XT~X~w=2XT~yXT~X~w=XT~yw=(XT~X~)1XT~y

計算された式は一般的に「正規方程式」と呼ばれています。