¿Cuál es la intuición detrás de SVD?


50

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.


44
Es posible que desee comenzar desde la intuición de la descomposición de vector propio de valor propio, ya que SVD es una extensión de este para todo tipo de matrices, en lugar de solo cuadrados.
JohnK

Hay muchas notas en internet y respuestas aquí en CV sobre SVD y su funcionamiento.
Vladislavs Dovgalecs

2
SVD puede ser pensado como un algoritmo de compresión / aprendizaje. Es un compresor descompresor lineal. Una matriz M puede ser representada por la multiplicación de SVD. S es el compresor V determina cuánto error le gustaría tener (compresión con pérdida) y D es el descompresor. Si mantiene todos los valores diagonales de V, entonces tiene un compresor sin pérdidas. Si comienza a tirar pequeños valores singulares (poniéndolos a cero), entonces no puede reconstruir la matriz inicial exactamente, pero seguirá estando cerca. Aquí el término cerrar se mide con la norma Frobenius.
Cagdas Ozgenc

2
@Cagdas si haces eso, define cuidadosamente lo que estás tomando "S", "V" y "D" para que sean matemáticamente. No he visto las iniciales sobrecargadas en la propia notación antes (¿qué tiene los valores singulares, por ejemplo?). Parece ser una fuente probable de confusión,
Glen_b

3
¿Sabes cómo estimar PCA con SVD? Si lo hace, ¿puede explicar por qué siente que falta algo en su comprensión de SVD? Ver esto
Aksakal

Respuestas:


63

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 iXn×p

X=UDVT
Un×pDp×pVTp×pUVX=i=1pdiuiviT. Eso muestra escrito como una suma de p matrices de rango 1. ¿Cómo se ve una matriz de rango 1? Veamos: ( 1 2 3 ) ( 4 5 6 ) = ( 4 5 6 8 10 12 12 15 18 ) Las filas son proporcionales y las columnas son proporcionales.Xp
(123)(456)=(45681012121518)

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

imagen de un babuino

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:

baboon.svd  <-  svd(bab) # May take some time

512×512512512120

baboon.1  <-  sweep(baboon.svd$u[,1,drop=FALSE],2,baboon.svd$d[1],"*") %*%
                   t(baboon.svd$v[,1,drop=FALSE])

baboon.20 <-  sweep(baboon.svd$u[,1:20,drop=FALSE],2,baboon.svd$d[1:20],"*") %*%
                   t(baboon.svd$v[,1:20,drop=FALSE])

resultando en las siguientes dos imágenes:

Reconstrucción de rango uno y rango 20 de imagen de babuino

A la izquierda podemos ver fácilmente las rayas verticales / horizontales en la imagen de rango 1.

20

imagen de los residuos de la reconstrucción de babuino de rango 20

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!


11
Creo que querías decir reconstrucción de bajo rango, no bajo rango. No importa. Esta es una muy buena ilustración (+1). Por eso es un compresor descompresor lineal. La imagen se aproxima con líneas. Si realmente realiza un codificador automático similar con una red neuronal con funciones de activación lineal, verá que también permite líneas con cualquier pendiente, no solo líneas verticales y horizontales, lo que lo hace un poco más potente que SVD.
Cagdas Ozgenc

X=UΣVn×pXUn×nΣn×pVp×p


@ kjetil-b-halvorsen Estoy interesado en saber cómo cambiaría la descripción si hubiera utilizado PCA para la aplicación de denosing. Le agradecería que respondiera mi pregunta aquí stats.stackexchange.com/questions/412123/…
Dushyant Kumar

@CowboyTrader observación interesante. Mi comprensión del aprendizaje automático / red neuronal es bastante limitada. Entonces, no entiendo que si uno tiene una sola imagen ruidosa y nada más para entrenar, ¿cómo funcionaría la red neuronal?
Dushyant Kumar

4

Am×nmnvA

(1)v1=argmaxvRnAv2subject to v2=1.
v1A
v2=argmaxvRnAv2subject to v1,v=0,v2=1.
v1,,vnRnRnA

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=Avi2σiAviui

(2)Avi=σiuifor i=1,,n.
(3)AV=UΣ,
Vn×niviUm×niuiΣ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×niσiVVT
A=UΣVT.
AU

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 .Av1Av2

(4)Av1,Av2=0.
v1 v1v2

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 dev1v2v1v1v1v2Av1Av2Av1Av1se 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.Av3Av1Av2Av1,,Avnu1,,unU


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 dev1v2

v~1=v1+ϵv2
1+ϵ2
v¯1(ϵ)=1ϵ2v1+ϵv2.
v¯1(ϵ)ϵ
f(ϵ)=Av¯1(ϵ)22>Av122
ϵ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)0v1

(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 ".)


0

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.