hilum

Teoria · Forma · PCA e SVD

A semente média e os modos de variação.

Cada contorno vira uma lista de 128 números, e 130 sementes viram uma matriz. A decomposição em valores singulares dessa matriz dá a semente média, as direções em que as formas mais variam e quanto pesa cada direção. Nas sementes desta página, três direções guardam 92,8% da variação.

Aprofundar · matemática e referências

O contorno vira vetor

Para fazer álgebra com formas, cada semente precisa virar uma lista de números do mesmo tamanho. O jeito mais direto é andar sobre o contorno e marcar \(k\) pontos igualmente espaçados no comprimento de arco, como na página de Fourier. Aqui \(k = 64\), e a semente vira

\[ \mathbf{x} = (x_1, y_1, x_2, y_2, \dots, x_k, y_k)^\top \in \mathbb{R}^{2k} = \mathbb{R}^{128} \](1)

Somar e subtrair esses vetores só faz sentido se o ponto \(j\) de uma semente corresponder ao ponto \(j\) de outra. Em semente quase não há marcos anatômicos visíveis no contorno, e os pontos igualmente espaçados fazem o papel deles: são os semimarcos de Bookstein [1], pontos que valem pela posição ao longo da curva e não por uma estrutura. Para que correspondam, falta escolher em que ponto o contorno começa, e essa escolha entra no alinhamento.

Definição

Duas configurações de \(k\) pontos têm a mesma forma quando uma vira a outra por translação, rotação e mudança de escala. Forma é o que sobra depois de tirar essas três coisas [2]. Nesta página tiramos também o espelho, porque a semente pode cair na placa com qualquer face para cima, e o ponto de partida do contorno.

Alinhar antes de comparar

A translação sai subtraindo o centroide. A escala sai dividindo pelo tamanho do centroide, a raiz da soma dos quadrados das distâncias dos pontos ao centro, que passa a valer 1. A rotação é o problema de Procrustes ortogonal: escrevendo cada semente como uma matriz \(k \times 2\), com uma linha por ponto, procurar a rotação \(R\) que deixa \(X\) o mais perto possível de uma referência \(M\).

Resultado 1 · a rotação ótima sai de uma SVD 2 × 2

Se \(X\) e \(M\) estão centradas e \(X^\top M = U\Sigma V^\top\), a rotação que minimiza \(\lVert XR - M \rVert_F\) é

\[ R = U \begin{pmatrix} 1 & 0 \\ 0 & \det(UV^\top) \end{pmatrix} V^\top \](2)

Esboço. \(\lVert XR - M\rVert_F^2 = \lVert X\rVert_F^2 + \lVert M\rVert_F^2 - 2\operatorname{tr}(R^\top X^\top M)\), e só o traço depende de \(R\). Com \(Q = V^\top R^\top U\), que é ortogonal, \(\operatorname{tr}(R^\top U\Sigma V^\top) = \operatorname{tr}(\Sigma Q) = \sigma_1 q_{11} + \sigma_2 q_{22}\), e cada \(\lvert q_{ii}\rvert \le 1\). O máximo vem com \(Q = I\), isto é, \(R = UV^\top\) [3]. Se \(UV^\top\) for uma reflexão (determinante \(-1\)) e reflexões não forem permitidas, troca-se o sinal da última coluna, como em (2), e o traço cai de \(\sigma_1 + \sigma_2\) para \(\sigma_1 - \sigma_2\).

Com várias sementes não existe uma referência dada. O Procrustes generalizado [4] alterna dois passos: alinha cada semente à média atual e recalcula a média, até a média parar de mudar. Aqui, para cada semente e em cada rodada, testamos os 64 pontos de partida possíveis e a imagem no espelho, e ficamos com a combinação de menor distância. Com as 130 sementes, a média parou de mudar na sétima rodada.

A tabela mostra por que o alinhamento é a modelagem, e não um detalhe. São as mesmas 130 silhuetas, os mesmos 64 pontos e a mesma SVD. Só muda a correspondência.

O mesmo conjunto com três correspondências diferentes
correspondênciavariância totalPC1PC2modos para 95%
início sorteado, só centrar e escalar1,004 (×31,5)54,3%42,2%2
início no ponto mais à direita, sem girar0,040 (×1,26)70,5%17,9%6
Procrustes com ponto de partida e espelho0,03288,5%2,6%5

