張量分解基礎(chǔ)

張量分解

Notation and Preliminaries(張量的符號(hào)和術(shù)語(yǔ))

一維張量用小寫(xiě)粗體字母表示,例如\mathbf{a};二維張量使用大寫(xiě)粗體字母表示,例如\mathbf{A};更高階的張量使用粗體歐拉字母表示,例如\mathcal{X};標(biāo)量使用小寫(xiě)字母表示。

當(dāng)索引的子集固定時(shí)形成子陣列。冒號(hào)表示這模式中的所有元素。和python編程中類似。例如使用\mathbf { a } _{ : j }表示矩陣\mathbf{A}的第j列;使用\mathbf{a}_{i:}表示矩陣\mathbf{A}的第i行。

Fibers:固定原本張量的n-1個(gè)維度得到的子陣列。

Slices:固定張量的1個(gè)維度得到的子陣列。

張量的范數(shù)(類似矩陣的F范數(shù)):

\| x \| = \sqrt { \sum _{ i_ { 1 } = 1 } ^ { I _{ 1 } } \sum_ { i _{ 2 } = 1 } ^ { I_ { 2 } } \cdots \sum _{ i_ { N } = 1 } ^ { I _{ N } } x_ { i _{ 1 } i_ { 2 } \cdots i _ { N } } ^ { 2 } }

張量的內(nèi)積(對(duì)應(yīng)位置相乘后相加):

\langle x , y \rangle = \sum _{ i_ { 1 } = 1 } ^ { I _{ 1 } } \sum_ { i _{ 2 } = 1 } ^ { I_ { 2 } } \cdots \sum _{ i_ { N } = 1 } ^ { I _{ N } } x_ { i _{ 1 } i_ { 2 } \cdots i _{ N } } y_ { i _{ 1 } i_ { 2 } \cdots i _ { N } }

Rank-One Tensors:N維張量\mathcal { X } \in \mathbb { R } ^ { I _{ 1 } \times I_ { 2 } \times \cdots \times I _ { N } }如果能夠?qū)懗蒒個(gè)向量的外積相乘的形式就稱這個(gè)張量為Rank-One Tensors。

就是說(shuō),原來(lái)張量的每一個(gè)位置上的元素x _{ i_ { 1 } i _{ 2 } \cdots i_ { N } }為:

x _{ i_ { 1 } i _{ 2 } \cdots i_ { N } } = a _{ i_ { 1 } } ^ { ( 1 ) } a _{ i_ { 2 } } ^ { ( 2 ) } \cdots a _{ i_ { N } } ^ { ( N ) } \quad \text { for all } 1 \leq i _{ n } \leq I_ { n }

Symmetry(對(duì)稱):如果一個(gè)張量的每一個(gè)維度上的大小是相等的,那么稱這個(gè)張量為:cubical。如果一個(gè)cubical的每一個(gè)位置上的元素的索引隨意組合后對(duì)應(yīng)位置上的元素沒(méi)發(fā)生變化,則稱為supersymmetric。

如果三維張量\mathcal { X } \in \mathbb { R } ^ { I \times I \times I }滿足以下條件:

x _{ i j k } = x_ { i k j } = x _{ j i k } = x_ { j k i } = x _{ k i j } = x_ { k j i } \quad \text { for all } i , j , k = 1 , \ldots , I

則稱該三維張量為一個(gè)supersymmetric

同時(shí)對(duì)于較高維度的張量來(lái)說(shuō),還存在部分對(duì)稱(partially symmetry)的情況,即在某一個(gè)維度上切片都是對(duì)稱的。

Diagonal Tensor:對(duì)張量\mathcal { X } \in \mathbb { R } ^ { I _{ 1 } \times I_ { 2 } \times \cdots \times I _{ N } }來(lái)說(shuō):如果只在i_ { 1 } = i _{ 2 } = \dots = i_ { N }的位置上有值,其余地方都為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層比較類似。

例如:\mathbf{X}\in\mathbb { R } ^ { 3 \times 4 \times 2 },

\mathbf { X } _ { 1 } = \left[ \begin{array} { } { 1 } & { 4 } & { 7 } & { 10 } \\ { 2 } & { 5 } & { 8 } & { 11 } \\ { 3 } & { 6 } & { 9 } & { 12 } \end{array} \right] , \quad \mathbf { X } _ { 2 } = \left[ \begin{array} { } { 13 } & { 16 } & { 19 } & { 22 } \\ { 14 } & { 17 } & { 20 } & { 23 } \\ { 15 } & { 18 } & { 21 } & { 24 } \end{array} \right]

