对矩阵乘法的深入理解

打开本页,如果没有显示公式,请刷新页面。

本文是对《机器学习数学基础》第2章2.1.5节矩阵乘法内容的补充和扩展。通过本节内容,在原书简要介绍矩阵乘法的基础上,能够更全面、深入理解矩阵乘法的含义。

在2.1.5节中,给出了矩阵乘法最基本的定义,令矩阵 和矩阵 相乘,定义乘积 为:

这种定义的方法便于手工计算——手工计算,在计算机流行的现在,并非特别重要。所以,现在更应该深入理解矩阵乘法的数学含义,所以,再拓展如下内容。

以列向量作为计算单元

定义

以列向量表示矩阵 ,设一维列向量

矩阵与向量的乘法 定义为 的列向量 的线性组合, 为组合的系数或权重,即:

按照习惯,把标量写在向量前面(左边):

根据这种定义,比较容易理解线性方程与子空间、线性无关等有关概念。

例1

,如果只有平凡解,即 ,根据(1.1)式可知, 的列向量线性无关(关于线性相关和线性无关的概念,请参阅《机器学习数学基础》第1章1.2.3节)。

例2

对于 有解的充要条件,根据(1.1)式可知:

的线性组合,所以 应该属于 的列空间。

定义

利用(1.1)式的理解,可以显示 是一个线性变换

设线性变换 ,将它们连接在一起,如下图所示:



其中 。用 表示复合线性变换(即符合函数,参阅函数),即:

可以表示为下图:



设线性变换 的矩阵为 阶矩阵 ,线性变换 的矩阵为 解矩阵 ,则:

所以,符合线性变换 的矩阵有 来决定。

若定义: ,即矩阵乘法。

的列向量为 ,根据(1.1)式定义,可得:

则对于任意 ,有:

令上式等于 ,由于 是一个任意向量,所以:

所以,有 。由此可知, 的矩阵即为 ,并且说明亦为线性变换。

以行向量作为计算单元

对于(1.2)式,去转置,得:

又因为: ,故:

如果将 分别用 代替,则可得以行为计算单元的矩阵乘法。

定义 的第 行等于 的行向量的线性组合, 的对应元即组合权重为:

或者写作:

在一般情况下,都是用列向量作为计算单元,用行向量的时候较少,除非特别说明或者某些特别用途。

以行列展开

对于两个矩阵的乘法 ,还可以表示成多个矩阵的和:

这种方式的展开计算,在矩阵分解中会有重要应用(参阅《机器学习数学基础》第3章3.5.2节特征分解)。

是实对称矩阵,则 ,其中 为对角矩阵, ,有:

此外,还可以分块矩阵为单元,实现矩阵乘法计算,而事实上,上述以行或者列向量作为计算单元,亦可视为分块矩阵。此处不单独演示分块矩阵的计算。

在以上几种对矩阵乘法的理解中,其本质是采用不同的计算单元。这有助于我们将其他有关概念综合起来,从而加深对矩阵乘法的含义理解。

关于矩阵乘法的计算,除了手工计算之外,在《机器学习数学基础》中有详细的用Python实现计算的各种方法,也可以参阅[3]了解有关计算实现函数。

参考文献

[1]. https://ccjou.wordpress.com/2009/03/11/矩陣乘積的現代觀點/

[2]. https://ccjou.wordpress.com/2015/07/28/基本矩陣運算的定義/

[3]. 跟老齐学Python:数据分析. 齐伟. 北京:电子工业出版社

作者: 老齐
链接: http://math.itdiffer.com/multiplication.html
来源: 机器学习
本文原创发布于「机器学习」,转载请注明出处,谢谢合作!

http://math.itdiffer.com/images/0.jpg

results matching ""

    No results matching ""