线性代数(矩阵)

参考#

基本概念#

向量(vector)#

向量是数学、物理学和工程学中的一个基本概念,它表示具有大小和方向的量。向量可以用来表示力、速度、加速度等物理量。在数学中,向量既可以在几何上表示,也可以通过坐标系以数值形式表示。标量(scalar)指没有方向的量,和向量相区别。

向量支持四则运算方法。向量的基本性质:

  • 大小(模):向量的大小或模是指向量的长度,通常用符号 $|\vec{v}|$ 表示。对于二维向量 $\vec{v} = (x, y)$,其模可以通过勾股定理计算:$|\vec{v}| = \sqrt{x^2 + y^2}$。
  • 方向:向量的方向是指向量所指的方向,可以通过向量与坐标轴的夹角来描述。
  • 零向量:零向量是一个特殊的向量,其大小为零,没有确定的方向。在坐标表示中,零向量表示为所有分量都为零的向量,如 ((0, 0)) 或 ((0, 0, 0))。
  • 单位向量:单位向量是大小(模)为 1 的向量。单位向量通常用来表示方向。

比如这是一个二维向量 $\vec{v} = \begin{pmatrix} x \\ y \end{pmatrix}$

这是一个三维向量 $\vec{v} = \begin{pmatrix} x \\ y \\ z \end{pmatrix}$

向量空间#

矩阵#

这是一个三阶矩阵:$A = \begin{pmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \ \end{pmatrix}$

行列式#

矩阵的转置#

假设有一个矩阵 (A) 如下:

$$A = \begin{pmatrix} 1 & 2 \\ 3 & 4 \\ 5 & 6 \end{pmatrix}$$

矩阵 $A$ 的转置 $A^T$ 是:

$$A^T = \begin{pmatrix} 1 & 3 & 5 \\ 2 & 4 & 6 \end{pmatrix}$$

在这个例子中,$A$ 是一个 $3 \times 2$ 矩阵,而 $A^T$ 是一个 $2 \times 3$ 矩阵,原矩阵的行变成了转置矩阵的列,原矩阵的列变成了转置矩阵的行。

分块矩阵#

矩阵的映射#

矩阵运算#

向量加法#

假设我们有两个 $2 \times 2$ 矩阵 $A$ 和 $B$ 如下:

$A = \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}, \quad B = \begin{pmatrix} 5 & 6 \\ 7 & 8 \end{pmatrix}$

那么,矩阵 (A) 和矩阵 (B) 相加的结果 (C) 是:

$C = A + B = \begin{pmatrix} 1+5 & 2+6 \\ 3+7 & 4+8 \end{pmatrix} = \begin{pmatrix} 6 & 8 \\ 10 & 12 \end{pmatrix}$

这就是矩阵加法的基本运算过程。

矩阵与常数的乘积#

矩阵与 n 维向量的乘积#

矩阵与矩阵的乘积#

内积与外积

矩阵的乘方#

#

逆矩阵#

良性问题(可逆矩阵)#

恶性问题#

LU 分解#

特征值和特征向量#

2. 核心矩阵运算#

a) 矩阵加法#

  • 规则:只有维度相同的矩阵才能相加。对应位置的元素相加。

  • 示例

    A = [[1, 2],   B = [[5, 6],   A + B = [[1+5, 2+6],   = [[6, 8],
         [3, 4]]        [7, 8]]           [3+7, 4+8]]        [10, 12]]

b) 矩阵标量乘法#

  • 规则:矩阵中的每个元素都乘以这个标量。

  • 示例

    k = 2
    A = [[1, 2],    k * A = [[2*1, 2*2],   = [[2, 4],
         [3, 4]]            [2*3, 2*4]]        [6, 8]]

c) 矩阵转置#

  • 规则:将矩阵的行和列互换。记作 A^T

  • 示例

    A = [[1, 2, 3],   A^T = [[1, 4],
         [4, 5, 6]]          [2, 5],
                             [3, 6]]
  • 直观理解:沿着从左上到右下的对角线“翻转”矩阵。

d) 矩阵乘法 - 这是最重要的运算!#

  • 规则:两个矩阵 AB 相乘,A列数必须等于 B行数

    • 如果 Am x n 的矩阵,Bn x p 的矩阵,那么结果 Cm x p 的矩阵。
  • 计算方法:结果矩阵 C 中第 i 行、第 j 列的元素 c_ij,等于 A 的第 i 行 与 B 的第 j对应元素的乘积之和

  • 示例

    A = [[1, 2],   (2x2)
         [3, 4]]
    
    B = [[5, 6],   (2x2)
         [7, 8]]
    
    C = A * B
    
    计算 C[0,0]:取 A 的第0行 [1, 2] 和 B 的第0列 [5, 7]
              = (1*5) + (2*7) = 5 + 14 = 19
    
    计算 C[0,1]:取 A 的第0行 [1, 2] 和 B 的第1列 [6, 8]
              = (1*6) + (2*8) = 6 + 16 = 22
    
    计算 C[1,0]:取 A 的第1行 [3, 4] 和 B 的第0列 [5, 7]
              = (3*5) + (4*7) = 15 + 28 = 43
    
    计算 C[1,1]:取 A 的第1行 [3, 4] 和 B 的第1列 [6, 8]
              = (3*6) + (4*8) = 18 + 32 = 50
    
    所以 C = [[19, 22],
             [43, 50]]
  • 在深度学习中的关键应用

    1. 全连接层/线性层:神经网络每一层的计算本质上就是一次矩阵乘法 Y = XW + b,其中 X 是输入,W 是权重矩阵,b 是偏置向量。
    2. Embedding 查找:我们之前讲到,用 One-Hot 向量与 Embedding 矩阵相乘,等价于直接查找矩阵的某一行。

3. 点积 - 向量的特殊乘法#

  • 规则:两个维度相同的向量对应元素相乘后求和。

  • 示例

    a = [1, 2, 3]
    b = [4, 5, 6]
    dot_product = (1*4) + (2*5) + (3*6) = 4 + 10 + 18 = 32
  • 几何意义:点积可以衡量两个向量的相似度。如果两个向量方向相同,点积越大;方向垂直,点积为0。

  • 与矩阵乘法的关系:矩阵乘法可以看作是很多个点积运算的集合。A 的每一行与 B 的每一列做点积,得到结果矩阵的一个元素。

本文共 1513 字,创建于 Apr 2, 2024

相关标签: Math, 读书笔记