行列の積や逆行列、対角化について学んだことをメモします。
単位ベクトルの行き先
以下の式について理解する。
Ae_i = a_i
$n$行$m$列の行列$A$を考える。
A = \left(
\begin{matrix}
a_{11} & a_{12} & ... & a_{1m} \\
a_{21} & ... & ... & a_{2m} \\
: & : & a_{ji} & a_{jm} \\
a_{n1} & ... & ... & a_{nm}
\end{matrix}
\right)
列ベクトル(縦ベクトル)は
a_i = \left(
\begin{matrix}
a_{1i} \\
a_{2i} \\
: \\
a_{ni}
\end{matrix}
\right)
\in R^n
単位ベクトル$e_i$を以下とすると
e_i = \left(
\begin{matrix}
0 \\
: \\
1 \\
: \\
0
\end{matrix}
\right)
\in R^m
以下が成り立つ
Ae_i = a_i =
\left(
\begin{matrix}
a_{1i} \\
a_{2i} \\
: \\
a_{ji} \\
: \\
a_{ni}
\end{matrix}
\right)
ので、$a_{ji}$は$Ae_i$の第$j$成分(単位ベクトルの行き先の成分)
A = \left(
\begin{matrix}
a_{11} & a_{12} & ... & a_{1m} \\
a_{21} & ... & ... & a_{2m} \\
: & : & : & : \\
a_{n1} & ... & ... & a_{nm}
\end{matrix}
\right) = \left(
\begin{matrix}
a_{1} & a_{2} & ... & a_{m}
\end{matrix}
\right)
行列は単位ベクトル$e_i$の行き先$a_i$(縦ベクトル)を(横に)並べたもの
行列とベクトルの積
以下の式について理解する。
Ax = \sum x_{i}a_{i}
$x$を以下のように定義すると
x = \left(
\begin{matrix}
x_{1} \\
: \\
x_{m}
\end{matrix}
\right)
\in R^m
行列$A$と列ベクトル$x$の積は
Ax = x_{1}a_{1} + x_{2}a_{2} + {...} + x_{m}a_{m}
この式は各$a_{i}$を$x_{i}$回ずつ使って足すことを意味する。
電車で例える場合、例えば以下のような具体的な計算を考えると、
\left(
\begin{matrix}
3 & 1 \\
1 & 2
\end{matrix}
\right)
\left(
\begin{matrix}
1 \\
2
\end{matrix}
\right)
=
\left(
\begin{matrix}
5 \\
5
\end{matrix}
\right)
- 左側の行列の各縦ベクトルは電車の行き先を表す
- 掛け算の対象の縦ベクトルの各成分は進む駅数を表す
- 計算結果の縦ベクトルは終着駅を表す
行列とベクトルの積と内積
以下の式について理解する。
Ax =
\left(
\begin{matrix}
\vec{a_{1}}x \\
: \\
\vec{a_{n}}x
\end{matrix}
\right)
横ベクトル$\vec{a_{n}}$を以下のように定義すると
\vec{a_{n}} =
\left(
\begin{matrix}
a_{n1} & a_{n2} & ... & a_{nm}
\end{matrix}
\right)
行列とベクトルの積は内積を縦に並べたものを意味する。
データサイエンスの文脈では、内積はベクトルの類似度や係数とデータの「積」として用いられる。特にベクトルの類似度の発想は以下で用いられる。
- 畳み込み層(Convolution Layer)
- word2vec(単語分散表現)
- TransformerのMulti-Head Attention
逆行列の基本公式
ある条件の場合に$n×n$の正方行列$A$に逆行列$A^{-1}$が存在して以下が成り立つ
A^{-1}a_i = e_i
- 理由①
$A^{-1}A = I$だから(ここで$I$は単位行列)
Ae_i = a_i
A^{-1}Ae_i = A^{-1}a_i
Ie_i = A^{-1}a_i
e_i = A^{-1}a_i
A^{-1}a_i = e_i
- 理由②
$A^{-1}A = I$だから
A^{-1}A = I
A^{-1} \left(
\begin{matrix}
a_{1} & a_{2} & ... & a_{n}
\end{matrix}
\right)
=
\left(
\begin{matrix}
e_{1} & e_{2} & ... & e_{n}
\end{matrix}
\right)
$A^{-1}a_i = e_i$は逆行列の定義そのもの
逆行列は成分抽出
ある条件の場合に$n×n$の正方行列$A$に逆行列$A^{-1}$が存在して以下が成り立つ
A^{-1} \sum x_{i}a_{i} = x
- 理由
Ax = \sum x_{i}a_{i}
A^{-1}Ax = A^{-1} (\sum x_{i}a_{i})
Ix = A^{-1} (\sum x_{i}a_{i})
x = A^{-1} (\sum x_{i}a_{i})
A^{-1} (\sum x_{i}a_{i}) = x
- 意味
行列$A$に逆行列$A^{-1}$が存在するときは、どんなベクトル$y \in R^n$に対しても、以下のように$a_{1}$ ~ $a_{n}$の係数付き和(1次結合)で表せる
y = ○a_{1} + □a_{2} + {...} + △a_{n}
ここで
y = x_{1}a_{1} + x_{2}a_{2} + {...} + x_{n}a_{n}
と表すと、$A^{-1} (\sum x_{i}a_{i}) = x$ なのだから、ベクトル$y$($=\sum x_{i}a_{i}$)の係数$x_{i}$たちを知りたい場合は $x = A^{-1}y$ と計算すればよい
- 補足説明
Ax = \sum x_{i}a_{i}
AA^{-1}y = y
対角化
以下の式について理解する。
Ap_{i} = λ_{i}p_{i}
対角化とは、ある条件下で$n×n$の正方行列$A$と$n×n$の正方行列$P$と$λ_{1}, λ_{2}, {...}, λ_{n}$について、
A = PDP^{-1}
ここで
D = \left(
\begin{matrix}
λ_{1} & 0 & ... & 0 \\
0 & λ_{2} & ... & 0 \\
: & : & : & : \\
0 & ... & ... & λ_{n}
\end{matrix}
\right)
次のとき、
p_{i} =
\left(
\begin{matrix}
p_{1i} \\
p_{2i} \\
: \\
p_{ni}
\end{matrix}
\right)
\in R^n
以下が成り立つ
Ap_{i} = λ_{i}p_{i}
例えば、
\left(
\begin{matrix}
1 & 2 \\
4 & 3
\end{matrix}
\right)
=
\left(
\begin{matrix}
1 & 1 \\
2 & -1
\end{matrix}
\right)
\left(
\begin{matrix}
5 & 0 \\
0 & 1
\end{matrix}
\right)
\left(
\begin{matrix}
1 & 1 \\
2 & -1
\end{matrix}
\right) ^{-1}
のとき、以下が成り立つ
Ap_{1} = λ_{1}p_{1} \quad,\quad Ap_{2} = λ_{2}p_{2}
行列はあるベクトルを別のベクトルに変換するもの。
対角化は変換の表現方法の1つ。