🌊

【勉強メモ】行列の"ランク"って何でしょうか...

に公開

はじめに

線形代数を勉強していれば一度は聞いたことがある「ランク」。
でも、こういうのってずっとやっていないと忘れちゃいますよね!
ということでランクとは何なのかについて解説します。
といってもすっごく簡単です!!!

ランクとは?

ランクとは、「その行列の行(または列)がどれだけ線形独立かを表す数です」です!
...は?
と言っている方の声が聞こえるので例を用いて解説します。

簡単な例

例1

以下の行列を考えてみましょう。

V= \begin{bmatrix} 1 & 3 \\ 2 & 6 \end{bmatrix}

この行列はランク1です。行方向に分解してみてみましょうか。

v_1= \begin{bmatrix} 1 \\ 2 \end{bmatrix} , v_2= \begin{bmatrix} 3 \\ 6 \end{bmatrix}

このv_1v_2のスカラー倍で表すことができます。
数式で書くと、

v_1*2=v_2

です。なので、これはv_1v_2が”スカラー倍で同じベクトルを作れる”=”独立していない”のでランクが1となります。
今回は行方向で試しましたが、列方向でも同じようにスカラー倍で表すことができます。

補足:例外なケース

以下の行列は少し特殊です。

V= \begin{bmatrix} 1 & 2 \\ 0 & 0 \end{bmatrix}

このベクトルは先ほどと同じように考えると行方向ではv_1*2=v_2ですが、列方向だとv_1v_2をスカラー倍で表すことができません。しかし、ゼロベクトルはどのベクトルのスカラー倍でも表せるので独立とはみなされないため、このケースでは列方向を無視して「ランクは1だ!」といえます。

例2

では次に以下の行列を考えてみましょう。

V= \begin{bmatrix} 1 & 0 \\ 2 & 2 \end{bmatrix}

これは、行・列方向どちらをとってもv_1v_2はスカラー倍を行って同じベクトルにすることはできません。
つまり、v_1v_2は独立!そして独立しているベクトルが2つあるのでランク2となります。

例3

では最後に、記号ベクトルの外積行列の例を見てみましょう。
a=\{a_1, a_2, \cdots , a_n\}というベクトルがあるときに以下の行列を考えます。

V=a\cdot a^T= \begin{bmatrix} a_1a_1 & a_1a_2 & \cdots & a_1a_n \\ a_2a_1 & a_2a_2 & \cdots & a_2a_n \\ \vdots & \vdots & \ddots & \vdots \\ a_na_1 & a_na_2 & \cdots & a_na_n \end{bmatrix}

これも、今まで同様にやっていきます!

v_1 = \begin{bmatrix} a_1a_1 \\ a_2a_1 \\ \vdots \\ a_na_1 \end{bmatrix} =a_1 \cdot a^T ,\quad v_2 = \begin{bmatrix} a_1a_2 \\ a_2a_2 \\ \vdots \\ a_na_2 \end{bmatrix} =a_2 \cdot a^T

これより、この2つのベクトルは以下のように表すことができます。

v_1 = a_1 \cdot a^T = \frac{a_2}{a_2} \cdot a_1 \cdot a^T = \frac{a_1}{a_2} \cdot a_2 \cdot a^T = \frac{a_1}{a_2} \cdot v_2

v_1v_2のスカラー倍で表すことができます。つまりベクトルa自身の外積で作れる行列はランク1です。

おわりに

どうでしたか?
ランクは基礎中の基礎ですがやっていないと意外と忘れてしまうものなんですね~
皆様の勉強のお役に立てることができたならば光栄です!

余談ですが、実はこの記事が初投稿なんです!
なので、まだ扱いに慣れていなかったりするため、見づらかったりするかもしれません...
なるべく見やすい記事を目指して精進します!

これからは深層学習に関連する記事を投稿していく予定なので、興味があればフォローしていただけますと励みになります!

Discussion