Unit 10, lesson 50

Outer Products and Low-Rank Approximation

How an outer product builds a rank-one matrix, how the SVD writes a matrix as a sum of rank-one layers, and how truncating that sum gives a best rank-k approximation in the Frobenius and spectral norms.

  • Video 50
  • Low-Rank Approximation and Principal Components

A 1000×10001000 \times 1000 matrix has a million entries, yet the product of a column with 10001000 entries and a row with 10001000 entries is a matrix of the same size that is fixed by only 20002000 numbers. If a large matrix is close to a sum of a few such products, it can be stored and applied far more cheaply. Which products should be kept, and how close can the result get? This lesson builds rank-one matrices from outer products, writes every matrix as a sum of rank-one layers with the singular value decomposition, and states exactly in which sense cutting that sum short gives a best possible approximation. Throughout, all matrices are real and a tuple such as (1,2)(1, 2) stands for a column vector.

Key terms

Outer product

Definition Let x\mathbf{x} be a vector in Rm\mathbb{R}^m and y\mathbf{y} a vector in Rn\mathbb{R}^n. Their outer product is the m×nm \times n matrix xy⊤\mathbf{x}\mathbf{y}^{\top}, the product of an m×1m \times 1 column and a 1×n1 \times n row. Its entries are (xy⊤)ij=xiyj(\mathbf{x}\mathbf{y}^{\top})_{ij} = x_i y_j, its jjth column is yjxy_j\mathbf{x}, and its iith row is xiy⊤x_i\mathbf{y}^{\top}. For every z\mathbf{z} in Rn\mathbb{R}^n, associativity of the matrix product gives

(xy⊤)z=x(y⊤z)=(y⋅z) x.(\mathbf{x}\mathbf{y}^{\top})\mathbf{z} = \mathbf{x}(\mathbf{y}^{\top}\mathbf{z}) = (\mathbf{y} \cdot \mathbf{z})\,\mathbf{x}.

The order of the factors matters. When m=n≥2m = n \ge 2, the product y⊤x\mathbf{y}^{\top}\mathbf{x} in the other order is a 1×11 \times 1 matrix, the inner product y⋅x\mathbf{y} \cdot \mathbf{x}, which is a number rather than an n×nn \times n matrix.

In plain words The matrix xy⊤\mathbf{x}\mathbf{y}^{\top} takes one measurement of its input, the dot product with y\mathbf{y}, and uses that number to scale the fixed vector x\mathbf{x}.

Example Let x=(1,2)\mathbf{x} = (1, 2) and y=(3,−1)\mathbf{y} = (3, -1). Then

xy⊤=[12][3−1]=[3−16−2],\begin{aligned} \mathbf{x}\mathbf{y}^{\top} &= \begin{bmatrix} 1 \\ 2 \end{bmatrix} \begin{bmatrix} 3 & -1 \end{bmatrix} \\[0.4em] &= \begin{bmatrix} 3 & -1 \\ 6 & -2 \end{bmatrix}, \end{aligned}

while y⊤x=3−2=1\mathbf{y}^{\top}\mathbf{x} = 3 - 2 = 1. For the input z=(2,1)\mathbf{z} = (2, 1) the measurement is y⋅z=6−1=5\mathbf{y} \cdot \mathbf{z} = 6 - 1 = 5, so the output is 5x=(5,10)5\mathbf{x} = (5, 10). The rows of the matrix give the same answer, since 3⋅2−1⋅1=53 \cdot 2 - 1 \cdot 1 = 5 and 6⋅2−2⋅1=106 \cdot 2 - 2 \cdot 1 = 10.

Rank-one matrix

Definition An m×nm \times n matrix has rank one when its column space has dimension 11. If x≠0\mathbf{x} \ne \mathbf{0} in Rm\mathbb{R}^m and y≠0\mathbf{y} \ne \mathbf{0} in Rn\mathbb{R}^n, the outer product xy⊤\mathbf{x}\mathbf{y}^{\top} has rank one, with

Col⁡(xy⊤)=span⁡{x},Null⁡(xy⊤)=span⁡{y}⊥.\begin{aligned} \operatorname{Col}(\mathbf{x}\mathbf{y}^{\top}) &= \operatorname{span}\{\mathbf{x}\}, \\[0.4em] \operatorname{Null}(\mathbf{x}\mathbf{y}^{\top}) &= \operatorname{span}\{\mathbf{y}\}^{\perp}. \end{aligned}

