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

完璧な基底:特異値分解がそろえる四つの基本部分空間

I重要な公式

公式 名称 説明
Avi=σiuiA v_i = \sigma_i u_i 特異値分解(SVD)の組み合わせ 行列は viv_i を、伸縮した uiu_i に送る
ATA vi=λiviA^T A\, v_i = \lambda_i v_i 右特異ベクトル viv_i は ATAA^T A の固有ベクトル
σi=λi\sigma_i = \sqrt{\lambda_i} 特異値 ATAA^T A の固有値の平方根
ui=Aviσiu_i = \dfrac{A v_i}{\sigma_i} 左特異ベクトル 列空間の中で自動的に正規直交になる
A=UΣVTA = U \Sigma V^T 完全な SVD 2 つの空間にまたがって AA を対角化する

II可視化1 — AA で写した正規直交の組

垂直な入力の組は、AA を掛けるとたいてい垂直でなくなります。例外は 2 つの特別な角度だけです。

入力 · 単位円(q₁ をドラッグ)

出力 · A を掛ける

💡 出力が垂直のまま保たれる 2 つの入力の角度こそ、右特異ベクトル v1,v2v_1, v_2 の方向です。

III可視化2 — 単位円が楕円になる

AA は単位円を楕円に写します。その半軸 σ1u1,σ2u2\sigma_1 u_1, \sigma_2 u_2 は、v1,v2v_1, v_2 の像です。

入力 · 単位円 + v₁,v₂

出力 · 楕円 + σ₁u₁,σ₂u₂

💡 2 つの行をほぼ平行にして σ2→0\sigma_2 \to 0 としてみましょう。楕円はつぶれて線分になります。階数 1 の特異行列です。

IV可視化3 — A=UΣVTA = U \Sigma V^T の 3 つのステップ

AA は 3 つの動きで作用します。VTV^T で回転し、Σ\Sigma で伸縮し、UU で回転します。

段階 0 — 出発点
正規直交な組 v1,v2v_1, v_2(右特異ベクトル)をのせた単位円。
段階 1 — VTV^T を掛ける
vi→eiv_i \to e_i と送る回転。円は円のままです。
段階 2 — Σ\Sigma を掛ける
軸 ii を σi\sigma_i 倍に伸縮(σ1=35≈6.71\sigma_1 = 3\sqrt{5} \approx 6.71、σ2=5≈2.24\sigma_2 = \sqrt{5} \approx 2.24)。座標軸にそろった楕円になります。
段階 3 — UU を掛ける
ei→uie_i \to u_i と送る回転。これで Avi=σiuiA v_i = \sigma_i u_i となり、最終的な傾いた楕円ができます。

V確認クイズ

問1

階数 rr の m×nm \times n 行列 AA について、SVD はベクトル v1,…,vnv_1, \ldots, v_n と u1,…,umu_1, \ldots, u_m を与えます。四つの基本部分空間を正しく言い当てているのはどれでしょうか。

✅ 正解です! 最初の rr 本の vv は行空間に、最初の rr 本の uu は列空間に入っています。

❌ 惜しい! 思い出しましょう。vv は Rn\mathbb{R}^n(入力側、行空間と零空間)に、uu は Rm\mathbb{R}^m(出力側、列空間と左零空間)に住んでいます。それぞれの最初の rr 本が、実際に働く方向です。

解答を見る

解答:

最初の rr 本の特異ベクトルは、AA が実際に「使う」空間の正規直交基底を与えます。

  • v1,…,vrv_1, \ldots, v_r は行空間を張る(Rn\mathbb{R}^n の中)
  • vr+1,…,vnv_{r+1}, \ldots, v_n は零空間を張る(Rn\mathbb{R}^n の中)
  • u1,…,uru_1, \ldots, u_r は列空間を張る(Rm\mathbb{R}^m の中)
  • ur+1,…,umu_{r+1}, \ldots, u_m は左零空間を張る(Rm\mathbb{R}^m の中)

SVD が「完璧な」分解と呼ばれるのはこのためです。1 つの分解で、四つの基本部分空間すべての正規直交基底が同時に手に入ります。

問2

行列 AA について、ATAA^T A の固有値が λ1=45\lambda_1 = 45 と λ2=5\lambda_2 = 5 だとします。AA の特異値 σ1\sigma_1 と σ2\sigma_2 はどれでしょうか。

✅ 正解です! σi=λi\sigma_i = \sqrt{\lambda_i}。特異値は ATAA^T A の固有値の平方根です。

❌ 惜しい! 平方根をとり忘れるのはよくある間違いです。ATAA^T A の固有値が表すのは ∥Avi∥\|A v_i\| ではなく ∥Avi∥2\|A v_i\|^2 です。

