文章目录

  • 张量
    • 张量及其表示
      • 张量的线性代数表示
      • 三阶张量
    • 张量的矩阵化和向量化
      • 张量的水平展开与向量化
    • 张量的基本代数运算
      • 张量的內积、范数和外积

张量

基于张量的数据分析称为张量分析(tensor analysis),属于多重线性数据分析(multilinear data analysis)。

张量及其表示

数据沿一相同方向的排列称为一路阵列。标量称为零路阵列,行向量和列向量称为沿水平和垂直方向排列的一路阵列。矩阵是数据沿水平和垂直方向排列的二路阵列。张量即为数据的多路阵列表示,一个张量就是一个多路阵列或多维阵列,它是矩阵的一种扩展。
张量的数学符号表示为花体符号如T,A,X\mathcal{T,A,X}T,A,X。nnn路阵列表示为nnn阶张量,是定义在nnn个向量空间的笛卡尔积上的多重线性函数,记为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代表实数域R\mathbb{R}R或复数域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​
张量在各个领域均有应用,包括医学,化学等。

张量的线性代数表示

线性代数即有限维向量空间的矩阵的代数,定义一个有限维向量空间的线性算子。多重线性代数即高阶张量代数,定义了一组有限维向量空间的多重线性算子。
矩阵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​​。
    注意张量阶数和维数的区别:NNN称为阶数,InI_nIn​称为第nnn路阵列的维数。

高阶张量也可以使用矩阵的集合表示。如三阶张量可以使用矩阵组成水平切片、侧向切片、正面切片等,符号表示为:Ai::,A:j:,A::k{\bf{A}}_{i::},{\bf{A}}_{:j:},{\bf{A}}_{::k}Ai::​,A:j:​,A::k​。
切片的数学表示:

  1. 三阶张量A∈KI×J×K\mathcal{A}\in\mathbb{K}^{I\times J\times K}A∈KI×J×K有III个水平切片
    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
  2. 三阶张量A∈KI×J×K\mathcal{A}\in\mathbb{K}^{I\times J\times K}A∈KI×J×K有JJJ个侧向切片
    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)。
向量化同理。

张量的水平展开与向量化

张量的基本代数运算

张量的內积、范数和外积

  • 定义:张量的內积,若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的內积为标量,定义为两个张量的列向量化之间的內积
    ⟨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​​
    其中∗*∗表示复共轭。

根据张量內积的概念,可以得到其张量范数的定义。

  • 定义(张量的Frobenius范数):张量A\mathcal{A}A的Frobenius范数的定义为:
    ∥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
    其內积和范数具有如下性质:
  • 张量的范数可以转化成张量的矩阵化的范数
    ∥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​)∥∥∥​
  • 张量的范数可以改成张量的向量化函数的范数
    ∥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​)∥∥∥​
  • 两个张量之差的范数平方
    ∥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章 张量分析——张贤达