Com o início sorteado, a variância total fica 31,5 vezes maior, e os dois primeiros modos, com 96,5% dela, descrevem só onde cada contorno começa. Parece um ótimo resultado (dois modos bastam) e é o pior: a PCA resume com fidelidade uma variação que não é de forma. A Figura 1 mostra as duas médias.

À esquerda, os 130 contornos com o primeiro ponto sorteado, só centrados e escalados: os pontos de partida, marcados, se espalham pela volta inteira, e a média encolhe e perde a forma. À direita, os mesmos contornos depois do alinhamento de Procrustes: os pontos de partida se juntam num mesmo trecho do contorno e a média é uma semente oval.início sorteadovariância total 1,0043Procrustesvariância total 0,0318
Dados reaisFigura 1. As 130 silhuetas, coloridas por cultura (arroz em branco, soja em laranja, café em marrom, milho em amarelo e nativas em azul). Os pontos marcam onde cada contorno começa. À esquerda, com o início sorteado, eles se espalham pela volta inteira, e a média encolhe e perde a forma. À direita, depois do Procrustes, eles se juntam num mesmo trecho do contorno, e a média é uma semente oval, com comprimento 1,77 vez a largura.

A semente média é a média dos vetores alinhados, \(\bar{\mathbf{x}} = \tfrac{1}{n}\sum_i \mathbf{x}_i\). Depois do Procrustes, ela minimiza a soma dos quadrados das distâncias às sementes alinhadas [2]. É diferente da semente média da página Aprender, que é a média das silhuetas pixel a pixel: a média de contornos é um contorno, e a média de silhuetas é um mapa de calor.

A matriz centrada, a SVD e o PCA

Empilhe as sementes alinhadas, cada uma menos a média, como linhas de uma matriz \(X\) de \(n \times 2k\). Aqui \(n = 130\) e \(2k = 128\). Toda matriz real tem decomposição em valores singulares [6]:

\[ X = U\Sigma V^\top = \sum_{i=1}^{r} \sigma_i\, \mathbf{u}_i \mathbf{v}_i^\top, \qquad \sigma_1 \ge \sigma_2 \ge \dots \ge \sigma_r \gt 0 \](3)

com \(U\) e \(V\) de colunas ortonormais e \(r\) o posto de \(X\). As colunas \(\mathbf{v}_i\) vivem no espaço das formas, \(\mathbb{R}^{128}\): são direções de deformação do contorno. As colunas \(\mathbf{u}_i\) vivem no espaço das sementes, \(\mathbb{R}^{130}\).

Resultado 2 · o PCA é a SVD da matriz centrada

A matriz de covariância das formas é \(S = X^\top X/(n-1)\). Então

\[ S = V\,\frac{\Sigma^2}{n-1}\,V^\top, \qquad \lambda_i = \frac{\sigma_i^2}{n-1}, \qquad T = XV = U\Sigma \](4)

Os componentes principais são as colunas de \(V\), as variâncias ao longo deles são \(\lambda_i\), e os escores de cada semente nos componentes são as linhas de \(T\) [5].

Esboço. \(X^\top X = V\Sigma U^\top U \Sigma V^\top = V\Sigma^2 V^\top\), porque \(U^\top U = I\). Isso já é a diagonalização de \(X^\top X\) por uma matriz ortogonal, e \(XV = U\Sigma V^\top V = U\Sigma\).

Nas 130 sementes, \(X\) tem posto 125, e não 128. Três valores singulares são zero na precisão da máquina (\(10^{-15}\) para baixo), e as direções correspondentes são exatamente as translações em \(x\) e em \(y\) e a rotação: o alinhamento já tirou essas três. Sobram no máximo 125 modos.

A melhor aproximação de posto r

Guardar só os \(r\) primeiros termos de (3) dá \(X_r = \sum_{i \le r} \sigma_i \mathbf{u}_i \mathbf{v}_i^\top\). Em formas, isso é aproximar cada semente pela média mais uma combinação dos \(r\) primeiros modos. O teorema diz que não existe jeito melhor.

Teorema de Eckart e Young

