Aula 5: Decomposição em Valores Singulares (SVD) e Aproximações de Baixo Posto

Álgebra Linear e Otimização para Aprendizado de Máquina

Autor

Prof. Marcos Medeiros Raimundo

Data de Publicação

12 de setembro de 2026

Slides Lista de aulas

1 Revisão e Introdução


1.1 Revisão Rápida: Onde a Aula 4 Parou

A Aula 4 respondeu, para matrizes quadradas simétricas, tudo que precisávamos saber sobre autovalores e autovetores — em três resultados que esta aula vai reciclar diretamente, sem alterar uma vírgula. Vale relembrar cada um com algum detalhe (não só o rótulo), porque a construção da SVD (adiante) não faz mais do que aplicá-los de novo, num lugar diferente.

Primeiro: \(A^TA\) é sempre simétrica e semidefinida positiva, para qualquer \(A\). Isso vale mesmo quando \(A\) não é quadrada — na verdade, é justamente para matrizes retangulares que esse resultado importa mais, porque \(A\) sozinha não tem autovalores (ver “Organizador Prévio” abaixo), mas \(A^TA\) sempre existe e sempre tem a estrutura mais bem-comportada que existe em álgebra linear. Vale relembrar por quê, porque é uma conta de duas linhas, não um fato arbitrário: a simetria sai direto da definição de transposta, \((A^TA)^T=A^T(A^T)^T=A^TA\); a semidefinição positiva sai de reconhecer a forma quadrática associada como uma norma ao quadrado — para qualquer \(\mathbf{x}\), \(\mathbf{x}^T(A^TA)\mathbf{x}=(A\mathbf{x})^T(A\mathbf{x})= \|A\mathbf{x}\|^2\ge 0\), nunca negativo, porque é literalmente o comprimento (ao quadrado) de um vetor.

Segundo: o Teorema Espectral Real. Para qualquer matriz simétrica \(A\in\mathbb{R}^{n\times n}\) — não só as semidefinidas positivas do primeiro resultado, qualquer simétrica, com autovalores de qualquer sinal —, existem \(n\) autovalores reais (nunca complexos, ao contrário do que pode acontecer numa matriz não-simétrica qualquer) e uma base ortonormal completa de autovetores associada a eles, isto é, \(A=Q\Lambda Q^T\) com \(Q\) ortogonal (colunas os autovetores) e \(\Lambda\) diagonal (autovalores). A simetria é exatamente a hipótese que faz essa fatoração ter termos ortonormais — vale a pena marcar isso com precisão, porque não é o caso geral: uma matriz quadrada qualquer, não simétrica, ainda pode ser diagonalizável (\(A=P\Lambda P^{-1}\)), mas \(P\) em geral não é ortogonal (suas colunas não são ortogonais entre si, nem unitárias), e os autovalores podem nem ser reais. É só porque \(A^TA\) é sempre simétrica (primeiro resultado) que a versão forte do teorema — com \(Q\) ortogonal, não só \(P\) invertível — se aplica a ela sem exceção, garantindo, de saída, que a decomposição do primeiro resultado sempre é possível — nenhum caso patológico escapa.

Terceiro: o sinal e a razão dos autovalores carregam informação geométrica direta, não só algébrica. O sinal caracteriza definitude — \(A\succ 0\iff\lambda_{\min}(A)>0\) (todos os autovalores estritamente positivos), \(A\succeq 0\iff\lambda_{\min}(A)\ge 0\) — e a razão entre o maior e o menor autovalor é o número de condição exato, \(\text{cond}(A)=\lambda_{\max}(A)/\lambda_{\min}(A)\), não uma estimativa. Isso fechou, sem perturbar nada, o ciclo que a Aula 3 só tinha medido empiricamente (perturbando os dados e observando o efeito no peso estimado): agora sabemos exatamente, em função dos autovalores, de onde vem a sensibilidade do sistema a pequenas perturbações.

Vale relembrar os números concretos, porque esta aula vai reencontrá-los: para os 4 atributos completos do California Housing (\(X\in \mathbb{R}^{16\,640\times 4}\)), os autovalores de \(X^TX\) eram \([747{,}25;\ 52\,666{,}03;\ 273\,990{,}28;\ 1{,}753\times10^7]\), com \(\text{cond}(X^TX)\approx 23\,460{,}5\); para o par quase-colinear AveRooms/AveBedrms, \(\text{cond}\approx 419{,}8\); para o par bem-condicionado MedInc/HouseAge, \(\text{cond}\approx 169{,}1\).

1.2 Organizador Prévio: De \(X^TX\) Simétrica Para \(X\) Retangular

Tudo isso foi construído em cima de \(X^TX\) — uma matriz \(4\times 4\), quadrada e simétrica por construção. Mas o objeto de interesse original nunca foi \(X^TX\); é o próprio \(X\), a matriz de design \(16\,640\times 4\), retangular. Vale ser preciso aqui, porque é fácil confundir dois problemas diferentes: autovalor e autovetor não são “difíceis de garantir” para uma matriz retangular — eles simplesmente não estão definidos. A equação \(A\mathbf{x}=\lambda\mathbf{x}\) exige que \(A\mathbf{x}\) viva no mesmo espaço que \(\mathbf{x}\) (para que a igualdade com \(\lambda\mathbf{x}\) faça sentido); se \(A\in \mathbb{R}^{m\times n}\) com \(m\ne n\), então \(A\mathbf{x}\in\mathbb{R}^m\) enquanto \(\mathbf{x}\in\mathbb{R}^n\) — a equação nem sequer tem tipo correto, muito menos solução. O polinômio característico \(\det(A-\lambda I)\) tem o mesmo problema: \(A-\lambda I\) exige subtrair \(A\) de uma matriz identidade multiplicada por escalar, e isso só é definido quando \(A\) é quadrada.

A ideia central desta aula: em vez de insistir em decompor \(X\) da mesma forma que decompomos \(X^TX\), vamos reciclar exatamente o que a Aula 4 já provou — aplicando-o não a \(X\), mas às duas matrizes quadradas simétricas que \(X\) produz naturalmente, \(X^TX\in\mathbb{R}^{4\times 4}\) e \(XX^T\in\mathbb{R}^{16\,640\times 16\,640}\) — e depois costurar os dois resultados de volta em uma decomposição de \(X\) propriamente dita. Essa costura tem nome: Decomposição em Valores Singulares (SVD).

1.3 Roteiro da Aula

A pergunta que fecha o Organizador Prévio — “como reciclar o Teorema Espectral Real, aplicado a \(X^TX\) e \(XX^T\), para decompor o próprio \(X\) retangular?” — se desdobra em quatro perguntas mais específicas:

  1. O que é a Decomposição em Valores Singulares (SVD) e por que ela existe para qualquer matriz retangular, sem exceção?
  2. Como construir a SVD a partir do que já sabemos sobre \(X^TX\) e \(XX^T\) — isto é, a partir do próprio Teorema Espectral da Aula 4?
  3. Como usar a SVD para aproximar uma matriz por outra de posto menor, e por que essa aproximação é a melhor possível (Teorema de Eckart-Young-Mirsky)?
  4. O que é a Decomposição Polar, e como ela nasce “de graça” a partir dos mesmos três fatores da SVD?

1.4 Problema Motivador

Considere um cenário bem diferente do California Housing, mas que vai se revelar regido pela mesma matemática. Três espectadores — Ali, Beatrix e Chandra — avaliam quatro filmes (Guerra nas Estrelas, Blade Runner, Amélie Poulain, Delicatessen) numa escala de 0 (pior) a 5 (melhor). As notas formam uma matriz \(A\in\mathbb{R}^{4\times 3}\), uma linha por filme, uma coluna por espectador (tradução livre de um exemplo do MathML, §4.5.1):

Ali Beatrix Chandra
Guerra nas Estrelas 5.0 4.0 1.0
Blade Runner 5.0 5.0 0.0
Amélie Poulain 0.0 0.0 5.0
Delicatessen 1.0 0.0 4.0

Olhando só para esses \(12\) números, seria razoável suspeitar de uma estrutura escondida: talvez Ali e Beatrix compartilhem um “perfil de gosto” (ficção científica), e Chandra tenha um perfil bem diferente (cinema de arte francês) — e talvez os próprios filmes se agrupem em “temas” correspondentes. Pense por um instante, sem fazer nenhuma conta ainda: existe alguma forma de extrair, direto da matriz de notas, esses “perfis” e “temas” escondidos — sem que ninguém tenha rotulado os filmes por gênero de antemão?

DicaDe volta a \(X^TX\): o que muda (e o que não muda) para \(X\)

