第 6 讲 · 机器学习基础
前五讲解决了“怎样表示知识”和“怎样处理数据”。从这一讲开始,核心问题变成:没有办法把所有规则手写出来时,能否让机器根据样本自动调整一个函数?线性回归、SVM 和神经网络长得不同,但都服从本讲的共同框架。
学习到底学什么
给定输入 ,希望模型给出输出 。学习不是凭空产生知识,而是在一个候选函数族中,根据数据选择参数 。
- 监督学习有输入和答案,例如根据鸢尾花特征预测品种;
- 无监督学习只有输入,例如把相似顾客分组或学习数据的低维结构;
- 强化学习没有逐步标准答案,智能体通过行动获得延迟奖励,第 14 讲会单独展开。
监督学习中,输出是连续数值叫回归,输出是离散类别叫分类。一个完整问题至少要明确:样本是什么、特征是什么、标签是什么、损失怎样定义、模型怎样评估。
经验风险和梯度下降
训练集上平均损失称为经验风险:
优化希望找到让它尽量小的参数。梯度指向函数上升最快方向,因此沿反方向更新:
批量梯度下降每次用全部样本,方向稳定但单步昂贵;随机梯度下降每次用一个样本,噪声大但更新快;小批量梯度下降在深度学习中最常见。
训练集做得好,还远远不够
模型真正要处理的是未来样本。训练误差和测试误差一起看,才能区分:
- 欠拟合:模型太简单或训练不充分,两边误差都高;
- 过拟合:模型记住训练细节,训练误差低而测试误差高;
- 合适拟合:训练数据学得充分,未见数据也保持较小误差。
课件用偏差—方差—噪声解释泛化误差。高偏差常对应模型过于僵硬,高方差常对应模型对训练集波动过于敏感,噪声则是再好的模型也无法消除的随机性。增加模型复杂度通常降低偏差、提高方差,选择模型就是在两者间平衡。
常见控制方法:
- 加入 正则化;
- 限制树深、网络规模等模型复杂度;
- 获取更多有代表性的数据;
- 数据增强;
- 根据验证集表现早停,而不是把训练损失压到最低。
数据怎样分才不自欺
最简单的留出法把数据分为训练集和测试集,课件给出的训练/测试比例大致可在 2:1 到 4:1 之间选择。关键不是某个固定比例,而是测试数据不能参与训练。
如果要选择超参数,最好再分验证集;不能反复看测试集来挑参数,否则测试集也被“间接训练”了。数据少时可用 折交叉验证:分成 份,每次用一份验证、其余训练,轮换后求平均。课件以 10 折为常见选择。留一法是 的极端情况,训练次数很多,计算昂贵。
时间序列、同一人的多条记录或同一对象的增强样本不能随意随机拆分,否则会发生数据泄漏。
回归和分类怎么评估
回归常用均方误差:
平方会放大大误差。分类先从混淆矩阵看四种结果:TP、TN、FP、FN。再计算:
更看重 Recall, 更看重 Precision。改变分类阈值会让二者此消彼长。PR 曲线直接展示 Precision—Recall 的权衡;ROC 曲线画真正率对假正率,AUC 概括不同阈值下的排序能力。类别极不平衡时,PR 往往比单看 Accuracy 更直观。
维度越高,数据越显得稀疏
“维度灾难”不是简单地说特征多一定坏,而是空间体积随维度迅速增长:同样数量的样本在高维空间里变得非常稀疏,距离的区分度下降,模型需要更多数据才能覆盖可能情况。处理办法包括特征选择、降维、正则化,以及利用模型的结构先验。
优化方法的几何直觉
最速下降
一阶可微时,负梯度是局部最陡下降方向。它只用坡度,不使用曲率,窄长谷底中容易左右摆动。
Newton 法
二阶可微时,Hessian 矩阵 描述局部曲率:
它在最低点附近可能收敛很快,但计算和存储 Hessian 昂贵,Hessian 非正定时还未必朝下降方向走。
约束优化与 Lagrange 乘子
若要最小化 ,同时满足 ,构造:
在候选最优点上联立 和 。不等式约束还要加入 KKT 条件,第 8 讲 SVM 的对偶推导会真正用到它。
我在这一讲只建立“数据—模型—损失—优化—评估”骨架。第 7 讲把骨架装进最简单的线性模型,第 8 讲看最大间隔,第 9 讲再把函数族扩展为多层网络。