転置行列

転置行列

転置行列とは、行列の行と列を入れ替えて作られる新しい行列のことを指す。
例えば、以下のような行列 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|\]