Dica: pense com cuidado sobre o que está definido para uma matriz \(m\times n\) com \(m\ne n\), e o que continua definido só porque a matriz é quadrada simétrica.

  • □ Se \(X\) fosse quadrada mas não simétrica, o Teorema Espectral Real garantiria, mesmo assim, autovalores reais para \(X\).
  • □ Se todos os espectadores dessem exatamente a mesma nota a todos os filmes (a matriz de notas \(A\) tivesse posto \(1\)), haveria mais de um “perfil” de espectador (mais de um par não-nulo de vetores singulares) associado a essa matriz.
  • □ Uma camada totalmente conectada de uma rede neural, com matriz de pesos \(W\in\mathbb{R}^{m\times n}\) e \(m\ne n\) (mais neurônios de saída do que de entrada, por exemplo), não possui autovalores no sentido usual, mas ainda assim admite uma decomposição em valores singulares.
  • □ Como o Teorema Espectral (Aula 4) garante que \(X^TX\) sempre tem autovalores reais, isso implica que o próprio \(X\) também possui autovalores reais, só que de importância secundária.

2 Intuição Geométrica da SVD


2.1 Uma Matriz Qualquer Agindo sobre um Círculo

Antes de qualquer fórmula, uma imagem concreta — desta vez com uma matriz que não é simétrica, de propósito, para deixar claro por que o Bloco 2 da Aula 4 não se aplica aqui: \[ A = \begin{bmatrix} 1{,}4 & 0{,}6 \\ 0{,}3 & 0{,}9 \end{bmatrix} , \qquad A \ne A^T . \] Pense em \(A\) como transformação linear agindo sobre o círculo unitário de \(\mathbb{R}^2\). Como qualquer matriz \(2\times 2\) com autovalores reais e distintos, \(A\) tem duas direções especiais no sentido da Aula 4 — autovetores que só esticam, nunca giram, sob \(A\). Mas, como \(A\) não é simétrica, o Teorema Espectral Real não garante que essas direções sejam ortogonais entre si — e de fato não são.

No painel esquerdo, as setas cheias (azul e laranja) são os vetores singulares à direita, \(\mathbf{v}_1\) e \(\mathbf{v}_2\) — colunas da matriz \(V\) que o Bloco 3 vai construir; as setas tracejadas cinzas são os autovetores de \(A\) no sentido da Aula 4. Numericamente, o ângulo entre os autovetores é \(\approx 106{,}9°\) (nada perto de \(90°\)), enquanto o ângulo entre \(\mathbf{v}_1\) e \(\mathbf{v}_2\) é exatamente \(90°\) — os vetores singulares são, por construção, sempre ortogonais entre si, autovetores de uma matriz qualquer, em geral, não são. Esse é precisamente o ponto: autovetor e vetor singular são conceitos relacionados, mas não são a mesma coisa — coincidem apenas quando \(A\) é simétrica (Bloco 3 mostra exatamente por quê).

O painel direito mostra a imagem do círculo unitário sob \(A\): uma elipse cujos eixos caem sobre \(\sigma_1\mathbf{u}_1\) e \(\sigma_2\mathbf{u}_2\) — os valores singulares (\(\sigma_1\approx 1{,}675\), \(\sigma_2\approx 0{,}645\), sempre não-negativos e ordenados por convenção, \(\sigma_1\ge\sigma_2\)) escalando os vetores singulares à esquerda, \(\mathbf{u}_1,\mathbf{u}_2\) — que também são ortogonais entre si. A intuição geométrica central da SVD: \(A\) pega uma base ortonormal do domínio (\(\mathbf{v}_1,\mathbf{v}_2\)) e a transforma em outra base ortogonal do codomínio (\(\sigma_1\mathbf{u}_1, \sigma_2\mathbf{u}_2\)) — nada gira “torto” nem no domínio nem no codomínio; só a costura entre os dois lados muda de base.

DicaAutovetor e vetor singular: a mesma seta, dois papéis diferentes?

Dica: pense no que muda (e no que não muda) quando \(A\) é simétrica — volte, se precisar, ao Teorema Espectral Real da Aula 4.

  • □ Se \(A\) for simétrica, os vetores singulares de \(A\) e os autovetores de \(A\) podem ser escolhidos exatamente iguais (a menos de sinal).
  • □ Se todos os autovalores de uma matriz \(2\times 2\) forem complexos (não-reais), essa matriz ainda assim possui uma SVD real bem definida.
  • □ Numa camada linear \(f(\mathbf{x})=W\mathbf{x}\) de uma rede neural com \(W\) quadrada mas não-simétrica, os vetores singulares de \(W\) e os autovetores de \(W\) apontam, em geral, em direções diferentes.
  • □ Como os vetores singulares são sempre ortogonais entre si, isso implica que a imagem do círculo unitário sob qualquer matriz \(A\) é sempre um círculo (nunca uma elipse “achatada”).

3 Construção Formal da SVD a Partir do Teorema Espectral


3.1 Premissas: O Que Já Temos Disponível

Antes de construir qualquer coisa, vale deixar claro o que estamos procurando — os termos “vetor singular” e “valor singular” vão aparecer o tempo todo daqui pra frente, e é melhor defini-los já:

NotaDefinição (Valor e Vetor Singular — prévia do Teorema 4.22, adiante)

Um valor singular de \(A\in\mathbb{R}^{m\times n}\) é um número \(\sigma\ge 0\) para o qual existem vetores unitários \(\mathbf{v}\in\mathbb{R}^n\) e \(\mathbf{u}\in\mathbb{R}^m\) satisfazendo \[ A\mathbf{v} = \sigma\mathbf{u} . \] Chamamos \(\mathbf{v}\) de vetor singular à direita (mora no domínio de \(A\)) e \(\mathbf{u}\) de vetor singular à esquerda (mora no codomínio), associados a esse mesmo \(\sigma\). O Teorema 4.22 (adiante) garante que \(A\) sempre tem um conjunto completo desses trios — os \(\mathbf{v}_i\) formando uma base ortonormal de \(\mathbb{R}^n\), os \(\mathbf{u}_i\) ortonormais em \(\mathbb{R}^m\) — e é exatamente esse conjunto completo que vamos construir a seguir.

Note a semelhança de forma com a equação de autovalor \(A\mathbf{x}=\lambda\mathbf{x}\) (Aula 4): lá, o mesmo vetor \(\mathbf{x}\) aparece dos dois lados, porque \(A\) precisa ser quadrada para isso fazer sentido. Aqui, \(\mathbf{v}\) (entrada) e \(\mathbf{u}\) (saída) podem ser vetores diferentes, em espaços diferentes — é essa flexibilidade que permite a existência para qualquer matriz, retangular ou não, simétrica ou não.

Como provar que esse trio sempre existe? A construção que segue (tradução livre e reorganização nossa de MathML, §4.5.2, pp. 122-125) usa só resultados já disponíveis desde a Aula 4 — nenhuma ferramenta nova de álgebra linear precisa ser importada. Sejam \(A\in\mathbb{R}^{m\times n}\) uma matriz qualquer (não necessariamente quadrada) e \(r=\text{posto}(A)\). As duas premissas:

NotaPremissas (ambas já provadas na Aula 4)
  1. \(A^TA\in\mathbb{R}^{n\times n}\) e \(AA^T\in\mathbb{R}^{m\times m}\) são sempre simétricas e semidefinidas positivas, para qualquer \(A\) — mesmo retangular (Aula 4, teorema \(A^TA\) simétrica e semidefinida positiva).
  2. Pelo Teorema Espectral Real (Aula 4), toda matriz simétrica admite uma base ortonormal completa de autovetores associados a autovalores reais e não-negativos (semidefinitude positiva \(\iff\) \(\lambda_i\ge 0\) para todo \(i\)).

A ideia para construir o trio \((\mathbf{v}_i,\sigma_i,\mathbf{u}_i)\) da Definição acima, em três movimentos:

  1. Metade 1 — só com \(A^TA\). Aplicamos as duas premissas diretamente em \(A^TA\) (simétrica, semidefinida positiva) e extraímos uma base ortonormal de autovetores \(\mathbf{v}_1,\dots,\mathbf{v}_n\) — os vetores singulares à direita — com autovalores \(\lambda_i\ge 0\), dos quais tiramos os valores singulares \(\sigma_i=\sqrt{\lambda_i}\). Isso já entrega \(V\) e \(\Sigma\) inteiros (Passo 1), sem em nenhum momento ter olhado para o que \(A\) faz no codomínio.
  2. Metade 2 — a ação de \(A\) sobre esses vetores. Falta \(U\), e \(U\) vive no codomínio \(\mathbb{R}^m\) — um espaço diferente de onde moram os \(\mathbf{v}_i\). A saída natural é justamente aplicar \(A\) a cada \(\mathbf{v}_i\) e examinar o resultado: \(A\mathbf{v}_i\in\mathbb{R}^m\) é o candidato a (múltiplo de) vetor singular à esquerda (Passo 2).
  3. A ligação entre as duas metades. \(A\mathbf{v}_i\) não é unitário — mas os \(\sigma_i\) que já tínhamos calculado na Metade 1 são exatamente o fator que falta para normalizá-lo: \(\mathbf{u}_i:=\frac{1}{\sigma_i}A\mathbf{v}_i\). O mesmo número \(\sigma_i\) entra duas vezes — primeiro como raiz de um autovalor de \(A^TA\), depois como o comprimento de \(A\mathbf{v}_i\) (o Passo 2 prova que são o mesmo número) — e é esse reaproveitamento que faz \(U\), \(\Sigma\) e \(V\) se encaixarem numa única decomposição, em vez de serem três peças soltas sem relação entre si.

