- 期望泛化误差=bias2+var2+噪声。要得到好的模型,首先要数据噪声小,其次训练误差要小,同时要对数据波动不敏感。
- 欠拟合时,训练损失大,即偏差大。
- 过拟合时,测试损失远大于训练损失,即方差大。
- 真实数据是有限的和有噪声的。理想的数据是无限大且无噪声。较好的数据是量要大、信噪比要高。
过拟合解决方法:
- 增大数据量
- 降低模型复杂度
- 正则化
- 使用集成方法
- 减少特征
欠拟合解决方法:
- 增加好特征
- 增加模型复杂度
- 减小正则项
数据量有限带来的问题:
- 测试集和训练集数据分布不同,包含的数据规律不同,从而测试误差较大。要达到好的效果,就要训练集和测试集数据量要大,信噪比要高,保证数据同分布。
- 拟合模型不唯一。例如很多高阶项,可能使训练集完美拟合,而测试集误差很大,因此需要控制模型复杂度。方法一,减少高阶项,例如减少网络深度等。高阶项在自变量发生微小变化时,函数值会发生很大变化。方法二,减小权重值,取L1和L2正则化等。权重值减少时,模型输入发生微小变化时,输出值变化较小,从而过拟合问题小。
数据噪声带来的问题
- 扰乱了数据规律。训练出的模型,包含了数据规律和噪声两部分。特别是模型复杂时,完美拟合了噪声,但是测试集噪声又不同了,以至于测试误差较大。
- 造成了数据差异。如果噪声比较大,而且测试集和训练集噪声又不同,那么学习到的基本都是噪声,不可能得到好的模型。
疑问
- 阿里DIN论文中,auc只有0.6,但是一样会出现过拟合问题。过拟合和欠拟合可以同时发生。
文献
- https://app.yinxiang.com/shard/s58/nl/10056250/5e84d7ec-3718-47d2-9d4f-c4ad2443fd20/