数学与数据基础
用向量、矩阵、统计量、概率、距离和梯度描述数据与学习过程。
前置知识
通俗直觉
数学在机器学习中首先是一种描述数据与计算的语言。向量和矩阵组织输入,统计量概括分布,概率表达不确定性,导数连接损失与参数更新;它们各自回答不同问题。
初学时不必把所有公式同时背熟,但应能把一个小数据表、一次预测与一个误差计算对应起来,避免只记符号而看不出程序在做什么。
表格特征矩阵 X 常以行表示样本、列表示特征;目标 y 与样本行对应。模型参数是训练中需要确定的量,不能与输入特征或标签混为一谈。
统计和线性运算建立在单位、形状与采样范围上。均值或点积本身可以算出来,但它是否有合理解释,还取决于数据定义与使用目的。
可以沿一条完整小链条学习:读取记录卡,计算某列均值,按权重产生预测,再与真实值比较。如果某一步无法解释对应哪个样本或单位,后面的公式通常也难以核对。
从一个小矩阵串起几种计算
构造三行数据 [1,2]、[3,6]、[5,10],所以 X 的形状是 (3,2),逐列均值为 [3,6]。用权重 [2,-0.5]、偏置 0 计算,三条线性输出依次为 1、3、5。
第二列恰好是第一列的两倍,因此看似有两个特征,并不代表提供了两份独立信息。这个例子同时连接形状、均值、点积和特征相关性,提醒我们区分数字数量与信息数量。
核心原理
先分清样本轴与特征轴,再做矩阵乘法。X 为 (n,d)、参数为 d 维时,可对每行计算同一组线性分数;标签顺序要与这 n 行完全一致。
描述训练分布时,均值和标准差沿列求得,后续验证与测试复用这些统计量。这把基础统计与防止数据泄漏连接起来,而不是另一个互不相关的知识点。
损失把预测误差汇总为优化目标,梯度描述损失对参数的局部变化方向。损失小、梯度小和模型泛化好是不同判断,不能相互替代。
数学检查应与代码检查配合:写出形状、单位和一两个可手算输入,再比较程序输出。只有符号推导或只有随机张量跑通,都可能漏掉实际数据接口问题。
数学公式
n 是样本数,d 是特征数;点积是线性模型和神经元的核心运算。
工作流程
- 明确输入、输出与评价方式
- 建立简单基线
- 实现并检查关键中间量
- 在验证数据上诊断和迭代
代码示例
NumPy
example.pyimport numpy as np
X = np.array([[1., 2.], [3., 6.], [5., 10.]])
print(X.shape)
print(X.mean(axis=0))
print(X.std(axis=0))- 先检查数据和张量形状
- 把会学习参数的步骤限制在训练数据内
shape 明确样本与特征维度;axis=0 表示沿样本方向统计每个特征。
本机核对输出
example.py(3, 2)
[3. 6.]
[1.63299316 3.26598632]应用场景
- 建立可靠训练流程
- 诊断模型行为
常见误区
- 只记接口而不检查数据边界
- 只看单次分数而忽略泛化
推荐学习资料
参考库不会生成虚假资源或无效外部链接。