RoBERTa 分类模型正则化调优实验——即dropout和冻结层对过拟合的影响

RoBERTa 分类模型正则化调优实验笔记

1. 实验目的

在中文文本四分类任务(其他/投诉/疑似投诉/高意图)中,研究dropout率冻结底层网络对模型过拟合的影响,通过对比不同配置下的训练过程,找出兼顾性能与泛化的最优超参数组合。

2. 实验设置

  • 预训练模型chinese-roberta-wwm-ext
  • 数据集 :内部标注数据,共约2.4万条,按 sub_label 分层划分为训练集(70%)、验证集(15%)、测试集(15%)
  • 评价指标 :验证集上的 交叉熵损失宏平均F1,以F1为主要早停指标
  • 基础训练参数
    • 最大长度:256
    • Batch size:16(训练)/8(验证)
    • 学习率:2e-5
    • 权重衰减:0.01
    • 标签平滑:0.05
    • 早停耐心值:2(基于F1)

3. 实验配置

共测试5种配置,主要变化为dropout概率 (0.10/0.15/0.20)和是否冻结底层(Embedding层 + 前4层Encoder)。

情况 hidden_dropout_prob attention_probs_dropout_prob 冻结底层 简称
1 0.15 0.15 d0.15_无冻结
2 0.20 0.20 d0.20_无冻结
3 0.20 0.20 d0.20_有冻结
4 0.15 0.15 d0.15_有冻结
5 0.10 0.10 d0.10_有冻结

4. 训练结果汇总

4.1 各配置关键指标对比

配置 最低验证损失 (epoch) 最低验证损失 最高F1 (epoch) 最高F1 第8轮验证损失 验证损失反弹幅度 第8轮训练损失 早停触发
情况1 (d0.15_无冻结) 3 0.3887 7 0.8775 0.6764 0.2877 0.0675
情况2 (d0.20_无冻结) 3 0.3685 6 0.8774 0.5723 0.2038 0.1682
情况3 (d0.20_有冻结) 3 0.3891 5 0.8642 0.5053 0.1162 0.2566
情况4 (d0.15_有冻结) 3 0.3917 6 0.8711 0.5564 0.1647 0.1454
情况5 (d0.10_有冻结) 2 0.3860 4 0.8714 0.5709 0.1849 0.1308

注:所有配置均训练满8轮,因F1未出现连续两轮下降(早停未触发)。

  • 情况一

  • 情况二

  • 情况三

  • 情况四

  • 情况五

4.2 训练曲线可视化折线图

5. 结果分析

5.1 dropout率的影响(对比情况1与情况2)

  • 验证损失:情况2(d0.20)的最低验证损失(0.3685)低于情况1(0.3887),且反弹幅度减少29%(0.2877→0.2038)。
  • F1值:两者最高F1几乎相同(0.8775 vs 0.8774),但情况2在第6轮即达峰,情况1在第7轮才达峰(验证损失已明显上升)。
  • 结论:提高dropout从0.15到0.20,在不冻结的情况下,有效抑制了过拟合,同时保持了性能。

5.2 冻结层的影响(对比情况2与情况3)

  • 验证损失:情况3的最低验证损失(0.3891)略高于情况2,但反弹幅度极小(0.1162),仅为情况2的一半。最终验证损失(0.5053)远低于情况2(0.5723)。
  • F1值:情况3的最高F1(0.8642)比情况2低约1.3个百分点,说明冻结层限制了模型容量,导致性能轻微下降,但泛化稳定性显著提升。
  • 结论:冻结底层能强力缓解过拟合,但会牺牲少量性能。适合对稳定性要求极高且可接受F1微降的场景。

5.3 dropout与冻结层的组合(情况4、情况5)

  • 情况4(d0.15_有冻结) 反弹幅度0.1647,优于情况1(无冻结)的0.2877,但比情况2(d0.20_无冻结)的0.2038略小,最高F1 0.8711 接近情况2。
  • 情况5(d0.10_有冻结) 最低验证损失出现在第2轮(0.3860),反弹0.1849,最高F1 0.8714,与情况4相当。
  • 结论:在冻结基础上,较低dropout(0.10或0.15)也能取得不错的泛化效果,但不如情况2在性能和稳定性上的平衡。

6. 结论与建议

6.1 最优配置推荐

