CP, Tucker (HOSVD) ve t-SVD karşılaştırması

CP bir tensörü rank-bir tensörlerin toplamı olarak yazar; Tucker onu, mod başına bir faktör matrisiyle çarpılan küçük bir çekirdek tensör olarak yazar ve genellikle HOSVD ile hesaplanır; t-SVD ise üçüncü mertebeden bir tensörü t-çarpımı aracılığıyla iki ortogonal ve bir f-köşegen tensöre ayırır. CP üçü içinde en kompakt ve en yorumlanabilir olanıdır ama uydurulması zordur; Tucker ortogonal çarpanlar verir ama çekirdeği yoğundur; t-SVD ise matris tekil değer ayrışımının (SVD) optimal kesmesini korur, bunun bedeli de üçüncü moda özel muamele etmektir.

Üçü de matrisler için SVD'nin yaptığını tensörler için yapmaya çalışır ve hiçbiri tüm özellikleri korumaz. Aşağıda X, I×J×K boyutunda bir tensördür. Modlar, açılım ve mod-n çarpımı sizin için yeniyse Tensör nedir? ile başlayın.

CP: rank-bir tensörlerin toplamı

CP ayrışımı (CANDECOMP veya PARAFAC olarak da bilinir), tensöre, her biri üç vektörün dış çarpımı olan R adet rank-bir terimle yaklaşır:

X ≈ ∑r=1..R ar ∘ br ∘ cr

CP ayrışımı: rank-bir tensörlerin toplamı olarak bir tensör
CP ayrışımı: R adet rank-bir tensörün toplamı.

Elde ettiğiniz şey, her biri R sütunlu üç faktör matrisidir; toplam R(I + J + K) sayı, yani üç model içinde en kompakt olanı. Hafif koşullar altında ayrışım, ölçekleme ve terimlerin sırası dışında tektir; bu yüzden bileşenler çoğu zaman verinin anlamlı parçaları olarak okunabilir. Bedelleri: çarpanlar ortogonal değildir; SVD gibi kapalı biçimli bir algoritma yoktur, bu yüzden CP yinelemeli olarak, yaygın biçimde dönüşümlü en küçük kareler (ALS) yöntemiyle uydurulur; R'yi seçmek başlı başına zor bir problemdir; ve en iyi rank-R uyum her zaman var olmayabilir, bu da uydurmayı sayısal olarak hassas hâle getirebilir.

Tucker ve HOSVD: bir çekirdek ve mod başına bir taban

Tucker ayrışımı, R1×R2×R3 boyutunda küçük bir G çekirdek tensörü ve mod başına bir faktör matrisi kullanır; bunlar mod-n çarpımlarıyla birleştirilir:

X ≈ G ×1 A ×2 B ×3 C

Yüksek mertebeden SVD olan HOSVD, onu hesaplamanın standart yoludur. A, mod-1 açılımının ilk R1 sol tekil vektörünü tutar; B ve C de diğer iki açılımdan aynı şekilde elde edilir ve çekirdek G = X ×1 AT ×2 BT ×3 CT olur.

Tucker ayrışımı: bir çekirdek tensör ve mod başına bir faktör matrisi
Tucker (HOSVD): ortogonal çarpanlar, ama yoğun bir çekirdek (burada S olarak çizilmiştir).

Her mod için ortogonal bir taban ve mod başına ayrı bir sıkıştırma rankı elde edersiniz; yöntem her mertebeden tensör için çalışır ve matris SVD'lerinden başka bir şeye ihtiyaç duymaz. Bedelleri: çekirdek köşegen değil yoğundur, dolayısıyla her bileşen diğer her bileşenle etkileşir; çekirdek R1R2R3 ile büyür; ve kesilmiş HOSVD genel olarak kendi çok doğrusal rankında en iyi yaklaşım değildir, yalnızca HOOI gibi yinelemeli yöntemlerin iyileştirebileceği iyi bir yaklaşımdır.

t-SVD: başka bir cebirde matris SVD'si

t-SVD (Kilmer ve Martin, 2011) çarpanların şeklini değil, çarpma işleminin kendisini değiştirir. t-çarpımı altında X = U ∗ S ∗ VT yazar; burada U ve V ortogonal, S ise f-köşegendir.

Tam t-SVD: X tensörü U, S ve V'ye eşittir; S'de sıfırdan farklı tüpler yalnızca köşegendedir
n1×n2×n3 boyutundaki bir tensörün tam t-SVD'si: U tensörü n1×n1×n3, V tensörü n2×n2×n3 boyutundadır, S ise f-köşegendir.

Ortogonallik, köşegene benzer bir orta çarpan ve optimal bir kesme elde edersiniz: k tekil tüpü tutmak, tüp rankı en fazla k olan en iyi Frobenius normu yaklaşımını verir. Ucuzdur: üçüncü mod boyunca bir FFT'den sonra paralel çalışan K bağımsız matris SVD'sine dönüşür ve reel veride bunların yalnızca yaklaşık yarısı gerekir. Bedelleri: üçüncü mertebeden tensörler için tanımlıdır; üçüncü mod diğer ikisinden farklı ele alınır, dolayısıyla yönelim ve dilim sırası önemlidir; ve FFT o mod boyunca periyodik bir varsayımı da beraberinde getirir. tc-SVD cebiri korur ama FFT'yi DCT ile, başa sarmayı da bir aynayla değiştirir.

