線形代数の知識メモ②行列の積、逆行列、対角化

行列の積や逆行列、対角化について学んだことをメモします。

# 単位ベクトルの行き先

以下の式について理解する。
```math
Ae_i = a_i
```

$n$行$m$列の行列$A$を考える。

```math
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)
```

列ベクトル（縦ベクトル）は
```math
a_i = \left(
\begin{matrix} 
a_{1i} \\
a_{2i} \\
: \\
a_{ni}
\end{matrix} 
\right)
\in R^n
```

単位ベクトル$e_i$を以下とすると
```math
e_i = \left(
\begin{matrix} 
0 \\
: \\
1 \\
: \\
0
\end{matrix} 
\right)
\in R^m
```
以下が成り立つ
```math
Ae_i = a_i = 
\left(
\begin{matrix} 
a_{1i} \\
a_{2i} \\
: \\
a_{ji} \\
: \\
a_{ni}
\end{matrix} 
\right)
```
ので、<font color="Crimson">$a_{ji}$は$Ae_i$の第$j$成分</font>（単位ベクトルの行き先の成分）

```math
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)
```

<font color="Crimson">行列は単位ベクトル$e_i$の行き先$a_i$（縦ベクトル）を（横に）並べたもの</font>

# 行列とベクトルの積

以下の式について理解する。
```math
Ax = \sum x_{i}a_{i}
```

$x$を以下のように定義すると

```math
x = \left(
\begin{matrix} 
x_{1} \\
: \\
x_{m}
\end{matrix} 
\right)
\in R^m
```

行列$A$と列ベクトル$x$の積は

```math
Ax = x_{1}a_{1} + x_{2}a_{2} + {...} + x_{m}a_{m}
```

この式は<font color="Crimson">各$a_{i}$を$x_{i}$回ずつ使って足す</font>ことを意味する。
電車で例える場合、例えば以下のような具体的な計算を考えると、
```math
\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)
```

- 左側の行列の各縦ベクトルは電車の行き先を表す
- 掛け算の対象の縦ベクトルの各成分は進む駅数を表す
- 計算結果の縦ベクトルは終着駅を表す

# 行列とベクトルの積と内積

以下の式について理解する。
```math
Ax = 
\left(
\begin{matrix} 
\vec{a_{1}}x \\
: \\
\vec{a_{n}}x
\end{matrix} 
\right)
```

横ベクトル$\vec{a_{n}}$を以下のように定義すると
```math
\vec{a_{n}} = 
\left(
\begin{matrix} 
a_{n1} & a_{n2} & ... & a_{nm}
\end{matrix} 
\right)
```

<font color="Crimson">行列とベクトルの積は内積を縦に並べたもの</font>を意味する。
データサイエンスの文脈では、内積はベクトルの類似度や係数とデータの「積」として用いられる。特にベクトルの類似度の発想は以下で用いられる。
- 畳み込み層（Convolution Layer）
- word2vec（単語分散表現）
- TransformerのMulti-Head Attention

# 逆行列の基本公式

ある条件の場合に<font color="Blue">$n×n$の正方行列$A$</font>に逆行列$A^{-1}$が存在して以下が成り立つ
```math
A^{-1}a_i = e_i
```

- 理由①
$A^{-1}A = I$だから（ここで$I$は単位行列）
```math
Ae_i = a_i
```
```math
A^{-1}Ae_i = A^{-1}a_i
```
```math
Ie_i = A^{-1}a_i
```
```math
e_i = A^{-1}a_i
```
```math
A^{-1}a_i = e_i
```

- 理由②
$A^{-1}A = I$だから
```math
A^{-1}A = I
```
```math
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)
```

<font color="Crimson">$A^{-1}a_i = e_i$は逆行列の定義そのもの</font>

# 逆行列は成分抽出

ある条件の場合に<font color="Blue">$n×n$の正方行列$A$</font>に逆行列$A^{-1}$が存在して以下が成り立つ
```math
A^{-1} \sum x_{i}a_{i} = x
```

- 理由
```math
Ax = \sum x_{i}a_{i}
```
```math
A^{-1}Ax = A^{-1} (\sum x_{i}a_{i})
```
```math
Ix = A^{-1} (\sum x_{i}a_{i})
```
```math
x = A^{-1} (\sum x_{i}a_{i})
```
```math
A^{-1} (\sum x_{i}a_{i}) = x
```

- 意味
行列$A$に逆行列$A^{-1}$が存在するときは、どんなベクトル$y \in R^n$に対しても、以下のように$a_{1}$ ~ $a_{n}$の係数付き和（1次結合）で表せる
```math
y = ○a_{1} + □a_{2} + {...} + △a_{n}
```
ここで
```math
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$ と計算すればよい

- 補足説明
```math
Ax = \sum x_{i}a_{i}
```
```math
AA^{-1}y = y
```

# 対角化

以下の式について理解する。
```math
Ap_{i} = λ_{i}p_{i}
```

対角化とは、ある条件下で<font color="Blue">$n×n$の正方行列$A$</font>と<font color="Blue">$n×n$の正方行列$P$</font>と$λ_{1}, λ_{2}, {...}, λ_{n}$について、
```math
A = PDP^{-1}
```

ここで
```math
D = \left(
\begin{matrix} 
λ_{1} & 0 & ... & 0 \\
0 & λ_{2} & ... & 0 \\
: & : & : & : \\
0 & ... & ... & λ_{n}
\end{matrix} 
\right)
```

次のとき、

```math
p_{i} = 
\left(
\begin{matrix} 
p_{1i} \\
p_{2i} \\
: \\
p_{ni}
\end{matrix} 
\right)
\in R^n
```

以下が成り立つ
```math
Ap_{i} = λ_{i}p_{i}
```

例えば、
```math
\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}
```

のとき、以下が成り立つ
```math
Ap_{1} = λ_{1}p_{1} \quad,\quad Ap_{2} = λ_{2}p_{2}
```

行列はあるベクトルを別のベクトルに変換するもの。
<font color="Crimson">対角化は変換の表現方法の1つ</font>。

# 参考
- [AIcia Solid Project](https://www.youtube.com/@AIcia_Solid)
  - [行列①単位ベクトルの行き先](https://youtu.be/wVipLySksnE)
  - [行列②行列とベクトルの積](https://youtu.be/xM_fYlreWCU)
  - [行列③行列とベクトルの積と内積](https://youtu.be/eZWh8jMSlZM)
  - [行列④逆行列の基本公式](https://youtu.be/Sw9ph4465dg)
  - [行列⑤逆行列の真髄](https://youtu.be/5dJAh9EzpV0)
  - [行列⑥対角化](https://youtu.be/2FHmdkEl-jQ)