美文网首页
线性代数(7) 矩阵

线性代数(7) 矩阵

作者: zidea | 来源:发表于2020-08-05 20:17 被阅读0次
linearalgebra.png

矩阵

矩阵在机器学习中重要性就不再多数,在机器学习特别是深度学习中,大部分工作就是对矩阵进行变换和运算。以下内容需要我们掌握的。

  • 矩阵运算
  • 逆矩阵
  • 矩阵的秩
  • 初等变换
  • SVD 矩阵分解

我们在推荐系统直接就用矩阵来表示用户和物品之间关系,其实矩阵可以理解为一张数表,表示行和列间对应关系。

\left(\begin{matrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{1n} \\ \vdots & \vdots& \vdots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \\ \end{matrix} \right)

数表,上面表示 m x n 矩阵,矩阵符号一遍使用大小字母来表示矩阵,但是注意大写 D 留给表示行列式。在大写字母右下角表示矩阵行数和列数例如A_{2\times3}

A_{2\times3} = \left( \begin{matrix} 1 & 2 & 3 \\ 1 & 1 & 1 \\ \end{matrix}\right)

矩阵和行列式差别

矩阵是一张数表,而行列式是一个数据,之前我们介绍如何将行列式展开进行计算来得到一个数据。表示方式不同,行列式用两条竖线来表示行列式,而矩阵用括号或方括号来表示矩阵。而且行列式行数和列数是相同,也就是我们在描述行列式通常说 n 阶行列式,而矩阵就更加灵活了,行数和列数可以相等也可以不相等。
其实行列式是方阵的一个属性。

矩阵的分类

  • 实矩阵和复矩阵
  • 行矩阵和列矩阵
  • 零矩阵
  • 负矩阵 对于 A 矩阵负矩阵是 -A 表示
  • 行数和列数相等就是 n 阶方阵
  • 如果一个矩阵
    \begin{bmatrix} 1 & 0 & \cdots & 0\\ 0 & 1 & \cdots & 0\\ 0 & 0 & \vdots & 0 \\ 0 & 0 & \vdots & 1 \\ \end{bmatrix}
E_5 = np.eye(5)
E_5
array([[1., 0., 0., 0., 0.],
       [0., 1., 0., 0., 0.],
       [0., 0., 1., 0., 0.],
       [0., 0., 0., 1., 0.],
       [0., 0., 0., 0., 1.]])
  • 只有一行一列的
  • 同型矩阵,也就是行数和列数对应相等的
m_2 = np.ones_like(m_1)
m_2.shape

在 numpy 中,我们通通过矩阵的 shape 属性来查看矩阵形状,这里 like 表示创建全部元素都是 1 与 m_1 形状相同的同型矩阵。

  • 矩阵相等前提是同型矩阵
  • 这里说只有方阵才有主对角线和次对角线

矩阵运算

矩阵加法

两个矩阵对应元素相加即可

a_1 = np.arange(0,9).reshape((3,3))
a_1
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])
a_2 = np.arange(1,10).reshape((3,3))
a_2
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
a_3 = a_1 + a_2
array([[ 1,  3,  5],
       [ 7,  9, 11],
       [13, 15, 17]])

这里值得强调的是,书上说的只有同型矩阵才能相加减,但是在numpy 中因为 numpy 又一个广播特征,就是 numpy 中矩阵只满足一个维度上与矩阵保持一致,所以可以通过自动广播形式将行或列元素进行复制来保持维度一致。

a_5 = np.array([1,1,1])
a_6 = a_1 + a_5
a_6
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])

矩阵的减法

  • A + B = B + A
  • (A + B) + C = A + (B + C)
  • A + 0 = A
  • k(A+ B) = kA + kB
  • (k+l)A = kA + lA

矩阵的数乘

a_7 = 3 * a_1
a_7
array([[ 0,  3,  6],
       [ 9, 12, 15],
       [18, 21, 24]])

矩阵提取公因子是所有元素均有公因子,公因子外提一次,而行列式是行提取公因子,每一行都需要提取一次。那么行列式所有元素都有公因子,那么所有元素均有外提 n 次。

矩阵的乘法

其实矩阵乘法是

a_1 = np.arange(0,6).reshape(2,3)
a_1
array([[0, 1, 2],
       [3, 4, 5]])
a_2 = np.arange(0,6).reshape(3,2)
a_2
array([[0, 1],
       [2, 3],
       [4, 5]])
a_3 = np.dot(a_1,a_2)
a_3
array([[10, 13],
       [28, 40]])

结果矩阵形状,结果矩阵行数等于第一个矩阵的行数,结果矩阵的列数等于矩阵的列数。

相关文章

  • 透析矩阵,由浅入深娓娓道来—高数-线性代数-矩阵

    线性代数在科学领域有很多应用的场景,如下: 矩阵,是线性代数中涉及的内容, 线性代数是用来描述状态和变化的,而矩阵...

  • 线性代数(7) 矩阵

    矩阵 矩阵在机器学习中重要性就不再多数,在机器学习特别是深度学习中,大部分工作就是对矩阵进行变换和运算。以下内容需...

  • NumPy 中的线性代数

    NumPy 中的线性代数 矩阵 线性代数 多项式 曲线拟合

  • opengl-todo

    切面空间,再好好理解 立体贴图 线性代数,逆矩阵,法线矩阵

  • 110、对NumPy中dot()函数的理解

    线性代数(如:矩阵乘法、矩阵分解、行列式以及其他方阵数学等)是任何数组库的重要组成部分。今天学习线性代数中...

  • ML特训营笔记2

    线性代数 矩阵 1.矩阵的加法 设是两个矩阵,则 矩阵称为矩阵A 2.矩阵的数乘 设是矩阵,是一个常数,则矩阵称为...

  • 如何生动有趣的入门线性代数

    原文地址 如何生动有趣的入门线性代数 向量点乘 矩阵乘向量 向量乘矩阵 矩阵乘矩阵 矩阵的静态信息 向量空间 子空...

  • Latent Semantic Indexing

    线性代数回顾 矩阵分解(matrix decomposition):将方阵分解成多个矩阵因子,并且这几个矩阵因子都...

  • 矩阵乘法在python中的表示

    从数学表达上来说,矩阵乘法有: 矩阵的乘法(matmul product):这就是线性代数里面的矩阵乘法 內积/点...

  • numpy -- 实现线性代数

    Python 实现线性代数 m_n 与 n_k 这样的矩阵才能相乘 矩阵求逆 矩阵和矩阵的逆相乘结果为单位矩阵 qr分解

网友评论

      本文标题:线性代数(7) 矩阵

      本文链接:https://www.haomeiwen.com/subject/ungorktx.html