データを行列として眺めると、その中には「本質的な構造」と「細かなノイズ」が混ざっています。特異値分解(SVD)は、任意の行列を3つの行列の積に分解して、この構造を取り出す線形代数の手法です。次元削減やレコメンドシステムを支える縁の下の力持ちとして、G検定でも名前と役割が問われます。
📖 ひと言でいうと
特異値分解(SVD: Singular Value Decomposition)とは、行列を3つの行列(直交行列・対角行列・直交行列)の積に分解する行列分解の手法です。正方行列に限らず、縦横のサイズが異なる任意の形の行列に適用でき、分解結果から元の行列の本質的な構造を取り出せるため、データ圧縮やノイズ除去、次元削減などに使われます。
例えるなら、複雑な料理を「素材」「味付けの濃さ」「盛り付け方」に分解するようなものです。ひとかたまりでは扱いにくいものも、役割の異なる部品に分ければ、「味付けの濃い主要な要素だけ残す」といった加工ができます。SVDでは真ん中の対角行列に並ぶ「特異値」が各成分の重要度を表し、大きい特異値の成分だけ残せば、元の行列のエッセンスを少ない情報で近似できます。
🖼 1枚でわかる特異値分解
📘 公式テキストの説明
線形代数学における複素数あるいは実数を成分とする行列に対する行列分解の一手法。行列に対するスペクトル定理の一般化とも考えられ、正方行列に限らず任意の形の行列を分解できる。特異値分解により、与えられた行列を3つの行列の積に分解することができる。この3つの行列は、直行行列、対角行列、そしてもう一つの直行行列で構成されている。分解された行列は、元の行列の特性や構造を保持しており、データ圧縮やノイズ除去などの目的で利用されることがある。主成分分析(PCA)やレコメンデーションシステムの協調フィルタリング、画像圧縮、自然言語処理など、多くのアプリケーションでSVDが使用されている。
試験対策として拾うべきポイントは4つです。①線形代数の行列分解の一手法であること、②正方行列(行数=列数の行列)に限らず任意の形の行列を分解できること、③分解結果は「直交行列・対角行列・直交行列」の3つの積であること、④用途はデータ圧縮・ノイズ除去で、PCA・協調フィルタリング・画像圧縮・自然言語処理などに応用されていること、です。
「スペクトル定理の一般化」という表現は、正方行列を対象とする固有値分解の考え方を、どんな形の行列にも使えるよう拡張したもの、という位置づけを述べています。数学的な証明はG検定では不要で、「固有値分解の親戚で、適用範囲が広い」というイメージで十分です。
🔍 しっかり理解する
「3つの行列に分ける」とはどういうことか
行列Aを特異値分解すると、A = U Σ V^T という形になります(U と V は直交行列、Σは対角行列、V^T はVの転置)。記号は覚えなくて構いませんが、それぞれの役割のイメージを持っておくと理解が深まります。
- 両側の直交行列(U・V): データを眺める「軸の向き」を表す部品。回転のように、形を歪めずに向きを変える働きをします
- 真ん中の対角行列(Σ): 対角線上に「特異値」という非負の値が大きい順に並び、各成分の重要度(伸縮の強さ)を表します
つまりSVDは、どんな行列も「向きを変える→各方向に伸縮する→また向きを変える」という3段階の操作に分解できる、と言っているのです。重要な情報は大きな特異値の方向に集中し、小さな特異値の方向には細かな変動やノイズが対応します。
上位の特異値だけ残す——低ランク近似
SVDの実用上の主役は、大きい特異値に対応する成分だけを残して行列を再構成する「低ランク近似」です。
特異値は大きい順に並んでおり、多くの実データでは上位の少数の特異値に情報が集中しています。そこで上位k個だけを残せば、保存すべき数値の量を大幅に減らしながら、元の行列にかなり近いものを復元できます。これが「元の行列の特性や構造を保持したデータ圧縮」の正体であり、小さな特異値と一緒に細かなノイズが捨てられるためノイズ除去にもなります。
次元削減・機械学習との接点
主成分分析(PCA)は、計算の内部でSVDと深く結びついており、実際のライブラリでもPCAの計算にSVDが使われることが一般的です。G検定の範囲では、「PCAの仲間として次元削減によく用いられる手法=SVD」という公式テキストどおりの位置づけを押さえれば十分です。また、自然言語処理では文書×単語の行列をSVDで圧縮して文書の潜在的な意味構造を取り出す手法(潜在意味解析と呼ばれます)が古くから使われています。
💡 具体例で考える
1つ目の例は画像圧縮です。グレースケール画像は「縦ピクセル×横ピクセル」の数値の行列そのものです。この行列をSVDで分解し、たとえば数百個ある特異値のうち上位50個だけで再構成すると、データ量を大きく減らしても人の目にはほとんど劣化が分からない画像が得られます。残す特異値の数を10個、5個と減らしていくと、画像が徐々にぼやけていく——特異値が「情報の重要度」であることを目で確かめられる定番のデモです。
2つ目はレコメンドシステムの協調フィルタリングです。ユーザー×商品の評価行列は、ほとんどのマスが未評価の巨大な行列になります。この行列をSVD系の手法で少数の潜在的な因子(「SF好き」「価格重視」のような隠れた嗜好軸)に圧縮すると、ユーザーと商品を同じ因子空間で表現でき、未評価のマスの評価値を予測して推薦に使えます。行列分解にもとづく推薦は、協調フィルタリングの精度を高める代表的なアプローチです。
⚠️ よくある誤解・紛らわしい用語
- 固有値分解との違い: 固有値分解は正方行列が対象ですが、SVDは任意の形の行列に適用できます。「正方行列にしか使えない」という記述は誤りです(公式テキストの「スペクトル定理の一般化」はこの拡張を指します)。
- 特異値と固有値の混同: SVDで得られるのは特異値です。名前は似ていますが、固有値とは定義が異なります(特異値は非負の値です)。
- PCAとの関係: SVDはPCAと計算上深い関係にありますが、SVDは行列分解という数学的操作、PCAは分散最大の軸を求める分析手法、と役割の水準が異なります。「SVD=PCAの別名」ではありません。
- 分解の構成: 「3つの行列=直交行列・対角行列・直交行列」です。3つとも対角行列、のような誤った構成の選択肢に注意しましょう。
📝 試験でのポイント
- 「行列を3つの行列の積に分解する手法」「正方行列に限らず任意の形の行列を分解できる」という記述からSVD(特異値分解)を選ばせる出題が典型です。
- 略称の対応(特異値分解=SVD=Singular Value Decomposition)は、PCA・MDS・t-SNEなどと並べて問われやすいポイントです。
- 用途としてデータ圧縮・ノイズ除去、応用先として協調フィルタリング・画像圧縮・自然言語処理が挙げられることの正誤判定に備えましょう。
- 次元削減の文脈では「主成分分析以外によく用いられる手法」としてSVDとMDSが並ぶ、という主成分分析の記事側の記述とも整合させて覚えておくと確実です。
📚 まとめ
特異値分解(SVD)は、任意の形の行列を「直交行列・対角行列・直交行列」の3つの積に分解する線形代数の手法です。対角行列に並ぶ特異値が成分の重要度を表し、上位の成分だけを残すことで、構造を保ったデータ圧縮やノイズ除去が可能になります。PCAと並ぶ次元削減の道具であり、協調フィルタリング・画像圧縮・自然言語処理まで応用範囲の広さが特徴です。「3つに分解・任意の形・圧縮とノイズ除去」の3点を軸に整理しましょう。
