応用数学学習まとめ: 第1章 線形代数

# 第1章: 線形代数

## 定義
- スカラーとベクトル
    - スカラーは普通の数、四則演算が可能
    - ベクトルは大きさと向きを持つ、スカラーのセット
- 行列
    - スカラーを表にしたもの
    - ベクトルを並べたもの
- テンソル
    - ベクトルや行列を一般化した概念
    - ベクトル: 1階のテンソル
    - 行列: 2階のテンソル
    - N階のテンソルはN次元にスカラーを並べたもの 

## 行列の計算
- 行列とベクトルの積(正確には内積, inner product)
    - 行×列の計算
    - $ \left(\begin{matrix} a & b \\\ c & d \end{matrix}\right) 
\left(\begin{matrix} x_1 \\\ x_2 \end{matrix}\right)
= \left(\begin{matrix} ax_1 + bx_2 \\\ cx_1 + dx_2 \end{matrix}\right) $
- 行列の積$ \boldsymbol{A} \boldsymbol{B} = \boldsymbol{C} $において、$ \boldsymbol{A} $の列数Nと、$ \boldsymbol{B} $の行数Oが等しくなければならない
    - $ \boldsymbol{A} $がM行×N列、$ \boldsymbol{B} $がO行×P列の時、N=Oでなければならない
    - この時、積の結果$ \boldsymbol{C} $はM行×P列となる
- ベクトルの場合は交換法則が成り立つ
    - $ \vec{a}·\vec{b} = \vec{b}·\vec{a} $
    - ベクトルを一次元の行列として表す場合には、$ \boldsymbol{a}^T·\boldsymbol{b} = \boldsymbol{b}^T·\boldsymbol{a} $
- しかし、行列では交換法則は成り立たない
    - $ \boldsymbol{AB} \neq \boldsymbol{BA} $
    - ただし、対角行列と対角行列は交換可能
        - $ \left(\begin{matrix} a & 0 \\\ 0 & b \end{matrix}\right) \left(\begin{matrix} x & 0 \\\ 0 & y \end{matrix}\right) = \left(\begin{matrix} x & 0 \\\ 0 & y \end{matrix}\right) \left(\begin{matrix} a & 0 \\\ 0 & b \end{matrix}\right)
= \left(\begin{matrix} ax & 0 \\\ 0 & by \end{matrix}\right) $

- 分配の法則が成り立つ
    - $ (\boldsymbol{A} + \boldsymbol{B})\boldsymbol{C} = \boldsymbol{AC} + \boldsymbol{BC}$
    - $ \boldsymbol{C}(\boldsymbol{A} + \boldsymbol{B}) = \boldsymbol{CA} + \boldsymbol{CB}$

## 転置(Transpose)
- 列ベクトルを行ベクトルに、行ベクトルを列ベクトルに変換する操作
- 転置の公式
    - $ (\boldsymbol{A}^T)^T = \boldsymbol{A} $
    - $ (\boldsymbol{AB})^T = \boldsymbol{B}^T \boldsymbol{A}^T $
    - $ (\boldsymbol{ABC})^T = \boldsymbol{C}^T \boldsymbol{B}^T \boldsymbol{A}^T $
- 転置行列の線形性
    - $ (α\boldsymbol{A})^T = α\boldsymbol{A}^T $
    - $ (\boldsymbol{A} + \boldsymbol{B})^T = \boldsymbol{A}^T + \boldsymbol{B}^T $

## 行基本変形
- 行基本変形は3種類
    1. i行目をc倍する
    1. s行目にt行目のc倍を加える
    1. p行目とq行目を入れ替える
- 行基本変形は単位行列を変形した行列を左からかけることで表現できる
    1. i行目をc倍する: i行i列がc
    1. s行目にt行目のc倍を加える: s行t列がc
    1. p行目とq行目を入れ替える: p行p列とq行q列が0、p行q列とq行p列が1

## 単位行列と逆行列
- 単位行列(Identity Matrix): かけても、かけられても相手が変化しない「1」のような行列、$ \boldsymbol{I} $
    - $ \left(\begin{matrix} 1 & 0 & 0 \\\ 0 & 1 & 0 \\\ 0 & 0 & 1\end{matrix}\right) $
    - 対角要素が全て1、非対角要素が全て0
