本文是关于李宏毅苹果书”第2章 实践方法论“学习内容的记录。
模型在测试集上表现不佳,可能是因为模型没有充分学习训练集。模型不能充分学习训练集的原因:
- 模型偏差
- 优化问题
- 过拟合
- 不匹配
一、模型偏差
模型偏差是指:由于模型过于简单,即便找到该模型的最优参数,模型的损失函数值实际还未达到最小。(想在海里捞针,但实际针不在海中)
此时可以通过重新设计模型、赋予模型更大灵活性降低模型偏差。
增加模型灵活性的方法有:
- 增加特征
- 设计规模更大的模型
- 使用深度学习
二、优化问题
模型的损失函数值达不到实际最小的原因不一定是模型偏差,还可能是优化不佳。一般的优化方法是梯度下降法。梯度下降法可能只找到损失函数局部最小时的参数,而非真正的最优参数。(想在海里捞针,但没办法捞出来)
如何判断模型的损失函数值不够小是因为模型偏差还是优化问题?
-
比较不同的模型,判断当前模型是否足够复杂
先使用一些较小的模型或非深度学习方法,这类方法不容易出现优化失败的问题。
如果更复杂的模型表现反而不好,可能是因为优化问题,需要使用其他方法更好地进行优化。
更复杂的模型应该比简单的模型得到更低的损失,但在训练集上却并没有。这并不是过拟合,过拟合的模型能在训练集上获得更低的损失、在测试集上则效果变差。
三、过拟合
如果增大模型的灵活性后,模型在训练集上的表现变好,在测试集上的表现也变好,说明之前模型的瓶颈是模型偏差;
如果增大模型的灵活性后,模型在训练集上的表现变差,说明之前模型的瓶颈是优化问题;
如果增大模型的灵活性后,模型在训练集上的表现变好,在测试集上的表现变差,说明当前模型过拟合。
过拟合的模型会在接收测试集的输入时,输出训练集中这个输入对应的标签,而这个标签可能跟实际的标签差距较大,使得模型在测试集上的表现较差。
过拟合的原因:
- 模型极端地拟合数据的分布。
解决过拟合的方法:
-
数据增强
根据对问题的理解创造新的数据并参与训练。如:在图像识别中,对训练集中的图片进行裁剪、左右翻转等操作得到新的图片。数据增强的方式要根据对数据的特性以及要处理的问题的理解进行选择。
-
限制模型
假设已知模型输入与模型输出之间是二次关系,选择与二次关系有关的模型有助于求到与真实分布接近的函数。
限制模型的方法:
- 减少模型参数。如:减少神经网络中神经元的数量、将FC修改为CNN。
- 减少使用的特征。
- 早停、正则化、丢弃法
同时要注意模型的限制不能太大,否则可能出现模型偏差问题。
四、交叉验证
训练模型时,划分训练集和验证集数据的方法;
-
按比例划分。如:90%的数据作为训练集,10%的数据作为验证集。
-
k折交叉验证。这个方法可以弥补随机划分训练集和验证集带来的划分不当问题。
k折交叉验证将数据划分为k份,每份数据都有充当验证集的机会。
五、不匹配
不匹配是指训练集跟测试集的分布不同。此时即使模型在训练集上获得较好的性能,也无法在测试集上正确预测。与过拟合不同的是,不匹配问题无法通过增加训练集克服。
此时需要分析训练集和测试集的产生方式,判断是否出现不匹配的情况。