3.2 Passo 1: Vetores Singulares à Direita, a Partir de \(A^TA\)

Pela Premissa 1, \(A^TA\) é simétrica e semidefinida positiva. Pela Premissa 2 (Teorema Espectral Real), existe uma base ortonormal completa de autovetores \(\mathbf{v}_1,\dots,\mathbf{v}_n\in\mathbb{R}^n\) de \(A^TA\), com autovalores reais e não-negativos \(\lambda_1\ge\dots\ge\lambda_n\ge 0\): \[ A^TA = V\Lambda V^T, \qquad V=[\mathbf{v}_1\ \cdots\ \mathbf{v}_n] \text{ ortogonal}, \qquad \Lambda=\text{diag}(\lambda_1,\dots,\lambda_n). \] A ortonormalidade dos \(\mathbf{v}_i\) não precisa de uma prova completa aqui — já vem embutida na Premissa 2 (o Teorema Espectral Real, provado na Aula 4). Vale só mostrar as duas partes de forma simples, sem reabrir a prova inteira.

Ortogonalidade. Para autovalores distintos, \(\lambda_i\ne\lambda_j\), a própria simetria de \(A^TA\) já força \[ (\lambda_i-\lambda_j)\langle\mathbf{v}_i,\mathbf{v}_j\rangle = \langle A^TA\mathbf{v}_i,\mathbf{v}_j\rangle - \langle\mathbf{v}_i,A^TA\mathbf{v}_j\rangle = 0 \;\Longrightarrow\; \langle\mathbf{v}_i,\mathbf{v}_j\rangle = 0. \]

Norma unitária. Um autovetor é definido só a menos de escala — se \(\mathbf{v}\) satisfaz \(A^TA\mathbf{v}=\lambda\mathbf{v}\), qualquer múltiplo \(c\mathbf{v}\) também satisfaz. Escolhemos sempre o representante de norma \(1\), \(\mathbf{v}_i:=\mathbf{v}/\|\mathbf{v}\|\) — uma normalização, não uma propriedade que precisa ser provada.

Manter as duas propriedades simultaneamente (inclusive quando há autovalores repetidos, via Gram-Schmidt dentro do autoespaço) é exatamente o que a Premissa 2 garante — resultado já demonstrado na Aula 4, não repetido aqui.

Como cada \(\lambda_i\ge 0\) (semidefinitude positiva), a raiz quadrada \(\sqrt{\lambda_i}\) está sempre bem definida em \(\mathbb{R}\)é aqui que a Premissa 1 entra de forma essencial: se \(A^TA\) não fosse garantidamente semidefinida positiva, não haveria garantia de poder tomar essa raiz sem cair em números complexos. Definimos os valores singulares de \(A\) como \[ \sigma_i := \sqrt{\lambda_i} \ge 0, \qquad i=1,\dots,n, \] e chamamos os \(\mathbf{v}_i\) (autovetores de \(A^TA\)) de vetores singulares à direita de \(A\).

3.3 Passo 2: Vetores Singulares à Esquerda, Como Imagem Normalizada

Onde queremos chegar. O Passo 1 só decompôs \(A^TA\) — metade da história, e nem sequer envolve \(A\) diretamente sobre o codomínio. Falta achar, no espaço de chegada \(\mathbb{R}^m\), um conjunto ortonormal \(\mathbf{u}_1,\dots,\mathbf{u}_r\) tal que a ação de \(A\) sobre cada \(\mathbf{v}_i\) do Passo 1 seja simplesmente “esticar por \(\sigma_i\) na direção \(\mathbf{u}_i\)”: \[ A\mathbf{v}_i = \sigma_i\mathbf{u}_i, \qquad i=1,\dots,r . \] Essa é literalmente a equação que teremos que satisfazer para montar a SVD (ela reaparece na forma matricial no Passo 3) — se acharmos esses \(\mathbf{u}_i\) ortonormais, a segunda metade da construção está pronta. Duas perguntas ficam em aberto: (i) que vetor é esse \(\mathbf{u}_i\), e (ii) por que o conjunto resultante seria ortonormal?

Candidato: a própria imagem, normalizada. A equação acima já diz a direção de \(\mathbf{u}_i\) — ele precisa ser paralelo a \(A\mathbf{v}_i\) (para \(\sigma_i>0\), isto é, \(i\le r\), já que \(\text{posto}(A^TA)=\text{posto}(A)=r\)). O candidato natural é normalizar essa imagem pelo próprio comprimento: \[ \mathbf{u}_i := \frac{1}{\sigma_i}A\mathbf{v}_i \in \mathbb{R}^m . \] Só falta confirmar que este candidato entrega o que prometemos: ortonormalidade. Duas verificações, e nada além delas.

Verificação (i) — as imagens já são ortogonais entre si. Como \(\mathbf{v}_i\) é autovetor de \(A^TA\) com autovalor \(\lambda_i\), \(A^TA\mathbf{v}_j=\lambda_j\mathbf{v}_j\), e para \(i\ne j\), \[ (A\mathbf{v}_i)^T(A\mathbf{v}_j) = \mathbf{v}_i^T(A^TA)\mathbf{v}_j = \mathbf{v}_i^T(\lambda_j\mathbf{v}_j) = \lambda_j(\mathbf{v}_i^T \mathbf{v}_j) = 0 , \] onde o último passo usa a ortogonalidade de \(\mathbf{v}_i\) e \(\mathbf{v}_j\) (\(i\ne j\)), já garantida pela base ortonormal do Passo 1. Repare que essa conta usa \(A^TA\) — a mesma Premissa 2 do Passo 1 — e não precisa de \(\mathbf{u}_i\) nenhum: as imagens \(A\mathbf{v}_i\) já nascem ortogonais, antes de qualquer normalização.

Verificação (ii) — a norma de cada imagem é exatamente \(\sigma_i\). \[ \|A\mathbf{v}_i\|^2=\mathbf{v}_i^T A^TA\mathbf{v}_i=\lambda_i\| \mathbf{v}_i\|^2=\lambda_i=\sigma_i^2 \quad\Longrightarrow\quad \|A\mathbf{v}_i\|=\sigma_i . \]

Chegamos. As imagens \(A\mathbf{v}_1,\dots,A\mathbf{v}_r\) são ortogonais entre si (Verificação i) e cada uma tem norma \(\sigma_i\) (Verificação ii) — logo dividir cada uma pelo próprio comprimento, exatamente o que \(\mathbf{u}_i:=\frac{1}{\sigma_i}A\mathbf{v}_i\) faz, produz um conjunto ortonormal \(\mathbf{u}_1,\dots,\mathbf{u}_r\). E por construção ele já satisfaz a equação-alvo \(A\mathbf{v}_i=\sigma_i\mathbf{u}_i\) com que abrimos o passo. Chamamos os \(\mathbf{u}_i\) de vetores singulares à esquerda de \(A\).

3.4 Passo 3: A Equação de Valor Singular e a Montagem Final

O Passo 2 confirmou a meta que havíamos proposto: com \(\mathbf{u}_i=\dfrac{1}{\sigma_i}A\mathbf{v}_i\), vale de fato a equação de valor singular \[ A\mathbf{v}_i = \sigma_i\mathbf{u}_i, \qquad i=1,\dots,r . \] Falta só empacotar isso em forma matricial. Note a semelhança — e a diferença — com a equação de autovalor \(A\mathbf{x}=\lambda\mathbf{x}\) da Aula 4: aqui os vetores dos dois lados (\(\mathbf{v}_i\) no domínio, \(\mathbf{u}_i\) no codomínio) não precisam ser o mesmo vetor, porque \(A\) pode mudar de espaço. Empilhando os \(\mathbf{v}_i\) como colunas de \(V\) e os \(\mathbf{u}_i\) como colunas de \(U\) (completando \(U\) e \(V\) com bases ortonormais arbitrárias dos espaços-nulos de \(A^T\) e \(A\), se \(r<m\) ou \(r<n\) — os \(\sigma_i=0\) correspondentes preenchem \(\Sigma\) com zeros, sem violar nada), a equação de valor singular vira, em forma matricial, \[ AV = U\Sigma , \] onde \(\Sigma\in\mathbb{R}^{m\times n}\) tem \(\Sigma_{ii}=\sigma_i\) e \(\Sigma_{ij}=0\) para \(i\ne j\). Como \(V\) é ortogonal, \(V^{-1}=V^T\); multiplicando ambos os lados à direita por \(V^T\): \[ A = U\Sigma V^T . \] Isso completa a construção. Podemos agora enunciar o resultado de forma autocontida:

NotaTeorema (SVD — MathML, tradução nossa, Teo. 4.22, p. 119)

Seja \(A\in\mathbb{R}^{m\times n}\) uma matriz de posto \(r\in[0,\min(m,n)]\). Então existe uma decomposição \[ A = U\Sigma V^T \] com \(U\in\mathbb{R}^{m\times m}\) ortogonal (colunas \(\mathbf{u}_1,\dots,\mathbf{u}_m\)), \(V\in\mathbb{R}^{n\times n}\) ortogonal (colunas \(\mathbf{v}_1,\dots,\mathbf{v}_n\)), e \(\Sigma\in\mathbb{R}^{m\times n}\) com \(\Sigma_{ii}=\sigma_i\ge 0\) e \(\Sigma_{ij}=0\) para \(i\ne j\). Os \(\sigma_i\), \(i=1,\dots,r\), são os valores singulares (por convenção, ordenados \(\sigma_1\ge\dots\ge\sigma_r>0\)); \(\mathbf{u}_i\) são os vetores singulares à esquerda; \(\mathbf{v}_i\) são os vetores singulares à direita. Essa decomposição existe para qualquer \(A\in \mathbb{R}^{m\times n}\), sem exceção — em particular, sem exigir que \(A\) seja quadrada nem simétrica.

Vale registrar explicitamente a diferença em relação à decomposição espectral da Aula 4: lá, \(A=Q\Lambda Q^{-1}\) usa a mesma matriz de base (\(Q\)) nos dois lados, porque o domínio e o codomínio de uma transformação \(A:\mathbb{R}^n\to\mathbb{R}^n\) são o mesmo espaço. A SVD usa duas bases diferentes (\(U\) e \(V\)) precisamente porque, em geral, domínio (\(\mathbb{R}^n\)) e codomínio (\(\mathbb{R}^m\)) da transformação representada por \(A\) são espaços diferentes — e a SVD é o que resta de “decomposição em direções especiais” quando essa igualdade de espaços é removida.

3.5 Exemplo Resolvido à Mão

Vamos aplicar a construção passo a passo à matriz (MathML, Exemplo 4.13, tradução livre) \[ A = \begin{bmatrix} 1 & 0 & 1 \\ -2 & 1 & 0 \end{bmatrix} \in \mathbb{R}^{2\times 3} . \] Passo 1. \(A^TA=\begin{bmatrix}5&-2&1\\-2&1&0\\1&0&1\end{bmatrix}\) (simétrica e semidefinida positiva, Premissa 1, verificável por substituição direta). Seus autovalores (via o polinômio característico \(3\times 3\), ou diretamente por numpy) são \(\lambda=(6,\,1,\,0)\) — só dois não-nulos, consistente com \(\text{posto}(A)=2\). Logo, \(\sigma_1=\sqrt{6}\approx 2{,}449\) e \(\sigma_2=\sqrt{1}=1\).

Passo 2. \(\mathbf{u}_1=A\mathbf{v}_1/\sigma_1\) e \(\mathbf{u}_2=A\mathbf{v}_2/\sigma_2\), calculados a partir dos autovetores \(\mathbf{v}_1,\mathbf{v}_2\) de \(A^TA\).

Passo 3. Verificação numérica completa a seguir.

A =
 [[ 1.  0.  1.]
 [-2.  1.  0.]]

posto(A) = 2

valores singulares sigma = [2.4495 1.    ]

U (vetores singulares à esquerda, colunas) =
 [[-0.4472  0.8944]
 [ 0.8944  0.4472]]

V (vetores singulares à direita, colunas) =
 [[-0.9129 -0.     -0.4082]
 [ 0.3651  0.4472 -0.8165]
 [-0.1826  0.8944  0.4082]]

reconstrução U @ Sigma @ V^T =
 [[ 1. -0.  1.]
 [-2.  1.  0.]]

reconstrução bate com A?  True

A reconstrução \(U\Sigma V^T\) recupera \(A\) exatamente (diferença menor que \(10^{-10}\), arredondamento de ponto flutuante), confirmando a construção passo a passo. Repare que a terceira coluna de \(V\) (associada a \(\sigma_3=0\)) é uma base ortonormal do espaço-nulo de \(A\) — outra consequência direta da construção: a SVD não só decompõe \(A\), como também produz de graça uma base ortonormal de \(\ker(A)\), generalizando o que a Aula 2 chamava de núcleo (espaço-solução de \(A\mathbf{x}= \mathbf{0}\)) para o caso retangular.

Aviso de leitura: por construção, cada vetor singular é único a menos de sinal (assim como os autovetores da Aula 4) — trocar \((\mathbf{u}_i,\mathbf{v}_i)\) por \((-\mathbf{u}_i,-\mathbf{v}_i)\) simultaneamente não muda \(\sigma_i\mathbf{u}_i\mathbf{v}_i^T\). Por isso os sinais que o numpy devolve podem diferir dos de uma referência impressa em livro sem que a decomposição esteja errada — o que importa é o produto \(U\Sigma V^T\), não os sinais individuais.

DicaSe \(A^TA\) tivesse um autovalor negativo, a construção quebraria em qual passo exatamente?

Dica: releia a Premissa 1 e aponte, com precisão, onde ela é usada.

  • □ A construção quebraria já no Passo 1, porque \(\sigma_i:= \sqrt{\lambda_i}\) deixaria de estar bem definido em \(\mathbb{R}\) para um \(\lambda_i<0\).
  • □ Se \(A\) for quadrada e invertível, todos os seus valores singulares são necessariamente iguais aos valores absolutos de seus autovalores.
  • □ Numa matriz de covariância empírica (Aula 4, Bloco 6) — sempre simétrica semidefinida positiva por construção — a mesma garantia de raiz quadrada real dos autovalores se aplica ao construir os “desvios-padrão principais” via SVD/decomposição espectral.
  • □ Como \(A^TA\) é sempre semidefinida positiva para qualquer \(A\) real (Aula 4), isso implica que \(A\) em si também tem só autovalores não-negativos, quando \(A\) é quadrada.

4 A SVD do Dataset-Fio: \(X\) do California Housing


4.1 Voltando ao Problema Original

Chegou a hora de aplicar a construção do Bloco 3 ao objeto que motivou toda a aula: a matriz de design \(X\in\mathbb{R}^{16\,640\times 4}\) do California Housing (colunas MedInc, HouseAge, AveRooms, AveBedrms), a mesma usada desde a Aula 1. Como \(X\) tem muito mais linhas que colunas (\(m=16\,640 \gg n=4\)), calcular a SVD completa (\(U\in\mathbb{R}^{16\,640\times 16\,640}\)) seria um desperdício: as últimas \(16\,640-4\) colunas de \(U\) só completam uma base ortonormal do codomínio sem carregar nenhuma informação nova sobre \(X\) (correspondem a \(\sigma_i=0\)). Por isso, na prática, usa-se a SVD reduzida (MathML, p. 128) — \(U\in\mathbb{R}^{16\,640\times 4}\), \(\Sigma\in \mathbb{R}^{4\times 4}\) diagonal, \(V\in\mathbb{R}^{4\times 4}\) —, matematicamente equivalente à SVD completa, só descartando as colunas que multiplicariam por zero de qualquer forma.

sigma(X)      = [4186.9964  523.4408  229.4908   27.3359]
sigma(X)^2    = [1.75309388e+07 2.73990283e+05 5.26660328e+04 7.47253300e+02]
lambda(X^TX)  = [1.75309388e+07 2.73990283e+05 5.26660328e+04 7.47253300e+02]
cond(X)       = sigma_max/sigma_min       = 153.1682
cond(X^TX)    = lambda_max/lambda_min     = 23460.5031
cond(X)^2     = 23460.5031

Os quatro valores singulares de \(X\) são \(\sigma=[4\,186{,}996;\ 523{,}441;\ 229{,}491;\ 27{,}336]\) (ordem decrescente). Elevando ao quadrado: \(\sigma^2=[1{,}753\times10^7;\ 273\,990{,}28;\ 52\,666{,}03;\ 747{,}25]\)exatamente os autovalores de \(X^TX\) que a Aula 4 já tinha calculado, na mesma ordem. Isso não é coincidência nem aproximação numérica: é o Passo 1 da construção do Bloco 3, aplicado diretamente a \(A=X\)\(\sigma_i(X)^2=\lambda_i(X^TX)\) por definição. O painel direito da figura confirma isso visualmente: todos os pontos caem exatamente sobre a reta \(y=x\) (em escala log-log, para acomodar a diferença de quatro ordens de grandeza entre o maior e o menor autovalor).