- 逆行列(Inverse Matrix): 逆数のような働きをする行列、$ \boldsymbol{A}に対して、\boldsymbol{A}^{-1} $
    - $ \boldsymbol{AA}^{-1} = \boldsymbol{A}^{-1} \boldsymbol{A} = \boldsymbol{I} $
    - 連立方程式を$\boldsymbol{A} \vec{x} = \vec{y}$のように表現すると、$ \boldsymbol{A}^{-1}\boldsymbol{A} \vec{x} = \boldsymbol{A}^{-1} \vec{y} $のように$\vec{y}$に$\boldsymbol{A}^{-1}$を左からかけることによって解くことができる 
    - 逆行列の求め方: 掃き出し法
        - 対象の行列の横に単位行列を並べ、どのように行基本変形したのかを記録する
        - $ \left(\begin{array}{cc|cc} a & b & 1 & 0 \\\ c & d & 0 & 1\end{array}\right) $ 
    - 逆行列は必ず存在するわけではない
        - 逆行列を持つ行列を正則行列という
        - $ a:b = c:d $、すなわち$ ad - bc = 0 $の場合には逆行列を持たない
        - 傾きが同じ二つのベクトルに囲まれる平行四辺形の面積は0であり、この場合には逆行列を持たない

## 直交行列
- $ \boldsymbol{R} \boldsymbol{R}^T = \boldsymbol{R}^T \boldsymbol{R} = \boldsymbol{I} $を満たすような正方行列$ \boldsymbol{R} $を直交行列と呼ぶ
- 逆行列$ \boldsymbol{R}^{-1} $の定義は$ \boldsymbol{R} \boldsymbol{R}^{-1} = \boldsymbol{R}^{-1} \boldsymbol{R} = \boldsymbol{I} $であるから、直交行列では$ \boldsymbol{R}^{-1} = \boldsymbol{R}^T $である
    - 例えば、行列$ \boldsymbol{R} = \left(\begin{matrix} \dfrac{1}{\sqrt{2}} & \dfrac{1}{\sqrt{2}} \\\ -\dfrac{1}{\sqrt{2}} & \dfrac{1}{\sqrt{2}} \end{matrix}\right) $
        - $ \boldsymbol{R} \boldsymbol{R}^T = \dfrac{1}{\sqrt{2}} \left(\begin{matrix} 1 & 1 \\\ -1 & 1 \end{matrix}\right) \dfrac{1}{\sqrt{2}} \left(\begin{matrix} 1 & -1 \\\ 1 & 1 \end{matrix}\right) =  \dfrac{1}{2} \left(\begin{matrix} 2 & 0 \\\ 0 & 2 \end{matrix}\right) = \left(\begin{matrix} 1 & 0 \\\ 0 & 1 \end{matrix}\right) $
        - $ \boldsymbol{R}^T \boldsymbol{R} = \dfrac{1}{\sqrt{2}} \left(\begin{matrix} 1 & -1 \\\ 1 & 1 \end{matrix}\right) \dfrac{1}{\sqrt{2}} \left(\begin{matrix} 1 & 1 \\\ -1 & 1 \end{matrix}\right) =  \dfrac{1}{2} \left(\begin{matrix} 2 & 0 \\\ 0 & 2 \end{matrix}\right) = \left(\begin{matrix} 1 & 0 \\\ 0 & 1 \end{matrix}\right) $
- 正規直交性: 複数のベクトルが、それぞれ長さ1で、かつどのような異なる2ベクトルを選んでもその内積がゼロになる(つまり直交する)

## 行列式
- 行列式: ベクトルに囲まれる(=正方行列)平行四辺形の面積
    - 行列式が0の場合には、逆行列が存在しない
- 2行2列の場合、
    - $ \left|\begin{matrix} a & b \\\ c & d \end{matrix}\right| = ad-bc $
- 3行3列の場合、
    - $ \left|\begin{matrix} a_{11} & a_{12} & a_{13} \\\ a_{21} & a_{22} & a_{23} \\\ a_{31} & a_{32} & a_{33}\end{matrix}\right|
=a_{11}\left|\begin{matrix} a_{22} & a_{23} \\\ a_{32} & a_{33} \end{matrix}\right| 
-a_{21}\left|\begin{matrix} a_{12} & a_{13} \\\ a_{32} & a_{33} \end{matrix}\right| 
+a_{31}\left|\begin{matrix} a_{12} & a_{13} \\\ a_{22} & a_{23} \end{matrix}\right| $
    - 2つ目のブロックがマイナスなのは行の入れ替えが発生しているため、3つ目は入れ替えが2回でプラスになる

