机器学习数学基础
线性代数
如何表示和组织数据
向量基础
- 特征向量
计算机世界,所有的东西其实都是向量,如果一个向量是由多个特征组成的,则这个向量就是一个特征向量
如一个房价的特征向量:
x=(面积,卧室数,卫生间数,房龄,距地铁站距离)
对于一套 90 平米、两室一卫、房龄 5 年、距地铁站 500 米的房子,其特征向量可以表示为:
x=(90,2,1,5,500)x=(90,2,1,5,500)
要构建一个预测房价的机器学习模型,实际上就是在这个五维向量中寻找规律

如图是一个2维向量,v点是向量的一个分量,整个线上的所有点组成了向量。
| 表示形式 | 形状 | 数学表示 | 说明 |
|---|---|---|---|
| 一维数组 | (n,) | [v1v2⋯vn][v1v2⋯v**n] | 只有长度,无行列之分 |
| 行向量 | (1, n) | v=[v1v2⋯vn]v=[v1v2⋯v**n] | 1 行 nn 列的二维数组 |
| 列向量 | (n, 1) | v=[v1v2⋮vn]v=v1v2⋮v**n | nn 行 1 列的二维数组 |
数据集:由多个向量组成的一个数据的集合。
- 线性相关与线性无关
对于一组向量 v1,v2,…,vkv1,v2,…,vk,存在不全为0的标量c1,c2,…,ckc1,c2,…,c**k,使得 c1v1+c2v2+⋯+ckvk=0c1v1+c2v2+⋯+ckvk=0,则称这组向量线性相关。否则这组向量线性无关。
线性无关意味着没有任何一个向量可以被其他向量表示。则数据集中不存在冗余数据。
数据科学用秩来衡量数据之间的相关性,秩指向量组中线性无关向量的最大个数。满秩:每个数据都有意义,不满秩:存在可以移除的冗余量。
特征选择:如果特征矩阵的秩小于特征数,说明存在冗余特征。
数据压缩:秩分解可以实现低秩近似,用更少的参数近似原矩阵,降低维度,减少空间。
奇异值分解:秩等同于非0奇异值个数,决定了有多少东西值得保留。
模型LoRA微调:只训练“低秩适配器”,不动原模型,用极少参数实现高效微调。
- 向量相加
平行四边形法则:将两个向量 uu 和 vv 的起点放在同一点,以它们为邻边作平行四边形,从公共起点出发的对角线就是 u+vu+v。
三角形法则:将 vv 的起点放在 uu 的终点,从 uu 的起点到 vv 的终点的向量就是 u+vu+v。

- 向量相乘
当 c>0c>0:向量的长度缩放为原来的 ∣c∣ 倍,方向不变
当 c<0c<0:向量的长度缩放为原来的 ∣c∣ 倍,方向反向
当 c=0c=0:结果为零向量 0
矩阵基础
矩阵是向量的自然扩展,也是线性代数的核心研究对象。
矩阵:由标量按行列排量组成的矩形阵列。

矩阵是机器学习的"原材料",把矩阵想象成一张数据表格,每行是一个样本(譬如一位用户、一张图片),每列是一个特征(譬如年龄、价格、像素值)。这种结构让计算机能高效处理成千上万的数据点。
- 矩阵的逆:将一个已经变换了的矩阵,恢复到原来状态的操作。

如图的两个矩阵,一个是转换后,一个是原始,进行求逆时发现,2,3,为1,1,其他位置为0,0。为1的位置表示可以恢复,为0的位置表示无法恢复。(因为值已经发生了变化)。
这在记忆压缩时常使用。
- 矩阵向量积
h=Wx+b
其中 xx 是输入向量(上一层的输出),WW 是权重矩阵,bb 是偏置向量,hh 是本层的输出。权重矩阵 WW 把输入从 nn 维空间映射到 mm 维空间(WW 为 m×nm×n 矩阵),这个映射过程就是一次线性变换。
将一组向量进行转换,从原来变成另一种的过程。
- 张量
标量、向量、矩阵在高维空间的自然推广,可以描述任意维度的数据及其转换关系。
| 阶数 | 名称 | 维度描述 | NumPy 表示 |
|---|---|---|---|
| 0 | 标量 | 无方向,只有大小 | x (标量值) |
| 1 | 向量 | 一行或一列 | shape = (n,) |
| 2 | 矩阵 | 行 × 列 | shape = (m, n) |
| 3 | 三阶张量 | 行 × 列 × 通道 / 深度 | shape = (h, w, c) |
| nn | nn阶张量 | 维度 1 × 维度 2 × … × 维度nn | shape = (d₁, d₂, ..., dₙ) |
深度学习的所有数据都使用张量表示。
微积分
从数据中学习和改进
极限、导数与微分
- 极限
当自变量无限接近某个值时,函数值的变化趋势。

