はじめに
こんにちは。将棋と筋トレが好きな、情報系大学生のゆうき(@engieerblog_Yu)です。
今回はデータの特徴量抽出や次元削減に用いられる、固有値分解と特異値分解をまとめていきたいと思います。
固有値分解
行列Aの固有値と固有ベクトルはこのように表されます。(固有値は一つとは限りません。)
\(Ax_i = λ_ix_i\)
A:正方行列
λ:固有値
x:固有ベクトル
Aの固有値と固有ベクトルを全て求めて行列にしたものが以下です。
\(A = PΛP^{-1} \)
\(P = \left(\begin{array}{rr}|&|&|&|&|&| \\x_1&x_2& x_3 &・&・&x_n \\| & | & | &|&|&|\\\end{array}\right)\)
\(Λ=\left(\begin{array}{rr} λ1&&&&&\\&λ2&&&& \\&&λ3&&&\\&&&・&&\\&&&&・&\\&&&&&λ_n\\\end{array}\right)\)
\(P^{-1}\)はPの逆行列です。
固有値分解のメリット
・固有値が0に近いものは無視すること(次元削減)で近似計算を行うことができる
・\(A^n\)の計算が簡単にできる
・行列データの特徴を抽出することができる
特異値分解
正方でない行列に、固有値分解のようなことを行うために考えられたものが特異値分解です。
正方でない行列Xの特異値σは以下の式で表せます。
\(Xv_j = σ_ju_j\)
X:行列(正方行列でなくても可)
σ:特異値
v_j:右特異ベクトル
u_j:左特異ベクトル
右特異ベクトル、左特異ベクトルは単位ベクトルです。
よって以下の式が成り立ちます。
\(||u_j||_2=1\)
\(||v_j||_2=1\)
Xの右特異ベクトルと左特異ベクトルを行列にすると、以下の式で特異値分解を表すことができます。
\(X = UΣV^{-1}\)
\(U = \left(\begin{array}{rr}|&|&|&|&|&| \\u_1&u_2& u_3 &・&・&u_n \\| & | & | &|&|&|\\\end{array}\right)\)
\(Σ=\left(\begin{array}{rr} λ1&&&&&\\&λ2&&&& \\&&λ3&&&\\&&&・&&\\&&&&・&\\&&&&&λ_n\\0&・&・&・&・&0\\・&&&&&・\\0&・&・&・&・&0\\\end{array}\right)\)
\(V = \left(\begin{array}{rr}|&|&|&|&|&| \\v_1&v_2& v_3 &・&・&v_n \\|&|& |&|&|&|\\\end{array}\right)\)
特異値分解のメリット
・行列Xが正方行列でなくても、固有値分解のようなことが行える
・Σの0の部分を切り取る(エコノミーSVD)、特異値σが小さいものは無視する(切り捨てSVD)を行うことで特徴を保持したまま近似計算を行うことができる
次回以降でエコノミーSVDや切り捨てSVDについてもまとめていきたいと思います。
コメント