矩阵运算中,符号 ⊗ \otimes ⊗ 表示的是张量积(tensor product),而符号 ⋅ \cdot ⋅ 表示的是矩阵乘法(matrix multiplication),两者是有区别的。

张量积( ⊗ \otimes ⊗)

张量积是一种针对矩阵和向量的运算,它可以用来将两个矩阵或向量组合成一个更大的矩阵或向量。具体来说,如果 A A A 是一个 m × n m \times n m×n 的矩阵, B B B 是一个 p × q p \times q p×q 的矩阵,那么它们的张量积 A ⊗ B A \otimes B A⊗B 就是一个 m p × n q mp \times nq mp×nq 的矩阵,其中每个元素都是由 A A A 和 B B B 对应位置上的元素相乘得到的。

例如,如果 A = [ 1 2 3 4 ] A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} A=[13​24​], B = [ 5 6 7 8 ] B = \begin{bmatrix} 5 & 6\\ 7 & 8 \end{bmatrix} B=[57​68​],那么它们的张量积 A ⊗ B A \otimes B A⊗B 就是一个 4 × 4 4 \times 4 4×4 的矩阵:

A ⊗ B = [ 1 × B 2 × B 3 × B 4 × B ] = [ 5 6 10 12 7 8 14 16 15 18 20 24 21 24 28 32 ] A \otimes B = \begin{bmatrix} 1 \times B & 2 \times B \\ 3 \times B & 4 \times B \end{bmatrix} = \begin{bmatrix} 5 & 6 & 10 & 12 \\ 7 & 8 & 14 & 16 \\ 15 & 18 & 20 & 24 \\ 21 & 24 & 28 & 32 \end{bmatrix} A⊗B=[1×B3×B​2×B4×B​]= ​571521​681824​10142028​12162432​ ​

张量积的应用非常广泛,例如在图像处理、神经网络和量子力学等领域都有着重要的应用。

矩阵乘法( ⋅ \cdot ⋅)

矩阵乘法是一种针对矩阵的运算,它将两个矩阵相乘得到一个新的矩阵。具体来说,如果 A A A 是一个 m × n m \times n m×n 的矩阵, B B B 是一个 n × p n \times p n×p 的矩阵,那么它们的乘积 C = A ⋅ B C = A \cdot B C=A⋅B 就是一个 m × p m \times p m×p 的矩阵,其中 C i , j C_{i,j} Ci,j​ 的值等于 A A A 的第 i i i 行和 B B B 的第 j j j 列对应元素的乘积之和。

例如,如果 A = [ 1 2 3 4 ] A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} A=[13​24​], B = [ 5 6 7 8 ] B = \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix} B=[57​68​],那么它们的乘积 C = A ⋅ B C = A \cdot B C=A⋅B 就是一个 2 × 2 2 \times 2 2×2 的矩阵:
在矩阵运算中, ⋅ \cdot ⋅ 表示的是矩阵的乘法,而 ⊗ \otimes ⊗ 表示的是矩阵的 Kronecker 积运算。矩阵的乘法是针对两个矩阵的运算,对于两个矩阵 A A A 和 B B B,当且仅当 A A A 的列数等于 B B B 的行数时,才能进行乘法运算 A ⋅ B A\cdot B A⋅B。运算结果为一个矩阵 C C C,其中 C C C 的行数等于 A A A 的行数,列数等于 B B B 的列数。例如,对于两个矩阵 A ∈ R m × n A\in R^{m\times n} A∈Rm×n 和 B ∈ R n × p B\in R^{n\times p} B∈Rn×p,它们的乘积 C = A ⋅ B ∈ R m × p C=A\cdot B\in R^{m\times p} C=A⋅B∈Rm×p 定义为:

C i j = ∑ k = 1 n A i k B k j C_{ij}=\sum_{k=1}^n A_{ik}B_{kj} Cij​=k=1∑n​Aik​Bkj​

而 Kronecker 积则是一种针对两个矩阵的运算,对于两个矩阵 A ∈ R m 1 × n 1 A\in R^{m_1\times n_1} A∈Rm1​×n1​ 和 B ∈ R m 2 × n 2 B\in R^{m_2\times n_2} B∈Rm2​×n2​,它们的 Kronecker 积 C = A ⊗ B ∈ R m 1 m 2 × n 1 n 2 C=A\otimes B\in R^{m_1m_2\times n_1n_2} C=A⊗B∈Rm1​m2​×n1​n2​ 定义为:

C ( i − 1 ) m 2 + j , ( k − 1 ) n 2 + l = A i k B j l C_{(i-1)m_2+j,(k-1)n_2+l}=A_{ik}B_{jl} C(i−1)m2​+j,(k−1)n2​+l​=Aik​Bjl​

其中 i = 1 , ⋯ , m 1 , j = 1 , ⋯ , m 2 , k = 1 , ⋯ , n 1 , l = 1 , ⋯ , n 2 i=1,\cdots,m_1,j=1,\cdots,m_2,k=1,\cdots,n_1,l=1,\cdots,n_2 i=1,⋯,m1​,j=1,⋯,m2​,k=1,⋯,n1​,l=1,⋯,n2​。

