SVD'nin ardındaki sezgi nedir?


50

Tekil değer ayrışımı (SVD) hakkında okudum. Neredeyse tüm ders kitaplarında, verilen spesifikasyon ile matrisi üç matrise dönüştürdüğü belirtilmektedir.

Fakat matrisi böylesi bir biçimde bölmenin ardındaki sezgi nedir? PCA ve boyutsallığı azaltmaya yönelik diğer algoritmalar, algoritmanın güzel görselleştirme özelliğine sahip olduğu anlamında sezgiseldir ancak SVD'de durum böyle değildir.


4
Özdeğer özvektör ayrışımının sezgisinden başlamak isteyebilirsiniz, çünkü SVD sadece kare olanlar yerine her tür matris için bir uzantısıdır.
JohnK

İnternette birçok not var ve burada SVD ve çalışmaları hakkında özgeçmişe cevaplar var.
Vladislavs Dovgalecs

2
SVD, bir sıkıştırma / öğrenme algoritması olarak düşünülebilir. Doğrusal bir kompresör dekompresörüdür. Bir matris M, SVD'nin çarpımı ile temsil edilebilir. S kompresör V ise ne kadar hata istediğinizi belirler (kayıplı sıkıştırma) ve D dekompresördür. Eğer V'nin tüm çapraz değerlerini tutarsanız kayıpsız bir kompresörünüz olur. Küçük tekil değerleri atmaya başlarsanız (bunları sıfırlarsanız), başlangıç ​​matrisini tam olarak yeniden oluşturamazsınız ancak yine de yakın olacaktır. Burada kapanış terimi Frobenius normuyla ölçülür.
Cagdas Ozgenc

2
@ Bunu yaparsanız, lütfen "S" "V" ve "D" aldığınızı dikkatlice matematiksel olarak tanımlayın. Baş harflerin daha önce notasyona aşırı yüklendiğini görmedim (örneğin içinde tekil değerler var mı?). Muhtemelen bir karışıklık kaynağı gibi görünüyor,
Glen_b

3
PCA'yı SVD ile nasıl tahmin edebileceğinizi biliyor musunuz? Öyleyse, SVD anlayışınızda neden eksik bir şey hissettiğinizi açıklayabilir misiniz? Bkz bu
Aksakal

Yanıtlar:


63

