A decomposição 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 .
A ideia geral é similar, queremos decompor uma matriz como o produto entre 3 matrizes:
Em particular, nos seria interessante que tais matrizes tenham propriedades similares ao caso do Teorema Espectral, com e ortogonais e diagonal. Mas note que se 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:
é uma matriz ortogonal ;
é uma matriz retangular diagonal ;
é a transposta de uma matriz ortogonal .
O próximo teorema é a base para essa ideia. Ele nos indica quais serão os valores da diagonal de , chamados de valores singulares, e quais os vetores que irão compor as matrizes e . Para demonstrá-lo precisamos do seguinte lema:
Tais constituirão as colunas da matriz e são chamados de vetores singulares à direita, enquanto constituirão as colunas de 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 de posto possua os valores singulares não nulos . Ou seja, . 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 para , isto é, consideramos .
Primeiramente, precisamos de uma métrica que nos permita determinar o quão “próximas” estão duas matrizes, assim definimos uma norma para matrizes. Em particular, existem diferentes tipos de normas para matrizes (assim como existem para vetores), mas para os própositos desse tópico nos será útil a norma 2, pela relação que ela possui com os valores singulares.
Essa é a definição mais comum, mas verifica-se que ela é equivalente a seguinte, que explicita a relação dessa norma com os valores singulares:
Essa equivalência entre as duas definições fica evidente quando pensamos geometricamente. A primeira definição diz respeito ao maior “alongamento” na norma 2 vetorial que causa, entre todos os vetores unitários do , que corresponde justamente ao seu maior valor singular (uma vez que os vetores que compõem a matriz da decomposição SVD formam uma base de ).
Então, temos a aproximação de matrizes via truncamento da SVD:
Observe que possui posto .
O tópico Compressão de imagens utilizando Decomposição em Valores Singulares mostra como essa ideia de aproximação de matrizes pode ser aplicada.
Veja também: Resolução de sistemas lineares por Quadrados Mínimos (e Pseudoinversa).
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.
O que mais uma vez pode ser feito via processo de Gram-Schmidt.