張量分解
Notation and Preliminaries(張量的符號(hào)和術(shù)語(yǔ))
一維張量用小寫(xiě)粗體字母表示,例如;二維張量使用大寫(xiě)粗體字母表示,例如
;更高階的張量使用粗體歐拉字母表示,例如
;標(biāo)量使用小寫(xiě)字母表示。
當(dāng)索引的子集固定時(shí)形成子陣列。冒號(hào)表示這模式中的所有元素。和python編程中類似。例如使用表示矩陣
的第j列;使用
表示矩陣
的第i行。
Fibers:固定原本張量的n-1個(gè)維度得到的子陣列。
Slices:固定張量的1個(gè)維度得到的子陣列。
張量的范數(shù)(類似矩陣的F范數(shù)):
張量的內(nèi)積(對(duì)應(yīng)位置相乘后相加):
Rank-One Tensors:N維張量如果能夠?qū)懗蒒個(gè)向量的外積相乘的形式就稱這個(gè)張量為Rank-One Tensors。
就是說(shuō),原來(lái)張量的每一個(gè)位置上的元素為:
Symmetry(對(duì)稱):如果一個(gè)張量的每一個(gè)維度上的大小是相等的,那么稱這個(gè)張量為:cubical。如果一個(gè)cubical的每一個(gè)位置上的元素的索引隨意組合后對(duì)應(yīng)位置上的元素沒(méi)發(fā)生變化,則稱為supersymmetric。
如果三維張量滿足以下條件:
則稱該三維張量為一個(gè)supersymmetric。
同時(shí)對(duì)于較高維度的張量來(lái)說(shuō),還存在部分對(duì)稱(partially symmetry)的情況,即在某一個(gè)維度上切片都是對(duì)稱的。
Diagonal Tensor:對(duì)張量來(lái)說(shuō):如果只在
的位置上有值,其余地方都為0,則稱其為對(duì)角張量。對(duì)角張量不一定是一個(gè)立方體。
Matricization:Transforming a Tensor into a Matrix:將一個(gè)N維張量展開(kāi)成為一個(gè)矩陣。例如一個(gè)2×3×4的張量可以被展開(kāi)為為3×8或者6×4的矩陣。這個(gè)的公式比較復(fù)雜,但是用例子理解很簡(jiǎn)單。就是把原來(lái)的張量沿著不同的維度展開(kāi)可以得到不同的新的張量。這個(gè)和卷積神經(jīng)網(wǎng)絡(luò)中將卷積層展開(kāi)成dense層比較類似。
例如:,
那么
這個(gè)地方下標(biāo)是幾,很坐標(biāo)就是幾維的。
Tensor Multiplication:The n-Mode Product:張量和矩陣
在第n個(gè)模式上的乘積可以寫(xiě)作:
。這個(gè)是在第n個(gè)模式上維度必須相同。并且最終獲得的張量的大小如下:
。概念比較抽象。
例如對(duì)于二維張量的情況,用下面這個(gè)圖來(lái)進(jìn)行理解。

當(dāng)張量的維度比較高的時(shí)候,我們可以這樣理解,新得到的一個(gè)位置上的元素是去掉沿著第n個(gè)模式的抽出來(lái)的條(fibers)上的元素和矩陣
進(jìn)行相乘后加起來(lái)。
例如對(duì)于三維張量和矩陣相乘的情況:


我們將第一幅圖的每一個(gè)豎條上的元素和第二幅圖上矩陣的橫條的元素對(duì)應(yīng)相乘后在求和,放回他應(yīng)該在的位置。
然后對(duì)應(yīng)的一個(gè)性質(zhì)是:
Kronecker積(克羅內(nèi)克積):
和
的克羅內(nèi)克積為:
Khatri-Rao積(KR積):
要求列數(shù)相等:和
:
的維度是
。