Veri bilimi ve makine öğrenmesinde tensör, sayılardan oluşan çok boyutlu bir dizidir. Boyut sayısına mertebe, her bir boyuta ise mod denir: vektör birinci mertebeden, matris ikinci mertebeden bir tensördür; gri tonlamalı bir video (yükseklik × genişlik × kare) ise üçüncü mertebedendir. Tensörü tek bir uzun vektöre düzleştirmek yerine doğrudan onunla çalışmak, komşu değerleri birbirine bağlayan yapıyı korur.
Mertebe ve modlar
Matematik ve fizikte bu sözcük daha fazla donanım taşır: orada bir tensör, koordinat değişimi altında nasıl değiştiğine dair kurallarla birlikte gelir. Veri çalışmalarında bunu bir kenara bırakabilir ve N mertebeli bir tensörü, boyutu I1×I2×…×IN olan N indisli bir dizi olarak ele alabilirsiniz. Tek bir sayının mertebesi sıfırdır.
Somut bir örnek: saniyede 25 kare ve 768×576 piksel çözünürlükte otuz saniyelik gri tonlamalı bir klip, 576×768×750 boyutunda bir tensördür. Mod 1 yükseklik, mod 2 genişlik, mod 3 zamandır ve 750 karenin her biri 442.368 sayı içerir. Renk kanallarını da tutarsanız aynı klip dördüncü mertebeden bir tensöre dönüşür.

Üçüncü mertebeden bir tensör ve üç modu.
Lifler
Biri hariç tüm indisleri sabitlerseniz bir lif elde edersiniz; lif bir vektördür. Üçüncü mertebeden bir X tensörünün üç tür lifi vardır: mod 1 boyunca sütun lifleri X(:, j, k), mod 2 boyunca satır lifleri X(i, :, k) ve mod 3 boyunca tüp lifleri X(i, j, :). Videoda bir tüp lifi, zaman içinde izlenen tek bir pikseldir; düzleştirmenin dağıttığı ilişki de tam olarak budur.
Dilimler
İkisi hariç tüm indisleri sabitlerseniz bir dilim elde edersiniz; dilim bir matristir. Ön dilimler X(:, :, k) video için doğal olanlardır, çünkü her biri bir karedir. Yatay dilimler X(i, :, :) ve yanal dilimler X(:, j, :) aynı veri bloğunu diğer iki yönden keser.

