線形代数 · 第28回 · 動画3 · インタラクティブ教材

特異値分解の実践:特異値が消えるときと符号の落とし穴

I重要な公式

公式 名称 説明
A=UΣV⊤A = U \Sigma V^\top 特異値分解(SVD) U,VU, V は正規直交、Σ≥0\Sigma \geq 0 は対角
A⊤A vi=σi2 viA^\top A \, v_i = \sigma_i^2 \, v_i 右特異ベクトル A⊤AA^\top A の固有ベクトル。固有値は σi2\sigma_i^2
Avi=σiuiA v_i = \sigma_i u_i 符号の決まった UU viv_i から uiu_i を定める。符号はこれで決まる
rank(A)=#{σi>0}\text{rank}(A) = \#\{\sigma_i > 0\} 特異値から階数を読む ゼロの特異値 ⇔\Leftrightarrow 零空間

II可視化1 — 単位円が楕円になる

行列は単位円を楕円に引き伸ばします。その楕円の半軸の長さが、行列の特異値です。

σ2=0\sigma_2 = 0 のとき、入力の方向 v2v_2 は原点に写ります。楕円は退化して AA の列空間、つまり 1 本の直線になります。

III可視化2 — 四つの基本部分空間

SVD は四つの基本部分空間すべての正規直交基底を一度に与えてくれます。どの特異値が消えるかで、きれいに振り分けられます。

ゼロの特異値の個数は、零空間の次元に等しく、左零空間の次元にも等しくなります。

IV可視化3 — U の符号が大切な理由

式 Avi=σiuiA v_i = \sigma_i u_i が uiu_i の符号を決めます。符号を間違えると分解が成り立ちません。

符号を間違えた u2u_2 も、AA⊤AA^\top の単位固有ベクトルであることに変わりはありません。UU は AA⊤AA^\top だけに頼らず、必ず Avi=σiuiA v_i = \sigma_i u_i を通して決めましょう。

V確認クイズ

問1

行列 A=[4386]A = \begin{bmatrix} 4 & 3 \\ 8 & 6 \end{bmatrix} について、 A⊤A=[80606045]A^\top A = \begin{bmatrix} 80 & 60 \\ 60 & 45 \end{bmatrix} と計算しました。

その固有値は 125125 と 00 です。AA の特異値はどれでしょうか。

✅ 正解です! 特異値は A⊤AA^\top A の固有値の平方根で、0=0\sqrt{0} = 0 です。

❌ 惜しい! 思い出しましょう。λi\lambda_i そのものではなく、σi=λi\sigma_i = \sqrt{\lambda_i} です。

解答を見る

解答:

A⊤AA^\top A の固有値は、特異値の二乗です。 λi=σi2⟹σi=λi.\lambda_i = \sigma_i^2 \quad\Longrightarrow\quad \sigma_i = \sqrt{\lambda_i}.

したがって σ1=125\sigma_1 = \sqrt{125}、σ2=0=0\sigma_2 = \sqrt{0} = 0 です。ゼロの特異値は きちんと定義されています。行列に 1 次元の零空間があることを教えてくれているだけです。

問2

例1 では v2=12(1,−1)v_2 = \tfrac{1}{\sqrt{2}}(1, -1)、σ2=18\sigma_2 = \sqrt{18} が得られました。 Av2A v_2 を計算すると 12(0,−6)\tfrac{1}{\sqrt{2}}(0, -6) になりました。

ある学生が、AA⊤A A^\top の単位固有ベクトルだからという理由で u2=(0,1)u_2 = (0, 1) と書きました。 これは SVD の列として正しいでしょうか。

✅ 正解です! UU の符号は自由ではなく、Avi=σiuiA v_i = \sigma_i u_i によって決まります。

❌ 惜しい! (0,1)(0, 1) も (0,−1)(0, -1) も AA⊤AA^\top の単位固有ベクトルですが、SVD の条件を満たすのは一方だけです。

解答を見る

解答:

Av2=σ2u2A v_2 = \sigma_2 u_2 が成り立つ必要があります。σ2=18\sigma_2 = \sqrt{18}、Av2=12(0,−6)A v_2 = \tfrac{1}{\sqrt{2}}(0, -6) なので、