## 固有値と固有ベクトル
- ある行列$ \boldsymbol{A} $に対して、以下の式が成り立つような、特殊なベクトル$ \vec{x} $を固有ベクトル、λを固有値と呼ぶ
    - $\boldsymbol{A}\vec{x} = λ\vec{x}$
    - 固有ベクトルは比率を示すので、一意には定まらない
        - 固有ベクトルは$ \left(\begin{matrix} x_1 \\\ x_2 \\\ x_3\end{matrix}\right) $の定数倍のように表現される
- 固有値の求め方
    - $ \boldsymbol{A}\vec{x} = λ\vec{x} $は$ ( \boldsymbol{A} - λ\boldsymbol{I} ) \vec{x} = \vec{0}$と変形できるが、この際、$ ( \boldsymbol{A} - λ\boldsymbol{I} ) \vec{x} $は逆行列を持てない、つまり、$\left(\begin{matrix} \boldsymbol{A} - λ\boldsymbol{I} \end{matrix}\right) $の行列式が0となる$ λ $が固有値
    - $ \vert \boldsymbol{A} - λ\boldsymbol{I} \vert = 0 $
    - λを変数とした形で行列式を算出し、λの連立方程式を解くことでλが特定される
    - 例1: $ \boldsymbol{A} = \left(\begin{matrix} 5 & 2 \\\ 2 & 8 \end{matrix}\right) $の固有値分解
        - $ \left|\begin{matrix} 5 - λ & 2 \\\ 2 & 8 - λ \end{matrix}\right| = 0 $
        - $ (5-λ)(8-λ) - 2·2 = 0 $
        - $ λ^2 - 13λ + 40 - 4 = 0 $
        - $ λ^2 - 13λ + 36 = 0 $
        - $ (λ - 9)(λ - 4) = 0 $
        - $ \therefore λ = 9, 4 $
        - 固有値を対角行列$ \boldsymbol{D} $で表す際には、通常は大きい方の固有値に対応する固有ベクトルを前にもってくる
        - $ \boldsymbol{D} = \left(\begin{matrix} 9 & 0 \\\ 0 & 4 \end{matrix}\right) $
    - 例2: $ \boldsymbol{A} = \left(\begin{matrix} 0 & 0 & 1 \\\ 0 & 0 & -1 \\\ 1 & -1 & 1 \end{matrix}\right) $の固有値分解
        - $ \left|\begin{matrix} 0 - λ & 0 & 1 \\\ 0 & 0 - λ & -1 \\\ 1 & -1 & 1 - λ \end{matrix}\right| = 0 $
        - $ (0 - λ)\left|\begin{matrix} 0 - λ & -1 \\\ -1 & 1 - λ \end{matrix}\right| - 0\left|\begin{matrix} 0 & 1 \\\ -1 & 1 - λ \end{matrix}\right| + 1\left|\begin{matrix} 0 & 1 \\\ 0 - λ & -1 \end{matrix}\right| = 0 $
        - $ -λ((0-λ)(1-λ)-(-1·-1)) - 0(\cdots) + 1((0·-1) - (1(0-λ)))= 0 $
        - $ -λ^3 + λ^2 + λ + λ = 0 $
        - $ -λ^3 + λ^2 + 2λ = 0 $
        - $ -λ(λ^2 - λ - 2) = 0 $
        - $ -λ(λ - 2)(λ + 1) = 0 $
        - $ \therefore λ = 2, 0, -1 $
