张量的基本概念及应用
文章目錄
- 張量
- 張量及其表示
- 張量的線性代數(shù)表示
- 三階張量
- 張量的矩陣化和向量化
- 張量的水平展開與向量化
- 張量的基本代數(shù)運算
- 張量的內(nèi)積、范數(shù)和外積
張量
基于張量的數(shù)據(jù)分析稱為張量分析(tensor analysis),屬于多重線性數(shù)據(jù)分析(multilinear data analysis)。
張量及其表示
數(shù)據(jù)沿一相同方向的排列稱為一路陣列。標量稱為零路陣列,行向量和列向量稱為沿水平和垂直方向排列的一路陣列。矩陣是數(shù)據(jù)沿水平和垂直方向排列的二路陣列。張量即為數(shù)據(jù)的多路陣列表示,一個張量就是一個多路陣列或多維陣列,它是矩陣的一種擴展。
張量的數(shù)學符號表示為花體符號如T,A,X\mathcal{T,A,X}T,A,X。nnn路陣列表示為nnn階張量,是定義在nnn個向量空間的笛卡爾積上的多重線性函數(shù),記為T∈KI1×I2×?×In\mathcal{T} \in\mathbb{K}^{I_1\times I_2\times \cdots \times I_n}T∈KI1?×I2?×?×In?。
其中K\mathbb{K}K代表實數(shù)域R\mathbb{R}R或復數(shù)域C\mathbb{C}C。張量是跨越nnn個向量空間的多線性映射,有:
T:KI1×KI2×?×KIn→KI1×I2×?×In\mathcal{T}:\mathbb{K}^{I_1}\times\mathbb{K}^{I_2}\times\cdots\times\mathbb{K}^{I_n}\rightarrow\mathbb{K}^{I_1\times I_2\times \cdots \times I_n} T:KI1?×KI2?×?×KIn?→KI1?×I2?×?×In?
張量在各個領域均有應用,包括醫(yī)學,化學等。
張量的線性代數(shù)表示
線性代數(shù)即有限維向量空間的矩陣的代數(shù),定義一個有限維向量空間的線性算子。多重線性代數(shù)即高階張量代數(shù),定義了一組有限維向量空間的多重線性算子。
矩陣A∈Km×n{\bm{A}}\in\mathbb{K}^{m\times n}A∈Km×n用其元素和矩陣符號表示[?][\cdot][?]表示為A=[aij]i,j=1m,n{\bm{A}} = [a_{ij}]_{i,j=1}^{m,n}A=[aij?]i,j=1m,n?。同樣地,張量的表示可以寫為A∈KI1×I2×?×In\mathcal{A} \in\mathbb{K}^{I_1\times I_2\times \cdots \times I_n}A∈KI1?×I2?×?×In?使用雙重矩陣符號{?}\begin{Bmatrix}\cdot \end{Bmatrix}{??}表示為A={ai1?in}i1,?in=1I1,?,In\mathcal{A}= \begin{Bmatrix}a_{i_1\cdots i_n} \end{Bmatrix}_{i_1,\cdots i_n=1}^{I_1,\cdots,I_n}A={ai1??in???}i1?,?in?=1I1?,?,In??,其中ai1?ina_{i_1\cdots i_n}ai1??in??是張量第(i1?in)({i_1\cdots i_n})(i1??in?)元素。
三階張量
最常用的是三階張量,有時也稱為三維矩陣。
三階張量的三路陣列不以行向量、列向量等相稱,改稱張量纖維(tensor fiber)。纖維是只保留一個下標可變,固定其他所有下標不變的一路陣列。水平纖維、豎直纖維、縱深纖維。例如:三階張量A∈KI×J×K\mathcal{A}\in\mathbb{K}^{I\times J\times K}A∈KI×J×K,其符號表示纖維為:ai:k,a:jk,aij:a_{i:k},a_{:jk},a_{ij:}ai:k?,a:jk?,aij:?。
- 定義1:NNN階張量A={ai1?in}i1,?in=1I1,?,In∈KI1×I2×?×In\mathcal{A}= \begin{Bmatrix}a_{i_1\cdots i_n} \end{Bmatrix}_{i_1,\cdots i_n=1}^{I_1,\cdots,I_n}\in \mathbb{K}^{I_1\times I_2\times \cdots\times I_n}A={ai1??in???}i1?,?in?=1I1?,?,In??∈KI1?×I2?×?×In?的模式-nnn向量是一個以ini_nin?為元素下標變量,而其他下標均固定不變的InI_nIn?維向量,記作Ai1?in?1:in+1?iN{\bf{A}}_{i_1\cdots i_n-1:i_n+1\cdots i_N}Ai1??in??1:in?+1?iN??。
注意張量階數(shù)和維數(shù)的區(qū)別:NNN稱為階數(shù),InI_nIn?稱為第nnn路陣列的維數(shù)。
高階張量也可以使用矩陣的集合表示。如三階張量可以使用矩陣組成水平切片、側(cè)向切片、正面切片等,符號表示為:Ai::,A:j:,A::k{\bf{A}}_{i::},{\bf{A}}_{:j:},{\bf{A}}_{::k}Ai::?,A:j:?,A::k?。
切片的數(shù)學表示:
Ai::=[ai11?ai1K???aiJ1?aiJK]=[ai:1,?,ai:K]=[ai1:?aiJ:],i=1,?,I{\bf{A}}_{i::}=\begin{bmatrix}a_{i11}&\cdots & a_{i1K}\\ \vdots & \ddots & \vdots \\ a_{iJ1} & \cdots & a_{iJK}\end{bmatrix}=\begin{bmatrix}\bm{a}_{i:1},\cdots,\bm{a}_{i:K}\end{bmatrix}=\begin{bmatrix}\bm{a}_{i1:}\\\vdots\\\bm{a}_{iJ:}\end{bmatrix},i=1,\cdots,I Ai::?=????ai11??aiJ1??????ai1K??aiJK??????=[ai:1?,?,ai:K??]=????ai1:??aiJ:??????,i=1,?,I
A:j:=[a1j1?aIj1???a1jK?aIjK]=[a1j:,?,aIj:]=[a:j1?a:jK],j=1,?,J{\bf{A}}_{:j:}=\begin{bmatrix}a_{1j1}&\cdots & a_{Ij1}\\ \vdots & \ddots & \vdots \\ a_{1jK} & \cdots & a_{IjK}\end{bmatrix}=\begin{bmatrix}\bm{a}_{1j:},\cdots,\bm{a}_{Ij:}\end{bmatrix}=\begin{bmatrix}\bm{a}_{:j1}\\\vdots\\\bm{a}_{:jK}\end{bmatrix},j=1,\cdots,J A:j:?=????a1j1??a1jK??????aIj1??aIjK??????=[a1j:?,?,aIj:??]=????a:j1??a:jK??????,j=1,?,J
3.三階張量A∈KI×J×K\mathcal{A}\in\mathbb{K}^{I\times J\times K}A∈KI×J×K有KKK個正面切片
A::k=[a11k?a1Jk???aI1k?aIJk]=[a:1k,?,a:Jk]=[a1:k?aI:k],k=1,?,K{\bf{A}}_{::k}=\begin{bmatrix}a_{11k}&\cdots & a_{1Jk}\\ \vdots & \ddots & \vdots \\ a_{I1k} & \cdots & a_{IJk}\end{bmatrix}=\begin{bmatrix}\bm{a}_{:1k},\cdots,\bm{a}_{:Jk}\end{bmatrix}=\begin{bmatrix}\bm{a}_{1:k}\\\vdots\\\bm{a}_{I:k}\end{bmatrix},k=1,\cdots,K A::k?=????a11k??aI1k??????a1Jk??aIJk??????=[a:1k?,?,a:Jk??]=????a1:k??aI:k??????,k=1,?,K
張量的矩陣化和向量化
張量的計算中希望使用矩陣代表一個三階張量。將一個三路或NNN路陣列重新組織成一個矩陣形式的變換稱為張量的矩陣化(matricization or matricizing)。也稱張量的展開(unfolding)或扁平化(flattening)。
向量化同理。
張量的水平展開與向量化
張量的基本代數(shù)運算
張量的內(nèi)積、范數(shù)和外積
- 定義:張量的內(nèi)積,若A,B∈T(I1,I2,?,In)\mathcal{A,B}\in \mathcal{T}(I_1,I_2,\cdots,I_n)A,B∈T(I1?,I2?,?,In?),則A\mathcal{A}A和B\mathcal{B}B的內(nèi)積為標量,定義為兩個張量的列向量化之間的內(nèi)積
?A,B?=def?vec(A),vec(B)?=(vec(A))Hvec(B)=∑i1=1I1∑i2=1I2?∑in=1Inai1i2?in?bi1i2?in\left \langle \mathcal{A,B}\right \rangle\overset{\text{def}}{=}\left\langle vec(\mathcal{A}),vec(\mathcal{B})\right\rangle=(vec(\mathcal{A}))^Hvec(\mathcal{B})\\ =\sum_{i_1=1}^{I_1}\sum_{i_2=1}^{I_2}\cdots\sum_{i_n=1}^{I_n}a_{i_1i_2\cdots i_n}^{*}b_{i_1i_2\cdots i_n} ?A,B?=def?vec(A),vec(B)?=(vec(A))Hvec(B)=i1?=1∑I1??i2?=1∑I2???in?=1∑In??ai1?i2??in???bi1?i2??in??
其中?*?表示復共軛。
根據(jù)張量內(nèi)積的概念,可以得到其張量范數(shù)的定義。
- 定義(張量的Frobenius范數(shù)):張量A\mathcal{A}A的Frobenius范數(shù)的定義為:
∥A∥F=?A,A?=def(∑i1=1I1∑i2=1I2?∑in=1In∣ai1i2?in∣2)1/2\left \| \mathcal{A} \right \|_F=\sqrt{\left \langle \mathcal{A,A}\right\rangle}\overset{\text{def}}{=}\left( \sum_{i_1=1}^{I_1}\sum_{i_2=1}^{I_2}\cdots\sum_{i_n=1}^{I_n}\left| a_{i_1i_2\cdots i_n}\right|^2\right)^{1/2} ∥A∥F?=?A,A??=def(i1?=1∑I1??i2?=1∑I2???in?=1∑In??∣ai1?i2??in??∣2)1/2
其內(nèi)積和范數(shù)具有如下性質(zhì): - 張量的范數(shù)可以轉(zhuǎn)化成張量的矩陣化的范數(shù)
∥A∥=∥A(In×I1?In?1In+1?IN)∥=∥A(I1?In?1In+1?IN×In)∥\left \| \mathcal{A} \right \|=\left \| \bm{A}^{(I_n\times I_1\cdots I_{n-1}I_{n+1}\cdots I_N)} \right \|=\left \| \bm{A}^{(I_1\cdots I_{n-1}I_{n+1}\cdots I_N\times I_n)} \right \| ∥A∥=∥∥∥?A(In?×I1??In?1?In+1??IN?)∥∥∥?=∥∥∥?A(I1??In?1?In+1??IN?×In?)∥∥∥? - 張量的范數(shù)可以改成張量的向量化函數(shù)的范數(shù)
∥A∥=∥a(I1I2?IN×1)∥=∥a(1×I1I2?IN)∥\left \| \mathcal{A} \right \|=\left\| \bm{a}^{(I_1I_2\cdots I_N\times 1)}\right\|=\left\| \bm{a}^{(1\times I_1I_2\cdots I_N)}\right\| ∥A∥=∥∥∥?a(I1?I2??IN?×1)∥∥∥?=∥∥∥?a(1×I1?I2??IN?)∥∥∥? - 兩個張量之差的范數(shù)平方
∥A?B∥2=∥A∥2?2?A,B?+∥B∥2\left \| \mathcal{A-B} \right \|^2=\left \| \mathcal{A} \right \|^2-2\left \langle \mathcal{A,B}\right\rangle+\left \| \mathcal{B} \right \|^2 ∥A?B∥2=∥A∥2?2?A,B?+∥B∥2 - 若Q∈KJ×InQ\in\mathbb{K}^{J\times I_n}Q∈KJ×In?為標準正交矩陣,即QQH=IJ×JQQ^H=I_{J\times J}QQH=IJ×J?或QHQ=IIn×INQ^HQ=I_{I_n\times I_N}QHQ=IIn?×IN??,則有
∥A×nQ∥=∥A∥\left \| \mathcal{A}{\times_n} Q \right \|=\left \| \mathcal{A} \right \| ∥A×n?Q∥=∥A∥ - 令A,B∈KI1×I2×?×IN,an,bn∈KJ×In\mathcal{A,B}\in \mathbb{K}^{I_1\times I_2 \times \cdots \times I_N},\bm{a}_n,\bm{b}_n\in \mathbb{K}^{J\times I_n}A,B∈KI1?×I2?×?×IN?,an?,bn?∈KJ×In?,其A=a1°a2°?aN\mathcal{A}=\bm{a_1}\circ\bm{a_2}\circ\cdots \bm{a_N}A=a1?°a2?°?aN?和B=b1°b2°?bN\mathcal{B}=\bm{b_1}\circ\bm{b_2}\circ\cdots \bm{b_N}B=b1?°b2?°?bN?,則
?A,B?=∏=1N?an,bn?\left \langle \mathcal{A,B}\right\rangle=\prod_{=1}^{N}\left \langle \mathcal{\bm{a}_n,\bm{b}_n}\right\rangle ?A,B?==1∏N??an?,bn??
向量的外積(output product)為一個矩陣,有X=uvT\bf{X}=\bm{uv}^TX=uvT多個向量的外積給出一張量。使用°\circ°表示多個向量的外積。
- 定義 (向量外積)nnn個向量a(i)∈Ki×1,i=1,?,na^{(i)}\in \mathbb{K}^{i\times 1},i=1,\cdots ,na(i)∈Ki×1,i=1,?,n的外積記為a(1)°a(2)°?×a(n)a^{(1)}\circ a^{(2)}\circ \cdots \times a^{(n)}a(1)°a(2)°?×a(n),其中為一個張量,有
A=a(1)°a(2)°?a(n)\mathcal{A}=\bm{a^{(1)}}\circ\bm{a^{(2)}}\circ\cdots \bm{a^{(n)}} A=a(1)°a(2)°?a(n)
使用元素形式定義為
ai1i2?in=ai1(1)ai2(2)?ai1(1)a_{i_1i_2\cdots i_n}=a_{i_1}^{(1)}a_{i_2}^{(2)}\cdots a_{i_1}^{(1)} ai1?i2??in??=ai1?(1)?ai2?(2)??ai1?(1)?
式中aj(i)a_{j}^{(i)}aj(i)?是模式?n-n?n的第jjj個元素。
向量的外積可以推廣到張量的外積,有
- 定義:(張量外積)兩個張量A∈KI1×I2×?×IN\mathcal{A}\in \mathbb{K}^{I_1\times I_2 \times \cdots \times I_N}A∈KI1?×I2?×?×IN?和B∈KJ1×J2×?×JN\mathcal{B}\in \mathbb{K}^{J_1\times J_2 \times \cdots \times J_N}B∈KJ1?×J2?×?×JN?的外積仍為張量,記作A°B∈KI1×?×IP×J1×?×JQ\mathcal{A\circ B}\in \mathbb{K}^{I_1\times \cdots \times I_P\times J_1 \times \cdots\times J_Q}A°B∈KI1?×?×IP?×J1?×?×JQ?
(A°B)i1?iPj1?jQ=ai1?iPbj1?jQ(\mathcal{A\circ B})_{i_1\cdots i_Pj_1\cdots j_Q}=a_{i_1\cdots i_P}b_{j_1\cdots j_Q} (A°B)i1??iP?j1??jQ??=ai1??iP??bj1??jQ??
《矩陣分析與應用(第2版)》第10章 張量分析——張賢達
總結(jié)
以上是生活随笔為你收集整理的张量的基本概念及应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单片机原理及应用程序c语言版题库,单片机
- 下一篇: 单片机原理及应用(c51语言版)(一)