我使用 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 任务的拥抱面的推荐值,我的模型很快就会过拟合:训练损失降至最低,验证损失增加。
学习率 3e-5:
如果我以 1e-2 的值进行训练,我会在验证的损失值方面得到稳步提高。但是在第一个 epoch 之后验证准确度并没有提高。见图片。为什么即使损失下降,验证值也不会增加。这不是矛盾吗?我认为这两个值是对彼此的解释。
学习率 1e-2:
你会推荐什么?