Every output is a multiple of x\mathbf{x}, and every multiple cxc\mathbf{x} is reached, for instance by the input c y/(y⋅y)c\,\mathbf{y}/(\mathbf{y} \cdot \mathbf{y}). Since x≠0\mathbf{x} \ne \mathbf{0}, the output (y⋅z) x(\mathbf{y} \cdot \mathbf{z})\,\mathbf{x} is zero exactly when y⋅z=0\mathbf{y} \cdot \mathbf{z} = 0, so the null space consists of the inputs perpendicular to y\mathbf{y} and has dimension n−1n - 1. Conversely, every m×nm \times n matrix of rank one equals xy⊤\mathbf{x}\mathbf{y}^{\top} for some nonzero vectors x\mathbf{x} in Rm\mathbb{R}^m and y\mathbf{y} in Rn\mathbb{R}^n. Indeed, if x\mathbf{x} spans the column space, each column is a multiple yjxy_j\mathbf{x}, and the coefficients yjy_j form a nonzero vector y\mathbf{y}. The pair is not unique, since (cx)(y/c)⊤=xy⊤(c\mathbf{x})(\mathbf{y}/c)^{\top} = \mathbf{x}\mathbf{y}^{\top} for every c≠0c \ne 0. If x=0\mathbf{x} = \mathbf{0} or y=0\mathbf{y} = \mathbf{0}, the outer product is the zero matrix, which has rank zero.

In plain words The rank-one matrix xy⊤\mathbf{x}\mathbf{y}^{\top} sends every input onto the line through x\mathbf{x}, and the inputs it erases are exactly those perpendicular to y\mathbf{y}. The null space lives in the input space and the column space in the output space, so they are different kinds of objects even when both are lines in a plane.

Example The matrix xy⊤\mathbf{x}\mathbf{y}^{\top} of the previous card sends a general input (a,b)(a, b) to (3a−b) (1,2)(3a - b)\,(1, 2). Its column space is the line spanned by (1,2)(1, 2). Its null space is given by 3a−b=03a - b = 0, so it is the line spanned by (1,3)(1, 3), and indeed y⋅(1,3)=3−3=0\mathbf{y} \cdot (1, 3) = 3 - 3 = 0. No entry of the matrix is zero, yet its rank is one. The shapes need not match. For x=(1,0,2)\mathbf{x} = (1, 0, 2) in R3\mathbb{R}^3 and y=(1,1)\mathbf{y} = (1, 1) in R2\mathbb{R}^2, the 3×23 \times 2 matrix xy⊤\mathbf{x}\mathbf{y}^{\top} sends (a,b)(a, b) to (a+b) (1,0,2)(a + b)\,(1, 0, 2), and its null space is spanned by (1,−1)(1, -1).

Outer-product expansion of the SVD

Definition Let AA be a real m×nm \times n matrix of rank r≥1r \ge 1 with compact singular value decomposition A=UrΣrVr⊤A = U_r\Sigma_r V_r^{\top}. Here σ1≥σ2≥⋯≥σr>0\sigma_1 \ge \sigma_2 \ge \cdots \ge \sigma_r > 0 are the positive singular values, and u1,…,ur\mathbf{u}_1, \dots, \mathbf{u}_r in Rm\mathbb{R}^m and v1,…,vr\mathbf{v}_1, \dots, \mathbf{v}_r in Rn\mathbb{R}^n are orthonormal left and right singular vectors with Avi=σiuiA\mathbf{v}_i = \sigma_i\mathbf{u}_i. Multiplying the factors column by row gives

A=∑i=1rσi uivi⊤=σ1u1v1⊤+⋯+σrurvr⊤.\begin{aligned} A &= \sum_{i=1}^{r} \sigma_i\,\mathbf{u}_i\mathbf{v}_i^{\top} \\[0.4em] &= \sigma_1\mathbf{u}_1\mathbf{v}_1^{\top} + \cdots + \sigma_r\mathbf{u}_r\mathbf{v}_r^{\top}. \end{aligned}

Each term σiuivi⊤\sigma_i\mathbf{u}_i\mathbf{v}_i^{\top} is a rank-one matrix, here called a singular layer. Applied to an input z\mathbf{z} in Rn\mathbb{R}^n, the expansion reads

