Skip to article frontmatterSkip to article content
Tópicos Avançados

Decomposição em Valores Singulares (SVD)

Vimos no Teorema Espectral que é possível decompor qualquer matriz simétrica como o produto entre 3 matrizes, sendo uma delas diagonal (contendo os autovalores) e as outras duas ortogonais (de transição entre a base canônica e a base ortonormal de autovetores). Esse tópico apresenta uma espécie de “generalização” do Teorema Espectral para uma matriz qualquer de dimensão m×nm \times n.

A ideia geral é similar, queremos decompor uma matriz ARm×nA\in \mathbb{R}^{m\times n} como o produto entre 3 matrizes:

A=UΣVTA=U\Sigma V^{T}

Em particular, nos seria interessante que tais matrizes tenham propriedades similares ao caso do Teorema Espectral, com UU e VTV^{T} ortogonais e Σ\Sigma diagonal. Mas note que se AA não é quadrada essa configuração não é possível, já que para tal deveríamos ter 3 matrizes quadradas, cujo produto não resultaria em uma matriz não quadrada. Como veremos, o que obteremos será o seguinte:

O próximo teorema é a base para essa ideia. Ele nos indica quais serão os valores da diagonal de Σ\Sigma, chamados de valores singulares, e quais os vetores que irão compor as matrizes UU e VTV^{T}. Para demonstrá-lo precisamos do seguinte lema:

Tais v1,,vnv_{1},\dots,v_{n} constituirão as colunas da matriz VV e são chamados de vetores singulares à direita, enquanto u1,,umu_{1},\dots,u_{m} constituirão as colunas de UU e são chamados de vetores singulares à esquerda.

A partir disso, temos então a chamada Decomposição em Valores Singulares (também conhecida como SVD, do inglês Singular Value Decomposition) de uma matriz:

Vejamos agora um exemplo, para entender como a decomposição em valores singulares é feita na prática.

Aproximação de matrizes utilizando SVD

Entre uma das muitas aplicações da decomposição SVD está a aproximação de matrizes. Em um cenário computacional, é comum que seja mais vantajoso trabalharmos com uma aproximação de determinado objeto matemático do que com sua forma exata. Para matrizes isso ocorre com bastante frequência.

Por exemplo, suponha que uma matriz AA de posto rr possua os valores singulares não nulos σ1,,σr1,0.0001\sigma_{1},\dots,\sigma_{r-1},0.0001. Ou seja, σr=0.0001\sigma_{r}=0.0001. Ao realizarmos cálculos com essa matriz na forma SVD em um computador, devido à natureza da arimética de ponto flutuante, haverá um acúmulo de erros decorrente dos produtos com a entrada 0.0001. Nesse caso, como 0.0001 está muito próximo de 0, acaba sendo mais benéfico (do ponto de vista de minimização de erros) “truncarmos” o posto de AA para r1r-1, isto é, consideramos σr=0\sigma_{r}=0.

Observe que AkA_{k} possui posto kk.

O tópico Compressão de imagens utilizando Decomposição em Valores Singulares mostra como essa ideia de aproximação de matrizes é aplicada.

Footnotes
  1. Caso todos os autovalores sejam distintos, por Proposition 3 sabemos que todos os autovetores encontrados serão ortogonais. Mas, caso hajam autovalores repetidos, não há essa garantia. Logo, talvez seja necessário ortogonalizar alguns autovetores, o que pode ser feito via processo de Gram-Schmidt.

  2. O que mais uma vez pode ser feito via processo de Gram-Schmidt.