5 votos

La confusión acerca de las dimensiones de las matrices en la fórmula para la enfermedad vesicular porcina

Quería entender la Descomposición de Valor Singular (SVD), de ahí consultado pocos recursos. En general me llegó a través de 2 diferentes formas de enfermedad vesicular porcina, y de ahí que se haya confundido en cuanto a cuál es la correcta, o si ambas son equivalentes, etc.

Las 2 formas me encontré son :

1) Página 45 de aprendizaje profundo libro (http://www.deeplearningbook.org/contents/linear_algebra.html)

La descomposición de valor singular es similar, excepto que esta vez vamos a escribir como un producto de tres matrices: $A = UDV^T$ ($^T$ lo que implica transpose) Supongamos que $A$ $m \times n$ matriz. A continuación, $U$ está definido para ser una $m \times m$ matriz, $D$ $m \times n$ matriz, y $V$ $n \times n$ matriz.

y

2) Lec 47 de la Minería de grandes conjuntos de datos curso (https://www.youtube.com/watch?v=P5mlg91as1c&list=PLLssT5z_DsK9JDLcT8T62VtzwyW9LNepV&index=47)

$A = UDV^T$ ($^T$ lo que implica la transposición) Supongamos que $A$ $m \times n$ matriz. A continuación, $U$ está definido para ser una $m \times r$ matriz, $D$ $r \times r$ matriz, y $V$ a ser un $n \times r$ matriz.

He consultado algunos más recursos, resulta que tanto las fórmulas están presentes en ellos. Necesito ayuda para entender dónde está el hueco en mi entendimiento y lo que más me hacen falta para cubrir (desde un punto de vista teórico) para el puente.

5voto

Uri Puntos 111

Creo que esta pregunta ya ha sido cubierto en el sitio. Yo estoy respondiendo a través de un ejemplo. Tanto sus citas son correctas.

X
   -.910218691   -.037212328   -.275548166   -.360441580
  -1.855949714  -1.767057411   -.317283890   1.633887711
   -.186585570   -.316960442   -.340387838  -1.160337400
   1.427254188   -.872044568   -.447456104  -1.785203938
  -1.524117328   1.013061127    .735027680    .583921184
    .014211669   -.880275500   1.516716199   -.266348030

svd(x) = UDV'

D
   3.781503197    .000000000    .000000000    .000000000
    .000000000   2.427179503    .000000000    .000000000
    .000000000    .000000000   1.762938484    .000000000
    .000000000    .000000000    .000000000   1.494400129
    .000000000    .000000000    .000000000    .000000000
    .000000000    .000000000    .000000000    .000000000

U
  -.1045359966   .0613688431   .1533784675   .5925648676  -.7620680911  -.1729168539
  -.6655219390   .7063271894   .1384176823  -.0473139686   .1623946521  -.1020409758
   .1754941747   .1964628810   .0893095485   .6365658833   .3639134791   .6204665918
   .5934543082   .4282595430   .0031973635   .1744522991   .2294862700  -.6174932972
  -.4039262123  -.4669763619  -.2167568310   .4571230653   .4262068341  -.4256517430
  -.0031887094   .2393009491  -.9499187589   .0449114759  -.1616507584   .1105948958

V
   .7299152783  -.0317492361  -.0520390915  -.6808139286
   .0529861206  -.9763855955   .1901410033   .0878068268
  -.1023534922  -.1976805415  -.9745608685  -.0260245989
  -.6737506364  -.0811514539   .1066276016  -.7267083844

UDV' restores X
   -.910218691   -.037212328   -.275548166   -.360441580
  -1.855949714  -1.767057411   -.317283890   1.633887711
   -.186585570   -.316960442   -.340387838  -1.160337400
   1.427254188   -.872044568   -.447456104  -1.785203938
  -1.524117328   1.013061127    .735027680    .583921184
    .014211669   -.880275500   1.516716199   -.266348030

-----------------

Observe that (because X wasn't square) D above is not square.
The singular values are only four, the min(nrows,ncols) in X.
So, cut empty rows (or columns) in D so it becomes square, 4 x 4.
D
   3.781503197    .000000000    .000000000    .000000000
    .000000000   2.427179503    .000000000    .000000000
    .000000000    .000000000   1.762938484    .000000000
    .000000000    .000000000    .000000000   1.494400129

Then leave only 4 first columns ("real" left eigenvectors) in U
U
  -.1045359966   .0613688431   .1533784675   .5925648676
  -.6655219390   .7063271894   .1384176823  -.0473139686
   .1754941747   .1964628810   .0893095485   .6365658833
   .5934543082   .4282595430   .0031973635   .1744522991
  -.4039262123  -.4669763619  -.2167568310   .4571230653
  -.0031887094   .2393009491  -.9499187589   .0449114759

And only 4 first columns ("real" right eigenvectors) in V
(in this example, V was initially 4-column, so leave as is)
V
   .7299152783  -.0317492361  -.0520390915  -.6808139286
   .0529861206  -.9763855955   .1901410033   .0878068268
  -.1023534922  -.1976805415  -.9745608685  -.0260245989
  -.6737506364  -.0811514539   .1066276016  -.7267083844

UDV' restores X as well as it was above
   -.910218691   -.037212328   -.275548166   -.360441580
  -1.855949714  -1.767057411   -.317283890   1.633887711
   -.186585570   -.316960442   -.340387838  -1.160337400
   1.427254188   -.872044568   -.447456104  -1.785203938
  -1.524117328   1.013061127    .735027680    .583921184
    .014211669   -.880275500   1.516716199   -.266348030

Por favor, tenga en cuenta también la situación particular de la singularidad. Si hay collinearities (co-proportionalities) en su matriz X uno o más de los últimos valores singulares será cero y D de la matriz podría tener este aspecto, por ejemplo:

D: one zero singular value in 4-column [min(nrows,ncols) in X] D
   because of a singularity in X
   3.781503197    .000000000    .000000000    .000000000
    .000000000   2.427179503    .000000000    .000000000
    .000000000    .000000000   1.762938484    .000000000
    .000000000    .000000000    .000000000    .000000000
    .000000000    .000000000    .000000000    .000000000
    .000000000    .000000000    .000000000    .000000000

In such a case, you are in right to cut D to size 3 x 3 because only
3 singular values are "real" or tangible dimensions of the data.

Then, accordingly you will leave just 3 first columns in U and in V.
And you will successfully restore your X data with these truncated matrices.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X