Qual è l'intuizione dietro SVD?


50

Ho letto della decomposizione a valore singolare (SVD). In quasi tutti i libri di testo viene menzionato il fatto che fattorizza la matrice in tre matrici con specifiche specificate.

Ma qual è l'intuizione dietro la divisione della matrice in tale forma? PCA e altri algoritmi per la riduzione della dimensionalità sono intuitivi nel senso che l'algoritmo ha una buona proprietà di visualizzazione ma con SVD non è così.


4
Potresti voler partire dall'intuizione della decomposizione autovalore-autovettore in quanto SVD ne è un'estensione per tutti i tipi di matrici, anziché solo quelle quadrate.
JohnK,

Ci sono molte note su Internet e risposte qui sul CV su SVD e il suo funzionamento.
Vladislavs Dovgalecs,

2
SVD può essere pensato come un algoritmo di compressione / apprendimento. È un decompressore lineare a compressore. Una matrice M può essere rappresentata moltiplicando SVD. S è il compressore V determina quanti errori vorresti avere (compressione con perdita) e D è il decompressore. Se mantieni tutti i valori diagonali di V, hai un compressore senza perdite. Se inizi a buttare via piccoli valori singolari (azzerandoli), non puoi ricostruire esattamente la matrice iniziale ma resterai comunque vicino. Qui il termine vicino è misurato con la norma di Frobenius.
Cagdas Ozgenc,

2
@Cagdas, se lo fai, ti preghiamo di definire attentamente ciò che stai prendendo "S" "V" e "D" per essere matematicamente. Non ho mai visto le iniziali sovraccaricate nella notazione stessa prima (che contiene i valori singolari, per esempio?). Sembra essere una probabile fonte di confusione,
Glen_b

3
Sai come stimare la PCA con SVD? Se lo fai, allora puoi spiegare perché ritieni che manchi qualcosa nella tua comprensione di SVD? Vedi questo
Aksakal,

Risposte:


63

Scrivi SVD della matrice (reale, n × p ) come X = U D V T dove U è n × p , D è diagonale p × p e V T è p × p . In termini di colonne delle matrici U e V possiamo scrivere X = p i = 1 d i u i v T iXn×p

X=UDVT
Un×pDp×pVTp×pUVX=i=1pdiuiviT. Ciò dimostra scritto come una somma di p rango-1 matrici. Che aspetto ha una matrice di rango 1? Vediamo: ( 1 2 3 ) ( 4 5 6 ) = ( 4 5 6 8 10 12 12 15 18 ) Le righe sono proporzionali e le colonne sono proporzionali.Xp
(123)(456)=(45681012121518)

Pensa ora a come contenente i valori di scala di grigi di un'immagine in bianco e nero, ogni voce nella matrice che rappresenta un pixel. Ad esempio la seguente immagine di un babbuino:X

immagine di un babbuino

Quindi leggi questa immagine in R e ottieni la parte matrice della struttura risultante, magari usando la libreria pixmap.


Se desideri una guida dettagliata su come riprodurre i risultati, puoi trovare il codice qui .


Calcola 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])

risultanti nelle seguenti due immagini:

rango 1 e rango 20 ricostruzione dell'immagine del babbuino

Sulla sinistra possiamo facilmente vedere le strisce verticali / orizzontali nell'immagine di grado 1.

20

immagine di residui della ricostruzione del babbuino di grado 20

Il che è abbastanza interessante: vediamo le parti dell'immagine originale che sono difficili da rappresentare come sovrapposizione di linee verticali / orizzontali, per lo più peli del naso diagonali e un po 'di trama, e gli occhi!


11
Penso che volevi dire ricostruzione di basso rango, non di basso raggio. Non importa. Questa è un'ottima illustrazione (+1). Ecco perché è un decompressore a compressore lineare. L'immagine è approssimata con le linee. Se esegui un autoencoder simile con una rete neurale con funzioni di attivazione lineare, vedrai che consente anche linee con qualsiasi pendenza, non solo linee verticali e orizzontali, il che lo rende leggermente più potente di SVD.
Cagdas Ozgenc,

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


@ kjetil-b-halvorsen Sono interessato a sapere come cambierebbe la descrizione se avessi usato PCA per negare l'applicazione. Gradirei se potessi rispondere alla mia domanda qui stats.stackexchange.com/questions/412123/…
Dushyant Kumar

@CowboyTrader osservazione interessante. La mia comprensione dell'apprendimento automatico / rete neurale è piuttosto limitata. Quindi, non riesco a capire che se uno ha una sola immagine rumorosa e nient'altro su cui allenarsi, come funzionerebbe la rete neurale?
Dushyant Kumar l'

4

Am×nmnvA

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