Para \(r \lt \operatorname{posto}(X)\),

\[ \min_{\operatorname{posto}(B) \le r} \lVert X - B \rVert_F = \lVert X - X_r \rVert_F = \Big( \sum_{i \gt r} \sigma_i^2 \Big)^{1/2}, \qquad \min_{\operatorname{posto}(B) \le r} \lVert X - B \rVert_2 = \sigma_{r+1} \](5)

Eckart e Young provaram a versão da norma de Frobenius em 1936 [7]. Mirsky estendeu o resultado a toda norma invariante por transformações ortogonais, inclusive a espectral [8].

Ideia da prova. A desigualdade de Weyl para valores singulares diz que \(\sigma_{i+j-1}(A + C) \le \sigma_i(A) + \sigma_j(C)\) [6]. Escreva \(X = (X - B) + B\) com \(\operatorname{posto}(B) \le r\), de modo que \(\sigma_{r+1}(B) = 0\). Com \(j = r + 1\) sai \(\sigma_{i+r}(X) \le \sigma_i(X - B)\) para todo \(i\). Somando os quadrados, \(\lVert X - B\rVert_F^2 = \sum_i \sigma_i(X - B)^2 \ge \sum_i \sigma_{i+r}(X)^2 = \lVert X - X_r\rVert_F^2\). Com \(i = 1\) sai a versão espectral.

É o mesmo enunciado da série de Fourier truncada: lá a base ortogonal é fixa (senos e cossenos), aqui a SVD escolhe a base ortogonal que melhor serve a estas sementes. A Figura 2 aplica a ideia a uma semente só.

O contorno alinhado da Amorpha fruticosa, tracejado, aproximado pela semente média mais 0, 1, 2, 3, 5 e 10 modos. Com a média só, sai uma semente oval; com dois modos aparece o lado reto; com dez, a curva quase cobre o contorno.só a médiaerro 6,3%r = 1erro 4,8%r = 2erro 2,4%r = 3erro 2,4%r = 5erro 1,9%r = 10erro 0,8%
Dados reaisFigura 2. A Amorpha fruticosa da página de Fourier, alinhada (tracejado), aproximada pela média mais os \(r\) primeiros modos (laranja). O erro é a raiz da média do quadrado da distância entre pontos correspondentes, em porcentagem do comprimento da semente.

Só com a média, a Amorpha fica a 6,3% do seu contorno. O primeiro modo acerta o alongamento (4,8%), e o lado reto do rim aparece no segundo (2,4%). Ela está a 4,2 desvios-padrão no PC2, entre as mais afastadas das 130, e por isso três modos ainda deixam 2,4% de erro. Na mediana das 130 sementes, a média sozinha erra 6,4% e a média com três modos, 1,4%.

Variância explicada

A fração da variância nos \(r\) primeiros modos é o quanto a aproximação de Eckart e Young preserva:

\[ \frac{\lambda_1 + \dots + \lambda_r}{\lambda_1 + \dots + \lambda_{125}} = 1 - \frac{\lVert X - X_r \rVert_F^2}{\lVert X \rVert_F^2} \](6)
Barras: a fração da variância em cada um dos 12 primeiros modos. Linha cheia: a variância acumulada. Linha tracejada: o erro relativo da melhor aproximação de posto r, a raiz de um menos a acumulada.0%25%50%75%100%188,5%22,6%31,7%45678910111292,8%26,8%95,0%22,3%97,9%14,5%modo (posto r)variância acumulada nos r primeiros modoserro relativo ‖X − X_r‖ ÷ ‖X‖variância de cada modo
Dados reaisFigura 3. Variância de cada um dos 12 primeiros modos nas 130 sementes, a acumulada e o erro relativo da melhor aproximação de posto \(r\), \(\lVert X - X_r\rVert_F / \lVert X\rVert_F\).

O primeiro modo leva 88,5% da variância. Os três primeiros, 92,8%; cinco chegam a 95,0%, dez a 97,9%, e para 99% são precisos 16. O erro relativo cai mais devagar, porque é a raiz do que falta: com três modos, 26,8%; com dez, 14,5%.