- 固有ベクトルの求め方
    - $ \boldsymbol{A}\vec{x} = λ\vec{x} $は$　( \boldsymbol{A} - λ\boldsymbol{I} ) \vec{x}= \vec{0}　 $と変形できるので、求めた$ λ $を代入してこの式(連立方程式となる)を解く

    - 例: $ \boldsymbol{A} = \left(\begin{matrix} 5 & 2 \\\ 2 & 8 \end{matrix}\right) $の固有ベクトルを求める(上記より$ \boldsymbol{A} $の固有値$ λ $は9と4)
        - まずは$ λ = 9 $の場合
            - $ \left(\begin{matrix} \boldsymbol{A} - 9\boldsymbol{I} \end{matrix}\right) \vec{x}= \vec{0}　$
            - $ \left(\begin{matrix} 5 - 9 & 2 \\\ 2 & 8 - 9 \end{matrix}\right) \left(\begin{matrix} x_1 \\\ x_2 \end{matrix}\right) = \left(\begin{matrix} 0 \\\ 0 \end{matrix}\right) $
            - $ \begin{cases} -4x_1 + 2x_2 = 0 \\\\ 2x_1 - x_2 = 0 \end{cases} $
            - $ x_1 = \dfrac{1}{2}x_2 $
            - 固有ベクトルは$ \left(\begin{matrix} 1 \\\ 2 \end{matrix}\right) $
            - 正規化(大きさを1)すると$ \left(\begin{matrix} \dfrac{1}{\sqrt{5}} \\\ \dfrac{2}{\sqrt{5}} \end{matrix}\right) $ 
        - $ λ = 4 $の場合も同様
            - $ \left(\begin{matrix} \boldsymbol{A} - 4\boldsymbol{I} \end{matrix}\right) \vec{x}= \vec{0}　$
            - $ \left(\begin{matrix} 5 - 4 & 2 \\\ 2 & 8 - 4 \end{matrix}\right) \left(\begin{matrix} x_1 \\\ x_2 \end{matrix}\right) = \left(\begin{matrix} 0 \\\ 0 \end{matrix}\right) $
            - $ \begin{cases} x_1 + 2x_2 = 0 \\\\ 2x_1 + 4x_2 = 0 \end{cases} $
            - $ x_1 = -2x_2 $
            - 固有ベクトルは$ \left(\begin{matrix} -2 \\\ 1 \end{matrix}\right) $
            - 正規化(大きさを1)すると$ \left(\begin{matrix} -\dfrac{2}{\sqrt{5}} \\\ \dfrac{1}{\sqrt{5}} \end{matrix}\right) $
        - 固有ベクトルを正規直交行列$ \boldsymbol{P} $として表現する際には、通常は大きい方の固有値に対応する固有ベクトルを前にもってくる
            - $ \boldsymbol{P} = \left(\begin{matrix} \dfrac{1}{\sqrt{5}}　& -\dfrac{2}{\sqrt{5}} \\\ \dfrac{2}{\sqrt{5}} & \dfrac{1}{\sqrt{5}} \end{matrix}\right) $

## 固有値分解(対角化)
- 正方行列$ \boldsymbol{A} $が固有値$λ_1, λ_2, \cdots $と固有ベクトル$\vec{v_1}, \vec{v_2}, \cdots $を持ったとして、固有値を対角線上に並べた対角行列$ \boldsymbol{D} $と、それに対応する固有ベクトルを並べた行列$ \boldsymbol{P} $を用意した時、それらは$\boldsymbol{AP} = \boldsymbol{PD}$と関係付けられ、そこから、$\boldsymbol{A} = \boldsymbol{PDP}^{-1}$と変形できる
    - $\boldsymbol{D} = \left(\begin{matrix} λ_1 &  &  \\\  & λ_2 &  \\\  &  & \ddots\end{matrix}\right)$
        - 対角線上の$λ_1, λ_2, \cdots $以外は全て0
        - $\boldsymbol{D}$は$\boldsymbol{A}$を対角化したもの
        - $ \boldsymbol{D} = \boldsymbol{P}^{-1}\boldsymbol{AP} $
    - $\boldsymbol{P} = \left(\begin{matrix} \vec{v_1} & \vec{v_2} & \cdots \end{matrix}\right) $とも表現できる
        - $\vec{v_n}$は縦ベクトルだが、それを横に並べたもの
    - $\boldsymbol{A}\vec{v} = λ\vec{v} $の関係性から、右辺は$ \boldsymbol{DP} $になりそうだが、ここでは$ \boldsymbol{PD} $となることに注意
        - $ \boldsymbol{D} $が対角線上以外は全て0のため
- さらに、$ \boldsymbol{A} $が対称行列である時は、対応する大きさ1の固有ベクトルを列として並べた行列$ \boldsymbol{P} $は直交行列($ \boldsymbol{P}^{-1} = \boldsymbol{P}^T $)になるため、$\boldsymbol{A} = \boldsymbol{PDP}^T $が成立する
- 固有値分解によって行列の累乗などの計算が容易になる

## 特異値分解
- 正方行列以外でも、固有値分解「的」なことができる
- $\boldsymbol{M}\vec{v} = σ\vec{u}$、かつ、$\boldsymbol{M}^T\vec{u} = σ\vec{v}$、ここで$\vec{u}, \vec{v}$は単位ベクトル(大きさが1)
    - $ \vec{v}, \vec{u} $を行列$\boldsymbol{M}$に対する特異ベクトル、$σ$を特異値と呼ぶ
