正規方程式の導出と計算例

AAA^{\top}A が正則なとき,Axb\|Ax-b\| を最小にする xx はただ一つであり,それは 正規方程式:AAx=AbA^{\top}Ax=A^{\top}b を解くことで得られる。

前半は正規方程式を用いた最小二乗法の計算の具体例です。後半は正規方程式の導出です。

最小二乗法と正規方程式

  • x,bx,b は縦ベクトル,AA は行列です。x\|x\| はベクトル xx の長さを表します。
  • AAbb が与えられたとき,Axb\|Ax-b\| を最小にするような xx を求める問題は非常に重要です。→最小二乗法の行列表現(単回帰,多変数,多項式)
  • 連立方程式 Ax=bAx=b が解を持つときは嬉しいけども,解を持たない時にも諦めるのではなく,AxAxbb に近くなるような xx を探したいというモチベーションです。
  • 正規方程式は,Ax=bAx=b の両辺に左から AA^{\top} をかけただけなので覚えやすいです。

正規方程式を用いた計算例

最小二乗法(直線)の簡単な説明で扱った問題です。

例題

(2,3),(4,7),(9,11)(2,3),\:(4,7),\:(9,11) というデータの組に対して最小二乗法を適用してもっともらしい直線を引け。

解答

求める直線の傾きを pp ,切片を qq とおくと,以下のように行列表現できる。

目標: Axb\|Ax-b\| を最小にする x=(pq)x=\begin{pmatrix}p\\q\end{pmatrix} を求める。

ただし,A=(214191)A=\begin{pmatrix}2&1\\4&1\\9&1\end{pmatrix}b=(3711)b=\begin{pmatrix}3\\7\\11\end{pmatrix}

よって,答えは正規方程式を解くことにより,

x=(AA)1Ab=(14132113)x=(A^{\top}A)^{-1}A^{\top}b=\begin{pmatrix}\frac{14}{13}\\\frac{21}{13}\end{pmatrix}

求める直線の方程式は y=1413x+2113y=\dfrac{14}{13}x+\dfrac{21}{13}

正規方程式の導出

考え方は非常に単純です。凸な二次関数なので微分して =0=0 とするだけです。ただし,計算は慣れていないとやや大変です(行列の基本的な演算や微分公式を用いる)。

正規方程式の導出

まず,目的関数の二乗 Axb2\|Ax-b\|^2 を整理する:

Axb2=(Axb)(Axb)=(xAb)(Axb)=xAAx2xAb+bb\|Ax-b\|^2=(Ax-b)^{\top}(Ax-b)\\ =(x^{\top}A^{\top}-b^{\top})(Ax-b)\\ =x^{\top}A^{\top}Ax-2x^{\top}A^{\top}b+b^{\top}b

ただし,最後の変形で補足1を用いた。

これを xx で微分する(各要素で偏微分する,つまり勾配ベクトルを求める→補足2)と,2AAx2Ab2A^{\top}Ax-2A^{\top}b となる。よって,Axb\|Ax-b\| が最小となる必要条件として,AAx=AbA^{\top}Ax=A^{\top}b が得られる。

特に,AAA^{\top}A が正則なときは,x=(AA)1Abx=(A^{\top}A)^{-1}A^{\top}b が唯一の解であり,この xx が最小値を与える。

補足1: bAxb^{\top}Ax はスカラーなので,転置を取っても同じ。つまり,bAx=xAbb^{\top}Ax=x^{\top}A^{\top}b

補足2:対称行列 PP に関する二次形式 xPxx^{\top}Px の微分(勾配ベクトル)は 2Px2Px となり,線形関数 xvx^{\top}v の微分は vv となる(単純計算で簡単に証明できる) →二次形式の意味,微分,標準形など

正規方程式。きれいですよねえ。