Az=∑i=1rσi (vi⋅z) ui.A\mathbf{z} = \sum_{i=1}^{r} \sigma_i\,(\mathbf{v}_i \cdot \mathbf{z})\,\mathbf{u}_i.

The zero matrix, of rank 00, is the empty sum.

In plain words Each layer measures the input along one right singular vector, multiplies that number by a singular value, and sends the result along the matching left singular vector. Adding all the layers rebuilds the matrix, and the layers come sorted from strongest to weakest.

Example Take

A=[101011].A = \begin{bmatrix} 1 & 0 & 1 \\ 0 & 1 & 1 \end{bmatrix}.

Its singular values are σ1=3\sigma_1 = \sqrt{3} and σ2=1\sigma_2 = 1, with u1=(1,1)/2\mathbf{u}_1 = (1, 1)/\sqrt{2}, v1=(1,1,2)/6\mathbf{v}_1 = (1, 1, 2)/\sqrt{6}, u2=(1,−1)/2\mathbf{u}_2 = (1, -1)/\sqrt{2} and v2=(1,−1,0)/2\mathbf{v}_2 = (1, -1, 0)/\sqrt{2}. Since 3/(26)=12\sqrt{3}/(\sqrt{2}\sqrt{6}) = \tfrac12 and 1/(22)=121/(\sqrt{2}\sqrt{2}) = \tfrac12, the two layers are

σ1u1v1⊤=12[112112],σ2u2v2⊤=12[1−10−110],\begin{aligned} \sigma_1\mathbf{u}_1\mathbf{v}_1^{\top} &= \frac{1}{2}\begin{bmatrix} 1 & 1 & 2 \\ 1 & 1 & 2 \end{bmatrix}, \\[0.4em] \sigma_2\mathbf{u}_2\mathbf{v}_2^{\top} &= \frac{1}{2}\begin{bmatrix} 1 & -1 & 0 \\ -1 & 1 & 0 \end{bmatrix}, \end{aligned}

and adding them entry by entry gives back AA. If AzA\mathbf{z} has entries aa and bb, the first layer sends z\mathbf{z} to 12(a+b) (1,1)\tfrac12(a + b)\,(1, 1), the average in both entries, and the second sends it to 12(a−b) (1,−1)\tfrac12(a - b)\,(1, -1).

Truncated SVD

Definition Let AA have the expansion of the previous card, with singular values in decreasing order, and let kk be an integer with 0≤k≤r0 \le k \le r. The truncated SVD of rank kk keeps the first kk layers,

Ak=∑i=1kσi uivi⊤=UkΣkVk⊤,A_k = \sum_{i=1}^{k} \sigma_i\,\mathbf{u}_i\mathbf{v}_i^{\top} = U_k\Sigma_k V_k^{\top},

where UkU_k and VkV_k hold the first kk left and right singular vectors as columns and Σk=diag⁡(σ1,…,σk)\Sigma_k = \operatorname{diag}(\sigma_1, \dots, \sigma_k). It has rank exactly kk. The truncation A0A_0 is the zero matrix, Ar=AA_r = A, and for k>rk > r one sets Ak=AA_k = A. The discarded part is

A−Ak=∑i=k+1rσi uivi⊤.A - A_k = \sum_{i=k+1}^{r} \sigma_i\,\mathbf{u}_i\mathbf{v}_i^{\top}.

The truncation agrees with AA on span⁡{v1,…,vk}\operatorname{span}\{\mathbf{v}_1, \dots, \mathbf{v}_k\} and on Null⁡A\operatorname{Null} A, and it sends vk+1,…,vr\mathbf{v}_{k+1}, \dots, \mathbf{v}_r to 0\mathbf{0}. Storing UkU_k, Σk\Sigma_k and VkV_k takes k(m+n+1)k(m + n + 1) numbers instead of mnmn, and applying AkA_k to a vector takes kk dot products, kk scalings and one combination of kk vectors. When σk=σk+1\sigma_k = \sigma_{k+1}, the matrix AkA_k depends on which singular vectors were chosen, a case treated in the last card.

In plain words Keep the kk strongest layers and drop the rest. The approximation keeps the strongest directions of action exactly and forgets the weaker ones completely.

Example For the matrix AA of the previous card, the rank-one truncation is the first layer,

A1=12[112112].A_1 = \frac{1}{2}\begin{bmatrix} 1 & 1 & 2 \\ 1 & 1 & 2 \end{bmatrix}.

