本記事は上記YouTube動画からの完全パクリである.
上記動画で特異値分解の"気持ち"が分かって感動したため,シェアしたくこの記事を書いた次第である.
さて,特異値分解の前に,まずは固有値分解について説明する.
正方行列の固有値分解は以下で表される.
は固有ベクトルを並べたもの,は固有値を対角成分に持つ行列である.
このように分解できると何が嬉しいのかと言うと,乗の計算が容易になる点が挙げられる.
さて,固有値分解が行えるのは行列が正方行列の時のみである.
行列が正方行列じゃない場合にもこのような分解をしたい場合に行いたいのが特異値分解だ.
行列の特異値分解は以下で表される.
は左特異ベクトルを並べたもの,は右特異ベクトルを並べたもので,これらは正規直交基底である.
は対角成分に特異値を大きい順に並べた行列である.
はサイズがであり,の対角行列の右側(もしくは下側)に成分が増えたような形となっている.
ここで突然を計算してみる.
最初のイコールはを代入しただけ,次のイコールは転置の基本ルールを適用,最後のイコールはが正規直交基底のためとなることを利用している.
さて,のサイズはなので固有値分解が行えるはずだ.固有値分解の式を再掲しよう.
これとを見比べると,以下のように対応していることが分かる.
よって,の特異値分解を行うには,の固有値分解をすれば良いことが分かる.
の固有値分解を行って求まったが
なので,と対応づけられる.
ここから固有ベクトルを求めて,その大きさがとなるように調整すれば左特異ベクトルが求められる.
次はを計算してみる.
のサイズはであり,同様に固有値分解を行う.なお,であるので,となる.
ここから固有ベクトルを求めて,その大きさがとなるように調整すれば右特異ベクトルが求められる.
このようにして,及びをそれぞれ固有値分解することで特異ベクトル及び特異値が求められる.
最後に,特異値分解をすると何が嬉しいのか述べる.
式を見てみるとに重みを掛けて足し合わせた形であり,を考慮するとその重みはどんどん小さくなっていく(後ろに行くほど微小量になっていく).
微小量を足し合わせなくても結果はほぼ変わらないので,以下のように近似出来る.
このように近似することで,次元だったものが次元に圧縮された.
次元削減は特徴量を取り出したり計算量を減らしたりすることが出来て嬉しいため,機械学習に応用されている.