射影行列のイメージと楽しい公式

射影行列直交射影行列の意味とイメージをわかりやすく紹介します。また,P=A(AA)1AP=A(A^{\top}A)^{-1}A^{\top} という楽しい公式も紹介します。

射影行列とは

射影行列の定義

P2=PP^2=P を満たす正方行列 PP射影行列という。

例えば,P=(1100)P=\begin{pmatrix}1&1\\0&0\end{pmatrix} とすると,P2=PP^2=P なので PP は射影行列です。

PP による変換を図示してみます。P(xy)=(x+y0)P\begin{pmatrix}x\\y\end{pmatrix}=\begin{pmatrix}x+y\\0\end{pmatrix} なので,(x,y)(x,y)(x+y,0)(x+y,0) に変換します。図示してみると「射影っぽい」ですね。スクリーン(xx 軸)に斜め45°から光を当てる感じです。 射影行列のイメージ

この「射影っぽい性質」についてもう少し説明します。

射影行列の性質

射影行列による変換で AABB にうつるとき,直線 ABAB 上の点はすべて BB にうつる。

つまり,射影行列 PP に対して Paundefined=bundefinedP\overrightarrow{a}=\overrightarrow{b} ならば,任意の実数 tt について,P(taundefined+(1t)bundefined)=bundefinedP(t\overrightarrow{a}+(1-t)\overrightarrow{b})=\overrightarrow{b}

証明

P(taundefined+(1t)bundefined)=tPaundefined+(1t)Pbundefined=tbundefined+(1t)P2aundefined=tbundefined+(1t)Paundefined=tbundefined+(1t)bundefined=bundefinedP(t\overrightarrow{a}+(1-t)\overrightarrow{b})\\ =tP\overrightarrow{a}+(1-t)P\overrightarrow{b}\\ =t\overrightarrow{b}+(1-t)P^2\overrightarrow{a}\\ =t\overrightarrow{b}+(1-t)P\overrightarrow{a}\\ =t\overrightarrow{b}+(1-t)\overrightarrow{b}\\ =\overrightarrow{b}

ちなみに,P2=PP^2=P を満たす行列を冪等(べきとう)行列と呼ぶこともあります。

直交射影行列とは

直交射影行列の定義

P2=PP^2=P を満たす対称行列 PP直交射影行列という。

対称な射影行列を直交射影行列と言います。

例えば,P=(12121212)P=\begin{pmatrix}\frac{1}{2}&\frac{1}{2}\\\frac{1}{2}&\frac{1}{2}\end{pmatrix} とすると,P2=PP^2=P かつ P=PP^{\top}=P なので PP は直交射影行列です。 直交射影行列のイメージ