Autovalores estimados de uma amostra têm erro. Pela regra de North e colegas [9], o erro de amostragem de \(\lambda_i\) é da ordem de \(\lambda_i\sqrt{2/n}\), 12% com \(n = 130\). Quando dois autovalores vizinhos estão mais perto que isso, os dois modos podem trocar de lugar ou se misturar de uma amostra para outra, e só o plano que eles formam é confiável. Aqui \(\lambda_2/\lambda_3 = 1{,}48\) e \(\lambda_3/\lambda_4 = 1{,}46\): os três primeiros modos estão separados. Já \(\lambda_4/\lambda_5 = 1{,}19\) fica dentro da margem, e o quarto e o quinto modos não devem ser lidos um a um.

Por que calcular pela SVD

O jeito de livro de fazer PCA é montar a covariância \(X^\top X/(n-1)\) e achar os autovetores. O resultado é o mesmo de (4) na aritmética exata, mas não no computador. O número de condição de uma matriz, \(\kappa(A) = \sigma_{\max}/\sigma_{\min}\), mede quantos dígitos uma conta com ela pode perder.

Resultado 3 · montar \(A^\top A\) eleva o número de condição ao quadrado

\[ \kappa(A^\top A) = \kappa(A)^2 \](7)

Esboço. \(A^\top A = V\Sigma^2 V^\top\), então os valores singulares de \(A^\top A\) são \(\sigma_i^2\), e a razão entre o maior e o menor fica ao quadrado.

A consequência prática vem da teoria de perturbação [6][10]. Calcular os autovalores de \(X^\top X\) em aritmética de ponto flutuante, com precisão \(\varepsilon\), erra cada um por algo da ordem de \(\varepsilon\,\sigma_1^2\). Em termos relativos, \(\lambda_i\) pode errar até \(\varepsilon\,(\sigma_1/\sigma_i)^2\). A SVD de \(X\) erra cada \(\sigma_i\) por algo da ordem de \(\varepsilon\,\sigma_1\), e o erro relativo em \(\sigma_i^2\) fica na ordem de \(\varepsilon\,\sigma_1/\sigma_i\). A covariância gasta o dobro de dígitos nos modos pequenos.

Nas 130 sementes, \(\sigma_1/\sigma_{125} \approx 2{,}6 \times 10^4\), então \(\kappa^2 \approx 6{,}9 \times 10^8\). Em precisão dupla (cerca de 16 dígitos) as duas rotas dão os mesmos autovalores com folga: o pior erro relativo pela covariância é \(1{,}6 \times 10^{-9}\). Em precisão simples (cerca de 7 dígitos), a diferença aparece:

Erro relativo de \(\lambda_i\) em precisão simples, contra a SVD em precisão dupla
modo \(i\)\(\sigma_1/\sigma_i\)pela SVD de \(X\)pela covariância
111 × 10⁻⁸2 × 10⁻⁹
501274 × 10⁻⁸3 × 10⁻⁵
1007262 × 10⁻⁷4 × 10⁻⁴
1204.3656 × 10⁻⁷5 × 10⁻³
12526.3054 × 10⁻⁶7 × 10⁻²

O último modo sai com 7% de erro pela covariância e com 4 milionésimos pela SVD. Para os três modos desta página, qualquer rota serve. A folga some em matrizes piores, e o caso clássico é o dos mínimos quadrados: a equação normal \(Z^\top Z\boldsymbol\beta = Z^\top \mathbf{y}\) também eleva \(\kappa\) ao quadrado [10]. Na tabela pública de Koklu e colegas, com 106 descritores de forma e cor medidos em cerca de 75 mil grãos de arroz [11], a matriz de descritores tem \(\kappa(Z) \approx 1{,}0 \times 10^5\) e a equação normal chega a \(\kappa(Z^\top Z) \approx 1{,}0 \times 10^{10}\): montá-la gasta cerca de 10 dos 16 dígitos da precisão dupla. Por isso a regra é resolver pela SVD (ou por QR), sem formar \(Z^\top Z\).

Os modos de variação

Cada componente principal é uma direção de deformação. Andar \(b_i\) desvios-padrão ao longo dela, a partir da média, dá

\[ \mathbf{x}(\mathbf{b}) = \bar{\mathbf{x}} + \sum_{i=1}^{3} b_i \sqrt{\lambda_i}\, \mathbf{v}_i \](8)

