Apa intuisi di balik SVD?

50

Saya telah membaca tentang dekomposisi nilai singular (SVD). Di hampir semua buku teks disebutkan bahwa itu faktorisasi matriks menjadi tiga matriks dengan spesifikasi yang diberikan.

Tapi apa intuisi di balik pemisahan matriks dalam bentuk seperti itu? PCA dan algoritma lain untuk pengurangan dimensi adalah intuitif dalam arti bahwa algoritma memiliki properti visualisasi yang bagus tetapi dengan SVD bukan itu masalahnya.

SHASHANK GUPTA
sumber
4
Anda mungkin ingin memulai dari intuisi dekomposisi eigen-nilai-eigen karena SVD adalah ekstensi untuk semua jenis matriks, bukan hanya yang persegi.
JohnK
Ada banyak catatan di internet dan jawaban di sini tentang CVD tentang SVD dan cara kerjanya.
Vladislavs Dovgalecs
2
SVD dapat dianggap sebagai algoritma kompresi / pembelajaran. Ini adalah dekompresor kompresor linier. Matriks M dapat direpresentasikan dengan perkalian SVD. S adalah kompresor V yang menentukan berapa banyak kesalahan yang ingin Anda miliki (kompresi lossy) dan D adalah dekompresor. Jika Anda menyimpan semua nilai diagonal V maka Anda memiliki kompresor lossless. Jika Anda mulai membuang nilai-nilai singular kecil (mem-zeroing-nya) maka Anda tidak dapat merekonstruksi matriks awal dengan tepat tetapi akan tetap dekat. Di sini istilah penutupan diukur dengan norma Frobenius.
Cagdas Ozgenc
2
@Cagdas jika Anda melakukan itu harap hati-hati mendefinisikan apa yang Anda ambil "S" "V" dan "D" secara matematis. Saya belum pernah melihat inisial kelebihan beban ke dalam notasi itu sendiri sebelumnya (yang memiliki nilai singular di dalamnya, misalnya?). Tampaknya menjadi sumber kebingungan,
Glen_b
3
Apakah Anda tahu cara memperkirakan PCA dengan SVD? Jika ya, bisakah Anda menjelaskan mengapa Anda merasa ada sesuatu yang hilang dalam pemahaman Anda tentang SVD? Lihat ini
Aksakal

Jawaban:

63

Xn×p

X=UDVT
Un×pDp×pVTp×pUVX=i=1pdiuiviTXp
(123)(456)=(45681012121518)

X

gambar babon

Kemudian baca gambar ini menjadi R dan dapatkan bagian matriks dari struktur yang dihasilkan, mungkin menggunakan perpustakaan pixmap.


Jika Anda menginginkan panduan langkah demi langkah tentang cara mereproduksi hasil, Anda dapat menemukan kode di sini .


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

menghasilkan dua gambar berikut:

peringkat satu dan peringkat 20 rekonstruksi gambar babon

Di sebelah kiri kita dapat dengan mudah melihat garis-garis vertikal / horizontal pada gambar peringkat-1.

20

gambar residu dari rekonstruksi baboon peringkat 20

Yang cukup menarik: kita melihat bagian-bagian dari gambar asli yang sulit direpresentasikan sebagai superposisi garis-garis vertikal / horizontal, sebagian besar rambut hidung diagonal dan beberapa tekstur, dan mata!

kjetil b halvorsen
sumber
11
Saya pikir maksud Anda rekonstruksi tingkat rendah, bukan kisaran rendah. Lupakan. Ini adalah ilustrasi yang sangat bagus (+1). Itu sebabnya ini adalah dekompresor kompresor linier. Gambar didekati dengan garis. Jika Anda benar-benar melakukan autoencoder yang serupa dengan jaringan saraf dengan fungsi aktivasi linier, Anda akan benar-benar melihat bahwa itu juga memungkinkan garis dengan kemiringan apa pun, tidak hanya garis vertikal dan horizontal, yang membuatnya sedikit lebih kuat daripada SVD.
Cagdas Ozgenc
X=UΣVn×pXUn×nΣn×pVp×p
1
Lihat math.stackexchange.com/questions/92171/… untuk beberapa contoh lainnya
kjetil b halvorsen
@ kjetil-b-halvorsen Saya tertarik mengetahui bagaimana dekripsi akan berubah jika saya akan menggunakan PCA untuk menyatakan aplikasi. Saya akan sangat menghargai jika Anda dapat menjawab pertanyaan saya di sini stats.stackexchange.com/questions/412123/...
Dushyant Kumar
@CowboyTrader pengamatan menarik. Pemahaman saya tentang pembelajaran mesin / jaringan saraf sangat terbatas. Jadi, saya gagal memahami bahwa jika seseorang memiliki gambar berisik tunggal dan tidak ada hal lain untuk dilatih, bagaimana jaringan saraf bekerja?
Dushyant Kumar
4

Am×nmnvA

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

