He leído sobre la descomposición de valores singulares (SVD). En casi todos los libros de texto se menciona que factoriza la matriz en tres matrices con especificación dada.
Pero, ¿cuál es la intuición detrás de dividir la matriz en tal forma? PCA y otros algoritmos para la reducción de dimensionalidad son intuitivos en el sentido de que el algoritmo tiene una buena propiedad de visualización, pero con SVD no es el caso.
matrix
linear-algebra
svd
intuition
SHASHANK GUPTA
fuente
fuente
Respuestas:
Escriba la SVD de la matriz (real, n × p ) como X = U D V T donde U es n × p , D es diagonal p × p y V T es p × p . En términos de las columnas de las matrices U y V podemos escribir X = ∑ p i = 1 d i u i v T iX n×p
Piense ahora en como que contiene los valores de escala de grises de una imagen en blanco y negro, cada entrada en la matriz representa un píxel. Por ejemplo, la siguiente imagen de un babuino:X
Luego lea esta imagen en R y obtenga la parte de matriz de la estructura resultante, tal vez usando la biblioteca
pixmap
.Si desea una guía paso a paso sobre cómo reproducir los resultados, puede encontrar el código aquí .
Calcule la SVD:
resultando en las siguientes dos imágenes:
A la izquierda podemos ver fácilmente las rayas verticales / horizontales en la imagen de rango 1.
Lo cual es bastante interesante: vemos las partes de la imagen original que son difíciles de representar como superposición de líneas verticales / horizontales, principalmente pelo de nariz diagonal y algo de textura, ¡y los ojos!
fuente
Sea (entonces cuantifica el poder explosivo de en la dirección ). Suponga que los vectores unitarios están definidos de modo que Las ecuaciones (2) se pueden expresar de manera concisa usando la notación matricial como donde es la matriz cuya th columna es , es la matriz cuyo La columna es yσi=∥Avi∥2 σi A vi ui Avi=σiuifor i=1,…,n.(2) AV=UΣ,(3) V n×n i vi U m×n i ui Σ es la matriz diagonal cuya entrada diagonal es . La matriz es ortogonal, por lo que podemos multiplicar ambos lados de (3) por para obtener
Puede parecer que ahora hemos derivado la SVD de con casi cero esfuerzo. Ninguno de los pasos hasta ahora ha sido difícil. Sin embargo, falta una parte crucial de la imagen: todavía no sabemos si es ortogonal.n×n i σi V VT A=UΣVT. A U
Aquí está el hecho crucial, la pieza que falta: resulta que es ortogonal a : Afirmo que si esto no fuera cierto, entonces no sería óptimo para el problema (1). De hecho, si (4) no estuviera satisfecho, entonces sería posible mejorar perturbándolo un poco en la dirección .Av1 Av2 ⟨Av1,Av2⟩=0.(4) v1 v1 v2
Suponga (por contradicción) que (4) no está satisfecho. Si se perturba ligeramente en la dirección ortogonal , la norma de no cambia (o al menos, el cambio en la norma de es insignificante). Cuando camino sobre la superficie de la tierra, mi distancia desde el centro de la tierra no cambia. Sin embargo, cuando se perturba en la dirección , el vector se perturba en la dirección no ortogonal , por lo que el cambio en la norma de no es despreciable . La norma dev1 v2 v1 v1 v1 v2 Av1 Av2 Av1 Av1 se puede aumentar en una cantidad no despreciable. Esto significa que no es óptimo para el problema (1), lo cual es una contradicción. Me encanta este argumento porque: 1) la intuición es muy clara; 2) la intuición puede convertirse directamente en una prueba rigurosa.v1
Un argumento similar muestra que es ortogonal a y , y así sucesivamente. Los vectores son ortogonales por pares. Esto significa que los vectores unitarios se pueden elegir para ser ortogonales por pares, lo que significa que la matriz anterior es una matriz ortogonal. Esto completa nuestro descubrimiento de la SVD.Av3 Av1 Av2 Av1,…,Avn u1,…,un U
Para convertir el argumento intuitivo anterior en una prueba rigurosa, debemos confrontar el hecho de que si se perturba en la dirección , el vector perturbado no es realmente un vector unitario. (Su norma es .) Para obtener una prueba rigurosa, defina El vector es realmente un vector unitario. Pero como puede mostrar fácilmente, si (4) no está satisfecho, entonces para valores suficientemente pequeños de tenemos (suponiendo que el signo dev1 v2 v~1=v1+ϵv2 1+ϵ2−−−−−√ v¯1(ϵ)=1−ϵ2−−−−−√v1+ϵv2. v¯1(ϵ) ϵ f(ϵ)=∥Av¯1(ϵ)∥22>∥Av1∥22 ϵ se elige correctamente). Para mostrar esto, simplemente verifique que . Esto significa que no es óptimo para el problema (1), lo cual es una contradicción.f′(0)≠0 v1
(Por cierto, recomiendo leer la explicación de Qiaochu Yuan de la SVD aquí . En particular, eche un vistazo al "Lema clave # 1", que es lo que discutimos anteriormente. Como dice Qiaochu, el lema clave # 1 es "el corazón técnico de descomposición de valor singular ".)
fuente
Amigo, tómate una hora de tu día y mira esta conferencia: https://www.youtube.com/watch?v=EokL7E6o1AE
Este tipo es súper directo, es importante no omitir nada porque al final todo se junta. Incluso si puede parecer un poco lento al principio, ¡está tratando de precisar un punto crítico, lo que hace!
Lo resumiré para usted, en lugar de simplemente darle las tres matrices que todos hacen (porque eso me confundió cuando leí otras descripciones). ¿De dónde vienen esas matrices y por qué lo configuramos así? ¡La conferencia lo clava! Cada matriz (siempre en la historia de la eternidad) puede construirse a partir de una matriz base con las mismas dimensiones, luego rotarla y estirarla (este es el teorema fundamental del álgebra lineal). Cada una de esas tres matrices que la gente arroja representa una matriz inicial (U), una matriz de escala (sigma) y una matriz de rotación (V).
La matriz de escala muestra qué vectores de rotación están dominando, estos se llaman valores singulares. La descomposición está resolviendo para U, sigma y V.
fuente