É o modelo de distribuição de pontos dos modelos de forma ativos de Cootes e colegas, que limitam cada \(b_i\) a \(\pm 3\) [12]. Desenhados como imagens, os \(\mathbf{v}_i\) de rostos ficaram conhecidos como eigenfaces [13]. Aqui são eigen-sementes.

Os três primeiros modos de variação: a semente média mais c desvios-padrão de cada modo, com c de menos 2 a mais 2. O primeiro modo vai da semente fina e comprida à redonda; o segundo deixa um lado mais reto e o outro mais curvo, como um rim; o terceiro afina uma das pontas. Formas fora do alcance das 130 sementes aparecem tracejadas.PC188,5%−2σ−1σmédia+1σ+2σPC22,6%PC31,7%
Dados reaisFigura 4. Os três primeiros modos, de \(-2\) a \(+2\) desvios-padrão em torno da média (pontilhada). Tracejadas, as formas que nenhuma das 130 sementes alcança naquele modo.

Lido nas formas, o PC1 é o alongamento: vai da semente redonda à fina e comprida, e o seu escore tem correlação 0,94 com a razão entre comprimento e largura. O PC2 deixa um lado mais reto e o outro mais curvo, o formato de rim. As duas Amorpha fruticosa estão em +4,2 e +4,5 desvios-padrão nele. O PC3 afina uma das pontas, como um ovo ou uma cunha, e a semente triangular de Amygdalus mongolica está em −4,6.

As sementes ocupam só um pedaço de cada eixo. No PC1, vão de −1,2 a +2,4 desvios-padrão. O modelo (8) é linear e continua desenhando fora disso: com \(b_1 = -2\) sai uma forma mais alta que larga, que nenhuma das 130 tem. É a distribuição que não é uma nuvem gaussiana em volta da média, e sim grupos (o arroz de um lado, a soja do outro).

Instrumento · deformar a semente média

0,00σ 0,00σ 0,00σ

Clique numa semente do plano, ou num ponto vazio para escolher b₁ e b₂.

A média, os três modos e os escores das 130 sementes foram calculados uma vez e estão embutidos na página; a deformação (8) é feita aqui, no seu navegador. Tracejado é a semente média; laranja, a forma com os pesos \(b_1\), \(b_2\) e \(b_3\), em desvios-padrão; em azul, o contorno alinhado da semente escolhida no plano. Ao escolher uma semente, os três controles vão para os escores dela, e a diferença entre o azul e o laranja é o que os outros 122 modos guardam.

No SeedCounter

No SeedCounter

O app faz um PCA de tamanho 2 × 2 em cada semente. A covariância das coordenadas dos pontos do contorno dá o eixo maior, e o comprimento e a largura são medidos ao longo dos dois autovetores, com a semente deitada. Para uma matriz simétrica 2 × 2 o autovetor tem fórmula fechada: o ângulo do eixo maior é \(\tfrac12 \operatorname{atan2}(2s_{xy},\, s_{xx} - s_{yy})\), a mesma conta do \(\theta_1\) da normalização de Fourier. Numa semente quase redonda o eixo fica mal definido, mas aí o comprimento e a largura quase não dependem dele.

O espaço de forma da página Aprender usa a mesma decomposição sobre as silhuetas inteiras, pixel a pixel, e lá o primeiro modo fica com cerca de metade da variação. Com contornos alinhados, o primeiro modo fica com 88,5%. A representação também decide o que a PCA vê.

No hub de datasets, a vista Forma faz a conta desta página com um conjunto inteiro: cada contorno reamostrado em 48 pontos, alinhado por Procrustes, a semente média de cada classe com a faixa de 25 a 75% e o espaço de forma dos dois primeiros modos, onde clicar num ponto mostra a semente.

Vista Forma do hub de datasets do SeedCounter 4.0 com 120 sementes de três cultivares de soja: em cima, as três sementes médias sobrepostas, quase a mesma elipse; embaixo, o espaço de forma com um ponto por semente e o primeiro modo explicando 66% da variação.
No app. A vista Forma do hub com 120 sementes de três cultivares de soja: a semente média de cada cultivar e o espaço de forma dos dois primeiros modos.