P(xy)=(x+y2x+y2)P\begin{pmatrix}x\\y\end{pmatrix}=\begin{pmatrix}\frac{x+y}{2}\\\frac{x+y}{2}\end{pmatrix} となり,図示してみると「直交射影っぽい」ですね。スクリーン(y=xy=xと光が直交しています。

この「直交」についてもう少し説明します。

直交射影行列の性質

直交射影行列による変換で AABB にうつるとき,ABABOBOB は直交する。ただし,OO は原点。

つまり,直交射影行列 PP に対して Paundefined=bundefinedP\overrightarrow{a}=\overrightarrow{b} ならば,(bundefinedaundefined)bundefined=0(\overrightarrow{b}-\overrightarrow{a})^{\top}\overrightarrow{b}=0

証明

(bundefinedaundefined)bundefined=(Paundefinedaundefined)Paundefined=aundefinedPPaundefinedaundefinedPaundefined=0(\overrightarrow{b}-\overrightarrow{a})^{\top}\overrightarrow{b}\\ =(P\overrightarrow{a}-\overrightarrow{a})^{\top}P\overrightarrow{a}\\ =\overrightarrow{a}^{\top}P^{\top}P\overrightarrow{a}-\overrightarrow{a}^{\top}P\overrightarrow{a}\\ =0

ただし,最終行で P=PP^{\top}=PP2=PP^2=P を用いた。

直交射影行列を求める公式

公式1

aundefined1,,aundefinedn\overrightarrow{a}_1,\cdots,\overrightarrow{a}_n たちが張る空間 VV への直交射影行列は,

P=A(AA)1AP=A(A^{\top}A)^{-1}A^{\top}

ただし,AAaundefined1,,aundefinedn\overrightarrow{a}_1,\dots,\overrightarrow{a}_n を並べた nn 列の行列で,AAA^{\top}A は正則とする。

  • 転置行列の性質に慣れていれば,PP が直交射影行列であることは簡単に確認できます:

    • P2=A(AA)1AA(AA)1A=A(AA)1(AA)(AA)1A=A(AA)1A=PP^2=A(A^{\top}A)^{-1}A^{\top}A(A^{\top}A)^{-1}A^{\top}\\ =A(A^{\top}A)^{-1}(A^{\top}A)(A^{\top}A)^{-1}A^{\top}\\ =A(A^{\top}A)^{-1}A^{\top}=P
    • P=(A(AA)1A)=A((AA))1A=A(AA)1A=PP^{\top}=(A(A^{\top}A)^{-1}A^{\top})^{\top}\\ =A((A^{\top}A)^{\top})^{-1}A^{\top}\\ =A(A^{\top}A)^{-1}A^{\top}=P
  • PPAXAX という形なので,PP の像が VV に含まれることもわかります。

  • aundefined1,,aundefinedn\overrightarrow{a}_1,\cdots,\overrightarrow{a}_n が正規直交基底の場合,AAA^{\top}A は単位行列になるので,P=AA=i=1naundefinediaundefinediP=AA^{\top}=\displaystyle\sum_{i=1}^n\overrightarrow{a}_i\overrightarrow{a}_i^{\top} となります。Pbundefined=i=1n(aundefinedibundefined)aundefinediP\overrightarrow{b}=\displaystyle\sum_{i=1}^n(\overrightarrow{a}_i^{\top}\overrightarrow{b})\overrightarrow{a}_i となり,各要素は高校数学で登場する正射影ベクトルの公式と一致します!

公式1の導出

bundefined\overrightarrow{b}VV への直交射影行列を PP' とし,Pb=xP'b=x とする。xVx\in V より Ay=xAy=x となる yy が存在する。

直交射影なので,A(bx)=0A^{\top}(b-x)=0 である。つまり, A(bAy)=0A^{\top}(b-Ay)=0

AAA^{\top}A が正則なら y=(AA)1Aby=(A^{\top}A)^{-1}A^{\top}b

つまり,Pb=x=Ay=A(AA)1AbP'b=x=Ay=A(A^{\top}A)^{-1}A^{\top}b

bb は任意なので,P=A(AA)1AP'=A(A^{\top}A)^{-1}A^{\top}

最小二乗法と射影

行列 AA と列ベクトル bundefined\overrightarrow{b} が与えられたときに Axundefinedbundefined\|A\overrightarrow{x}-\overrightarrow{b}\| を最小にする xundefined\overrightarrow{x} は,xundefined=(AA)1Abundefined\overrightarrow{x}=(A^{\top}A)^{-1}A^{\top}\overrightarrow{b} で求められます。 →最小二乗法の行列表現(一変数,多変数,多項式)

この式は一見複雑ですが,さきほどの直交射影行列を求める公式を知っていると理解が深まります。

イメージ

AxAxbb を近づけるように xx を決めたい
→ 「AxAx」=「bbAA の像(AxAx が動ける範囲)に直交射影した変換先」となるように xx を決めよう
→ 公式1より,Ax=A(AA)1AbAx=A(A^{\top}A)^{-1}A^{\top}b とすればよい
x=(AA)1Abx=(A^{\top}A)^{-1}A^{\top}b としよう

大学1年のころの講義で,教授にものすごい勢いで「エーエーテンチエーインバースエーテンチ」などと言われて全く理解できなかった記憶が残っています。今となってはいい思い出です。