Aynı tensörün yatay dilimleri (solda) ve yanal dilimleri (sağda).
Yanal dilimler ileride yeniden karşımıza çıkacak. Tezimde görüntüleri t-SVD ve tc-SVD ile sınıflandırırken her görüntüyü n1×1×n3 boyutunda bir yanal dilim olarak sakladım; böylece ikinci mod örnekleri sayıyordu ve her görüntü iki boyutlu şeklini koruyordu.
Açılım (matrisleştirme)
Matrisleştirme olarak da adlandırılan açılım, bir tensörün mod-n liflerini bir matrisin sütunları olarak dizer ve X(n) ile gösterilir. I1×I2×I3 boyutunda bir tensör için X(1) matrisi I1×I2I3, X(2) matrisi I2×I1I3, X(3) matrisi ise I3×I1I2 boyutundadır. 3×4×2 boyutunda bir tensör mod 1 boyunca açıldığında, iki ön dilimi yan yana dizilmiş 3×8 boyutunda bir matris olur; mod 2 boyunca açıldığında ise transpozu alınmış dilimlerden oluşan 4×6 boyutunda bir matris olur.
Hiçbir şey atılmaz. Her açılım aynı sayılara başka bir bakıştır ve tensör yöntemleri işi, tekil değer ayrışımı (SVD) gibi zaten güvendiğiniz matris araçlarına bu yolla devreder. NumPy'da, n 0'dan sayıldığında, yaygın kurallardan biri np.moveaxis(X, n, 0).reshape(X.shape[n], -1, order="F") şeklindedir. Kütüphaneler sütunları farklı sıralar; bu yüzden sonuçları farklı kod tabanları arasında karşılaştırmadan önce kuralı kontrol edin.
Mod-n çarpımı
Mod-n çarpımı, bir tensörün her mod-n lifini aynı matrisle çarpar. I1×…×IN boyutunda bir X tensörü ve J×In boyutunda bir U matrisi için Y = X ×n U sonucu aynı boyuttadır; tek fark, In yerine J gelmesidir. Açılmış biçimde bu tek bir matris çarpımıdır:
Y(n) = U X(n)
J değeri In değerinden küçükse mod n küçülür ve diğer modlar olduğu gibi kalır; tezimdeki örnekte bir tensörün 2. modu 8'den 2'ye indiriliyor. U matrisinin satırları ortonormal olduğunda her mod-n lifi J doğrultu üzerine izdüşürülür; bu, veriyi temel bileşenler üzerine izdüşürmenin tensördeki karşılığıdır. Tucker ayrışımı ve HOSVD bu tek işlem üzerine kuruludur.
Neden basitçe düzleştirmiyoruz?
Bir tensörü vektörlere düzleştirmek size iki ayrı açıdan bedel ödetir.
- Yapı. Bir görüntüde yan yana duran iki piksel, vektörde yüzlerce konum uzağa düşebilir; ardışık karelerdeki aynı piksel ise daha da uzağa düşer. Model bu durumda, dizinin size bedavaya verdiği ilişkileri yeniden keşfetmek zorunda kalır.
- Boyut. Uzun vektörler büyük bir öznitelik uzayı demektir. Eğitim örneği sayısı sabitken, belli bir noktadan sonra öznitelik eklemek tahminleri kötüleştirir: Hughes olgusu (1968), Bellman'ın boyut laneti dediği şeyin bir yüzü. Hesaplama maliyeti de bununla birlikte büyür. m örnek için bir kernel SVM eğitmek kabaca O(m³) zaman ve O(m²) bellek gerektirir; PCA veya doğrusal regresyon ise n öznitelik için yaklaşık O(mn² + n³) maliyetlidir.
Veriyi tensör olarak tutmak yapısını korur, ama tek başına hiçbir tasarruf sağlamaz. Tasarruf, tıpkı SVD'nin bir matrisi ayrıştırması gibi tensörü ayrıştırmaktan ve yalnızca bilgi taşıyan parçaları tutmaktan gelir.
Sonraki adımlar
CP, Tucker ve t-SVD karşılaştırması, her ayrışımın bu yapı taşlarıyla ne yaptığını gösteriyor; t-SVD rehberi ise tezimin üzerine kurulduğu ayrışımı anlatıyor. Aynı konunun video örneği ve açılım ile mod-n çarpımı için NumPy koduyla daha uzun bir anlatımı için Tensor Notları'nın 1. bölümü, Verinizi Düzleştirmeyi Bırakın yazısını okuyun.
Sık sorulan sorular
Tensör, çok boyutlu bir diziyle aynı şey mi?
Veri bilimi ve makine öğrenmesi için evet: tensör N indisli bir dizidir ve N onun mertebesidir. Matematik ve fizikte bu sözcük, nesnenin koordinat değişimi altında nasıl değiştiğine dair kuralları da içerir.
Lif ile dilim arasındaki fark nedir?
Lif, biri hariç tüm indisleri sabitler, dolayısıyla bir vektördür; örneğin bir videonun tüm kareleri boyunca izlenen tek bir piksel. Dilim, ikisi hariç tüm indisleri sabitler, dolayısıyla bir matristir; örneğin tek bir kare.
Bir tensörün açılımı (matrisleştirme) ne demektir?
Açılım, bir tensörün mod-n liflerini bir matrisin sütunları olarak dizer. Hiçbir değer kaybolmaz ve sonuç, tekil değer ayrışımı (SVD) gibi matris araçlarına verilebilir.
Mod-n çarpımı nedir?
Bir tensörün her mod-n lifini aynı U matrisiyle çarpar; açılmış biçimde bu, U ile X(n) arasındaki tek bir çarpımdır. Bir modun boyutunu değiştirir, diğerlerine dokunmaz ve Tucker ayrışımının temel yapı taşıdır.
Görüntüleri veya videoyu neden vektörlere düzleştirmemeli?
Düzleştirme, birbirine ait değerleri, örneğin komşu pikselleri ya da kareler boyunca aynı pikseli, birbirinden ayırır ve öznitelik uzayını şişirir. Tensör yöntemleri bu yapıyı korur ve daha kompakt öznitelikler verir.
Mahdi Molavi