问题
训练数据的结果很好,误差不大,但在 测试集上效果不好,这种就可能发生 过拟合 或者 欠拟合
过拟合
训练误差 小,但 测试误差 大
案例
比如学习下面人脸:
当学习特征 过多 时,如下:
- 有两只眼睛
- 有一个鼻子
- 有一张嘴
- 黑色头发
- 短头发
- 棕色皮肤
- 黑色眉毛
那么 无法识别 欧美人 和 女人
原因
- 训练数据 数据太少
- 模型太复杂
- 训练数据的 特征过多,噪声过多
学习的 特征 过多,学习训练数据的 通性 的时候,也学习了训练数据的 特性,这些 特性 是会 影响 模型在新的数据集上的 泛化能力
解决
- 使用合适的模型:减少 网络层数、减少 神经元个数 等
- dropout。随机的丢掉一些神经元
- 需要更多训练数据
- 筛选特征
- 正则化
欠拟合
训练误差 大, 测试误差 大
案例
比如学习下面人脸:
当学习特征 过少 时,如下:
- 有两只眼睛
- 有一个鼻子
- 有一张嘴
- 椭圆形脸
原因
训练数据的 特征 复杂、较多,但 学习的特征过少,导致无法正确预测
解决
- 使用合适的模型:增加 网络层数 、增加 神经元数量


