1.模型偏差
首先我们要理解什么是模型偏差,举个例子,如果我们使用一个很简单的模型,我们可以通过这个模型得到一个函数的集合,但是由于模型比较简单,导致让损失变低的函数并不在我们模型可以概括的范围之内,这样就导致我们无法将损失降低到最低
所以我们需要设置一个高灵活度的模型,通过深度学习或者是增加更多特征来使模型的偏差更低
2.模型优化
常用的优化方式是梯度下降 ,但是他仍存在一些问题,最常见的问题就是他只能帮你优化,但是不能帮你找到最优解,所以往往会碰到一个问题,到底是模型的灵活度不够呢,还是优化力度不够呢?
这里我们可以通过比较不同的模型来判断问题的所在,以下图为例:
我们也可以使用一些非深度学习的模型,比如线性模型,支持向量机等,这些方法相对于复杂的网络而言,不会存在优化失败的问题,更方便我们上手去训练
3.过拟合
过拟合是指模型在训练数据上表现得很好,但在未见过的数据上表现差。这是因为模型过于复杂,能在训练数据上“记住”细节而不是学习到一般性的模式。例如,一个模型在训练数据上将每个输入x映射到正确的y值,但对未知的x则随机输出,这种模型的损失在训练数据上为0,但在测试数据上表现差,因为它没有学到有用的预测规律,仅仅记住了训练数据。
所以在训练过程中,我们需要给模型进行一定的限制来解决过拟合的问题,比如:
-
正则化:
- L1 正则化(Lasso):通过对模型参数的绝对值进行惩罚,促进模型的稀疏性。
- L2 正则化(Ridge):通过对模型参数的平方值进行惩罚,限制参数的大小。
- 弹性网(Elastic Net):结合了L1和L2正则化的优点。
-
简化模型:
- 使用更简单的模型(例如,减少特征数或减少模型的层数)可以降低过拟合的风险。
-
交叉验证:
- 使用交叉验证技术来评估模型的泛化能力,确保模型在多个训练集和测试集上表现一致。
-
早停法(Early Stopping):
- 在训练过程中,监控模型在验证集上的性能,当性能不再提升时停止训练,防止模型过度拟合训练数据。
-
数据增强:
- 对现有数据进行变换(例如旋转、缩放、裁剪等),生成更多的训练样本,提高模型的鲁棒性。