AI小白的第十天:影响模型泛化能力的因素以及对策
之前写了两次识别手写数字的模型训练,模型对我自己手写图片的识别效果总是不尽人意。
后来了解到,模型在训练中命中率高,但是实战命中率差,就可能是出现了过拟合跟欠拟合的情况。
泛化能力差的原因
过拟合
过拟合就是模型太贴近于训练数据,而无法适用于真实世界的数据。
常用对策就是加大训练数据集。对于数据有限的情况,可以给数据添加噪声等,尽可能增加数据量和多样性。
欠拟合
欠拟合就是模型的学习能力差,无法从测试数据中找到数据的特征的规律。
常用的对策就是提高模型的复杂度。但比不是越复杂越好。
训练策略
k折交叉验证 k-fold cross-validation
提前终止 earlystopping
Early Stopping 就像考试时的「自动交卷系统」——当发现模型在练习题(验证集)上连续几次考不出更高分时,就果断停止训练,防止过度刷题导致死记硬背(过拟合)。
正则化 generalization
(1) L1 正则化(Lasso Regression)
L2正则化(岭回归/Ridge Regression)
范数惩罚 (Norm Penalty)
权重衰减 (Weight Decay)
Dropout方法
Dropout通过在训练阶段随机丢弃(drop)一部分神经元(将其输出置零),迫使网络不依赖任何单个神经元,从而提升模型的泛化能力。
当模型在训练集表现明显优于验证集时,优先尝试增加Dropout。现代架构(如Transformer)中,Dropout仍是防止过拟合的关键组件。