Onde falha

A PCA é mínimos quadrados, e quadrado pune o raro. Com as 145 silhuetas, incluindo as 15 de contorno recortado, o PC2 sobe de 2,6% para 19,3%, e cinco silhuetas (três nativas de contorno recortado, uma soja quebrada e uma de tegumento danificado) carregam 81% da variância dele. O segundo modo passa a descrever cinco sementes estranhas. Por isso as 15 ficaram de fora, com o critério escrito abaixo.

O modelo é linear e o conjunto é feito de grupos. Passos grandes ao longo de um modo saem do alcance das sementes, como a Figura 4 mostra. E as direções de maior variância não são, em geral, as que separam as classes: a PCA mostra, não decide. Separar classes é outro problema, e a página Quando a reta esconde uma classe mostra um caso em que a conta mais simples esconde uma delas.

A correspondência é uma escolha. Os 64 pontos igualmente espaçados não marcam o hilo nem a ponta da semente. Com marcos de verdade, os modos mudam.

Dados

Das 145 silhuetas de 64 × 64 px dos exemplos públicos do SeedCounter (arroz, soja, café, milho e espécies nativas), as mesmas da página Aprender, entram as 130 com solidez (área sobre a área do fecho convexo) de pelo menos 0,8: 40 de arroz, 31 de soja, 28 de café, 19 de espécies nativas e 12 de milho. Ficaram de fora 13 nativas e 2 sojas com recortes fundos, espinhos ou pedaços soltos. O contorno é o da página de Fourier, reamostrado em 64 pontos. O script que refaz as figuras está em _src/figuras/teoria-forma-svd.py.

Referências

  1. Bookstein F.L. (1997). Landmark methods for forms without landmarks: morphometrics of group differences in outline shape. Medical Image Analysis 1(3), 225–243. doi:10.1016/S1361-8415(97)85012-8
  2. Dryden I.L., Mardia K.V. (2016). Statistical Shape Analysis, with Applications in R, 2ª ed. Wiley.
  3. Schönemann P.H. (1966). A generalized solution of the orthogonal Procrustes problem. Psychometrika 31(1), 1–10. doi:10.1007/BF02289451
  4. Gower J.C. (1975). Generalized Procrustes analysis. Psychometrika 40(1), 33–51. doi:10.1007/BF02291478
  5. Jolliffe I.T., Cadima J. (2016). Principal component analysis: a review and recent developments. Philosophical Transactions of the Royal Society A 374(2065), 20150202. doi:10.1098/rsta.2015.0202
  6. Golub G.H., Van Loan C.F. (2013). Matrix Computations, 4ª ed. Johns Hopkins University Press.
  7. Eckart C., Young G. (1936). The approximation of one matrix by another of lower rank. Psychometrika 1(3), 211–218. doi:10.1007/BF02288367
  8. Mirsky L. (1960). Symmetric gauge functions and unitarily invariant norms. The Quarterly Journal of Mathematics 11(1), 50–59. doi:10.1093/qmath/11.1.50
  9. North G.R., Bell T.L., Cahalan R.F., Moeng F.J. (1982). Sampling errors in the estimation of empirical orthogonal functions. Monthly Weather Review 110(7), 699–706. doi:10.1175/1520-0493(1982)110<0699:SEITEO>2.0.CO;2
  10. Trefethen L.N., Bau D. (1997). Numerical Linear Algebra. SIAM.
  11. Koklu M., Cinar I., Taspinar Y.S. (2021). Classification of rice varieties with deep learning methods. Computers and Electronics in Agriculture 187, 106285. doi:10.1016/j.compag.2021.106285
  12. Cootes T.F., Taylor C.J., Cooper D.H., Graham J. (1995). Active shape models: their training and application. Computer Vision and Image Understanding 61(1), 38–59. doi:10.1006/cviu.1995.1004
  13. Turk M., Pentland A. (1991). Eigenfaces for recognition. Journal of Cognitive Neuroscience 3(1), 71–86. doi:10.1162/jocn.1991.3.1.71

Muitas sementes conferidas viram uma forma média.

O SeedCounter propõe o contorno de cada semente e você confere. É desse conjunto que a média e os modos saem.

Abrir o SeedCounter