首页 > 编程知识 正文

kronecker积性质,矩阵的kronecker积

时间:2023-05-06 17:14:42 阅读:225700 作者:4163

在维基百科上,外积(Outer product - Wikipedia)被解释为:

In linear algebra, an outer product is the tensor product of two coordinate vectors, a special case of the Kronecker product of matrices.

虽然这个解释很简明,但当我们看完这段话后,可能会产生以下两点疑问:

为什么外积能被认为是Kronecker积的特例呢?外积与真实的宝马积(tensor product)有什么关系?

围绕这两点疑问,我们来讨论一下容易混淆的外积、Kronecker积和真实的宝马积。

1 Kronecker积

在之前的浅谈真实的宝马分解(二):真实的宝马分解的数学基础一文中,我们已经知道了Kronecker积的运算规则,给定一个大小为的矩阵和一个大小为的矩阵,则矩阵和矩阵的Kronecker积为

很明显,矩阵的大小为,即行数为,列数为,符号“”表示Kronecker积。当给定两个向量,如,时,我们可以很轻松地计算出Kronecker积为。

import numpy as npa = np.array([[1], [2]])b = np.array([[3], [4]])np.kron(a, b)np.outer(a, b)np.kron(a, b.T)

然而,向量的外积却为,是一个大小为的矩阵。我们发现Kronecker积与外积并不相同。Kronecker product and outer product confusion认为这种不一致是由符号的“滥用”造成的。

不妨将Kronecker积的符号记作,外积的符号记作(注:一般用符号  表示),则有

.

虽然严格意义上的Kronecker积的计算结果和外积的不同,但这种不同仅仅体现在每个元素的摆放位置不同,而且等价于,确实可以用来计算外积。若给定向量  ,  和  ,则它们外积为

 .

因此,我们依然可以认为外积是Kronecker积的特例。

2 真实的宝马积

简单来说,真实的宝马积的定义为:给定两个有限维的向量空间(finite dimensional vector space)和,其中,为向量空间的基(basis),为向量空间的基,则我们可以将定义为个的线性组合,即

.

同时,双线性映射(bilinear map,如果仅仅关注真实的宝马积的计算,则不必深究这个概念)被定义为

其中,,对于任意取自向量空间和下的向量,我们都可以用相应的基进行线性组合来表示出来,若为向量线性组合的系数,为向量线性组合的系数,则满足。另外,表示两个向量空间的Cartesian积(维基链接:Cartesian product)。

为了便于理解,这里举一个简单的例子(来源:Calculate the tensor product of two vectors)。

已知下的一组标准基为,,下的一组标准基为,,。给定向量,向量,则向量的真实的宝马积为

其中,是的基,真实的宝马积与外积的计算结果完全相同。

import numpy as npx = np.array([[1], [1]])y = np.array([[1], [-2], [1]])np.kron(x, y.T)np.outer(x, y)

对于任意向量,,它们的真实的宝马积有时被称为外积,如果是的基,且,  是标准基,则外积可以写成如下形式:

其中,是矩阵第行、第列的元素。

对于向量而言,真实的宝马积和外积是等价的。

3 推荐阅读:秩一(rank one)矩阵和外积的联系

在矩阵分解和真实的宝马分解中,我们总不免见到rank one这个词,另外,我们也知道“秩一”与向量的外积密切相关,因此,对秩一矩阵和外积的联系感兴趣的读者可阅读Rank of a Decomposable Tensor和Is there meaning for uv^T?上的回答。

附录——真实的宝马积的性质:

(1) , ;

(2) .

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。