Essa identidade fecha, de forma exata, o gancho que a Aula 4 deixou em aberto: o Boyd (Apêndice A.5.2, já citado na Aula 4) define o número de condição de uma matriz retangular qualquer usando valores singulares, \(\text{cond}(X)=\sigma_{\max}/\sigma_{\min}\), não autovalores. Calculando: \(\text{cond}(X)\approx 4\,186{,}996/27{,}336 \approx 153{,}168\). Compare com \(\text{cond}(X^TX)\approx 23\,460{,}5\), já calculado na Aula 4 — a razão entre os dois não é arbitrária:

NotaProposição: \(\text{cond}(X^TX)=\text{cond}(X)^2\)

Para qualquer \(X\in\mathbb{R}^{m\times n}\) de posto completo (todos os \(\sigma_i>0\)), \(\text{cond}(X^TX)=\text{cond}(X)^2\).

Prova (nossa, direta da definição). Por \(\sigma_i(X)^2= \lambda_i(X^TX)\) (Passo 1, Bloco 3, aplicado a \(A=X\)), o maior e o menor autovalor de \(X^TX\) são \(\lambda_{\max}=\sigma_{\max}^2\) e \(\lambda_{\min}=\sigma_{\min}^2\). Logo, \[ \text{cond}(X^TX) = \frac{\lambda_{\max}}{\lambda_{\min}} = \frac{\sigma_{\max}^2}{\sigma_{\min}^2} = \left(\frac{\sigma_{\max}} {\sigma_{\min}}\right)^2 = \text{cond}(X)^2 . \qquad\blacksquare \]

Numericamente: \(153{,}168^2\approx 23\,460{,}5\) — bate exatamente com o valor já calculado na Aula 4 (nenhuma aproximação, a igualdade é exata a menos de arredondamento de ponto flutuante). Essa proposição tem uma consequência prática que vale registrar como aviso, mesmo sem desenvolver agora (a Aula 8 retoma o tema, ao discutir estabilidade de algoritmos iterativos): resolver as Equações Normais \(X^TX\hat{\mathbf{w}}=X^T\mathbf{y}\) diretamente trabalha, por dentro, com o número de condição elevado ao quadrado\(23\,460{,}5\), contra apenas \(153{,}168\) se um algoritmo numérico trabalhasse com \(X\) diretamente (via SVD, por exemplo, em vez de formar \(X^TX\) explicitamente). É por isso que bibliotecas numéricas de produção (como o scipy.linalg.lstsq) evitam formar \(X^TX\) explicitamente sempre que possível.

DicaSe o menor valor singular de \(X\) fosse exatamente zero, o que isso significaria sobre AveRooms/AveBedrms/MedInc/HouseAge?

Dica: relacione posto, dependência linear (Aula 2) e \(\sigma_{\min}=0\).

  • \(\sigma_{\min}(X)=0\) significaria que as 4 colunas de \(X\) são linearmente dependentes, no mesmo sentido de dependência linear definido na Aula 2.
  • □ Se todos os 4 valores singulares de \(X\) fossem exatamente iguais entre si, o número de condição de \(X\) seria \(1\), mas isso não diria nada sobre o número de condição de \(X^TX\).
  • □ Numa matriz de embeddings de palavras (uma linha por palavra, uma coluna por dimensão latente), um valor singular próximo de zero indicaria uma dimensão latente quase redundante com as demais.
  • □ Como \(\sigma_i(X)^2=\lambda_i(X^TX)\) vale para qualquer \(X\), isso implica que basta calcular os autovalores de \(X^TX\) (Aula 4, já feito) para nunca mais ser necessário calcular a SVD de \(X\) diretamente, em qualquer aplicação.

5 Aproximação de Baixo Posto e o Teorema de Eckart-Young-Mirsky


5.1 Decompondo \(A\) em Pedaços de Posto 1

A SVD \(A=U\Sigma V^T\) pode ser reescrita numa forma que deixa mais explícito o que cada valor singular “carrega”. Comece escrevendo o produto matricial \(U\Sigma V^T\) em forma de somatório sobre todos os pares de índices \((i,j)\): \[ A = U\Sigma V^T = \sum_{i,j} \Sigma_{ij}\, \mathbf{u}_i\mathbf{v}_j^T . \] Como \(\Sigma\) é diagonal, \(\Sigma_{ij}=0\) sempre que \(i\ne j\) — só os termos com \(i=j\) sobrevivem à soma: \[ A = \sum_{i=1}^{\min(m,n)} \Sigma_{ii}\,\mathbf{u}_i\mathbf{v}_i^T = \sum_{i=1}^{\min(m,n)} \sigma_i\,\mathbf{u}_i\mathbf{v}_i^T . \] E como \(\sigma_i=0\) para \(i>r\) (Passo 3, Bloco 3: \(\sigma_i>0\) só até \(i=r=\text{posto}(A)\)), esses termos não contribuem nada — a soma pode parar em \(r\): \[ A = \sum_{i=1}^{r} \sigma_i\,\mathbf{u}_i\mathbf{v}_i^T . \] Essa é a forma que queríamos. Cada termo \(\sigma_i\mathbf{u}_i \mathbf{v}_i^T\) é uma matriz de posto \(1\) (produto externo entre um vetor de \(U\) e um vetor de \(V\), escalado por \(\sigma_i\)) — vale nomeá-lo, já com o \(\sigma_i\) embutido, porque é literalmente o pedaço de \(A\) que aquele valor singular contribui: \[ A_i := \sigma_i\,\mathbf{u}_i\mathbf{v}_i^T \in \mathbb{R}^{m\times n}, \qquad i=1,\dots,r . \] Com essa definição, a decomposição em pedaços de posto \(1\) (MathML, §4.6, tradução nossa) fica simplesmente \[ A = \sum_{i=1}^r A_i . \]

Se, em vez de somar todos os \(r\) termos, pararmos numa posição intermediária \(k<r\), obtemos a aproximação de posto-\(k\) (MathML, Def. informal, §4.6): \[ \hat{A}^{(k)} := \sum_{i=1}^k A_i = \sum_{i=1}^k \sigma_i\mathbf{u}_i\mathbf{v}_i^T , \qquad \text{com } \text{posto}(\hat{A}^{(k)})=k . \] Isso é chamado de SVD truncada (MathML, p. 129). Intuitivamente: como os \(\sigma_i\) vêm ordenados de forma decrescente, cada termo adicional contribui cada vez menos para \(A\) — descartar os últimos \(r-k\) termos descarta as direções que menos importam, na medida exata de \(\sigma_i\).

5.2 Medindo o Erro da Aproximação: Norma Espectral

Para dizer, com precisão, “o quanto \(\hat{A}^{(k)}\) erra em relação a \(A\)”, precisamos de uma noção de tamanho para matrizes — uma norma matricial, análoga às normas vetoriais da Aula 1. O plano desta seção é em dois tempos: primeiro provamos um fato geral, que vale para qualquer matriz \(M\) (não só para \(A\)); depois, na próxima seção (Eckart-Young-Mirsky), aplicamos esse mesmo fato a uma matriz específica — o erro \(A-\hat{A}^{(k)}\) — para medir exatamente o tamanho desse erro. Ou seja: o que vem a seguir ainda não fala do erro diretamente, mas é a ferramenta sem a qual não dá para medi-lo depois.

NotaDefinição (Norma Espectral — MathML, tradução nossa, Def. 4.23, p. 131)

Para \(A\in\mathbb{R}^{m\times n}\), a norma espectral de \(A\) é \[ \|A\|_2 := \max_{\mathbf{x}\ne\mathbf{0}} \frac{\|A\mathbf{x}\|_2} {\|\mathbf{x}\|_2} . \]

Ou seja: \(\|A\|_2\) mede o maior fator de esticamento que \(A\) pode impor sobre qualquer vetor. Isso tem uma resposta exata em termos da SVD:

NotaTeorema (MathML, tradução nossa, Teo. 4.24, p. 131)

A norma espectral de \(A\) é seu maior valor singular: \(\|A\|_2= \sigma_1\). (O MathML deixa a prova como exercício — a demonstração abaixo é nossa, reciclando a base ortonormal de autovetores de \(A^TA\) do Passo 1.)