It sends (a,b,c)(a, b, c) to the vector whose two entries both equal 12a+12b+c\tfrac12 a + \tfrac12 b + c. On v1\mathbf{v}_1 it agrees with AA, since both give 3 u1\sqrt{3}\,\mathbf{u}_1. On v2\mathbf{v}_2 it gives 0\mathbf{0} where AA gives u2\mathbf{u}_2, and on the null direction (−1,−1,1)(-1, -1, 1) of AA both give 0\mathbf{0}. For a 1000×10001000 \times 1000 matrix, a truncation of rank 1010 needs 10⋅2001=2001010 \cdot 2001 = 20010 stored numbers instead of a million.

Frobenius norm and spectral norm

Definition For a real m×nm \times n matrix AA with entries aija_{ij}, the Frobenius norm and the spectral norm are

∥A∥F=(∑i=1m∑j=1naij2)1/2,∥A∥2=max⁡∥z∥=1∥Az∥.\begin{aligned} \lVert A \rVert_F &= \Big(\sum_{i=1}^{m}\sum_{j=1}^{n} a_{ij}^2\Big)^{1/2}, \\[0.4em] \lVert A \rVert_2 &= \max_{\lVert \mathbf{z} \rVert = 1} \lVert A\mathbf{z} \rVert. \end{aligned}

The Frobenius norm is the length of AA viewed as a list of mnmn numbers, and ∥A∥F2=tr⁡(A⊤A)\lVert A \rVert_F^2 = \operatorname{tr}(A^{\top}A). The spectral norm is the induced Euclidean norm, the largest stretch of a unit input. If AA has positive singular values σ1≥⋯≥σr\sigma_1 \ge \cdots \ge \sigma_r, then

∥A∥2=σ1,∥A∥F=σ12+⋯+σr2,\begin{aligned} \lVert A \rVert_2 &= \sigma_1, \\[0.4em] \lVert A \rVert_F &= \sqrt{\sigma_1^2 + \cdots + \sigma_r^2}, \end{aligned}

and both norms of the zero matrix are 00. The Frobenius formula holds because the entrywise inner product ⟨B,C⟩=∑i,jbijcij\langle B, C \rangle = \sum_{i,j} b_{ij}c_{ij} of two outer products is ⟨pq⊤,st⊤⟩=(p⋅s)(q⋅t)\langle \mathbf{p}\mathbf{q}^{\top}, \mathbf{s}\mathbf{t}^{\top} \rangle = (\mathbf{p} \cdot \mathbf{s})(\mathbf{q} \cdot \mathbf{t}). Distinct layers uivi⊤\mathbf{u}_i\mathbf{v}_i^{\top} of an SVD are therefore perpendicular, each has Frobenius norm 11, and the Pythagorean theorem adds the numbers σi2\sigma_i^2. The spectral formula holds because for a unit input z\mathbf{z} the coordinates ci=vi⋅zc_i = \mathbf{v}_i \cdot \mathbf{z} satisfy ∑ici2≤1\sum_i c_i^2 \le 1, so ∥Az∥2=∑iσi2ci2≤σ12\lVert A\mathbf{z} \rVert^2 = \sum_i \sigma_i^2 c_i^2 \le \sigma_1^2, with equality at z=v1\mathbf{z} = \mathbf{v}_1. In particular ∥A∥2≤∥A∥F≤r ∥A∥2\lVert A \rVert_2 \le \lVert A \rVert_F \le \sqrt{r}\,\lVert A \rVert_2.

In plain words The square of the Frobenius norm adds up every squared entry, so for an error matrix it measures the total squared error over the whole array. The spectral norm reports the error in the single worst direction.

Example For the matrix AA with rows (1,0,1)(1, 0, 1) and (0,1,1)(0, 1, 1), the squared entries add to 1+0+1+0+1+1=41 + 0 + 1 + 0 + 1 + 1 = 4, so ∥A∥F=2\lVert A \rVert_F = 2, in agreement with σ12+σ22=3+1\sigma_1^2 + \sigma_2^2 = 3 + 1. The matrix

AA⊤=[2112]AA^{\top} = \begin{bmatrix} 2 & 1 \\ 1 & 2 \end{bmatrix}

has eigenvalues 33 and 11, the squares of the singular values, so ∥A∥2=3≈1.732\lVert A \rVert_2 = \sqrt{3} \approx 1.732. The worst single direction is stretched by less than the total size 22.

