エンジニアを目指す浪人のブログ

情報系に役立ちそうな応用数理をゆるめにメモします

行列の階数分解の存在と非一意性を証明する

勉強を進めていて,行列の階数分解((full) rank factorization)について知りました.聞き慣れない概念でモヤモヤしてしまったので,その基本的な性質である存在と非一意性についての証明を文献[1]の3章をベースにしてまとめておくことにしました.

=================================================================================
記号を準備します.

{\displaystyle \;\;\; \mathbb{C}^{n} \;\;\; : } {\displaystyle \mathbb{C} } の要素を要素にもつ {\displaystyle n } 次元ベクトルの集合
{\displaystyle \;\;\; \mathbb{C}^{m \times n} : } {\displaystyle \mathbb{C} } の要素を要素にもつ {\displaystyle m \times n } 行列の集合
{\displaystyle \;\;\; \mathbb{C}_r^{m \times n} : } {\displaystyle \mathbb{C} } の要素を要素にもつ {\displaystyle m \times n } 行列で階数 {\displaystyle r } となるものの集合

以下の不等式を証明なしで用います(文献[1][3]にあります).

(0.1) 任意の {\displaystyle A \in \mathbb{C}^{m \times n} } について {\displaystyle  \mathrm{rank}\ A \le \mathrm{min}(m,n) }
(0.2) 任意の {\displaystyle A \in \mathbb{C}^{m \times n}, \ B \in \mathbb{C}^{n \times k} } について {\displaystyle  \mathrm{rank}(AB) \le \mathrm{min}(\mathrm{rank}\ A,\mathrm{rank}\ B) }
(0.3) 任意の正則行列 {\displaystyle B \in \mathbb{C}^{n \times n}, \ C \in \mathbb{C}^{m \times m} } について {\displaystyle  \mathrm{rank}(AB) = \mathrm{rank}\ A = \mathrm{rank}(CA) }


以上の設定のもとで,本記事の目的に進みます.階数分解とは,行列を列フルランクの行列と行フルランクの行列の積に分解することです.

定義.
{\displaystyle A \in \mathbb{C}_r^{m \times n} } とします.ある {\displaystyle F \in \mathbb{C}_r^{m \times r}, \ G \in \mathbb{C}_r^{r \times n} } を用いて {\displaystyle A = FG } とするとき,これを {\displaystyle A } の階数分解といいます.


存在. (Existence)
あらゆる {\displaystyle A \in \mathbb{C}_r^{m \times n} } について階数分解を得ることができます.そのことを示します.{\displaystyle A } を以下のように表します.

{\displaystyle \;\;\; A = \begin{bmatrix} \boldsymbol{a}_1 & \boldsymbol{a}_2 & \cdots & \boldsymbol{a}_n \end{bmatrix} = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \vdots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{bmatrix} }


{\displaystyle A } の列空間(column space)(文献[4]にあります)のある {\displaystyle r } 個の基底を以下のように表します(基底の取り方には任意性があることに注意).

{\displaystyle \;\;\; \boldsymbol{f}_1 =  \begin{bmatrix} f_{11} \\ f_{21} \\ \vdots \\ f_{m1} \end{bmatrix}, \;\; \cdots \;\; , \; \boldsymbol{f}_r = \begin{bmatrix} f_{1r} \\ f_{2r} \\ \vdots \\ f_{mr} \end{bmatrix} }


{\displaystyle F } を以下のように構成します.{\displaystyle \mathrm{rank}\ F = r } です.

{\displaystyle \;\;\; F = \begin{bmatrix} \boldsymbol{f}_1 & \cdots & \boldsymbol{f}_r \end{bmatrix}  = \begin{bmatrix} f_{11} & \cdots & f_{1r} \\ f_{21}  & \cdots & f_{2r} \\ \vdots & \vdots & \vdots \\ f_{m1} & \cdots & f_{mr} \end{bmatrix} }

すると {\displaystyle A } の各列は以下のようなただ一つの線形結合で表すことができます.{\displaystyle \boldsymbol{a}_j \in \mathbb{C}^{m} } です.

{\displaystyle \;\;\; \boldsymbol{a}_j = g_{1j} \boldsymbol{f}_1 + \cdots + g_{rj} \boldsymbol{f}_r }

{\displaystyle \;\;\;\;\;\;\; = g_{1j} \begin{bmatrix} f_{11} \\ f_{21} \\ \vdots \\ f_{m1} \end{bmatrix} + \;\; \cdots \;\; + g_{rj} \begin{bmatrix} f_{1r} \\ f_{2r} \\ \vdots \\ f_{mr} \end{bmatrix} }