那么

\mathbf { X } _ { ( 1 ) } = \left[ \begin{array} {} { 1 } & { 4 } & { 7 } & { 10 } & { 13 } & { 16 } & { 19 } & { 22 } \\ { 2 } & { 5 } & { 8 } & { 11 } & { 14 } & { 17 } & { 20 } & { 23 } \\ { 3 } & { 6 } & { 9 } & { 12 } & { 15 } & { 18 } & { 21 } & { 24 } \end{array} \right]

\mathbf { X } _ { ( 2 ) } = \left[ \begin{array} { } { 1 } & { 2 } & { 3 } & { 13 } & { 14 } & { 15 } \\ { 4 } & { 5 } & { 6 } & { 16 } & { 17 } & { 18 } \\ { 7 } & { 8 } & { 9 } & { 19 } & { 20 } & { 21 } \\ { 10 } & { 11 } & { 12 } & { 22 } & { 23 } & { 24 } \end{array} \right]

\mathbf { X } _ { ( 3 ) } = \left[ \begin{array} { } { 1 } & { 2 } & { 3 } & { 4 } & { 5 } & { \cdots } & { 9 } & { 10 } & { 11 } & { 12 } \\ { 13 } & { 14 } & { 15 } & { 16 } & { 17 } & { \cdots } & { 21 } & { 22 } & { 23 } & { 24 } \end{array} \right]

這個(gè)地方下標(biāo)是幾,很坐標(biāo)就是幾維的。

Tensor Multiplication:The n-Mode Product:張量x \in \mathbb { R } ^ { I _{ 1 } \times I_ { 2 } \times \cdots \times I _{ N } }和矩陣\mathbf{U}\in\mathbb { R } ^ { J \times I_ { n } }在第n個(gè)模式上的乘積可以寫(xiě)作:\mathcal { X } \times _{ n } \mathbf { U }。這個(gè)是在第n個(gè)模式上維度必須相同。并且最終獲得的張量的大小如下:I_ { 1 } \times \cdots \times I _{ n - 1 } \times J \times I_ { n + 1 } \times \cdots \times I _ { N }。概念比較抽象。

例如對(duì)于二維張量的情況,用下面這個(gè)圖來(lái)進(jìn)行理解。

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

例如對(duì)于三維張量和矩陣相乘的情況:

我們將第一幅圖的每一個(gè)豎條上的元素和第二幅圖上矩陣的橫條的元素對(duì)應(yīng)相乘后在求和,放回他應(yīng)該在的位置。

然后對(duì)應(yīng)的一個(gè)性質(zhì)是:

y = x \times _ { n } \mathrm { U } \quad \Leftrightarrow \quad \mathrm { Y } _ { ( n ) } = \mathrm { UX } _ { ( n ) }

Kronecker積(克羅內(nèi)克積):

\mathbf { A } \in \mathbb { R } ^ { I \times J }\mathbf { B } \in \mathbb { R } ^ { K \times L }的克羅內(nèi)克積為:

\mathbf { A } \otimes \mathbf { B } = \left[ \begin{array} {} { a _ { 11 } \mathbf { B } } & { a _ { 12 } \mathbf { B } } & { \cdots } & { a _ { 1 J } \mathbf { B } } \\ { a _ { 21 } \mathbf { B } } & { a _ { 22 } \mathbf { B } } & { \cdots } & { a _ { 2 J } \mathbf { B } } \\ { \vdots } & { \vdots } & { \ddots } & { \vdots } \\ { a _ { I 1 } \mathbf { B } } & { a _ { I 2 } \mathbf { B } } & { \cdots } & { a _ { I J } \mathbf { B } } \end{array} \right]

Khatri-Rao積(KR積):

要求列數(shù)相等:\mathbf { A } \in \mathbb { R } ^ { I \times K }\mathbf { B } \in \mathbb { R } ^ { J \times K }:A \odot B的維度是(IJ)×K。

\mathbf { A } \odot \mathbf { B } = \left[ \begin{array} { } { \mathbf { a } _ { 1 } \otimes \mathbf { b } _ { 1 } } & { \mathbf { a } _ { 2 } \otimes \mathbf { b } _ { 2 } } & { \cdots } & { \mathbf { a } _ { K } \otimes \mathbf { b } _ { K } } \end{array} \right]

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容