行列
転置行列
転置行列とは、行列の行と列を入れ替えて作られる新しい行列のことを指す。
例えば、以下のような行列 A があるとする。
A = [[1, 2, 3],
[4, 5, 6]]
この行列 A の転置行列は、以下のようになる。
A^T = [[1, 4],
[2, 5],
[3, 6]]
2次元の転置行列の場合、行列 A の行と列が入れ替わり、2 行 3 列の行列が 3 行 2 列の行列に変換される。
[A_ij]^T = [A_ji]
逆行列
逆行列とは、正方行列A
に対して、 A と 逆行列
をかけた結果が 単位行列I
となる行列のことを指す。つまり、以下の式が成り立つ。
A * A^-1 = I
ただし、逆行列は、正方行列に限られる。
また、正方行列に逆行列が存在するには、行列式が 0 でなければならない。
直交行列
直交行列とは、行列の転置行列が逆行列に等しい正方行列のこと。つまり、以下の式が成り立つ。
A^T * A = A * A^T = I
ここで、Iは単位行列。
直交行列は、列ベクトルどうしの内積が 0 でなく、長さが 1 であるような行列。
つまり、直交行列の列ベクトルは互いに直交し、長さが 1 であることが特徴。
直交行列は、回転行列や正規直交基底などの概念で使用される。
また、直交行列は、行列の対角化や、線形代数の応用分野で使用される。
直交行列の性質
直交行列には、以下のような性質がある。
- 直交行列の行ベクトルは互いに直交している。
- 直交行列の列ベクトルは互いに直交している。
- 直交行列の転置行列は、逆行列に等しい。
- 直交行列の行列式の絶対値は 1 。
対角行列
対角行列とは、対角成分以外の成分がすべて 0 である行列。
すなわち、以下のように表される。
A = [[a11, 0, ..., 0],
[0, a22, ..., 0],
...,
[0, 0, ..., ann]]
対角化
対角化とは、正方行列を対角行列に変換すること。
A = P * D * P^-1
ここで、Pは正則行列であり、Dは対角行列。
Pの列ベクトルは、Aの固有ベクトルを並べたものであり、Dの対角成分は、Aの固有値を並べたもの。
行列式
行列式とは、正方行列に対して定義される数値のことを指す。行列式は、行列の特徴を表す指標として使用される。
行列式の求め方
2次元の正方行列の行列式は以下のように定義される。
det(A) = a11 * a22 - a12 * a21
3次元の正方行列の行列式は以下のように定義される。
det(A) = a11 * a22 * a33 + a12 * a23 * a31 + a13 * a21 * a32
- a11 * a23 * a32 - a12 * a21 * a33 - a13 * a22 * a31
行列式の性質
行列式には、以下のような性質がある。
- 行列の転置に対して、行列式は変わらない。
- 行列の2行または2列を交換すると、行列式は符号が反転する。
- 行列の1行または1列に、別の行列の定数倍を加えると、行列式は変化しない。
- 行列の1行または1列を定数倍すると、行列式も同じ倍数になる。
- 行列の行または列が線形従属である場合、行列式は0になる。
固有値、固有ベクトル
n 次正方行列 A に対して、 Av = λv を満たすようなスカラー λ を固有値、非零ベクトル v を固有ベクトルと呼ぶ。
行列の特異値分解
特異値分解とは、行列を3つの行列の積の形に分解すること。
正方行列に限らず、任意の m×n 行列に対して行うことができる。
行列Aが以下のように与えられたとする。
A = [[a11, a12, a13],
[a21, a22, a23]]
この行列の特異値分解は以下のように表される。
A = U * Σ * V^T
ここで、Uは m×m の 直交行列 、Σ は m×n の 対角行列 、 V は n×n の 直交行列 。
Σの対角成分は特異値と呼ばれる。
特異値は、 行列 AA^T の固有値の平方根 として求めることができる。
特異値を大きい順に (i, i) に並べると U ができる。
特異値分解の例
【線形代数】特異値分解とは?例題付きで分かりやすく解説!! 機械学習ナビ
以下の行列 A の特異値分解を求めてみる。
A = [[1, 0, 0],
[0, 1, 2]]
まず、行列 AA^T の固有値を求める。
AA^T = [[1, 0]
[0, 5]]
det(AA^T - λI) = 0
λ1 = 5, λ2 = 1
次に、固有値から特異値を求める。
σ1 = sqrt(λ1) = sqrt(5)
σ2 = sqrt(λ2) = 1
特異値を対角成分とした対角行列 Σ を作成する。
Σ = [[sqrt(5), 0, 0],
[0, 1, 0]]
固有ベクトルから直交行列 U を作成する。
U は固有ベクトルで大きさが 1 のもの。
(A - λ1I) * v1 = 0
(A - λ2I) * v2 = 0
U = [v11, v21],
[v12, v22]]
固有ベクトルから直交行列Vを作成する。
V の各列は \(A^TA\) の固有ベクトル。
ただ、正規直行性を満たすため、 \(v_1^T \cdot v_3 = 0\) となる。
ノルム
ノルムとは、ベクトル空間上で定義される、ベクトルの大きさ(長さ)を表す関数。
ノルムは、ベクトルの性質を表す指標として使用される。
L1 ノルム
L1 ノルムは、ベクトルの各成分の絶対値の和を表す。
\[\|x\|_1 = |x_1| + |x_2| + ... + |x_n|\]L1 ノルムは、ベクトルの各成分が等しい場合に、ベクトルの大きさが最大になる。
また、L1 ノルムは、ベクトルに含まれる成分の絶対値が重要な場合に使用される。
例えば、画像処理において、輝度変換やエッジ検出などに使用される。
L2 ノルム
L2 ノルムは、ベクトルの各成分の二乗和の平方根を表す。
\[\|x\|_2 = \sqrt{x_1^2 + x_2^2 + ... + x_n^2}\]L2 ノルムは、 ユークリッド距離 と呼ばれる距離の概念と関連がある。
L2 ノルムは、ベクトルの大きさが重要な場合に使用される。
例えば、機械学習において、ベクトルの正規化や距離の計算に使用される。
最大値ノルム
最大値ノルムは、ベクトルの各成分の絶対値の最大値を表す。
\[\|x\|_\infty = \max(|x_1|, |x_2|, ..., |x_n|)\]最大値ノルムは、ベクトルの最大値が重要な場合に使用される。
例えば、制御工学において、システムの最大値や最小値の制御に使用される。
L1ノルム、L2ノルム、最大値ノルムの比較
- L1ノルムは、ベクトルの各成分の絶対値の和を表すため、外れ値の影響を受けにくいという特徴がある。また、L1 ノルムを最小化することによって、スパースな解を得ることができる。
- L2ノルムは、ベクトルの各成分の二乗和の平方根を表すため、外れ値の影響を受けやすいという特徴がある。また、L2 ノルムを最小化することによって、正則化項を導入することができる。
- 最大値ノルムは、ベクトルの各成分の絶対値の最大値を表すため、最大値が重要な場合に使用される。また、最大値ノルムを最小化することによって、最大値を制限することができる。
距離の種類
ユークリッド距離
ユークリッド距離とは、2つのベクトル間の直線距離を表す指標のこと。
d(x, y) = sqrt((x1 - y1)^2 + (x2 - y2)^2 + ... + (xn - yn)^2)
ユークリッド距離は、ベクトルの大きさが重要な場合に使用される。
例えば、PCA(主成分分析)やクラスタリングなどの応用分野で使用される。
ハミング距離
ハミング距離とは、2つのベクトル間の差異の数を表す指標のこと。
d(x, y) = x1 ⊕ y1 + x2 ⊕ y2 + ... + xn ⊕ yn
ここで、⊕はXOR(排他的論理和)を表す。
ハミング距離は、ベクトルの差異が重要な場合に使用される。
例えば、誤り検出・訂正や、機械学習の分類問題などに使用される。
マハラノビス距離
マハラノビス距離とは、2つのベクトル間の距離を、ベクトルの分散共分散行列に基づいて計算する指標のこと。
\[d(x, y) = \sqrt{(x - y)^T \Sigma^{-1} (x - y)}\]ここで、\(\Sigma\) はベクトルの分散共分散行列を表す。
マハラノビス距離は、分散共分散行列が重要な場合に使用される。
例えば、クラスタリングや異常検知などの応用分野で使用される。
マンハッタン距離
マンハッタン距離とは、2つのベクトル間の差異を、各成分の絶対値の和で表す。
\[d(x, y) = |x_2 - x_1| + |y_2 - y_1|\]