「特異値分解(SVD)を解説」

「特異値分解(SVD)の解説」

Pythonの例を交えたSVDの包括的なガイド

特異値分解(SVD)は、行列を3つの他の行列に分解する強力な行列因数分解技術であり、元の行列の重要な構造的側面を明らかにします。信号処理、画像圧縮、機械学習における次元削減など、幅広いアプリケーションで使用されています。

この記事では、行列のSVDを計算する手順や数値的な詳しい例を含めたステップバイステップのガイドを提供します。さらに、Pythonを使用した例を使って、SVDを次元削減にどのように使うかを示します。最後に、記事ではSVDのさまざまな応用とその制約についても議論します。

この記事は、読者が線形代数の基本的な知識を持っていることを前提としています。具体的には、ベクトルと行列のノルム、行列のランク、固有ベクトルと固有値の固有分解、直交ベクトル、線形射影などの概念については理解している必要があります。

Image by Peggy und Marco Lachmann-Anke from Pixabay

数学的な定義

m × nの実数行列Aの特異値分解は、A = UΣVᵗという形式の因数分解であり、以下の特徴を持ちます:

  • Uはm × mの直交行列です(つまり、列と行が直交ベクトルです)。Uの列はAの左特異ベクトルと呼ばれます。
  • Σはm × nの長方形の対角行列であり、対角線上には非負の実数があります。対角要素σᵢ = ΣᵢᵢはAの特異値として知られ、通常は降順に並べられます、つまりσ₁ ≥ σ₂ ≥ … ≥ σₙ ≥ 0です。非ゼロ特異値の数は、Aのランクと等しいです。
  • Vはn × nの直交行列です。Vの列はAの右特異ベクトルと呼ばれます。

任意の実数のm × n行列は特異値分解を持っています(この主張の証明はこちらで見つけることができます)。これは、例えば対角化可能な正方行列にのみ適用できる固有値分解とは異なります。

SVDの計算

行列Aの特異値分解は、次の観察に基づいて計算することができます:

  1. Aの左特異ベクトルは直交固有ベクトルの集合です…

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more