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

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

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

最小二乗法と正規方程式

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

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

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

例題

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

解答

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

目標: ∥Ax−b∥\|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=(A⊤A)−1A⊤b=(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 とするだけです。ただし,計算は慣れていないとやや大変です(行列の基本的な演算や微分公式を用いる)。

正規方程式の導出

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

∥Ax−b∥2=(Ax−b)⊤(Ax−b)=(x⊤A⊤−b⊤)(Ax−b)=x⊤A⊤Ax−2x⊤A⊤b+b⊤b\|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)と,2A⊤Ax−2A⊤b2A^{\top}Ax-2A^{\top}b となる。よって,∥Ax−b∥\|Ax-b\| が最小となる必要条件として,A⊤Ax=A⊤bA^{\top}Ax=A^{\top}b が得られる。

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

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

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

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