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

相关推荐
GPU实战笔记5 分钟前
云端 GPU 训练的账户余额提醒:它能说明什么,不能说明什么?
深度学习·算法·成本管理·gpu云计算·云端训练
回眸&啤酒鸭6 分钟前
【回眸】OpenSwarm 多智能体协作系统实战指南
大数据·前端·人工智能
博图光电14 分钟前
Libra 27105相关技术参数
人工智能·数码相机
IT_陈寒39 分钟前
SpringBoot自动配置差点让我加班到凌晨
前端·人工智能·后端
yumgpkpm1 小时前
Acceldata ODP(Open Data Platform)3.3.6.4(RHEL9)保姆级完整安装手册
大数据·人工智能·hive·hadoop·kafka·hbase·cloudera
程序员cxuan1 小时前
腾讯又来一王炸,开源版 WorkBuddy 太夯了!
人工智能·后端·程序员
邓工说电1 小时前
智慧断路器安全吗?数据加密、离线保护与合规认证全解读
大数据·数据库·人工智能·智能断路器·炜晔科技
阿里云大数据AI技术1 小时前
Lance 数据检索怎么选,当然阿里云 Milvus 向量湖
人工智能
出海客1 小时前
跨境电商多语言客服知识库怎么建:资料结构、检索边界与人工升级
大数据·人工智能
xsd202411181 小时前
从自主导航到视觉读表:一台工业巡检机器人的全栈技术链路拆解
人工智能