张量乘法和超对称

  • 张量乘法
    • 张量内积
    • 张量乘以矩阵
    • 张量克罗内克积(KronerckerproductKronercker productKronerckerproduct)
    • 张量HadamardHadamardHadamard积
    • Khatri−RaoKhatri-RaoKhatri−Rao积
  • (超)对称和(超)对角

通过线性代数的学习,我们知道,与矩阵相关的乘法又两种,其一是矩阵与矩阵相乘,其二是数与矩阵进行数乘。张量的相关乘法规则与矩阵的乘法规则基本类似。

张量乘法

张量内积

定义:张量内积——同样大小的张量相乘即张量的内积,将对应元素相乘再相加

列:计算下列两个张量的内积(注,这里是向里面的两层,是个立体的结构)

解:<A,B>=a1b1+a2b2+a3b3+a4b4+a5b5+a6b6+a7b7+a8b8<A,B>=a_1b_1+a_2b_2+a_3b_3+a_4b_4+a_5b_5+a_6b_6+a_7b_7+a_8b_8<A,B>=a1​b1​+a2​b2​+a3​b3​+a4​b4​+a5​b5​+a6​b6​+a7​b7​+a8​b8​

张量乘以矩阵

先将张量矩阵化,再将张量和矩阵相乘,注意不同的mode−nmode-nmode−n矩阵化会使得相乘的结果不同。

例:计算下列张量乘以矩阵的结果,其中A=(abcd)A=\left(\begin{array}{c} a & b \\ c & d \end{array}\right)A=(ac​bd​)

首先对张量进行mode−1mode-1mode−1方向的矩阵化:
T(1)=(12563478)T_{(1)}=\left(\begin{array}{c}1 & 2 & 5 & 6 \\ 3 & 4 & 7 & 8\end{array}\right) T(1)​=(13​24​57​68​)
再进行矩阵相乘得:
P=T×A∼P(1)=AT(1)=(abcd)(12563478)=(a+3b2a+4b5a+7b6a+8bc+3d2c+4d5c+7d6c+8d)P=T\times A\thicksim P_{(1)}=AT_{(1)}=\left(\begin{array}{c} a & b \\ c & d \end{array}\right)\left(\begin{array}{c}1 & 2 & 5 & 6 \\ 3 & 4 & 7 & 8\end{array}\right)\\=\left(\begin{array}{c}a+3b & 2a+4b & 5a+7b & 6a+8b \\ c+3d & 2c+4d & 5c+7d & 6c+8d\end{array}\right) P=T×A∼P(1)​=AT(1)​=(ac​bd​)(13​24​57​68​)=(a+3bc+3d​2a+4b2c+4d​5a+7b5c+7d​6a+8b6c+8d​)
按矩阵化方法还原新张量:

张量克罗内克积(KronerckerproductKronercker productKronerckerproduct)

定义:克罗内克积——对于给定一个大小为n1×n1n_1\times n_1n1​×n1​的矩阵BBB和一个大小为m1×m1m_1\times m_1m1​×m1​的矩阵AAA,则矩阵AAA和矩阵BBB的克罗内克积为:

当张量的阶数不再限制为二阶的时候,此时的kroneckerkroneckerkronecker积久转变为张量积,且计算规律不变!
符号为⊗,kronecker\otimes,kronecker⊗,kronecker积在张量计算中很常见,作为张量积的一种特殊形式,它是衔接矩阵计算和张量计算的桥梁,由于第一个矩阵中每一个元素都数乘第二个矩阵,所以新矩阵的大小为m1n1×m2n2m_1n_1\times m_2n_2m1​n1​×m2​n2​。

例:给定矩阵A=(1234),B=(5678910)A=\left(\begin{array}{c}1 & 2 \\ 3 & 4\end{array}\right),B=\left(\begin{array}{c}5 & 6 & 7 \\ 8 & 9 & 10\end{array}\right)A=(13​24​),B=(58​69​710​),计算二者的克罗内克积
解:
A⊗B=[1×[5678910]2×[5678910]3×[5678910]4×[5678910]]=[5671012148910161820151821202428242730323640]A\otimes B=\left[\begin{array}{c}1\times\left[\begin{array}{c}5 & 6 & 7 \\ 8 & 9 & 10\end{array}\right] & 2\times\left[\begin{array}{c}5 & 6 & 7 \\ 8 & 9 & 10\end{array}\right]\\ 3\times\left[\begin{array}{c}5 & 6 & 7 \\ 8 & 9 & 10\end{array}\right]&4\times\left[\begin{array}{c}5 & 6 & 7 \\ 8 & 9 & 10\end{array}\right]\end{array}\right]\\=\left[\begin{array}{c}5 & 6 & 7 & 10 & 12 & 14 \\ 8 & 9 & 10 & 16 & 18 & 20 \\ 15 & 18 & 21 & 20 & 24 & 28 \\ 24 & 27 & 30 & 32 & 36 & 40 \end{array}\right] A⊗B=⎣⎢⎢⎡​1×[58​69​710​]3×[58​69​710​]​2×[58​69​710​]4×[58​69​710​]​⎦⎥⎥⎤​=⎣⎢⎢⎡​581524​691827​7102130​10162032​12182436​14202840​⎦⎥⎥⎤​