- $\boldsymbol{M} = \boldsymbol{UΣV}^T$
    - $\boldsymbol{Σ}$はσを対角線上に並べた正方行列
    - $\boldsymbol{V}, \boldsymbol{U}$は単位ベクトルである$ \vec{v}, \vec{u} $を横に並べたもの、なおかつ直交行列
- 求め方
    - $\boldsymbol{MV} = \boldsymbol{UΣ}$, $\boldsymbol{M}^T\boldsymbol{U} = \boldsymbol{VΣ}^T$
    - $\boldsymbol{M} = \boldsymbol{UΣV}^T$, $\boldsymbol{M}^T = \boldsymbol{VΣ}^T\boldsymbol{U}^T$
        - ここで$\boldsymbol{U}$, $\boldsymbol{V}$は単位ベクトルからできており、なおかつ直交行列、このため$\boldsymbol{U}^T$が$\boldsymbol{U}$の逆行列に、$\boldsymbol{V}^T$が$\boldsymbol{V}$の逆行列にとなる
    - これらの積は、$\boldsymbol{MM}^T = \boldsymbol{UΣV}^T\boldsymbol{VΣ}^T\boldsymbol{U}^T = \boldsymbol{UΣΣ}^T\boldsymbol{U}^T$
        - $\boldsymbol{M}$は長方形の行列でも$\boldsymbol{MM}^T$や$\boldsymbol{M}^T\boldsymbol{M}$は正方行列になるため、これを固有値分解するようなもの
        - ここでは$\boldsymbol{ΣΣ}^T$が固有値になり、そのルート(対角線上の要素の平方根)が特異値$\boldsymbol{Σ}$になる
        - 同様に$\boldsymbol{M}^T\boldsymbol{M} = \boldsymbol{VΣU}^T\boldsymbol{UΣ}^T\boldsymbol{V}^T = \boldsymbol{VΣΣ}^T\boldsymbol{V}^T$から$\boldsymbol{V}^T$が求まる
        - 最終的に$\boldsymbol{M} = \boldsymbol{UΣV}^T$が得られる
- 特異値分解は、画像の圧縮や、画像の類似度の判定などに活用することができる


## ベクトルの大きさ(ノルム)
- ベクトル$ \boldsymbol{x} = (x_1, x_2, \cdots, x_n)^T $の大きさ(ノルム)
- L1ノルム
    - $ \Vert \boldsymbol{x} \Vert \_1 = \displaystyle \sum_{i=1}^n \vert x_i \vert $
- L2ノルム
    - $ \Vert \boldsymbol{x} \Vert \_2 = \sqrt{\displaystyle \sum_{i=1}^n x_i^2} $
- L∞ノルム(最大値ノルム)
    - $ \Vert \boldsymbol{x} \Vert \_∞ = \displaystyle \max_i \vert x_i \vert $

## ベクトル間の距離
- 実数値ベクトル$ \boldsymbol{x} = (x_1, x_2, \cdots, x_n)^T $と$ \boldsymbol{y} = (y_1, y_2, \cdots, y_n)^T $の距離
- マンハッタン距離
    - $ d( \boldsymbol{x}, \boldsymbol{y}) = \displaystyle \sum_{i=1}^n \vert x_i - y_i \vert $
- ユークリッド距離
    - $ d( \boldsymbol{x}, \boldsymbol{y}) = \sqrt{\displaystyle \sum_{i=1}^n ( x_i - y_i )^2} $
- マハラノビス距離
    - 実数値ベクトル$ \boldsymbol{x}, \boldsymbol{y} $が、共分散行列$ \boldsymbol{Σ} $が既知であるような同一の確率分布に従う時、マハラノビス距離は以下の通り
    - $ D( \boldsymbol{x}, \boldsymbol{y}) = \sqrt{(\boldsymbol{x} - \boldsymbol{y})^T \boldsymbol{Σ}^{-1} (\boldsymbol{x} - \boldsymbol{y})} $
    - 同一確率分布に従うと仮定される2つのベクトルの類似度の指標として用いられる

## 線形代数問題の解法テクニック
- 対角行列は対角成分以外は0
- 正規直交行列は行の合計(長さ)が1になることから穴を埋めることができる
- また正規直交行列は行同士の内積が0になる(直交している)ことから穴を埋めることもできる