在阅读李沐老师的动手学深度学习文章时发现了在softmax回归中,当epoch < 2时训练集准确率可能低于测试集准确率
李沐老师文章插图
下面是几点原因:

  1. 参数初始化与学习率的影响
    在训练初期(如前两个epoch),模型参数尚未充分更新,可能仍接近随机初始化的状态。若学习率较高(如代码中的lr=0.1),参数的剧烈调整可能导致训练集预测结果波动较大,而测试集在某个中间参数状态下可能偶然表现更好。

  2. 评估方式的差异
    训练集的准确率通常按每个batch的累积平均计算,而测试集是在整个数据集上一次评估的。在训练初期,模型可能在某些batch中表现较差(尤其是初始batch),导致训练集整体准确率被拉低。而测试集在epoch结束后评估,可能恰好处于参数调整后的较优状态。

  3. 数据分布的暂时优势
    测试集可能包含更多简单样本或类别分布更均衡,在模型未充分训练时,这些样本的分类更容易,导致测试集准确率暂时高于训练集。

  4. 欠拟合阶段
    模型在初始阶段可能对训练数据欠拟合,而测试集的数据特性(如某些类别的偏向性)可能与初始参数偶然匹配,从而在测试集上表现更好。

随着训练的进行(epoch ≥ 2),模型逐渐适应训练数据,训练集准确率会稳步提升并超过测试集。这种现象在初期较为常见,尤其在参数更新剧烈或数据分布存在微小差异时。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