J'ai lu sur la décomposition en valeurs singulières (SVD). Dans presque tous les manuels, il est mentionné que la matrice est divisée en trois matrices avec une spécification donnée.
Mais quelle est l'intuition derrière la division de la matrice sous une telle forme? La PCA et d’autres algorithmes de réduction de dimensionnalité sont intuitifs en ce sens qu’ils ont de bonnes propriétés de visualisation, mais ce n’est pas le cas avec SVD.
matrix
linear-algebra
svd
intuition
SHASHANK GUPTA
la source
la source
Réponses:
Ecrivez le SVD de la matrice (réel, n × p ) sous la forme X = U D V T où U est n × p , D est la diagonale p × p et V T est p × p . En ce qui concerne les colonnes des matrices U et V , on peut écrire X = Σ p i = 1 j i u i Iv T iX n×p
Pensez maintenant que contient les valeurs d'échelle de gris d'une image en noir et blanc, chaque entrée de la matrice représentant un pixel. Par exemple la photo suivante d'un babouin:X
Ensuite, lisez cette image dans R et récupérez la partie matrice de la structure résultante, en utilisant éventuellement la bibliothèque
pixmap
.Si vous souhaitez un guide pas à pas sur la manière de reproduire les résultats, vous pouvez trouver le code ici .
Calculez le SVD:
résultant en les deux images suivantes:
Sur la gauche, nous pouvons facilement voir les bandes verticales / horizontales dans l’image de rang 1.
Ce qui est assez intéressant: nous voyons les parties de l’image originale qui sont difficiles à représenter comme une superposition de lignes verticales / horizontales, principalement des poils en nez diagonaux et une certaine texture, ainsi que des yeux!
la source
Soit (donc quantifie le pouvoir explosif de dans la direction ). Supposons que les vecteurs unitaires soient définis de telle sorte que Les équations (2) peuvent être exprimées de manière concise en utilisant la notation matricielle sous la forme où est la matrice dont la ème colonne est , est la matrice dont e colonne est , etσ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 Σ est la matrice diagonale dont la ème entrée est . La matrice étant orthogonale, nous pouvons multiplier les deux côtés de (3) par pour obtenir
Il peut sembler que nous ayons maintenant calculé la SVD de avec un effort presque nul. Aucune des étapes jusqu'à présent n'a été difficile. Cependant, il manque un élément crucial de la photo: nous ne savons pas encore que est orthogonal.n×n i σi V VT A=UΣVT. A U
Voici le fait crucial, la pièce manquante: il s’avère que est orthogonal à : Je déclare que si ce n’était pas vrai, alors ne serait pas optimal pour le problème (1). En effet, si (4) n'était pas satisfait, alors il serait possible d' améliorer en le perturbant un peu dans la direction .Av1 Av2 ⟨Av1,Av2⟩=0.(4) v1 v1 v2
Supposons (pour une contradiction) que (4) n'est pas satisfait. Si est légèrement perturbé dans la direction orthogonale , la norme de ne change pas (ou du moins, le changement de la norme de est négligeable). Lorsque je marche à la surface de la Terre, ma distance par rapport au centre de la Terre ne change pas. Toutefois, lorsque est perturbé dans la direction , le vecteur est perturbée dans le non-orthogonal direction , et ainsi la modification de la norme est non négligeable . La norme dev1 v2 v1 v1 v1 v2 Av1 Av2 Av1 Av1 peut être augmenté d'un montant non négligeable. Cela signifie que n'est pas optimal pour le problème (1), ce qui est une contradiction. J'aime cet argument pour les raisons suivantes: 1) l'intuition est très claire; 2) l'intuition peut être convertie directement en une preuve rigoureuse.v1
Un argument similaire montre que est orthogonal à et , et ainsi de suite. Les vecteurs sont deux à deux orthogonaux. Cela signifie que les vecteurs unitaires peuvent être choisis orthogonaux deux à deux, ce qui signifie que la matrice ci-dessus est une matrice orthogonale. Ceci termine notre découverte du SVD.Av3 Av1 Av2 Av1,…,Avn u1,…,un U
Pour convertir l'argument intuitif ci-dessus en une preuve rigoureuse, nous devons confronter le fait que si est perturbé dans la direction , le vecteur perturbé n'est pas vraiment un vecteur unitaire. (Sa norme est .) Pour obtenir une preuve rigoureuse, définissez Le vecteur est vraiment un vecteur unitaire. Mais comme vous pouvez facilement le constater, si (4) n’est pas satisfait, alors pour des valeurs suffisamment petites de nous avons (en supposant que le signe dev1 v2 v~1=v1+ϵv2 1+ϵ2−−−−−√ v¯1(ϵ)=1−ϵ2−−−−−√v1+ϵv2. v¯1(ϵ) ϵ f(ϵ)=∥Av¯1(ϵ)∥22>∥Av1∥22 ϵ est choisi correctement). Pour montrer cela, vérifiez que . Cela signifie que n'est pas optimal pour le problème (1), ce qui est une contradiction.f′(0)≠0 v1
(Soit dit en passant, je vous recommande de lire l'explication de Qiaochu Yuan du SVD ici . En particulier, jetez un oeil à « lemme Key # 1 », qui est ce que nous avons discuté ci - dessus. Comme le dit Qiaochu, lemme clé # 1 est « le coeur technique décomposition en valeurs singulières ".)
la source
Mec prend une heure de ta journée et regarde cette conférence: https://www.youtube.com/watch?v=EokL7E6o1AE
Ce mec est super simple, il est important de ne rien oublier car tout finit bien. Même si cela peut sembler un peu lent au début, il essaie de cerner un point critique, ce qu’il fait!
Je vais résumer pour vous, plutôt que de simplement vous donner les trois matrices que tout le monde fait (parce que cela me confondait lorsque je lisais d'autres descriptions). D'où viennent ces matrices et pourquoi les mettons-nous comme cela? La conférence le cloue! Chaque matrice (toujours dans l'histoire de l'Everness) peut être construite à partir d'une matrice de base ayant les mêmes dimensions, puis la faire pivoter et l'étirer (c'est le théorème fondamental de l'algèbre linéaire). Chacune de ces trois matrices que l’on jette représente une matrice initiale (U), une matrice d’échelle (sigma) et une matrice de rotation (V).
La matrice de mise à l'échelle vous indique quels sont les vecteurs de rotation qui dominent, ce sont les valeurs singulières. La décomposition est résolue pour U, sigma et V.
la source