Prova. Para \(\mathbf{x}\ne\mathbf{0}\), \(\|A\mathbf{x}\|_2^2= \mathbf{x}^T(A^TA)\mathbf{x}\). Como \(\{\mathbf{v}_1,\dots,\mathbf{v}_n\}\) é uma base ortonormal de autovetores de \(A^TA\) (Passo 1), escreva \(\mathbf{x}\) nessa base, \(\mathbf{x}=\sum_{i=1}^n c_i\mathbf{v}_i\) com \(c_i=\langle\mathbf{x},\mathbf{v}_i\rangle\). Ortonormalidade dá \(\mathbf{x}^T\mathbf{x}=\sum_i c_i^2\), e usando \(A^TA\mathbf{v}_i=\lambda_i\mathbf{v}_i\), \[ \mathbf{x}^T(A^TA)\mathbf{x} = \mathbf{x}^T\Big(\sum_i \lambda_i c_i \mathbf{v}_i\Big) = \sum_i \lambda_i c_i \langle\mathbf{x}, \mathbf{v}_i\rangle = \sum_i \lambda_i c_i^2 . \] Aqui entra o passo de majoração, explícito, sem pular etapa: como \(\lambda_1\ge\lambda_2\ge\dots\ge\lambda_n\ge 0\) (ordenação do Passo 1), todo \(\lambda_i\) satisfaz \(\lambda_i\le\lambda_1\); como cada \(c_i^2\ge 0\), multiplicar uma desigualdade entre os \(\lambda_i\) por um número não-negativo preserva o sentido dela, termo a termo: \[ \sum_i \lambda_i c_i^2 \;\le\; \sum_i \lambda_1 c_i^2 = \lambda_1 \sum_i c_i^2 = \lambda_1\,\mathbf{x}^T\mathbf{x} = \sigma_1^2\, \mathbf{x}^T\mathbf{x} , \] onde a desigualdade veio de trocar cada \(\lambda_i\) pelo maior deles, \(\lambda_1\) — a majoração não é uma afirmação solta, é essa troca termo a termo, válida porque nenhum coeficiente \(c_i^2\) é negativo. Logo \[ \frac{\|A\mathbf{x}\|_2^2}{\|\mathbf{x}\|_2^2} = \frac{\sum_i\lambda_i c_i^2}{\sum_i c_i^2} \le \sigma_1^2 \quad \text{para todo } \mathbf{x}\ne\mathbf{0} . \] A igualdade ocorre exatamente quando só o coeficiente \(c_1\) é não-nulo (todo termo com \(\lambda_i<\lambda_1\) e \(c_i\ne 0\) tornaria a desigualdade estrita) — em particular em \(\mathbf{x}=\mathbf{v}_1\) (\(c_1=1\), demais \(c_i=0\)), onde \(\|A\mathbf{v}_1\|_2^2/\|\mathbf{v}_1\|_2^2=\lambda_1=\sigma_1^2\). Tomando a raiz quadrada de ambos os lados (ambos não-negativos), \(\|A\mathbf{x}\|_2/\|\mathbf{x}\|_2\le\sigma_1\), com igualdade atingida em \(\mathbf{x}=\mathbf{v}_1\). Logo \(\max_{\mathbf{x}\ne\mathbf{0}}\|A\mathbf{x}\|_2/\|\mathbf{x}\|_2= \sigma_1\). \(\blacksquare\)

5.3 O Teorema de Eckart-Young-Mirsky

Agora podemos enunciar, com precisão, o que significa \(\hat{A}^{(k)}\) ser a “melhor” aproximação de posto \(k\):

NotaTeorema (Eckart-Young-Mirsky — MathML, tradução nossa, Teo. 4.25, p. 131)

Considere \(A\in\mathbb{R}^{m\times n}\) de posto \(r\), e seja \(B\in\mathbb{R}^{m\times n}\) uma matriz qualquer de posto \(k\). Para qualquer \(k\le r\), com \(\hat{A}^{(k)}=\sum_{i=1}^k\sigma_i \mathbf{u}_i\mathbf{v}_i^T\), vale \[ \hat{A}^{(k)} = \operatorname*{argmin}_{\text{posto}(B)=k}\|A-B\|_2 , \qquad \|A-\hat{A}^{(k)}\|_2 = \sigma_{k+1} . \]

Ou seja: entre todas as matrizes de posto no máximo \(k\) (não só entre as que vêm de truncar a SVD), a aproximação \(\hat{A}^{(k)}\) construída pela SVD é a que fica mais próxima de \(A\) — e o erro dessa melhor aproximação possível é, exatamente, o primeiro valor singular descartado, \(\sigma_{k+1}\). Isso responde, de forma completa, à pergunta “quanto se perde ao aproximar por um posto menor”: a resposta não depende de qual método de aproximação foi usado, é uma propriedade intrínseca de \(A\).

Prova (tradução e reorganização nossa da prova do MathML, mesma seção). A afirmação \(\hat{A}^{(k)}=\operatorname{argmin}\) tem duas metades independentes, e provamos as duas em sequência: (i) \(\hat{A}^{(k)}\) de fato atinge erro \(\sigma_{k+1}\); (ii) nenhuma outra matriz de posto \(k\) faz melhor que isso. A parte (i) é curta; a parte (ii) é onde mora o argumento de verdade — vale ir com calma.

5.3.1 Parte (i): o erro de \(\hat{A}^{(k)}\) é exatamente \(\sigma_{k+1}\)

Passo 1 — calcular a diferença. Por construção (\(\hat{A}^{(k)}=\sum_{i=1}^k\sigma_i\mathbf{u}_i\mathbf{v}_i^T\) e \(A=\sum_{i=1}^r\sigma_i\mathbf{u}_i\mathbf{v}_i^T\), Bloco 4), subtraindo termo a termo: \[ A-\hat{A}^{(k)} = \sum_{i=k+1}^r \sigma_i\mathbf{u}_i\mathbf{v}_i^T . \]

Passo 2 — reconhecer essa diferença como a SVD de uma nova matriz. Chame \(E:=A-\hat{A}^{(k)}\). A soma acima já tem a forma exata de uma decomposição em valores singulares: os \(\mathbf{u}_i\) envolvidos são ortonormais entre si (herdados de \(U\), Passo 2, Bloco 3), os \(\mathbf{v}_i\) também (herdados de \(V\), Passo 1, Bloco 3), e os coeficientes vêm em ordem decrescente, \(\sigma_{k+1}\ge\sigma_{k+2}\ge\dots\ge\sigma_r>0\). Ou seja, \(E\) tem sua própria SVD, e o maior valor singular dessa SVD — o primeiro da lista — é \(\sigma_{k+1}\).

Passo 3 — aplicar o Teorema 4.24. A seção anterior provou que, para qualquer matriz \(M\), \(\|M\|_2\) é o maior valor singular de \(M\). Aplicando isso a \(M=E=A-\hat{A}^{(k)}\): \[ \|A-\hat{A}^{(k)}\|_2 = \|E\|_2 = \sigma_{k+1} . \] É exatamente aqui que o fato geral da seção anterior faz o trabalho prometido — não o aplicamos a \(A\), aplicamos à matriz erro.

5.3.2 Parte (ii): nenhuma matriz de posto \(k\) faz melhor

A estratégia é por contradição: supor que existe uma matriz melhor e chegar a um absurdo.

Passo 1 — a hipótese de contradição. Suponha que existisse \(B\in\mathbb{R}^{m\times n}\) com \(\text{posto}(B)\le k\) e \(\|A-B\|_2<\sigma_{k+1}\) — ou seja, estritamente melhor que \(\hat{A}^{(k)}\).

Passo 2 — o núcleo de \(B\) é “grande”. Pelo Teorema do Núcleo e da Imagem (resultado padrão de álgebra linear, citado aqui sem prova), \(\dim(\ker B)+\text{posto}(B)=n\) para \(B:\mathbb{R}^n\to\mathbb{R}^m\). Como \(\text{posto}(B)\le k\), segue \(\dim(\ker B)\ge n-k\). Chame \(Z:=\ker(B)\).

Passo 3 — em \(Z\), \(A\) e \(A-B\) agem igual. Para \(\mathbf{x}\in Z\), por definição \(B\mathbf{x}=\mathbf{0}\), logo \(A\mathbf{x}=A\mathbf{x}-B\mathbf{x}=(A-B)\mathbf{x}\). Usando a definição de norma espectral (\(\|(A-B)\mathbf{x}\|_2\le \|A-B\|_2\|\mathbf{x}\|_2\)) e a hipótese de contradição do Passo 1, \[ \|A\mathbf{x}\|_2 = \|(A-B)\mathbf{x}\|_2 \le \|A-B\|_2\, \|\mathbf{x}\|_2 < \sigma_{k+1}\|\mathbf{x}\|_2, \qquad \text{para todo } \mathbf{x}\in Z . \]