matrisinin (gerçek, ) ; buradaki , , , diyagonal ve , . Matrislerin sütun açısından ve yazabiliriz . Bu, -rank-1 matrislerinin toplamı olarak yazıldığını gösterir . Sıra-1 matrisi neye benziyor? Bakalım: n, x s x = U D V T , U , n x P D p x p V , T p x s , U V X = Σ p i = 1 d ı u ı v T ı x s ( 1 2 3 ) ( 4 5 6 ) = ( 4 5 6 8 10 12 12 15Xn×p

X=UDVT
Un×pDp×pVTp×pUVX=i=1pdiuiviTXp
(123)(456)=(45681012121518)
Satırlar orantılı ve sütunlar orantılıdır.

Şimdi, siyah-beyaz bir görüntünün gri tonlama değerlerini içerdiğini, matristeki her girişin bir pikseli temsil ettiğini düşünün . Örneğin bir maymunun aşağıdaki resmi:X

bir maymun görüntüsü

Sonra bu görüntüyü R içine okuyun ve elde edilen yapının matris kısmını, belki de kütüphaneyi kullanarak alın pixmap.


Sonuçların nasıl yeniden üretileceğine ilişkin adım adım bir kılavuz istiyorsanız, kodu burada bulabilirsiniz .


SVD'yi hesaplayın:

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

Bunun hakkında nasıl düşünebiliriz? Her biri sadece dikey ve yatay yapıyı gösteren basit resim toplamı olarak gösterilen babun görüntüsünü elde ediyoruz , yani dikey ve yatay çizgilerin bir görüntüsü! Böylece, bebeğin SVD'si, maymun görüntüsünü , her biri sadece yatay / dikey çizgiler gösteren basit görüntüden oluşan bir üst üste bindirme olarak temsil eder . Görüntünün düşük rekonstrüksiyonunu ve bileşenli olarak hesaplayalım :512 512 1 20512×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])

aşağıdaki iki resimde sonuçlandı:

bir rütbe ve 20 rütbe babun imgesi

Solda, rank-1 görüntüsünde dikey / yatay çizgileri kolayca görebiliriz.

Nihayet "artık resme" bakalım, en düşük tekil değerlere sahip aşamalı görüntüden yeniden oluşturulmuş resim (yukarıda gösterildiği gibi, kod gösterilmemiştir) . İşte burada:20

rütbe 20 bakiye yeniden yapılanma artıklarının görüntüsü

Bu oldukça ilginç: Orijinal görüntünün dikey / yatay çizgilerin, çoğunlukla çapraz burun kıllarının, bazı dokuların ve gözlerin süperpozisyonu olarak temsil edilmesi zor olan kısımlarını görüyoruz!


11
Bence düşük seviyeli rekonstrüksiyon demek istedin, düşük menzili değil. Boşver. Bu çok iyi bir örnek (+1). Bu yüzden lineer bir kompresör dekompresörüdür. Görüntü çizgilerle yaklaşıklanır. Aslında, doğrusal aktivasyon işlevli bir sinir ağına sahip benzer bir otomatik kodlayıcıyı gerçekleştirirseniz, aslında SVD'den biraz daha güçlü kılan sadece dikey ve yatay çizgilerden değil, herhangi bir eğimli çizgilere de izin verdiğini göreceksiniz.
Cagdas Ozgenc

@ Kjetil-b-halvorsen olmamalı SVD for a matris in sonucu olmak , olmak ve olan ? Yanlış mı yazdınız? n, x s x u , n x n Σ n x P V s x pX=UΣVn×pXUn×nΣn×pVp×p
Martin Krämer,


@ kjetil-b-halvorsen Başvuruyu belirtmek için PCA kullanmış olsaydım, tanımlamanın nasıl değişeceğini bilmek isterim. Burada sorumu
Dushyant Kumar

@ KovboyTrader ilginç gözlem. Makine öğrenimi / sinir ağı anlayışım oldukça sınırlı. Öyleyse, birinin tek bir gürültülü görüntüsü ve üzerinde çalışacak başka bir şeyi yoksa, sinir ağının nasıl çalışacağını anlayamıyorum.
Dushyant Kumar

3

Let gerçek bir olmak matrisi. Basitlik için bu varsayalım . Bu hangi yönde sormak doğaldır gelmez çoğu etkisi (veya en explosiveness veya en fazla yükseltme gücüne) sahip. Cevap Doğal bir takip sorusu, sonra , için en patlayıcı yön nedir? ? Cevap Am×nmnvA

(1)v1=argmaxvRnAv2subject to v2=1.
v1A
v2=argmaxvRnAv2subject to v1,v=0,v2=1.
böyle devam edecek olursak, bir ortonormal baz elde ait . bu özel temeli bize bir anlamda anlamak için en önemli olan yönleri anlatır .v1,,vnRnRnA

Let (şimdiye patlayıcı gücü quantifies yönde ). ki birim vektörleri tanımlanmıştır ki, Denklemler (2) matris gösterimi kullanılarak öz eksprese edilebilir olan matris inci sütun , olduğu , bunun matriks th sütunu veσi=Avi2σiAviui

(2)Avi=σiuifor i=1,,n.
(3)AV=UΣ,
Vn×niviUm×niuiΣolan olan diyagonal matris inci diyagonal giriştir . matrisi ortogonaldir, bu yüzden elde etmek için (3) 'ün her iki tarafını ile çarpabiliriz Şimdi SVD'sini neredeyse sıfır çabayla türetmiş gözüküyoruz . Şu ana kadarki adımların hiçbiri zor değildi. Bununla birlikte, resmin önemli bir parçası eksik - ortogonal olduğunu henüz bilmiyoruz .n×niσiVVT
A=UΣVT.
AU

O çıkıyor: İşte can alıcı gerçeği, eksik parçası olan ortogonal olan : Ben iddia bu doğru olmasaydı, o zaman problem için optimal olmaz (1). Aslında, eğer (4) tatmin , yönünde biraz geliştirmek mümkün .Av1Av2

(4)Av1,Av2=0.
v1 v1v2

Diyelim ki (bir çelişki için) (4) 'ün karşılanmadı. Eğer ortogonal yönde hafifçe bozulur , norm değişmez (ya da en azından, norm değişim ihmal edilebilir). Dünyanın yüzeyinde yürürken, dünyanın merkezinden uzaklığım değişmiyor. Ancak, yönde tedirgin , vektör olarak bozulur ortogonal olmayan doğrultuda ve böylece norm değişim olduğu göz ardı edilemeyecek . normuv1v2v1v1v1v2Av1Av2Av1Av1ihmal edilemez bir miktarda artırılabilir. Bu, bir çelişki olan problem için (1) optimal olmadığı anlamına gelir . Bu tartışmayı seviyorum çünkü: 1) sezgi çok açık; 2) sezgi doğrudan sıkı bir kanıt haline dönüştürülebilir.v1

Benzeri bir argüman, göstermektedir hem dik olan ve benzeri, ve. vektörleri çift ​​ortogonaldir. Bunun anlamı, birim vektörlerin ikili olarak ortogonal olarak seçilebileceği anlamına gelir; bu, yukarıdaki matrisinin ortogonal bir matris olduğu anlamına gelir . Bu, SVD'yi keşfetmemizi tamamlar.Av3Av1Av2Av1,,Avnu1,,unU


Yukarıdaki sezgisel argümanı titiz bir , yönünde tedirgin , tedirgin vektör gerçek bir birim vektör olmadığı . (Normu .) Sıkı bir kanıt elde etmek için, Vektör gerçekten bir birim vektörüdür. Ancak (4) memnun kalmazsanız, kolayca gösterebileceğiniz gibi, o zaman yeterince küçük değerleri için ( işaretinin olduğu varsayılarak)v1v2

v~1=v1+ϵv2
1+ϵ2
v¯1(ϵ)=1ϵ2v1+ϵv2.
v¯1(ϵ)ϵ
f(ϵ)=Av¯1(ϵ)22>Av122
ϵdoğru seçilir). Bunu göstermek için, sadece olduğunu kontrol edin . Bu, bir çelişki olan problem için (1) optimal olmadığı anlamına gelir .f(0)0v1