综合性能与泛化,情况2(dropout=0.20,无冻结) 是本次实验的最优选择:

  • 取得最低验证损失(0.3685)
  • 最高F1与情况1持平(0.8774)
  • 过拟合程度可控(反弹0.2038)
  • 训练损失与验证损失差距合理

6.2 早停策略调整

由于所有配置均未触发基于F1的早停(F1波动较大),建议将早停指标改为验证损失,耐心值设为2。这样可在验证损失连续上升时及时停止,避免过度训练。例如情况2在第3轮后验证损失开始反弹,若以损失早停,则会在第5轮停止(第4、5轮连续上升),此时F1已达0.8728,接近最高点。

6.3 进一步调优方向

  • 在情况2基础上微调dropout(如0.18或0.22),观察性能变化。
  • 尝试更复杂的正则化方法,如Stochastic Depth (随机深度)或LayerDrop
  • 对冻结层数进行更细粒度的搜索(如只冻结Embedding,或冻结前6层)。

7. 附录:各配置详细训练日志

情况1(d0.15_无冻结)

Epoch Training Loss Validation Loss Accuracy F1
1 0.984556 0.535320 0.810928 0.783722
2 0.726202 0.408372 0.857993 0.840279
3 0.467524 0.388687 0.866108 0.858262
4 0.360807 0.425556 0.883689 0.869660
5 0.252814 0.502047 0.886394 0.872835
6 0.170876 0.637724 0.883419 0.867923
7 0.093552 0.650299 0.891263 0.877456
8 0.067478 0.676418 0.888288 0.873423

情况2(d0.20_无冻结)

Epoch Training Loss Validation Loss Accuracy F1
1 1.042007 0.563510 0.799567 0.770724
2 0.781551 0.400161 0.856100 0.843470
3 0.554114 0.368504 0.875304 0.862803
4 0.475224 0.427141 0.880714 0.866790
5 0.349338 0.426796 0.878821 0.870065
6 0.265170 0.469085 0.889370 0.877389
7 0.125237 0.552799 0.890181 0.876998
8 0.168174 0.572293 0.885312 0.872764

情况3(d0.20_有冻结)

Epoch Training Loss Validation Loss Accuracy F1
1 1.080105 0.512031 0.808223 0.783248
2 0.802223 0.437697 0.842305 0.827158
3 0.603538 0.389091 0.870165 0.857313
4 0.554166 0.412226 0.872329 0.857727
5 0.432061 0.424423 0.878009 0.864195
6 0.375812 0.459663 0.874493 0.859982
7 0.217583 0.489833 0.879632 0.865826
8 0.256628 0.505250 0.877198 0.863478

情况4(d0.15_有冻结)

Epoch Training Loss Validation Loss Accuracy F1
1 0.995017 0.486849 0.823100 0.801614
2 0.761262 0.430464 0.850419 0.833468
3 0.495497 0.391672 0.864485 0.853010
4 0.436764 0.395929 0.877468 0.864437
5 0.307575 0.435272 0.879632 0.866569
6 0.267498 0.493138 0.884501 0.871118
7 0.109806 0.543396 0.882608 0.868585
8 0.145369 0.556351 0.880985 0.867006

情况5(d0.10_有冻结)

Epoch Training Loss Validation Loss Accuracy F1
1 0.943781 0.488687 0.819583 0.795270
2 0.709607 0.386042 0.863132 0.846711
3 0.429968 0.387412 0.869083 0.857693
4 0.333804 0.409719 0.883960 0.871365
5 0.196703 0.481317 0.879903 0.865617
6 0.130840 0.570889 0.883419 0.869413

相关推荐
duyinbi75172 小时前
局部特征提取改进YOLOv26空间移位卷积与轻量化设计双重突破
人工智能·yolo·目标跟踪
ZPC82102 小时前
PPO训练小车
人工智能·算法·机器人
赵庆明老师2 小时前
06-AI论文创作:研究的重点和难点
人工智能
HIT_Weston2 小时前
18、【Agent】【OpenCode】源码构建(Bun&node速度对比)
人工智能·agent·opencode
代码探秘者2 小时前
【大模型应用】6.RAG 场景下的向量+关键词混合检索
java·开发语言·人工智能·python·spring
AI前沿晓猛哥2 小时前
msvcp140.dll死亡搁浅无法启动安全修复教程(2026版)
数据挖掘
羸弱的穷酸书生2 小时前
跟AI学一手之渗透测试智能体
网络·人工智能
CCC:CarCrazeCurator2 小时前
MCP(Model Context Protocol)应用案例解析
人工智能