Passo 4 — um subespaço onde \(A\) nunca encolhe abaixo de \(\sigma_{k+1}\). Considere \(W:=\text{span}(\mathbf{v}_1,\dots, \mathbf{v}_{k+1})\), de dimensão \(k+1\). Afirmamos, e desta vez provamos (não só citamos), que \(\|A\mathbf{x}\|_2\ge \sigma_{k+1}\|\mathbf{x}\|_2\) para todo \(\mathbf{x}\in W\). Escreva \(\mathbf{x}=\sum_{i=1}^{k+1}c_i\mathbf{v}_i\in W\). Como \(A\mathbf{v}_i=\sigma_i\mathbf{u}_i\) (equação de valor singular, Passo 3) e os \(\mathbf{u}_i\) são ortonormais, \[ A\mathbf{x} = \sum_{i=1}^{k+1}c_i\sigma_i\mathbf{u}_i \quad\Longrightarrow\quad \|A\mathbf{x}\|_2^2 = \sum_{i=1}^{k+1}c_i^2\sigma_i^2 . \] Como \(\sigma_1\ge\dots\ge\sigma_{k+1}\) (ordem decrescente), vale \(\sigma_i\ge\sigma_{k+1}\) para todo \(i\le k+1\), logo \[ \|A\mathbf{x}\|_2^2 = \sum_{i=1}^{k+1}c_i^2\sigma_i^2 \ge \sigma_{k+1}^2\sum_{i=1}^{k+1}c_i^2 = \sigma_{k+1}^2\|\mathbf{x}\|_2^2 , \] onde a última igualdade usa que \(\mathbf{v}_1,\dots,\mathbf{v}_{k+1}\) são ortonormais (Passo 1, Bloco 3), logo \(\|\mathbf{x}\|_2^2=\sum_i c_i^2\). Tomando raiz quadrada dos dois lados, \(\|A\mathbf{x}\|_2\ge\sigma_{k+1}\|\mathbf{x}\|_2\) para todo \(\mathbf{x}\in W\), como prometido.

Passo 5 — \(Z\) e \(W\) têm que se cruzar. \(\dim(Z)+\dim(W)\ge(n-k)+(k+1)=n+1\), que é maior que \(n=\dim(\mathbb{R}^n)\). Pela fórmula de dimensão da soma de subespaços, \(\dim(Z\cap W)\ge\dim(Z)+\dim(W)-n\ge 1>0\) — a interseção contém algum vetor \(\mathbf{x}\ne\mathbf{0}\).

Passo 6 — a contradição. Esse \(\mathbf{x}\) está em \(Z\) e em \(W\) ao mesmo tempo, então satisfaz as duas desigualdades dos Passos 3 e 4 simultaneamente: \[ \|A\mathbf{x}\|_2 < \sigma_{k+1}\|\mathbf{x}\|_2 \qquad\text{e}\qquad \|A\mathbf{x}\|_2 \ge \sigma_{k+1}\|\mathbf{x}\|_2 . \] Como \(\mathbf{x}\ne\mathbf{0}\), \(\|\mathbf{x}\|_2>0\), e as duas desigualdades não podem valer ao mesmo tempo para o mesmo número \(\|A\mathbf{x}\|_2\) — um absurdo. Logo a hipótese de contradição do Passo 1 é falsa: nenhum \(B\) de posto \(\le k\) pode ter \(\|A-B\|_2<\sigma_{k+1}\), e \(\hat{A}^{(k)}\) é de fato ótima. \(\blacksquare\)

5.4 Aplicando a \(X\): Quanto Se Perde ao Truncar

Vamos verificar a garantia do Teorema de Eckart-Young-Mirsky numericamente, aplicando a aproximação de posto-\(k\) à matriz de design \(X\) do California Housing para \(k=1,2,3\) (lembrando: \(\text{posto}(X) =4\), então \(k=4\) recupera \(X\) exatamente).

  k    ||X - X_k||_2    sigma_{k+1}    erro relativo (Frobenius)
  1       523.440811     523.440811                     13.5401%
  2       229.490812     229.490812                      5.4690%
  3        27.335935      27.335935                      0.6469%

Para \(k=1,2,3\), o erro \(\|X-\hat{X}^{(k)}\|_2\) bate, até a sexta casa decimal, com \(\sigma_{k+1}\) — confirmação numérica direta do Teorema 4.25. O erro relativo em norma de Frobenius (uma medida “de energia total”, diferente da norma espectral, mas relacionada) cai de \(\approx 13{,}5\%\) (\(k=1\)) para \(\approx 0{,}6\%\) (\(k=3\)) — mesmo descartando \(3\) de \(4\) direções na primeira aproximação, mais de \(86\%\) da “energia” de \(X\) já está capturada, porque o primeiro valor singular (\(\approx 4\,187\)) domina amplamente os demais.

5.5 Retomando o Problema Motivador: Filtragem Colaborativa

Voltando à matriz de notas de filmes do Problema Motivador — a aplicação de baixo posto revela exatamente a estrutura que suspeitávamos existir (tradução livre de MathML, Exemplo 4.15, retomando o Exemplo 4.14). A interpretação (MathML, §4.5.1): os vetores singulares à esquerda \(\mathbf{u}_i\) podem ser lidos como “filmes estereotípicos” (perfis de tema), e os vetores singulares à direita \(\mathbf{v}_i\) como “espectadores estereotípicos” (perfis de gosto) — sob a suposição de que cada espectador avalia filmes como combinação linear desses perfis, e cada filme pertence a uma combinação linear desses temas.

valores singulares: sigma = [9.6438 6.3639 0.7056]
erro espectral k=1: 6.3639 (sigma_2 = 6.3639)
erro espectral k=2: 0.7056 (sigma_3 = 0.7056)

A aproximação de posto \(1\) (usando só \(\sigma_1\mathbf{u}_1 \mathbf{v}_1^T\)) captura bem as notas de Ali e Beatrix para os filmes de ficção científica (valores \(>4\), próximos do original), mas erra feio nas notas de Chandra para Amélie Poulain e Delicatessen (previstos \(\approx 0{,}16\)\(0{,}26\), contra as notas reais \(4\) e \(5\)) — o primeiro perfil, sozinho, só “entende” espectadores de ficção científica. A aproximação de posto \(2\) (somando o segundo termo, \(\sigma_2\mathbf{u}_2\mathbf{v}_2^T\)) já recupera a matriz quase inteira, incluindo o perfil de Chandra. Isso é exatamente o que o Teorema de Eckart-Young-Mirsky quantifica: o erro em norma espectral cai de \(\sigma_2\approx 6{,}364\) (posto 1) para \(\sigma_3\approx 0{,}706\) (posto 2) — e, como \(\text{posto}(A)=3\), a aproximação de posto \(3\) recuperaria \(A\) exatamente.

Essa é, em essência, a matemática por trás de sistemas de recomendação por filtragem colaborativa: em vez de uma matriz completa de \(3\times 4\) notas (aqui, artificialmente pequena e sem valores faltantes), sistemas reais lidam com matrizes de milhões de usuários por milhões de itens, majoritariamente vazias (a maioria dos usuários nunca avaliou a maioria dos itens) — mas a mesma ideia de aproximação de baixo posto (adaptada para lidar com entradas faltantes, o que foge do escopo desta aula) é a base de métodos clássicos de completamento de matrizes para prever as notas que faltam a partir da estrutura de baixo posto capturada pelos poucos perfis latentes mais importantes.

DicaSe \(A\) tivesse posto \(3\) mas só déssemos ao sistema de recomendação os dois primeiros perfis latentes, o que aconteceria com um quarto espectador de um perfil totalmente novo?

Dica: pense no que \(\hat{A}^{(2)}\) pode e não pode representar, dada sua própria definição.

  • □ Um quarto espectador com um perfil de gosto genuinamente novo (não combinação linear dos dois perfis já capturados) teria suas notas mal previstas por \(\hat{A}^{(2)}\), mesmo que o sistema tivesse dados históricos abundantes desse espectador.
  • □ Aumentar \(k\) de \(2\) para \(3\) (o posto completo de \(A\)) sempre reduz o erro de aproximação em norma espectral, mas nunca pode aumentá-lo.
  • □ Numa matriz de embeddings de documentos de texto (linhas = documentos, colunas = termos), a mesma lógica de perfis latentes se aplicaria: um documento sobre um assunto totalmente não-representado nos primeiros \(k\) tópicos latentes teria sua representação de baixo-posto empobrecida.
  • □ Como a aproximação de posto-\(k\) é a melhor possível entre todas as matrizes de posto \(k\) (Eckart-Young-Mirsky), isso implica que o erro de aproximação \(\sigma_{k+1}\) pode ser reduzido escolhendo um método de aproximação diferente da SVD, para o mesmo \(k\).

6 Decomposição Polar


6.1 Rearranjando os Três Fatores da SVD