张量HadamardHadamardHadamard积

定义:HadamardHadamardHadamard积——两个同型矩阵A∈RI×J,B∈RI×J,HadamardA\in R^{I\times J},B\in R^{I\times J},HadamardA∈RI×J,B∈RI×J,Hadamard积运算法则如下:

注:HadamardHadamardHadamard积只限于二阶张量即矩阵的运算,必须是同型矩阵,与传统矩阵相乘不同!

Khatri−RaoKhatri-RaoKhatri−Rao积

定义:Khatri−RaoKhatri-RaoKhatri−Rao积——给定大小为I×JI\times JI×J的矩阵A=(a1⃗,a2⃗,…,ak⃗)A=(\vec{a_1},\vec{a_2},\dots,\vec{a_k})A=(a1​​,a2​​,…,ak​​)和大小为J×KJ\times KJ×K的矩阵B=(b1⃗,b2⃗,…,bk⃗)B=(\vec{b_1},\vec{b_2},\dots,\vec{b_k})B=(b1​​,b2​​,…,bk​​),则矩阵AAA和矩阵BBB的Khatri−RaoKhatri-RaoKhatri−Rao积为:
A⊙B=(a1⃗⊗b1⃗,a2⃗⊗b2⃗,…,ak⃗⊗bk⃗)A\odot B=(\vec{a_1}\otimes\vec{b_1},\vec{a_2}\otimes\vec{b_2},\dots,\vec{a_k}\otimes\vec{b_k}) A⊙B=(a1​​⊗b1​​,a2​​⊗b2​​,…,ak​​⊗bk​​)
注:Khatri−RaoKhatri-RaoKhatri−Rao积符号位⊙\odot⊙,⊗\otimes⊗是张量积的符号,该乘积法则也是针对于矩阵而言,但对矩阵大小并无要求,且不满足交换律!

例:对于矩阵A=[1234]=(a1⃗,a2⃗),B=[5678910]=(b1⃗,b2⃗)A=\left[\begin{array}{c}1 & 2 \\ 3 & 4\end{array}\right]=(\vec{a_1},\vec{a_2}),B=\left[\begin{array}{c}5 & 6 \\ 7 & 8 \\ 9 & 10\end{array}\right]=(\vec{b_1},\vec{b_2})A=[13​24​]=(a1​​,a2​​),B=⎣⎡​579​6810​⎦⎤​=(b1​​,b2​​),求二者的Khatri−RaoKhatri-RaoKhatri−Rao积
解:
A⊙B=(a1⃗⊗b1⃗,a2⃗⊗b2⃗)=[[13]⊗[579][24]⊗[6810]]=[512716920152421322740]A\odot B=(\vec{a_1}\otimes\vec{b_1},\vec{a_2}\otimes\vec{b_2})=\left[\begin{array}{c}\left[\begin{array}{c}1 \\ 3 \end{array}\right]\otimes\left[\begin{array}{c}5 \\ 7 \\ 9 \end{array}\right] & \left[\begin{array}{c}2 \\ 4\end{array}\right]\otimes\left[\begin{array}{c}6 \\ 8 \\ 10 \end{array}\right]\end{array}\right] \\ =\left[\begin{array}{c}5 & 12 \\ 7 & 16 \\ 9 & 20 \\ 15 & 24 \\ 21 & 32 \\ 27 & 40 \end{array}\right] A⊙B=(a1​​⊗b1​​,a2​​⊗b2​​)=⎣⎡​[13​]⊗⎣⎡​579​⎦⎤​​[24​]⊗⎣⎡​6810​⎦⎤​​⎦⎤​=⎣⎢⎢⎢⎢⎢⎢⎡​579152127​121620243240​⎦⎥⎥⎥⎥⎥⎥⎤​

(超)对称和(超)对角

定义:立方张量——其各个modemodemode的长度相等的张量称为立方张量

对称: 一个立方张量是对称的,如果其元素在下标的任意排列下是常数。如果xijk=xikj=xjik=xjki=xkij=xkji,∀i,j,kx_{ijk}=x_{ikj}=x_{jik}=x_{jki}=x_{kij}=x_{kji},\forall i,j,kxijk​=xikj​=xjik​=xjki​=xkij​=xkji​,∀i,j,k,那么这个三阶立方张量是超对称的

对角: 仅当i1=i2=⋯=iNi_1=i_2=\cdots=i_Ni1​=i2​=⋯=iN​时,其(超)对角线如下图:

张量基础2(张量乘法和对称)相关推荐

  1. 一文读懂PyTorch张量基础(附代码)

    作者:Matthew Mayo, KDnuggets 翻译:和中华 校对:丁楠雅 本文约1000字,建议阅读5分钟. 本文介绍了PyTorch Tensor最基础的知识以及如何跟Numpy的ndarr ...

  2. 张量基础学习(二 . 坐标变换,分量转化规律与张量方程 )

    欢迎来到张量基础学习的第二弹,本次将持续深入学习相关知识,觉着本人写的对您多少有帮助的麻烦点点关注,养成先赞再看的好习惯! Tensors learning 一 . 坐标与坐标转换 二. 张量分量转换 ...

  3. 张量(一):张量基础

    从今天开始,笔者将会持续更新关于张量的相关知识和最新研究成果.我们这里所说的张量知识主要是关于张量低秩分解,张量补全等算法和应用.在如今神经网络大火的年代,张量补全等算法无疑为预测.去噪等问题提供了新 ...

  4. 向量、矩阵、张量基础知识

    前言 学习并且做这篇笔记目的:学习张量,初步了解张量分解(tensor decomposition)领域. 那么什么是张量分解呢?研究它具体的应用是什么? 为了便于理解,我们先从矩阵分解讲起. 我们知 ...

  5. 张量基础学习(一 概念,求和指标,符号)

    欢迎大家来到我的这一个新专栏,本专栏我们将一起学习并探讨一些张量方面的知识,同样,需要一定的线性代数的基础知识铺垫,但肯定是没有量子计算那么深入和复杂,有需要的小伙伴可以点点关注,您的鼓励是我前进的最 ...

  6. 张量基础学习 (三 张量代数运算———上)

    经过前面几期博客的学习,我们初步认识了张量的基本概念,一些重要的符号与指标,坐标的变换规律和相应的张量的分量转化规律之后,接下里,将持续学习张量的各种运算法则与规律! 本人励志做最详细的博客撰写,所以 ...

  7. pytorch 张量基础

    张量是一种特殊的数据结构,与数组和矩阵非常相似.在 PyTorch 中,我们使用张量对模型的输入和输出以及模型的参数进行编码. 张量类似于NumPy 的ndarray,除了张量可以在 GPU 或其他硬 ...

  8. 张量分解学习(一 基础铺垫)

    在经过痛并快乐着的 张量基础学习之后 之后 ,我们终于可以在慢慢科研路之张量篇上再进一步了,好事多磨,万事都是开头难,不过前面的基础打好了,概念清晰了,后面自然就水道渠成了,废话不多说,上才艺! Te ...

  9. 张量网络算法基础(一、张量和线性代数基础)

    张量和线性代数基础 一.张量基础 1. 张量的定义 2. 张量的基本操作和运算 二.线性代数基础 1. 本征值分解与最大本征值问题 本征值分解 最大本征值问题 最大本征值问题的幂级数求解法 2. 奇异 ...

最新文章

  1. java内部类 缺点_Java中的内部类及其优势
  2. 回顾与展望:大热的AutoML究竟是什么? | 技术头条
  3. 中科大 计算机网络10 第一章总结和习题
  4. BZOJ 1305 二分+网络流
  5. Ubuntu安装Beyond Compare(crack)
  6. Ubuntu镜像源下载
  7. 解决相片上传主键唯一性问题,java 上传相片到服务器的时候,相片保存主键用guid。...
  8. 计算机专业毕业了,还要不要参加培训班
  9. [vm] vm安装xp :non-bootable disk 80 解决办法
  10. 链接形式的客服代码 QQ客服代码
  11. LTE CQI优化提升方法
  12. 小学教师计算机校本培训材料,教师业务学习材料及校本培训材料
  13. 基于CAN总线的汽车诊断协议--Windows上位机设计
  14. 微信视频号发布69条直播违规条例
  15. python 抽奖器_如何基于python实现年会抽奖工具
  16. java 关键字6,【JAVA SE基础篇】6.开始前的一些规定以及关键字
  17. 丑数 uva-136 丑数
  18. 移动硬盘变为RAW格式后的修复
  19. 微信小程序在 wxml 文件中使用 Array.includes 方法
  20. 医疗实施-MDM主数据管理基本介绍

热门文章

  1. 内部DNS服务器搭建
  2. 毕业论文-----有关目录的全部问题
  3. 计算机械产量定额,机械台班产量定额的计算方式
  4. esxi6.5磁盘格式转换
  5. CodeForces 133 A.HQ9+(水~)
  6. 第一次找工作/实习前需要准备的东西(互联网行业)
  7. Excel VBA(04)数组和字典
  8. win10+VS2017+WDK环境下编译C++程序提示error LNK1104无法打开文件*.lib(mfc140ud.lib)的问题
  9. android 打造炫酷导航栏(仿UC头条)
  10. C语言简单递归实现字符串逆序输出