简单来说,矩阵乘法针对的是两个矩阵的行列,而 Kronecker 积针对的是两个矩阵中每个元素的运算。在实际的应用中,Kronecker 积通常被用于矩阵的展开和卷积等操作,而矩阵乘法则是计算神经网络中各层之间权重和输入数据的运算。

矩阵运算时⊗和·的区别?相关推荐

  1. Java检查异常、非检查异常、运行时异常、非运行时异常的区别

    Java检查异常.非检查异常.运行时异常.非运行时异常的区别 参考文章: (1)Java检查异常.非检查异常.运行时异常.非运行时异常的区别 (2)https://www.cnblogs.com/ou ...

  2. SAP中非评估收货或不收货与收货时的应用区别和记账差异

    采购订单的收货和发票校验操作是会关联财务的记账.基于采购订单的业务情形不同,就有不同的设定.比如有的采购订单是不需要收货的:有的采购订单需要收货:有的采购订单又是非评估收货:那么这些采购订单中的控制点 ...

  3. 你真的懂ArrayList吗?说说foreach与iterator时remove的区别

    文章目录 1. ArrayList 和 LinkedList的区别 1.1 CopyOnWriteArrayList怎么保证线程安全? 1.2 Vector.ArrayList.LinkedList的 ...

  4. 编译时异常与运行时异常的区别

    Java异常类层次结构图 运行时异常:都是RuntimeException类及其子类异常,如NullPointerException(空指针异常).IndexOutOfBoundsException( ...

  5. [C++] - 创建对象时 () 和 {} 的区别

    C++11以后,对象的初始化可以有多种选择,总的来说,初始值可以通过三种方式给出:(), = 和 {} int x(0); //initializer is in parentheses int y ...

  6. Java编译时异常与运行时异常的区别

    Java的异常可以分为编译异常和运行异常,其主要区别: 编译异常要求程序员必须处理(捕获或者抛出),不然没法通过编译. 而运行异常可以不处理. 这应该是纸面最明显的区别了,我认为更重要的区别是在处理机 ...

  7. “把电脑音量调高,音箱音量调低”和“把电脑音量调低,音箱音量调高”两种情况达到同一分贝时音质有区别吗?...

    有区别,区别很大.先说结论,电脑音量调到大约三分之一到二分之一之间,然后音箱高量调合适,或者反向,音箱音量调到三分之一到二分之一之间,电脑音量调合适.理论上,电脑向功放输出的信号电平峰峰值在1V稍小, ...

  8. 【Java基础】运行时异常和非运行时异常的区别

    非运行异常: 非运行时异常也叫作编译时异常,如果不对这种异常进行捕获则无法编译,Java编译器要求程序员必须对这种异常catch,Java认为这种异常都是可以被修复的异常,所以Java程序要求显式处理 ...

  9. Matlab入门(二):Matlab中最基本的向量与矩阵运算

    因课题需要,根据书籍初步自学matlab,结合刷教程书的一点心得,做一个简单记录,方便自己能形成一个输入输出循坏,加深理解和记忆. 参考书籍:Matlab揭秘,David McMahon著,郑碧波译. ...

最新文章

  1. Python 14.1 TCP/IP协议简介
  2. REUSE_ALV_GRID_DISPLAY事件子过程和cl_gui_grid类的事件对应关系
  3. CentOS6.5启动网络
  4. tcp当主动发出syn_(二)深入浅出TCPIP之再识TCP,理解TCP三次握手(上)
  5. C++实现双栈结构(一个顺序表中使用两个栈)
  6. 110+优秀作品、20+热门领域曝光, 高通如何玩转“AI 的夏天”!
  7. oracle的查询数据(检索数据)
  8. 软件交接需要交接哪些内容_从代理记账公司交接,需要交接哪些财务资料?
  9. 机器学习作业班_python实现逻辑回归多类分类
  10. python2逐步转向python3之小程序实践学习
  11. 华硕电脑(博主电脑型号为天选FA506IH)Fn组合键屏幕不显示对应操作的解决办法!!
  12. 灰度发布 java_灰度发布系统的实现步骤
  13. android xml 工具下载,安卓xml文件编辑器
  14. 纯css实现刻度尺列表样式
  15. 前台传入数据后台被转义问题解决
  16. 考研政治——刷题看课流程
  17. python提醒事件_利用python实现短信和电话提醒功能的例子
  18. 做为中层管理者的你,应该扮演什么角色
  19. 山科计算机科学与技术学院,山东科技大学-计算机科学与工程学院
  20. lbe+android6.0+免root,LBE安全大师(免ROOT)

热门文章

  1. 行高、字体框——CSS
  2. 地图兴趣点聚合算法的探索与实践
  3. Oracle Primavera Unifier 整体介绍
  4. Arduino 蜂鸣器播放音乐
  5. 快速上手阿里云并搭建WordPress博客
  6. DJ7-2 加法器与运算部件
  7. python单向链表逆序_链表逆序-Python实现
  8. 有趣的串口--之超级终端的玩法-1[转]
  9. LoadRunner教程09:LR自动关联
  10. solr-5.4.1 和 mmseg4j-2.3.0版本的配置