u2=Av2σ2=(0,−6/2)18=(0,−1).u_2 = \frac{A v_2}{\sigma_2} = \frac{(0, -6/\sqrt{2})}{\sqrt{18}} = (0, -1).

ベクトル (0,1)(0, 1) も AA⊤A A^\top の単位固有ベクトルです(固有ベクトルは ±\pm の組で現れます)。 しかしそれでは符号が逆になり、u2=(0,1)u_2 = (0, 1) で UΣV⊤U \Sigma V^\top を組み立てても AA は再現されません。

❌ 誤り:u2=(0,1)u_2 = (0, 1) — 符号が合わない。
正しい選択は u2=(0,−1)u_2 = (0, -1) です。

問3

3×53 \times 5 行列 AA の特異値が σ1=7\sigma_1 = 7、σ2=2\sigma_2 = 2、σ3=0\sigma_3 = 0 です。

AA の零空間の次元はいくつでしょうか。

✅ 正解です! dim⁡(null(A))=n−rank(A)=5−2=3\dim(\text{null}(A)) = n - \text{rank}(A) = 5 - 2 = 3 です。

❌ 惜しい! 次元定理 dim⁡(null)=n−rank\dim(\text{null}) = n - \text{rank} を使いましょう。ここで rank\text{rank} は 0 でない特異値の個数です。

解答を見る

解答:

次元定理により dim⁡(null(A))=n−rank(A)\dim(\text{null}(A)) = n - \text{rank}(A) です。ここで nn は列の数です。

  • 列の数:n=5n = 5。
  • rank(A)=\text{rank}(A) = 0 でない特異値の個数 =2= 2。
  • dim⁡(null(A))=5−2=3\dim(\text{null}(A)) = 5 - 2 = 3。

挙げられた特異値が「3」個あることに惑わされないようにしましょう。3×53 \times 5 行列には min⁡(3,5)=3\min(3, 5) = 3 個の特異値がありますが、AA の零空間は R5\mathbb{R}^5 の中にあり、 その次元は 5−rank=35 - \text{rank} = 3 です。ゼロの特異値に対応する VV の列と、 挙げられた特異値より先の列(ここでは v4v_4 と v5v_5。これらは自動的に σ=0\sigma = 0 です)を合わせたものが、 零空間を張ります。

問4

階数 1 の行列 A=[4386]A = \begin{bmatrix} 4 & 3 \\ 8 & 6 \end{bmatrix} で、 σ1=125\sigma_1 = \sqrt{125}、σ2=0\sigma_2 = 0、u1=15(1,2)u_1 = \tfrac{1}{\sqrt 5}(1,2)、v1=(0.8,0.6)v_1 = (0.8, 0.6) とします。

AA を正しく再現する式はどれでしょうか。

✅ 正解です! ゼロの特異値は、それに対応する階数 1 の部品を消します。SVD はこうして階数の落ち込みを記録するのです。

❌ 惜しい! ∑iσiuivi⊤\sum_i \sigma_i u_i v_i^\top を展開して、σ2=0\sigma_2 = 0 の項がどうなるかに注目しましょう。

解答を見る

解答:

SVD は AA を、階数 1 の外積の和に展開します。 A=∑iσi uivi⊤.A = \sum_{i} \sigma_i\, u_i v_i^\top.

σ2=0\sigma_2 = 0 のとき、その項は消えるので、残る階数 1 の部品は 1 つだけです。 A=σ1 u1v1⊤=125⋅15(12) (0.8, 0.6)=5[0.80.61.61.2]=[4386].A = \sigma_1\, u_1 v_1^\top = \sqrt{125} \cdot \tfrac{1}{\sqrt 5}\binom{1}{2}\, (0.8,\ 0.6) = 5 \begin{bmatrix} 0.8 & 0.6 \\ 1.6 & 1.2 \end{bmatrix} = \begin{bmatrix} 4 & 3 \\ 8 & 6 \end{bmatrix}.

順序に注意しましょう。A=σ1u1v1⊤A = \sigma_1 u_1 v_1^\top であり、逆順の積 σ1v1u1⊤\sigma_1 v_1 u_1^\top はその転置 A⊤A^\top で、AA ではありません。 この「1 項で足りる」という考え方こそ、SVD が低ランク近似や主成分分析(PCA)を支えている理由です。

正解数:0 / 4