学习率 AdamW 优化器

learning rate AdamW Optimizer

我使用 BERT(来自 huggingface)情感分析进行训练,这是一项 NLP 任务。

我的问题是关于学习率的。

EPOCHS = 5                                                                                                                                                                                
optimizer = AdamW(model.parameters(), lr=1e-3, correct_bias=True)                  
total_steps = len(train_data_loader) * EPOCHS
scheduler = get_linear_schedule_with_warmup(                                    
  optimizer,
  num_warmup_steps=0,                                                          
  num_training_steps=total_steps
)
loss_fn = nn.CrossEntropyLoss().to(device)

能否解释一下 1e-3 的读法?

这是步数的密度还是要衰减的值。

如果是后者,是线性衰减吗?

如果我使用值 3e-5 进行训练,这是 NLP 任务的 huggingface 的推荐值,我的模型会很快过拟合:训练损失降至最低,验证损失增加。

学习率 3e-5:

如果我使用 1e-2 的值进行训练,我会在验证损失值方面稳步提高。但是在第一个纪元之后验证准确性并没有提高。见图片。为什么验证值没有增加,即使损失下降了。这不是自相矛盾吗?我认为这两个值是对彼此的解释。

学习率 1e-2:

你会推荐什么?

在反向传播中对权重进行的每次更新都使用称为学习率的参数进行加权。如果更小,则您正在以更小的步长迈向最小值。

有时建议您在过度拟合时降低学习率(并增加训练次数),但还有其他方法可以防止过度拟合。一个好的学习率应该让你在足够的时间内达到一个好的最小值。这是您需要试验的东西。