张量的基本概念及应用相关推荐

  1. 张量的基本概念+张量的聚合、拼接、比较、随机化采样、序列化等操作+升维、降维

    张量的基本概念+张量的聚合.拼接.比较.随机化采样.序列化等操作 一.张量的基本概念 二.张量的聚合操作 三.张量的拼接操作 张量的升维.降维 一.张量的基本概念 张量(Tensor),就是多维数组. ...

  2. Tensorflow张量和维度概念的理解

    Tensorflow张量和维度概念的理解 理解tensorflow张量的概念:张量就是一个数据存储容器,一种数据结构,是人为定义的.因为在计算机内存中哪里有什么2维空间3维空间,都是一块块连续的内存区 ...

  3. 数字图像处理 张量分解的概念、发展及其应用

    一.张量的概念 张量是一个多维数组.更正式地说,N向或N阶张量是N个向量空间的张量乘积的一个元素,每个向量空间都有自己的坐标系.张量的概念不能与物理和工程中的张量(如应力张量)混淆,后者在数学中通常被 ...

  4. 张量学习(1):张量的基本概念

    1.张量的四种定义 1.张量是多维数组,这个定义常见于各种人工智能软件. 2.张量是某种几何对象,不会随着坐标系的改变而改变 3.张量是向量和余向量(covector)通过张量积(tensor pro ...

  5. Pytorch:Tensor 张量的概念及张量的各种创建

    Tensor 概念 张量的数学概念: 张量是一个多维数组,它是标量.向量.矩阵的高位扩展 张量在pytorch中的概念: tensor之前是和pytorch早期版本中的variable一起使用的. v ...

  6. 谷歌开源张量网络库TensorNetwork,GPU处理提升100倍!

    编译 |  琥珀 出品 | AI科技大本营(ID:rgznai100) 世界上许多最严峻的科学挑战,如开发高温超导体和理解时空的本质,都涉及处理量子系统的复杂性.然而,这些系统中量子态的数量程指数级增 ...

  7. 张量解释——深度学习的数据结构

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 之前分享过一个国外 DEEPLIZARD 的高效入门 pytorc ...

  8. 百倍提升张量计算:谷歌开源TensorNetwork

    https://www.toutiao.com/a6698889388199248392/ 张量网络正越来越多地用于机器学习领域,它被用于执行复杂计算任务,但对于大多数人来说它仍然遥不可及--我们还没 ...

  9. 在浏览器中进行深度学习:TensorFlow.js (一)基本概念

    2019独角兽企业重金招聘Python工程师标准>>> 作为deeplearn.js的继任者,tensoflow.js 支持在浏览器或者nodejs中利用JavaScript来运行深 ...

  10. Keras一些基本概念

    符号计算 Keras的底层库使用Theano或TensorFlow,这两个库也称为Keras的后端,无论事Theano还是TensorFlow,都是一个符号主义的库. 关于符号主义,可以一般概括为这种 ...

最新文章

  1. Linux综合大作业
  2. ledisDB底层实现——本质上就是用leveldb这样的底层存储,和ssdb一样,meta里存的是hash、list等的元数据...
  3. mybatis一对多关联查询_一对一,一对多,多对多查询及延迟加载(N+1问题)分析
  4. Silverlight/Windows8/WPF/WP7/HTML5周学习导读(7月30日-8月5日)
  5. linux安装虚拟环境virtualenv
  6. php yii2 获取表里最大的id_Yii2中自带分页类实现分页
  7. avalon2框架应用注意事项
  8. 实战 | F1060路由模式ISIS典型组网配置案例
  9. SQL 宝典(本人总结供学习使用)
  10. 亿图图示-----思维导图MindMaster示例
  11. Android简易项目--傻瓜式阿拉伯语输入法(Dummy Arabic Input)
  12. NPOI导出真正的电子表格,支持 自定义多行表头(表头风格设置),支持多个sheet页面导出
  13. 梦想照进现实|CSDN 实体奖牌 第三期
  14. 居家第二十五天朋友的豆芽菜
  15. UITableView在iOS15中显示混乱的问题
  16. 电脑能正常上网百度,但是网络显示无Internet
  17. virtualbox和Hyperv
  18. NAT ,BFD ,NQA 实验
  19. (paypal,stripe)轮询收款系统
  20. 诺基亚智能手机未来仅采用Symbian和MeeGo系统

热门文章

  1. 【KITTI】KITTI数据集简介(一) — 激光雷达数据
  2. SIMATIC HMI操作系统更新
  3. windows下svn server的安装和配置
  4. 计算机管理用房设置要求,党政机关办公用房管理系统解决方案
  5. Unity3d的ShadeSH9环境光的球谐函数的应用
  6. C语言课程设计-车辆信息管理系统
  7. 豆丁文档无需豆元直接下载
  8. win7虚拟机_UTM 虚拟机不越狱运行 win7,百分百可以
  9. 解放双手,CSDN博客支持公众号自动同步!
  10. 计算机科学与技术导论课论文题目,优秀计算机专业导论论文题目 计算机专业导论论文题目哪个好...