{\displaystyle \;\;\;\;\;\;\; = \begin{bmatrix} f_{11} & \cdots & f_{1r} \\ f_{21}  & \cdots & f_{2r} \\ \vdots & \vdots & \vdots \\ f_{m1} & \cdots & f_{mr} \end{bmatrix} \begin{bmatrix} g_{1j} \\ \vdots \\ g_{rj} \end{bmatrix}, \;\;\;\;\;\; j = 1,\ldots,n }

{\displaystyle G } を以下のように構成します.

{\displaystyle \;\;\; G = \begin{bmatrix} g_{11} & \cdots & g_{1n} \\ \vdots & \vdots & \vdots \\ g_{r1} & \cdots & g_{rn} \end{bmatrix} }


したがって以下の式を得ることができ,{\displaystyle A =FG } となる行列 {\displaystyle G \in \mathbb{C}^{r \times n} } がただ一つに決まることがわかります.

{\displaystyle \;\;\; A = \begin{bmatrix} \boldsymbol{a}_1 & \boldsymbol{a}_2 & \cdots & \boldsymbol{a}_n \end{bmatrix}  }

{\displaystyle \;\;\;\;\;\;\; = \begin{bmatrix} f_{11} & \cdots & f_{1r} \\ f_{21}  & \cdots & f_{2r} \\ \vdots & \vdots & \vdots \\ f_{m1} & \cdots & f_{mr} \end{bmatrix} \begin{bmatrix} g_{11} & \cdots & g_{1n} \\ \vdots & \vdots & \vdots \\ g_{r1} & \cdots & g_{rn} \end{bmatrix} }

{\displaystyle \;\;\;\;\;\;\; = FG }


次に,{\displaystyle G } の階数について考えます.以下が成り立ちます.

{\displaystyle \;\;\; r = \mathrm{rank}\ A }
{\displaystyle \;\;\;\;\;\;  = \mathrm{rank} (FG) }
{\displaystyle \;\;\;\;\;\;  \le \mathbb{min} (\mathrm{rank}\ F, \ \mathrm{rank}\ G ) \;\;\; \because } (0.2)
{\displaystyle \;\;\;\;\;\;  = \mathbb{min} (r, \ \mathrm{rank}\ G ) }
{\displaystyle \;\;\;\;\;\;  \le \mathrm{rank}\ G }
{\displaystyle \;\;\;\;\;\;  \le \mathbb{min} (r, n) \;\;\;\;\;\; \because } (0.1)
{\displaystyle \;\;\;\;\;\;  \le r }
{\displaystyle \;\;\;\;\;\;\;\;\; \Rightarrow \mathrm{rank}\ G = r }

したがって,{\displaystyle G \in \mathbb{C}_r^{r \times n} } を得ます.



非一意性. (Non-uniqueness)
階数分解はただ一つには決まりません.任意の {\displaystyle A = FG, \ A \in \mathbb{C}_r^{m \times n}} と任意の正則行列 {\displaystyle R \in \mathbb{C}_r^{r \times r} } について {\displaystyle A = FG = FRR^{-1}G = (FR)(R^{-1}G) } とでき,最右辺は {\displaystyle A } の(別の)階数分解です.ここで

{\displaystyle \;\;\; \mathrm{rank}(FR) = \mathrm{rank}\ F = r \;\;\; \because } (0.3)
{\displaystyle \;\;\; \mathrm{rank}(R^{-1}G) = \mathrm{rank}\ G = r  \;\;\; \because } (0.3)

であるので,確かに {\displaystyle (FR) \in \mathbb{C}_r^{m \times r}, \ (R^{-1}G) \in \mathbb{C}_r^{r \times n} } です.

=================================================================================

以上,行列の階数分解の存在と非一意性を証明しました.



参考文献
[1] Piziak, R., and Odell, P.L.(1999), Full Rank Factorization of Matrices, Mathematics Magazine, Vol.72, No.3, pp.193-201.
[2] Wikipedia Rank factorization のページ https://en.wikipedia.org/wiki/Rank_factorization
[3] Wikipedia Rank (linear algebra) のページ https://en.wikipedia.org/wiki/Rank_(linear_algebra)
[4] Wikipedia Row and column spaces のページ https://en.wikipedia.org/wiki/Row_and_column_spaces

おまけ
[1] へのリンク https://www.researchgate.net/publication/265958585_Full_Rank_Factorization_of_Matrice