对与上面的函数:当x无限趋近于1时(x永远不等于1),函数的值越来越接近2
这就是一个极限的概念,
- 导数的定义和几何意义

如图,我们如何计算一个物体的瞬时速度,我们只能根据时间和路程求出某个物体的平均速度。但是如何我们不断缩小时间,则无限小的时间短内的平均速度就就相当于此物体的瞬时速度。
- 常见函数的导数
幂函数
f(x)=xnf(x)=x**n

指数函数和对数函数

三角函数
| 函数 | 导数 |
|---|---|
| sinxsinx | cosxcosx |
| cosxcosx | −sinx−sinx |
| tanxtanx | sec2x=1cos2xsec2x=cos2x1 |

- 微分和线性近似
微分可以理解为导数的另一种表达形式。
微分和导数的区别在于导数是一个比值dy/dx,而微分dy和dx是独立的量。
微分的一个重要应用是线性近似,目的是将函数复杂计算转化为相对简单的微分计算。
导数是揭示了一个朴素却深刻的思想,任何连续变化的量,都可以通过它在某一点的变化趋势来刻画。从牛顿当年思考的瞬时速度问题出发,导数将平均变化率推向极限,得到了瞬时变化率的精确表达。这一从静态比值到动态极限的跨越,不仅是数学的进步,更是思维方式的转变,我们从此可以用一个数值来描述一个函数在某一点的变化倾向。几何上,导数是切线的斜率,这提供了我们用直线(线性)来理解曲线(非线性)的途径。
微分则将抽象的变化率转化为具体的变化量,让我们能够通过线性近似来简化复杂的函数计算。这一思想在机器学习中体现得尤为明显,泰勒展开将复杂函数分解为一系列多项式,梯度下降依赖一阶导数指引优化方向,而损失函数的凹凸性由二阶导数揭示,这些都是微分学在现代人工智能中的直接应用。极限、导数、微分、高阶导数这些概念层层递进,构成了理解连续变化世界的数学框架,也为下一章学习多元函数微分学奠定了坚实基础。
多元函数和复合函数求导
- 偏导数
对于一个多元函数,如果只让其中一个变量变化,而保持其他变量不变,函数值会如何变化。表示此变化的导数就是偏导数。
- 梯度
偏导数表示函数沿每个坐标轴方向的变化率。如果把所有坐标方向的偏导数组合在一起,就可以得到一个向量,称为梯度。
- 复合函数和链式法则
复合函数:一个函数的输出是另一个函数的输入。多个函数嵌套在一起组成的复杂函数。
链式法则:为何解决复合函数问题的有力工具。复合函数的导数等于各层函数导数的乘积。
- 积分
微分研究的是局部变化率,是指在某一点处,函数指变化的快慢。积分则是研究全局累计量,即在一个区间上,函数值的总体效果。
统计和概率
线性代数是机器学习的数据语言,它告诉计算机如何表示和组织数据。
微积分是机器学习的优化行为,它告诉计算机如何从数据中学习和改进。
统计与概率就是机器学习的决策思想,它告诉计算机如何在不确定的世界中做出理性的判断和预测。
概率基础
- 概率性思维
传统软件开发的一贯思维方式是确定性的。同样的输出永远产生同样的输出,代码逻辑明确的,可预测的,发生错误是可以精确定位和修复的。
机器学习的思想是从数据中学习规律,而不是由人工设计规则。机器学习的预测结果和过程天生就带有概率性。模型的输出不是正确答案,而是最可能的答案。
