P13 · 基础与训练
预测神奇宝贝Pokemon
1这节解决什么问题
给一只宝可梦进化前的属性,能不能猜出它进化后的战斗力?答案是一个数,这是最干净的回归例子。
2一句话讲清
先假设答案是一组输入的加权和,再用十只宝可梦的数据调权重;模型越复杂,训练时越准,但遇到新数据会先变好、后崩掉。
3通俗解释
- 先用一个特征:拿进化前的战斗力乘一个倍数,再加一个基数,作为进化后的战斗力。换不同的基数和倍数,就是一族不同的直线,训练是在这一族里挑一条。
- 「有多差」用十个样本的误差加起来衡量。这里没除以样本数,所以数值整体偏大,但最好的那条直线不变,只是学习率要相应调小。
- 未知数只有两个,调起来很直接;这种形状的损失只有一个谷底,不会卡在半路。
- 想更准就加东西:加平方、三次方项让线变弯;按物种分开各画一条线;再加一个「别把权重调太大」的约束(正则)。
4一个例子
讲义例子
讲义的结果很有代表性:模型从直线加到三次、四次、五次曲线,训练数据上的误差一路下降,可新数据上的误差先降后猛涨——这就是过拟合,模型把十个点的偶然起伏也当成了规律。真正让效果跳一级的不是继续加曲线,而是发现漏了「物种」这个因素:按物种分开拟合后,新数据上的误差大幅下降,甚至比训练时还低,说明之前的模型一直在拿不同物种硬套同一条线。
5常见误区
- 训练误差一路下降,不代表模型变好。五次曲线训练最准、新数据最差。
- 反复用同一批测试数据挑模型,等于把测试集也拿来训练了,最后报出的分数会偏乐观。应该另留一部分数据专门做选择。
- 正则通常只限制权重、不限制基数。限制基数只会把整条线上下平移,起不到平滑作用;强度也不是越大越好。
6和相邻几节的关系
P1 是 2021 版同一套三步;P2 把过拟合放大到多层网络;P14 把答案从一个数换成类别。
730 秒回顾
答案是数就是回归;加特征能降训练误差,但新数据误差先降后崩;找到漏掉的关键因素(物种)比继续加曲线更有效;正则只限制权重,强度要试。
8小自测
先自己答,再点开对答案。
1. 五次曲线训练时很准、新数据上很差,是训练失败了吗?
不是。训练已经做得很好了,问题在于模型把十个点的偶然起伏也记住了。该减复杂度、加数据或加正则,而不是继续训。
2. 为什么正则一般不去限制那个基数?
基数只让整条线整体上移或下移,不改变它有多陡、多弯。限制它只会把预测整体拉向零,抑制不了「对新输入太敏感」这个问题。
9来源
来源与说明(点开可查)
基于对应官方讲义整理并做复习补充,不是视频逐字稿;本页不标注视频时间点。
对应讲义页码:Regression (v6).pdf 第 3–36 页