はじめに
線形代数を勉強していれば一度は聞いたことがある「ランク」。
でも、こういうのってずっとやっていないと忘れちゃいますよね!
ということでランクとは何なのかについて解説します。
といってもすっごく簡単です!!!
ランクとは?
ランクとは、「その行列の行(または列)がどれだけ線形独立かを表す数です」です!
...は?
と言っている方の声が聞こえるので例を用いて解説します。
簡単な例
例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_1はv_2のスカラー倍で表すことができます。
数式で書くと、
です。なので、これはv_1とv_2が”スカラー倍で同じベクトルを作れる”=”独立していない”のでランクが1となります。
今回は行方向で試しましたが、列方向でも同じようにスカラー倍で表すことができます。
補足:例外なケース
以下の行列は少し特殊です。
V=
\begin{bmatrix}
1 & 2 \\
0 & 0
\end{bmatrix}
このベクトルは先ほどと同じように考えると行方向ではv_1*2=v_2ですが、列方向だとv_1はv_2をスカラー倍で表すことができません。しかし、ゼロベクトルはどのベクトルのスカラー倍でも表せるので独立とはみなされないため、このケースでは列方向を無視して「ランクは1だ!」といえます。
例2
では次に以下の行列を考えてみましょう。
V=
\begin{bmatrix}
1 & 0 \\
2 & 2
\end{bmatrix}
これは、行・列方向どちらをとってもv_1とv_2はスカラー倍を行って同じベクトルにすることはできません。
つまり、v_1とv_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_1をv_2のスカラー倍で表すことができます。つまりベクトルa自身の外積で作れる行列はランク1です。
おわりに
どうでしたか?
ランクは基礎中の基礎ですがやっていないと意外と忘れてしまうものなんですね~
皆様の勉強のお役に立てることができたならば光栄です!
余談ですが、実はこの記事が初投稿なんです!
なので、まだ扱いに慣れていなかったりするため、見づらかったりするかもしれません...
なるべく見やすい記事を目指して精進します!
これからは深層学習に関連する記事を投稿していく予定なので、興味があればフォローしていただけますと励みになります!
Discussion