解答を見る

解答:

特異値は ATAA^T A の固有値の平方根です。 σi=λi\sigma_i = \sqrt{\lambda_i}

したがって、 σ1=45=35,σ2=5\sigma_1 = \sqrt{45} = 3\sqrt{5}, \qquad \sigma_2 = \sqrt{5}

なぜ平方根なのでしょうか。 Avi=σiuiA v_i = \sigma_i u_i の長さの二乗を計算してみましょう。 ∥Avi∥2=(Avi)T(Avi)=viTATAvi=λiviTvi=λi\|A v_i\|^2 = (A v_i)^T (A v_i) = v_i^T A^T A v_i = \lambda_i v_i^T v_i = \lambda_i よって ∥Avi∥=λi\|A v_i\| = \sqrt{\lambda_i} です。uiu_i は単位ベクトルなので、これは σi\sigma_i に等しくなります。

問3

正しいか誤りか: viv_i を ATAA^T A の固有ベクトルに選べば、そこから得られる ui=Avi/σiu_i = A v_i / \sigma_i は列空間の中で自動的に直交する。グラム・シュミットの直交化法を別に行う必要はない。

✅ 正解です! ATAA^T A の固有ベクトルが直交していることから、自動的に (Avi)⋅(Avj)=λjviTvj=0(Av_i) \cdot (Av_j) = \lambda_j v_i^T v_j = 0 となります。

❌ 惜しい! (Avi)T(Avj)=viTATAvj(Av_i)^T(Av_j) = v_i^T A^T A v_j を計算してみましょう。vjv_j は ATAA^T A の固有ベクトルなので、これは λjviTvj\lambda_j v_i^T v_j となり、i≠ji \neq j のとき 0 です。

解答を見る

解答:

正しい。 SVD がこれほどきれいに働くのは、まさにこのためです。i≠ji \neq j のとき、

(Avi)T(Avj)=viTATAvj=viT(λjvj)=λj(viTvj)=0(A v_i)^T (A v_j) = v_i^T A^T A v_j = v_i^T (\lambda_j v_j) = \lambda_j (v_i^T v_j) = 0

ATAA^T A の固有ベクトルとしての vv の直交性から、列空間の中の AviA v_i と AvjA v_j も自動的に直交します。σi\sigma_i で割るのは、長さを 1 に正規化するためだけです。

ui=Aviσiu_i = \frac{A v_i}{\sigma_i}

つまり SVD は「AA を掛けても生き残る直交性」をただで与えてくれます。グラム・シュミットの直交化法は要りません。

問4

行列 A=[3045]A = \begin{bmatrix} 3 & 0 \\ 4 & 5 \end{bmatrix} について、右特異ベクトルは v1=12(1,1)Tv_1 = \tfrac{1}{\sqrt{2}}(1, 1)^T、σ1=35\sigma_1 = 3\sqrt{5} です。対応する左特異ベクトル u1u_1 はどれでしょうか。

✅ 正解です! Av1=(1/2)(3,9)TA v_1 = (1/\sqrt{2})(3, 9)^T で、これを σ1=35\sigma_1 = 3\sqrt{5} で割ると (1/10)(1,3)T(1/\sqrt{10})(1, 3)^T になります。

❌ 惜しい! まず Av1A v_1 を丁寧に計算し、それから σ1\sigma_1 で割りましょう。成分の入れ違いや符号の間違いに注意してください。

解答を見る

解答:

u1=Av1σ1u_1 = \dfrac{A v_1}{\sigma_1} を使います。

ステップ1: Av1A v_1 を計算します。 Av1=[3045]⋅12[11]=12[39]A v_1 = \begin{bmatrix} 3 & 0 \\ 4 & 5 \end{bmatrix} \cdot \frac{1}{\sqrt{2}}\begin{bmatrix} 1 \\ 1 \end{bmatrix} = \frac{1}{\sqrt{2}}\begin{bmatrix} 3 \\ 9 \end{bmatrix}

ステップ2: σ1=35\sigma_1 = 3\sqrt{5} で割ります。 u1=135⋅12[39]=110[13]u_1 = \frac{1}{3\sqrt{5}} \cdot \frac{1}{\sqrt{2}}\begin{bmatrix} 3 \\ 9 \end{bmatrix} = \frac{1}{\sqrt{10}}\begin{bmatrix} 1 \\ 3 \end{bmatrix}

確認: ∥u1∥=(1/10)2+(3/10)2=1/10+9/10=1\|u_1\| = \sqrt{(1/\sqrt{10})^2 + (3/\sqrt{10})^2} = \sqrt{1/10 + 9/10} = 1。期待どおり単位ベクトルです。

正解数:0 / 4