Nenhuma das três fontes desta disciplina traz uma seção dedicada à Decomposição Polar — o que segue é uma construção nossa, a partir do Teorema 4.22 já demonstrado no Bloco 3 (não uma tradução de trecho algum). Diferente da SVD, que existe para matriz retangular qualquer, a Decomposição Polar como construída aqui exige \(A\) quadrada (\(A\in\mathbb{R}^{n\times n}\)) — é essa restrição de dimensão que permite multiplicar os dois fatores finais na ordem certa, como o argumento abaixo deixa explícito.

Seja \(A\in\mathbb{R}^{n\times n}\) com SVD completa \(A=U\Sigma V^T\) (\(U,V\in\mathbb{R}^{n\times n}\) ambas ortogonais, \(\Sigma\in \mathbb{R}^{n\times n}\) diagonal com entradas \(\ge 0\)). Insira a matriz identidade \(I=V^TV\) entre \(U\) e \(\Sigma\): \[ A = U\Sigma V^T = (UV^T)(V\Sigma V^T) =: QS , \] definindo \[ Q := UV^T \in\mathbb{R}^{n\times n}, \qquad S := V\Sigma V^T \in\mathbb{R}^{n\times n} . \]

NotaProposição (Decomposição Polar — construção nossa a partir do Teorema 4.22)

Para \(A\in\mathbb{R}^{n\times n}\), com \(Q:=UV^T\) e \(S:=V\Sigma V^T\) definidos a partir da SVD \(A=U\Sigma V^T\): \(Q\) é ortogonal, \(S\) é simétrica semidefinida positiva, e \(A=QS\).

Prova de que \(Q\) é ortogonal. \(Q^TQ=(UV^T)^T(UV^T)=VU^TUV^T\); como \(U\) é ortogonal, \(U^TU=I\), logo \(Q^TQ=VIV^T=VV^T=I\) (usando, de novo, que \(V\) é ortogonal). Como \(Q^TQ=I\) com \(Q\) quadrada, \(Q\) é ortogonal.

Prova de que \(S\) é simétrica semidefinida positiva. \(S^T=(V\Sigma V^T)^T=V\Sigma^TV^T=V\Sigma V^T=S\) (usando que \(\Sigma\), sendo diagonal, satisfaz \(\Sigma^T=\Sigma\)) — logo \(S\) é simétrica. Para qualquer \(\mathbf{x}\ne\mathbf{0}\), definindo \(\mathbf{z}:=V^T\mathbf{x}\) (não-nulo, já que \(V\) é invertível), \[ \mathbf{x}^TS\mathbf{x} = \mathbf{x}^TV\Sigma V^T\mathbf{x} = \mathbf{z}^T\Sigma\mathbf{z} = \sum_{i=1}^n \sigma_i z_i^2 \ge 0 , \] já que cada \(\sigma_i\ge 0\). Logo \(S\) é semidefinida positiva. \(\blacksquare\)

Repare que a prova identifica, de graça, os autovalores e autovetores de \(S\): como \(S=V\Sigma V^T\) com \(V\) ortogonal e \(\Sigma\) diagonal, essa é a decomposição espectral de \(S\) (Aula 4) — os autovalores de \(S\) são exatamente os valores singulares de \(A\), e os autovetores de \(S\) são exatamente os vetores singulares à direita de \(A\).

6.2 A Generalização do Módulo e da Fase

A Decomposição Polar leva esse nome por uma analogia direta: assim como todo número complexo \(z\ne 0\) se escreve como \(z=re^{i\theta}\) — um módulo \(r\ge 0\) (quanto “esticar”) vezes uma fase \(e^{i\theta}\) (quanto “girar”, sem esticar nem encolher) —, toda matriz quadrada \(A\) se escreve como \(A=QS\): uma parte \(S\) que só estica/encolhe ao longo de direções ortogonais (nunca gira — \(S\) é simétrica, autovetores ortogonais, exatamente o Teorema Espectral da Aula 4), seguida de uma parte \(Q\) que só gira/reflete, sem esticar nada (\(Q\) ortogonal — preserva norma e ângulo, Aula 1).

Reaproveitando a matriz do Bloco 2, \(A=\begin{bmatrix}1{,}4&0{,}6\\ 0{,}3&0{,}9\end{bmatrix}\), o cálculo numérico abaixo mostra os dois fatores explicitamente e a leitura geométrica: primeiro \(S\) estica o círculo unitário ao longo de suas próprias direções principais (\(\mathbf{v}_1,\mathbf{v}_2\) — as mesmas retas cheias do painel esquerdo do Bloco 2), produzindo uma elipse ainda alinhada com essas direções; depois \(Q\) gira essa elipse inteira como corpo rígido, sem distorcer seu formato, até a posição final — que é exatamente a mesma elipse do painel direito do Bloco 2, a imagem de \(A\).

Q = 
 [[ 0.9916  0.1293]
 [-0.1293  0.9916]]
det(Q) = 1.0 (1 = rotação pura, -1 = reflexão)
S =
 [[1.3494 0.4786]
 [0.4786 0.97  ]]
autovalores de S (= valores singulares de A): [0.645  1.6745]
Q @ S == A? True

Os números confirmam a proposição: \(\det(Q)\approx 1\) (rotação pura, sem reflexão) por um ângulo de \(\approx 7{,}4°\); os autovalores de \(S\) são \([0{,}645;\ 1{,}675]\) — exatamente os valores singulares de \(A\) já calculados no Bloco 2 (\(\sigma_1\approx 1{,}675\), \(\sigma_2\approx 0{,}645\)); e \(QS=A\) até erro de ponto flutuante. O painel do meio mostra \(S\) agindo sozinha — uma elipse já com o formato final, mas ainda alinhada com \(\mathbf{v}_1,\mathbf{v}_2\) (não com os eixos do codomínio); o painel da direita mostra \(Q\) girando essa elipse, como um corpo rígido, até a posição final — idêntica à elipse do Bloco 2.

Ponte, sem desenvolver: a Decomposição Polar reaparece, mais adiante neste curso (Aula 14, Preconditioning Estruturado — Shampoo e Muon), como o objetivo de um algoritmo iterativo (a iteração de Newton-Schulz) usado para ortogonalizar matrizes de atualização de pesos de redes neurais em tempo real, sem calcular a SVD completa (cara demais para ser recalculada a cada passo de treino) — extraindo, efetivamente, só o fator \(Q\) da Decomposição Polar de cada matriz de atualização.

7 Fechamento e Ponte para a Aula 6


Retomando as perguntas de abertura

  1. O que é a SVD e por que existe para qualquer matriz retangular? \(A=U\Sigma V^T\), com \(U,V\) ortogonais e \(\Sigma\) diagonal com entradas não-negativas; existe sempre porque \(A^TA\) é sempre simétrica semidefinida positiva (Aula 4), o que garante autovalores reais não-negativos e, portanto, raízes quadradas reais bem definidas para os valores singulares.
  2. Como construir a SVD a partir do Teorema Espectral? Os autovetores de \(A^TA\) são os vetores singulares à direita (\(V\)); suas imagens sob \(A\), normalizadas pelo próprio comprimento (que é a raiz do autovalor correspondente), são os vetores singulares à esquerda (\(U\)) — a ortogonalidade de ambos os conjuntos vem diretamente da relação de autovalor de \(A^TA\).
  3. Como aproximar por posto menor de forma ótima? Truncando a soma \(A=\sum\sigma_i\mathbf{u}_i\mathbf{v}_i^T\) nos \(k\) primeiros termos; o Teorema de Eckart-Young-Mirsky garante que essa é a melhor aproximação possível entre todas as matrizes de posto \(k\), com erro exato \(\sigma_{k+1}\).
  4. O que é a Decomposição Polar? Rearranjar os três fatores da SVD (\(A=U\Sigma V^T=(UV^T)(V\Sigma V^T)=QS\)) separa \(A\) (quadrada) em uma parte que só gira/reflete (\(Q\), ortogonal) e uma parte que só estica/encolhe ao longo de direções ortogonais (\(S\), simétrica semidefinida positiva) — a generalização matricial do módulo e da fase de um número complexo.

O Que Fica em Aberto

A SVD decompõe uma matriz estática — ela não diz nada sobre como encontrar os parâmetros de um modelo de aprendizado de máquina que minimizam uma função de perda. E, de fato, olhando para trás: a própria derivação das Equações Normais na Aula 3 (\(X^TX\hat{\mathbf{w}}=X^T\mathbf{y}\)) já usou implicitamente a ideia de “encontrar o ponto onde a perda para de diminuir” — mas em nenhum momento este curso definiu formalmente o que significa “a perda parar de diminuir” para uma função de várias variáveis. Esse é exatamente o objeto que abre a Parte 2 do curso, “Cálculo da Otimização Diferenciável”: a derivada em várias variáveis — o gradiente e o Jacobiano —, tema da Aula 6.

Exercícios Soluções