数学小抄: 张量基础学习

前言

矩阵是一个数表, 而张量则是在这个数表的基础上给予更多的物理含义, 也就是说赋予每个数一定的运算规则. 本篇博客仅介绍一些基础的张量知识,来源于[An Introduction to Tensor Algebra]的附录A

正文
  1. tensor的阶次: 是指确定tensor一个元素所需要的下标数目. scalars 为0-order tensor, vectors为1-order tensor, matrix为2-order tensor, A ∈ C I 1 × I 2 × I n × ⋯ × I N \mathcal{A}\in \mathbb{C}^{I_1\times I_2\times I_n \times \dots \times I_N} ACI1×I2×In××IN 为N阶的张量.

  2. tensor outer product与tensor的rank: 秩1-张量当且仅当该张量可以被写N个向量的外积. u 1 , u 2 , … , u N \rm{u}_1,\rm{u}_2,\dots,\rm{u}_N u1,u2,,uN为向量

    B = u 1 ∘ u 2 ∘ ⋯ ∘ u N \mathcal{B}=\rm{u}_1 \circ \rm{u}_2 \circ \dots \circ \rm{u}_N B=u1u2uN

    向量outer product不是叉积…
    u ∘ v = u v T = [ u 1 u 2 u 3 u 4 ] [ v 1 v 2 v 3 ] = [ u 1 v 1 u 1 v 2 u 1 v 3 u 2 v 1 u 2 v 2 u 2 v 3 u 3 v 1 u 3 v 2 u 3 v 3 u 4 v 1 u 4 v 2 u 4 v 3 ] u\circ v =uv^T= \begin{bmatrix} u_1\\ u_2\\ u_3\\ u_4 \end{bmatrix}\begin{bmatrix} v_1 & v_2 & v_3 \end{bmatrix} = \begin{bmatrix} u_1v_1 & u_1v_2 & u_1v_3\\ u_2v_1 & u_2v_2 & u_2v_3\\ u_3v_1 & u_3v_2 & u_3v_3\\ u_4v_1 & u_4v_2 & u_4v_3 \end{bmatrix} uv=uvT= u1u2u3u4 [v1v2v3]= u1v1u2v1u3v1u4v1u1v2u2v2u3v2u4v2u1v3u2v3u3v3u4v3

    rank 往往有基元组合的思想在其中,而 B \mathcal{B} B显然是不需要任何张量组合的, 故其自身就是一个rank1 张量.

    一个张量的秩是用来表达通过线性组合得到该张量的所需rank1张量的个数
    A = ∑ r = 1 R σ r = 1 ( u 1 ( r ) ∘ … u N ( r ) ) . \mathcal{A}=\sum^R_{r=1}\sigma_{r=1} (u^{(r)}_1 \circ \dots u^{(r)}_N). A=r=1Rσr=1(u1(r)uN(r)).
    上面的 A \mathcal{A} A是秩为R的张量.

  3. matrix unfolding of A \mathcal{A} A :
    A ( n ) ∈ R I n × ( I ( n + 1 ) … I N I 1 … I n − 1 ) \mathbf{A}_{(n)}\in \mathbb{R}^{I_n\times (I_(n+1) \dots I_N I_1 \dots I_{n-1})} A(n)RIn×(I(n+1)INI1In1)
    以第 n n n维为列, 以 I n + 1 … I N I 1 … I n − 1 I_{n+1}\dots I_{N} I_{1} \dots I_{n-1} In+1INI1In1 为行堆叠而成一个矩阵,注意这里的顺序. 看图最为清晰:
    tensor_unfolding
    tensor_unfolding2
    图片参考链接
    对应地: The n-rank of A \mathcal{A} A is defined as the rank of the n n n th unfolding of A \mathcal{A} A which is :
    R n = r a n k n ( A ) = r a n k ( A ( n ) ) R_n= rank_n(\mathcal{A})=rank(\mathbf{A}_{(n)}) Rn=rankn(A)=rank(A(n))

  4. n-mode Product : 张量 A ∈ R I 1 × I 2 × I 3 ⋯ × I n × ⋯ × I N \mathcal{A}\in \mathbb{R}^{I_1\times I_2\times I_3\dots \times I_n\times \dots \times I_N} ARI1×I2×I3×In××IN 以及矩阵 M ∈ R J n × I n M\in \mathbb{R}^{J_n\times I_n} MRJn×In. n-mode product between A \mathcal{A} A M M M 可以被定义为: B = A × n M \mathcal{B}=\mathcal{A}\times _nM B=A×nM.
    其中, 乘积得到的张量 B ∈ R I 1 × ⋯ × I n − 1 × J n × I n + 1 × ⋯ × I N \mathcal{B}\in \mathbb{R}^{I_1\times \dots \times I_{n-1}\times J_n \times I_{n+1} \times \dots \times I_N} BRI1××In1×Jn×In+1××IN .在其元素层面上,the n-mode product可以为:
    b i 1 … i n − 1 j n i n + 1 … i N = ∑ i n a i 1 … i n … i N m j n i n b_{i_1\dots i_{n-1}j_ni_{n+1}\dots i_N} = \sum_{i_n}a_{i_1\dots i_n\dots i_N}m_{j_ni_n} bi1in1jnin+1iN=inai1iniNmjnin
    利用tensor unfolding 有矩阵形式为:
    B ( n ) = M A ( n ) B_{(n)} = MA_{(n)} B(n)=MA(n)

  5. 张量求和约定:

    张量求和约定提供了一种简便的方法来表达张量元素的线性组合. 例子, 考虑输入向量为 x ∈ C 2 \mathbf{x}\in \mathbb{C}^{2} xC2. channel Matrix H ∈ C 2 × 2 \mathbf{H}\in \mathbb{C}^{2\times2} HC2×2. output vector y ∈ C 2 \mathbf{y}\in \mathbb{C}^{2} yC2.
    y 1 = h 11 x 1 + h 12 x 2 y 2 = h 21 x 1 + h 22 x 2 \begin{aligned} y_1 &= h_{11}x_1+h_{12}x_2\\ y_2 &= h_{21}x_1+h_{22}x_2 \end{aligned} y1y2=h11x1+h12x2=h21x1+h22x2
    m 是 自由指标,而n是简并指标
    y m = Σ n = 1 2 h m n x n y_m = \Sigma^2_{n=1}h_{mn}x_n ym=Σn=12hmnxn
    对于 m = 1 , 2 , n = 1 , 2 m=1,2, n=1,2 m=1,2,n=1,2, 使用简并表达,有:
    y m = h m n x n y_m = h_{mn}x_{n} ym=hmnxn

  6. 张量内积

    A ∈ C I 1 × I 2 × ⋯ × I N \mathcal{A}\in \mathbb{C}^{I_1\times I_2 \times \dots \times I_N} ACI1×I2××IN 以及 B ∈ C J 1 × J 2 × ⋯ × J M \mathcal{B}\in \mathbb{C}^{J_1\times J_2 \times \dots \times J_M} BCJ1×J2××JM. 对于具有相同指标的张量内积 i n = j m = k i_n=j_m=k in=jm=k有:
    C = < A , B > n , m \mathcal{C}=<\mathcal{A},\mathcal{B}>_{n,m} C=<A,B>n,m
    写出来有:
    c i 1 … i n − 1 i n + 1 … i N j 1 … j m − 1 j m + 1 … j M = ∑ k a i 1 … i n − 1 i k i n + 1 … i N b j 1 … j m − 1 j k j m + 1 … j M c_{i1\dots i_{n-1}i_{n+1}\dots i_Nj_1\dots j_{m-1}j_{m+1}\dots j_M}=\sum_k a_{i1\dots i_{n-1}i_ki_{n+1}\dots i_N}b_{j_1\dots j_{m-1}j_kj_{m+1}\dots j_M} ci1in1in+1iNj1jm1jm+1jM=kai1in1ikin+1iNbj1jm1jkjm+1jM
    where the resulting tensor C ∈ C i 1 … i n − 1 i n + 1 … i N j 1 … j m − 1 j m + 1 … j M \mathcal{C}\in \mathbb{C}^{i1\dots i_{n-1}i_{n+1}\dots i_Nj_1\dots j_{m-1}j_{m+1}\dots j_M} CCi1in1in+1iNj1jm1jm+1jM . 在运算的过程中, A \mathcal{A} A 第n维的大小应该与 B \mathcal{B} B第m维的大小相同.

  7. 张量Scalar Product: 当 A , B \mathcal{A},\mathcal{B} A,B的维度相同时, 其对于全部维度上的内积会得出一个标量:
    < A , B > = △ ∑ i 1 ⋯ ∑ i N a i 1 … i N b i 1 … i N ∗ <\mathcal{A},\mathcal{B}> \overset{\bigtriangleup }{=} \sum_{i_1}\dots \sum_{i_N}a_{i_1\dots i_N}b^*_{i_1\dots i_N} <A,B>=i1iNai1iNbi1iN

    此时可以引入Frobenius Norm. the Frobenius norm of A ∈ C I 1 × I 2 × ⋯ × I N \mathcal{A}\in \mathbb{C}^{I_1\times I_2 \times \dots \times I_N} ACI1×I2××IN is defined as ∣ ∣ A ∣ ∣ = △ < A , A > ||\mathcal{A}|| \overset{\bigtriangleup}{=}\sqrt{<\mathcal{A},\mathcal{A}>} ∣∣A∣∣=<A,A> .
    Frobenius norm 的平方是张量的能量: ε A = ∣ ∣ A ∣ ∣ F 2 \varepsilon_{\mathcal{A}}=||\mathcal{A}||^2_{\mathcal{F}} εA=∣∣AF2.

  8. HOSVD 待续

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值