(Bu arada, Qiaochu Yuan'ın burada SVD hakkındaki açıklamasını okumanızı öneririm . Özellikle yukarıda tartışılan "Key lemma # 1" e bir göz atın. Qiaochu'nun dediği gibi, anahtar lemma # 1 teknik kalptir tekil değer ayrışımı ".)


0

Dostum günün bir saatini alın ve bu dersi izleyin: https://www.youtube.com/watch?v=EokL7E6o1AE

Bu adam dümdüz ileri, hiçbirini atlamamak önemlidir, çünkü sonuçta hepsi bir araya gelir. Başlangıçta biraz yavaş görünse bile, yaptığı kritik bir noktayı tespit etmeye çalışıyor!

Size, herkesin yaptığı üç matrisi vermek yerine, sizin için özetleyeceğim (çünkü diğer açıklamaları okuduğumda kafam karıştı. Bu matrisler nereden geliyor ve neden böyle ayarladık? Ders onu çiviledi! Her matris (şimdiye kadar sonsuzluk tarihinde), aynı boyutlara sahip bir temel matristen yapılabilir, daha sonra döndürün ve esnetin (bu, lineer cebirin temel teoremidir). Etrafa atılan bu üç matrisin her biri bir başlangıç ​​matrisini (U), bir ölçeklendirme matrisini (sigma) ve bir dönme matrisini (V) temsil eder.

Ölçekleme matrisi hangi dönüş vektörlerinin baskın olduğunu gösterir, buna tekil değerler denir. Ayrışma U, sigma ve V için çözüyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.