Skip to content

线性代数

[toc]

数据类型

名词 应用场景 纬度
标量
向量 线 1
矩阵 2
张量

基本运算

元素乘法

Python
p1 = np.array([0.3, 0.5, 0.8])  # 事件A的概率
p2 = np.array([0.4, 0.6, 0.7])  # 事件B的概率
joint_p = p1 * p2  # 联合概率

矩阵乘法相关

点积 Dot Product

点积的计算例子:

例如,给定向量 \( \mathbf{a} = [1, 2, 3] \)\( \mathbf{b} = [4, 5, 6] \),它们的点积为: [ 1 \times 4 + 2 \times 5 + 3 \times 6 = 4 + 10 + 18 = 32 ]

Python
sum(X*Y)
X @ Y

矩阵乘法

如果 A, B是两个矩阵, **A行和B列**之间进行**点积**操作, 得到矩阵乘法的结果

这个规则保证了所有元素的运算顺序与维度一致,使得结果矩阵代表了两个线性变换的组合效果。

点积**其实就是**一纬的矩阵乘法

线性变换和向量空间的运算

Python
import numpy as np

# 创建两个矩阵
<div markdown="1" style="margin-top: -30px; font-size: 0.75em; opacity: 0.7;">
:material-circle-edit-outline:  370 个字 :fontawesome-solid-code: 30 行代码 :material-clock-time-two-outline: 预计阅读时间 2 分钟
</div>
A = np.array([[1, 2, 3],
              [4, 5, 6]])

B = np.array([[7, 8],
              [9, 10],
              [11, 12]])

# 使用矩阵乘法运算符
C = A @ B

# 结果是
# [[58, 64],
#  [139,154]]

"""
计算原理:
C[0,0] = 1×7 + 2×9 + 3×11 = 58
C[0,1] = 1×8 + 2×10 + 3×12 = 64
C[1,0] = 4×7 + 5×9 + 6×11 = 139
C[1,1] = 4×8 + 5×10 + 6×12 = 154
"""
$$ \text{out}{i} = \frac{1}{\sqrt{\text{input} $$}}

\[ \text{out}_{i} = \sqrt{\text{input}_{i}} \]

小结

名词 应用场景
元素乘法 特征遮掩, 图像处理
矩阵乘法 图像处理, 线性变换, 特征转换

norm

范数一种度量,通常用来衡量向量或矩阵的“大小”或“长度” 分为 l1, l2, 最大norm

l1: 定义为向量各元素绝对值的和:||x||₁ = |x₁| + |x₂| + ... + |xₙ| 诞生了MAE

l2: 定义为向量各元素平方和的平方根:||x||₂ = √(x₁² + x₂² + ... + xₙ²) 诞生了MSE , 最常用

MSE被称为L2损失——它本质上是基于L2范数的损失函数,只是为了计算和优化的便利性,省略了平方根操作并进行了平均