向量各种积的定义与说明

向量各种积的定义与说明

内积和外积都是一种广义的称呼,我们最常见的内积是点积(数量积、标量积和点积定义相同),即对应元素乘然后累加;

但是,我们最容易弄错外积的定义,我们理解的两个向量运算得到第三个向量,且其方向垂直于另外两个向量的运算严格上叫叉积、叉乘或向量积,而非外积。外积有其单独定义,其对向量运算的结果为矩阵。

那么假设有两个向量:

\[a=\left[\begin{array}{c}

a_1 \\

a_2 \\

a_3

\end{array}\right];

b= \left[\begin{array}{c}

b_1 \\

b_2 \\

b_3

\end{array}\right]

\]

内积(Inner Product)

欧几里得空间(Euclidean space)是内积空间(inner product space)的一个特例。在实数域且有限维的内积空间(Inner product space)被称作欧几里得空间(Euclidean space)

欧式空间的本质性,是其平面性.

一句话总结:欧几里得空间就是在对现实空间的规则抽象和推广(从n<=3推广到有限n维空间)。欧几里得几何就是中学学的平面几何、立体几何,在欧几里得几何中,平行线任何位置的间距相等。

内积最常见的形式是欧氏空间中的内积,也就是常说的点积(dot product),点积也被称为数量积(scalar product)。

内积的表示形式

那么内积的计算结果是一个标量,其计算形式有两种:

\[\begin{align}

a \cdot b &= |a||b|cos(\theta) \\

&= a_1b_1+a_2b_2+a_3b_3

\end{align}

\]

内积的意义

几何关系:点积可以用来描述一个向量在另一个向量方向上的投影,同时还可以用来计算向量之间的夹角(仅对二维空间有效)。

相关性:内积可以理解为表示了两个向量之间的相干性,若两个向量正交(无相干性),则点积为0;而点积越大表示两个向量的相干性越强。

外积(Outer Product)

外积是更广义的说法,宽松的说,他在一定的语境中和叉积、叉乘、向量积都表示求垂直于两个向量的新向量,但是在更严格的语境中,外积还是不等价于上述三种乘积的。严格意义上来说,外积划分情况如下:

外积的表示形式

外积可以分为以下几种含义,维基百科中注明了这几个的差别:

External product,又名叉积(英语:cross product)和向量积(英语:vector product),常写为\(a \times b\);

Outer product,见外积 (张量积),常写为\(a \otimes b\);

Exterior product,又名楔积(英语:wedge product),常写为\(a \wedge b\);(不常见,不做讨论)

External Product

在数学和向量代数领域(也就是解析几何领域),外积(external product)又称叉积(cross Product)、叉乘、向量积,是对三维空间中的两个向量的二元运算(即两个向量的法向量)。

英文中的 external , cross , vector product 均为此定义, 同时也是最广为人知的一个外积的定义(于中学课本中常见),此外积仅在三维空间中定义。

那么其表示形式为:

\[a \times b &= \left|\begin{array}{ccccc}

i & j & k \\

a_1 & a_2 & a_3\\

b_1 & b_2 & b_3

\end{array}

\right|

\]

该法向量的模表示为\(|a \times b|=|a||b|sin(\theta)\)

Outer Product

Outer Product是线性代数中的外积,也就是张量积。(这也就是中学中学习的普通矩阵/向量的计算)

在线性代数中一般指两个向量的张量积,其结果为矩阵,其表示为:

\[a \otimes b

= \left[\begin{array}{c}

a_1 \\

a_2 \\

a_3

\end{array}\right] \otimes [b_1 \; b_2 \; b_3]

=\left[\begin{array}{c}

a_1b_1 & a_1b_2 & a_1b_3 \\

a_2b_1 & a_2b_2 & a_2b_3 \\

a_3b_1 & a_3b_2 & a_3b_3

\end{array}\right]

\]

外积是将结果的维度扩张到二维,而内积呢,其结果将维度缩减到了标量(所以可以从这个点理解外积和内积)

torch中使用 torch.mm() 或 torch.matmul()

补充1:Kronecker Product

外积是一种特殊的克罗内克积(kronecker product)。为什么这样说呢?因为数学上,克罗内克积是两个任意大小的矩阵间的运算。

如\(A\)矩阵是一个\(m \times n\)的矩阵,而\(B\)是一个\(p \times q\)的矩阵,那么克罗内克积则是一个维度为\((mn) \times (pq)\)的分块矩阵。具体的计算形式可以看这篇博客。

numpy中 使用np.kron实现。

克罗内克积的表示形式为 \(A \otimes B\)。

补充2:Hadamard Product

矩阵元素积(element-wise product, point-wise product),又称作哈达玛积(hadamard product),对应元素相乘,结果还是向量/矩阵,那么这样就要求两个相乘的向量/矩阵必须行列数相同。

numpy中 使用np.multiply或*实现元素积。

torch中 使用* 或 torch.mul

元素积表示形式为 \(A \odot B\)

Note:深度学习论文中,矩阵的计算一般为张量积和哈达玛积,即 \(\otimes\)就是普通的矩阵乘法,\(\odot\)表示矩阵对应位置元素相乘

参考

真一文搞懂:内积、外积及其衍生(内积:点积、数量积、标量积;外积:叉积、叉乘、向量积、张量积) - 我头上有犄角的文章 - 知乎

带你一次搞懂点积(内积)、叉积(外积)

内积与外积(Inner/Outer/Interior/Exterior)Product 及在计算机中的概念

相关推荐

李顺名字的含义寓意打分
365bet亚洲投注网址

李顺名字的含义寓意打分

📅 07-20 👁️ 4035
明日之后宝箱多久刷新一次?各宝箱刷新时间一览
汤达人多少钱一桶?汤达人多少钱一袋
365bet取款

汤达人多少钱一桶?汤达人多少钱一袋

📅 08-20 👁️ 9671