对矩阵乘法的深入理解
打开本页,如果没有显示公式,请刷新页面。
本文是对《机器学习数学基础》第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
来源: 机器学习
本文原创发布于「机器学习」,转载请注明出处,谢谢合作!