Best rank-k approximation

Definition Let AA be a real m×nm \times n matrix of rank rr with singular values σ1≥⋯≥σr>0\sigma_1 \ge \cdots \ge \sigma_r > 0, and let kk be an integer with 0≤k<r0 \le k < r. For every real m×nm \times n matrix BB with rank⁡B≤k\operatorname{rank} B \le k,

∥A−B∥2≥σk+1=∥A−Ak∥2,∥A−B∥F≥(∑i=k+1rσi2)1/2=∥A−Ak∥F.\begin{aligned} \lVert A - B \rVert_2 &\ge \sigma_{k+1} \\[0.4em] &= \lVert A - A_k \rVert_2, \\[0.4em] \lVert A - B \rVert_F &\ge \Big(\sum_{i=k+1}^{r} \sigma_i^2\Big)^{1/2} \\[0.4em] &= \lVert A - A_k \rVert_F. \end{aligned}

So the truncated SVD AkA_k is a best approximation of rank at most kk in both norms, a result often called the Eckart-Young theorem. When k≥rk \ge r, the matrix AA itself has rank at most kk and the error is 00. The equalities on the right come from the previous card, because A−AkA - A_k has singular values σk+1,…,σr\sigma_{k+1}, \dots, \sigma_r. The spectral inequality has a short proof. The subspace span⁡{v1,…,vk+1}\operatorname{span}\{\mathbf{v}_1, \dots, \mathbf{v}_{k+1}\} has dimension k+1k + 1 and Null⁡B\operatorname{Null} B has dimension at least n−kn - k, so the two subspaces share a unit vector z\mathbf{z}. Then (A−B)z=Az(A - B)\mathbf{z} = A\mathbf{z}, and ∥Az∥≥σk+1\lVert A\mathbf{z} \rVert \ge \sigma_{k+1} because z\mathbf{z} is a unit combination of v1,…,vk+1\mathbf{v}_1, \dots, \mathbf{v}_{k+1}. The Frobenius inequality needs a longer argument.

Uniqueness depends on the cutoff. Let 1≤k<r1 \le k < r. If σk>σk+1\sigma_k > \sigma_{k+1}, the truncation AkA_k is the only best approximation in the Frobenius norm. If σk=σk+1\sigma_k = \sigma_{k+1}, the singular values are tied at the cutoff. The cutoff then splits a group of equal singular values whose singular vectors can be chosen in many ways, and different choices give different truncations, all best approximations with the same errors. The spectral norm is less selective. Its best approximations are never unique for these kk, because each kept σi\sigma_i may be replaced by any number within σk+1\sigma_{k+1} of it without raising the spectral error.

In plain words No matrix of rank at most kk comes closer to AA than the truncation, whether closeness means total squared error or worst-direction error. The theorem as stated here concerns these two norms, not every possible measure of quality. A tie at the cutoff means the best answer is not unique.

Example For the matrix AA above and k=1k = 1, the error A−A1A - A_1 is the second layer, whose entries are four numbers ±12\pm\tfrac12 and two zeros. Its squared entries add to 4⋅14=14 \cdot \tfrac14 = 1, so the Frobenius error is 11. The error is the single layer σ2u2v2⊤\sigma_2\mathbf{u}_2\mathbf{v}_2^{\top}, whose only positive singular value is σ2\sigma_2, so its spectral norm is also σ2=1\sigma_2 = 1. Now take

D=[200020001],D = \begin{bmatrix} 2 & 0 & 0 \\ 0 & 2 & 0 \\ 0 & 0 & 1 \end{bmatrix},

whose singular values 2,2,12, 2, 1 are tied at the cutoff for k=1k = 1. Keeping the first diagonal entry gives diag⁡(2,0,0)\operatorname{diag}(2, 0, 0), and keeping the second gives diag⁡(0,2,0)\operatorname{diag}(0, 2, 0). More generally, every unit vector w\mathbf{w} in the plane of e1\mathbf{e}_1 and e2\mathbf{e}_2 satisfies Dw=2wD\mathbf{w} = 2\mathbf{w}, so 2ww⊤2\mathbf{w}\mathbf{w}^{\top} is a truncated SVD of rank one. Each of these has Frobenius error 4+1=5\sqrt{4 + 1} = \sqrt{5} and spectral error 22. By contrast, for diag⁡(4,2,1)\operatorname{diag}(4, 2, 1) the gap 4>24 > 2 makes diag⁡(4,0,0)\operatorname{diag}(4, 0, 0) the only best rank-one approximation in the Frobenius norm, while diag⁡(3,0,0)\operatorname{diag}(3, 0, 0) and diag⁡(5,0,0)\operatorname{diag}(5, 0, 0) reach the same spectral error 22.