Biarkan (jadi mengkuantifikasi daya ledak dalam arah ). Misalkan vektor satuan didefinisikan sehingga Persamaan (2) dapat diekspresikan secara ringkas menggunakan notasi matriks sebagai mana adalah matriks yang kolom ke- adalah , adalah matriks yang Kolom th adalah , danσi=Avi2σiAviui

(2)Avi=σiuifor i=1,,n.
(3)AV=UΣ,
Vn×niviUm×niuiΣadalah matriks diagonal dengan entri diagonal ke- adalah . Matriks adalah ortogonal, sehingga kita dapat mengalikan kedua sisi (3) dengan untuk mendapatkan Tampaknya kita sekarang telah menurunkan SVD dengan hampir nol upaya. Sejauh ini tidak ada langkah yang sulit. Namun, bagian penting dari gambar itu hilang - kita belum tahu bahwa itu ortogonal.n×niσiVVT
A=UΣVT.
AU

Inilah fakta penting, bagian yang hilang: ternyata ortogonal bagi : Saya mengklaim bahwa jika ini tidak benar, maka tidak akan optimal untuk masalah (1). Memang, jika (4) tidak puas, maka akan mungkin untuk meningkatkan dengan mengganggunya sedikit ke arah .Av1Av2

(4)Av1,Av2=0.
v1 v1v2

Misalkan (untuk kontradiksi) bahwa (4) tidak puas. Jika sedikit terganggu dalam arah ortogonal , norma tidak berubah (atau setidaknya, perubahan dalam norma dapat diabaikan). Ketika saya berjalan di permukaan bumi, jarak saya dari pusat bumi tidak berubah. Namun, ketika yang terganggu ke arah , vektor yang terganggu di non-orthogonal arah , dan perubahan norma adalah non-diabaikan . Normav1v2v1v1v1v2Av1Av2Av1Av1dapat ditingkatkan dengan jumlah yang tidak dapat diabaikan. Ini berarti bahwa tidak optimal untuk masalah (1), yang merupakan kontradiksi. Saya suka argumen ini karena: 1) intuisi sangat jelas; 2) intuisi dapat dikonversi langsung menjadi bukti yang kuat.v1

Argumen serupa menunjukkan bahwa adalah ortogonal untuk dan , dan seterusnya. Vektor adalah pasangan ortogonal. Ini berarti bahwa vektor satuan dapat dipilih untuk berpasangan orthogonal, yang berarti matriks atas adalah matriks ortogonal. Ini melengkapi penemuan kami tentang SVD.Av3Av1Av2Av1,,Avnu1,,unU


Untuk mengubah argumen intuitif di atas menjadi bukti yang kuat, kita harus menghadapi kenyataan bahwa jika terganggu dalam arah , vektor yang terganggu bukan benar-benar vektor satuan. (Normalnya adalah .) Untuk mendapatkan bukti yang kuat, tentukan Vektor benar-benar merupakan vektor satuan. Tetapi seperti yang Anda dapat dengan mudah menunjukkan, jika (4) tidak puas, maka untuk nilai cukup kecil kita memiliki (dengan asumsi bahwa tandav1v2

v~1=v1+ϵv2
1+ϵ2
v¯1(ϵ)=1ϵ2v1+ϵv2.
v¯1(ϵ)ϵ
f(ϵ)=Av¯1(ϵ)22>Av122
ϵdipilih dengan benar). Untuk menunjukkan ini, cukup periksa bahwa . Ini berarti bahwa tidak optimal untuk masalah (1), yang merupakan kontradiksi.f(0)0v1

(Omong-omong, saya sarankan membaca penjelasan Qiaochu Yuan tentang SVD di sini . Khususnya, lihat "Kunci lemma # 1", yang kita bahas di atas. Seperti yang dikatakan Qiaochu, kunci lemma # 1 adalah "hati teknis dekomposisi nilai singular ".)

littleO
sumber
0

Bung ambil satu jam sehari Anda dan saksikan kuliah ini: https://www.youtube.com/watch?v=EokL7E6o1AE

Pria ini super lurus ke depan, penting untuk tidak melewatkan semua itu karena semuanya datang bersama pada akhirnya. Bahkan jika itu mungkin tampak agak lambat di awal, dia mencoba untuk menjabarkan titik kritis, yang dia lakukan!

Saya akan meringkaskannya untuk Anda, daripada hanya memberi Anda tiga matriks yang dilakukan semua orang (karena itu membingungkan saya ketika saya membaca deskripsi lainnya). Dari mana matriks itu berasal dan mengapa kita mengaturnya seperti itu? Ceramahnya berhasil! Setiap matriks (pernah dalam sejarah everness) dapat dibangun dari matriks dasar dengan dimensi yang sama, lalu memutarnya, dan merentangkannya (ini adalah teorema dasar aljabar linier). Masing-masing dari tiga matriks yang orang lempar mewakili matriks awal (U), matriks penskalaan (sigma), dan matriks rotasi (V).

Matriks penskalaan menunjukkan kepada Anda vektor rotasi mana yang mendominasi, ini disebut nilai singular. Dekomposisi adalah penyelesaian untuk U, sigma, dan V.

Tim Johnsen
sumber