Yan yana

CPTucker (HOSVD)t-SVD
ModelR adet rank-bir tensörün toplamıçekirdek tensör çarpı mod başına bir faktör matrisit-çarpımı altında U ∗ S ∗ VT
Ortogonal çarpanlarhayırevetevet, t-çarpımı anlamında
Orta çarpanyok (isteğe bağlı ağırlıklar)yoğun çekirdekf-köşegen S
Rank kavramıCP rankı Rçok doğrusal rank (R1, R2, R3)tüp rankı k
Hesaplama yöntemiyinelemeli uydurma, örn. ALSher açılımın SVD'siFFT, ön dilim başına bir SVD, ters FFT
En iyi kesmevar olmayabiliriyi, genel olarak optimal değiltüp rankı için optimal
I×J×K için depolamaR(I + J + K)R1R2R3 + IR1 + JR2 + KR3k(I + J + 1)K
Tensör mertebesiherhangiherhangiüç
Modlareşit ele alınıreşit ele alınırüçüncü mod özeldir

Hangisi ne zaman

  • CP, birkaç yorumlanabilir bileşen ve en kompakt modeli istediğinizde, yinelemeli uydurmayı ve R üzerinde bir aramayı göze alabildiğinizde.
  • Tucker / HOSVD, farklı modlar farklı miktarda sıkıştırmayı hak ettiğinde, mod başına ortogonal bir taban istediğinizde ya da tensörün üçten fazla modu olduğunda.
  • t-SVD, veri doğal olarak tek bir yön boyunca bir matris yığını olduğunda, örneğin yanal dilim olarak saklanan görüntüler ya da zaman içindeki kareler, ve garantili en iyi kesmeye sahip SVD benzeri öznitelikler ile basit, paralel kod istediğinizde.
  • tc-SVD, t-SVD ile aynı durumlarda, o yönü başa sarmanın anlamsız olduğu hâllerde; örneğin başı ve sonu birbiriyle ilgisiz sinyallerde.

Deneylerim ne gösterdi

Tek bir kazanan yoktu. Tezimdeki kümeleme deneylerinde (on çalıştırmanın ortalaması alınmış en iyi NMI), ORL ve Extended Yale B'de iki taraflı tc-SVD, PIE-pose'da iki taraflı t-SVD, COIL-100'de ise 0,749 ile NMF'nin ve iki tensör SVD'sinin önünde HOSVD birinci oldu. HOSVD, Yale B ve COIL-100'de t-SVD ve tc-SVD'den daha hızlı da çalıştı. Sınıflandırmada t-SVD ve tc-SVD, %97 civarında neredeyse aynı MNIST doğruluğuna ulaştı. Verinizin yapısına ve çarpanlardan ne beklediğinize göre seçin, ardından kendi verinizde kontrol edin. Tensor Notları'nın 1. bölümü yapı taşlarını daha ayrıntılı ele alıyor.

Sık sorulan sorular

HOSVD, Tucker ayrışımıyla aynı şey mi?

Tucker modeldir: her mod boyunca bir faktör matrisiyle çarpılan bir çekirdek tensör. HOSVD ise onu hesaplamanın standart yoludur; her faktörü, karşılık gelen açılımın SVD'sinden alır.

Hangi tensör ayrışımı SVD'nin gerçek genellemesidir?

Hiçbiri matris tekil değer ayrışımının tüm özelliklerini korumaz. HOSVD ortogonal çarpanları korur ama köşegen çekirdeği kaybeder, CP rank-bir terimlerin toplamını korur ama ortogonalliği kaybeder; t-SVD ise çarpma işlemini değiştirerek ortogonalliği ve optimal kesmeyi korur.

CP rankı, çok doğrusal rank ve tüp rankı arasındaki fark nedir?

CP rankı, toplandığında tensörü veren rank-bir terimlerin en küçük sayısıdır. Çok doğrusal rank, açılımların ranklarından oluşan demettir ve Tucker bunu keser. Tüp rankı, t-SVD'deki sıfırdan farklı tekil tüplerin sayısıdır.

Bir görüntü yığını için hangi ayrışımı kullanmalıyım?

Garantili en iyi kesmeye sahip, hızlı, SVD benzeri öznitelikler istiyorsanız, görüntüleri dilim olarak alan t-SVD veya tc-SVD iyi bir başlangıçtır; her mod için ayrı sıkıştırma istiyorsanız Tucker kullanın. Kümeleme deneylerimde en iyi yöntem veri kümesinden veri kümesine değişti; bu yüzden kendi verinizde test edin.

Bu bölümdeki diğer sayfalar

Tensör rehberleri