01. 基础数学与机器学习
1. 必须掌握的数学
- 线性代数:向量、矩阵乘法、范数、内积、特征值;它们解释特征变换、相似度和参数空间。
- 概率统计:条件概率、期望、方差、最大似然、贝叶斯;它们解释不确定性和损失函数。
- 微积分:导数、梯度、链式法则;它们让优化器知道参数往哪个方向移动。
- 信息论:熵、交叉熵、KL 散度;它们描述预测分布与目标分布的差异。
- 优化:梯度下降、学习率、正则化、凸与非凸;它们决定训练是否稳定。
不必先证明所有定理,但要能解释“变量、目标、梯度、更新”四个词在一个训练循环中的位置。
2. 机器学习问题地图
| 问题 | 输入/标签 | 常用模型 | 指标 |
|---|---|---|---|
| 回归 | 特征/连续值 | 线性回归、树模型 | MAE、RMSE |
| 分类 | 特征/类别 | 逻辑回归、GBDT、神经网络 | Precision、Recall、AUC |
| 聚类 | 只有特征 | K-Means、密度聚类 | 轮廓系数、人工检查 |
| 排序 | query、item、偏好 | Learning to Rank | NDCG、MRR |
| 生成 | 条件/序列 | Transformer、扩散模型 | 人工评估、任务指标 |
先建立不带神经网络的基线。基线能暴露数据泄漏、标签错误和业务指标不合理等问题。
3. 泛化与数据泄漏
训练集、验证集和测试集必须按真实部署时间或用户边界切分。随机切分会让同一用户或同一文档的相似样本泄漏到测试集。模型记住训练集不等于理解;看训练损失下降、验证损失上升通常是过拟合信号。
常见防护:正则化、数据增广、早停、交叉验证、降低模型容量。生产指标要分桶查看,平均准确率可能掩盖少数类和长尾用户的失败。
4. 一个训练循环
python
for x, y in loader:
pred = model(x)
loss = criterion(pred, y)
optimizer.zero_grad()
loss.backward()
optimizer.step()loss 是优化目标,不一定等于业务目标。梯度异常、标签错位、归一化不一致和学习率过大都可能让训练失败。记录配置、数据版本、随机种子和指标,才能复现。
5. 学习任务
- 用 scikit-learn 做一个逻辑回归基线,并画混淆矩阵。
- 制造一次数据泄漏,比较随机切分和按时间切分的差异。
- 用 NumPy 手写线性回归的一步梯度下降。
验收:能解释交叉熵和准确率的区别;能指出一个不该使用随机切分的场景;能从训练曲线提出一个可验证的假设。
评论
正在加载评论…