Check yourself

  1. Let p=(2,−1)\mathbf{p} = (2, -1) and q=(1,3)\mathbf{q} = (1, 3). Compute pq⊤\mathbf{p}\mathbf{q}^{\top}, apply it to (1,1)(1, 1) in two ways, and find a nonzero vector in its null space.
Show the answer

Each column is an entry of q\mathbf{q} times the column p\mathbf{p}, so

pq⊤=[26−1−3].\mathbf{p}\mathbf{q}^{\top} = \begin{bmatrix} 2 & 6 \\ -1 & -3 \end{bmatrix}.

The measurement is q⋅(1,1)=1+3=4\mathbf{q} \cdot (1, 1) = 1 + 3 = 4, so the output is 4p=(8,−4)4\mathbf{p} = (8, -4). The rows give the same result, since 2+6=82 + 6 = 8 and −1−3=−4-1 - 3 = -4. The null space consists of the inputs (a,b)(a, b) with a+3b=0a + 3b = 0, so (−3,1)(-3, 1) is a nonzero null vector. The matrix has rank one although none of its entries is zero.

  1. Let D=diag⁡(1,4,2)D = \operatorname{diag}(1, 4, 2). Find best approximations of rank one and of rank two, and give the error of each in the Frobenius and spectral norms.
Show the answer

The singular values must be sorted first. They are 4,2,14, 2, 1, with singular vectors e2\mathbf{e}_2, e3\mathbf{e}_3 and e1\mathbf{e}_1. The best rank-one approximation is diag⁡(0,4,0)\operatorname{diag}(0, 4, 0), with error diag⁡(1,0,2)\operatorname{diag}(1, 0, 2), Frobenius error 1+4=5\sqrt{1 + 4} = \sqrt{5} and spectral error 22. The best rank-two approximation is diag⁡(0,4,2)\operatorname{diag}(0, 4, 2), with error diag⁡(1,0,0)\operatorname{diag}(1, 0, 0), so both errors are 11. Both answers are the unique Frobenius minimizers, because 4>24 > 2 and 2>12 > 1. In the spectral norm they are not unique, since for instance diag⁡(0,5,0)\operatorname{diag}(0, 5, 0) also has spectral error 22. Keeping the first diagonal entry instead, diag⁡(1,0,0)\operatorname{diag}(1, 0, 0), would leave errors 20=25\sqrt{20} = 2\sqrt{5} and 44.

  1. The matrix 3I23I_2 has singular values 33 and 33. A student claims that diag⁡(3,0)\operatorname{diag}(3, 0) is its only best rank-one approximation in the Frobenius norm. Is the claim right?
Show the answer

The matrix diag⁡(3,0)\operatorname{diag}(3, 0) is a best rank-one approximation, with Frobenius and spectral errors both 33, but it is not the only one. Every unit vector w\mathbf{w} satisfies 3I2w=3w3I_2\mathbf{w} = 3\mathbf{w}, so it can serve as a left and right singular vector, and 3ww⊤3\mathbf{w}\mathbf{w}^{\top} is a truncated SVD of rank one. For w=(1,1)/2\mathbf{w} = (1, 1)/\sqrt{2},

3ww⊤=32[1111],3I2−3ww⊤=32[1−1−11].\begin{aligned} 3\mathbf{w}\mathbf{w}^{\top} &= \frac{3}{2}\begin{bmatrix} 1 & 1 \\ 1 & 1 \end{bmatrix}, \\[0.4em] 3I_2 - 3\mathbf{w}\mathbf{w}^{\top} &= \frac{3}{2}\begin{bmatrix} 1 & -1 \\ -1 & 1 \end{bmatrix}. \end{aligned}

The error has squared entries adding to 4⋅94=94 \cdot \tfrac94 = 9, so its Frobenius norm is 33, and its spectral norm is also 33. The uniqueness statement needs σ1>σ2\sigma_1 > \sigma_2, and here the two singular values are tied at the cutoff.

How this lesson connects

Where this leads in Linear Algebra II