Let (così quantifica la potenza esplosiva di nella direzione ). Supponiamo che i vettori di unità siano definiti in modo tale che Le equazioni (2) possono essere espressi sinteticamente utilizzando la notazione matriciale come dove è la matrice cui esima colonna è , è la matrice avente la colonna è eσi=Avi2σiAviui

(2)Avi=σiuifor i=1,,n.
(3)AV=UΣ,
Vn×niviUm×niuiΣè il matrice diagonale cui esima entrata diagonale è . La matrice è ortogonale, quindi possiamo moltiplicare entrambi i lati di (3) per per ottenere Potrebbe sembrare che ora abbiamo derivato l'SVD di con uno sforzo quasi nullo. Nessuno dei passaggi finora è stato difficile. Tuttavia, manca un pezzo cruciale del quadro: non sappiamo ancora che sia ortogonale.n×niσiVVT
A=UΣVT.
AU

Ecco il fatto cruciale, il pezzo mancante: risulta che è ortogonale ad : Dichiaro che se questo non fosse vero, allora non sarebbe ottimale per il problema (1). In effetti, se (4) non fosse soddisfatto, sarebbe possibile migliorare perturbandolo un po 'nella direzione .Av1Av2

(4)Av1,Av2=0.
v1 v1v2

Supponiamo (per una contraddizione) che (4) non sia soddisfatto. Se è leggermente disturbato nella direzione ortogonale , la norma di non cambia (o almeno, la variazione della norma di è trascurabile). Quando cammino sulla superficie della terra, la mia distanza dal centro della terra non cambia. Tuttavia, quando è perturbato nella direzione , il vettore è perturbato nella direzione non ortogonale , e quindi il cambiamento nella norma di non è trascurabile . La norma div1v2v1v1v1v2Av1Av2Av1Av1può essere aumentato di un importo non trascurabile. Ciò significa che non è ottimale per il problema (1), che è una contraddizione. Adoro questo argomento perché: 1) l'intuizione è molto chiara; 2) l'intuizione può essere convertita direttamente in una prova rigorosa.v1

Un argomento simile mostra che è ortogonale a e e così via. I vettori sono ortogonali a coppie. Ciò significa che i vettori unità possono essere scelti per essere ortogonali a coppie, il che significa che la matrice sopra è una matrice ortogonale. Questo completa la nostra scoperta dell'SVD.Av3Av1Av2Av1,,Avnu1,,unU


Per convertire l'argomento intuitivo sopra riportato in una prova rigorosa, dobbiamo confrontare il fatto che se è perturbato nella direzione , il vettore perturbato non è veramente un vettore unitario. (La sua norma è .) Per ottenere una prova rigorosa, definire Il vettore è veramente un vettore unitario. Ma come puoi facilmente dimostrare, se (4) non è soddisfatto, allora per valori sufficientemente piccoli di abbiamo (presupponendo che il segno div1v2

v~1=v1+ϵv2
1+ϵ2
v¯1(ϵ)=1ϵ2v1+ϵv2.
v¯1(ϵ)ϵ
f(ϵ)=Av¯1(ϵ)22>Av122
ϵè scelto correttamente). Per mostrarlo, controlla che . Ciò significa che non è ottimale per il problema (1), che è una contraddizione.f(0)0v1

(A proposito, raccomando di leggere la spiegazione di Qiaochu Yuan sull'SVD qui . In particolare, dai un'occhiata a "Key lemma # 1", che è quello che abbiamo discusso sopra. Come dice Qiaochu, il lemma chiave # 1 è "il cuore tecnico di decomposizione a valore singolare ".)


0

Amico, prenditi un'ora della tua giornata e guarda questa lezione: https://www.youtube.com/watch?v=EokL7E6o1AE

Questo ragazzo è super diretto, è importante non saltarlo perché alla fine tutto si riunisce. Anche se all'inizio potrebbe sembrare un po 'lento, sta cercando di individuare un punto critico, cosa che fa!

Lo riassumo per te, piuttosto che darti solo le tre matrici che fanno tutti (perché questo mi confondeva quando leggevo altre descrizioni). Da dove vengono quelle matrici e perché le impostiamo così? La lezione lo inchioda! Ogni matrice (sempre nella storia dell'eternità) può essere costruita da una matrice di base con le stesse dimensioni, quindi ruotarla e allungarla (questo è il teorema fondamentale dell'algebra lineare). Ognuna di quelle tre matrici che le persone gettano in giro rappresentano una matrice iniziale (U), una matrice di ridimensionamento (sigma) e una matrice di rotazione (V).

La matrice di ridimensionamento mostra quali vettori di rotazione stanno dominando, questi sono chiamati valori singolari. La decomposizione sta risolvendo per U, sigma e V.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.