【问题标题】:Why does the evaluation loss increases when training a huggingface transformers NER model?为什么在训练拥抱脸变压器 NER 模型时评估损失会增加?
【发布时间】:2021-01-26 12:20:45
【问题描述】:

根据文档训练一个huggingface transformers NER 模型,评估损失在几个 epoch 后增加,但其他分数(准确率、精确度、召回率、f1)不断变好。这种行为似乎出乎意料,这种效果有简单的解释吗?这可以取决于给定的数据吗?

model = TokenClassificationModel.from_pretrained('roberta-base', num_labels=len(tag_values))


model.train()
model.zero_grad()

   for epoch in range(epochs):
      for batch in range(batches):
         -- train --
         ...

      train_loss = model.evaluate(train_data)
      validation_loss = model.evaluate(validation_data)



【问题讨论】:

  • 这只是表示过度拟合,一种非常普遍的现象。
  • 但是其他分数不应该也变得更糟,或者至少保持不变吗?他们显着改善......
  • 能否请您为每个图表使用相同的轴刻度?第一个图表有 0.1 步,而所有其他图表有 0.2 步。
  • 你有没有想出任何办法来处理这个问题?在我的变形金刚模型上处理类似的事情
  • 很遗憾没有。

标签: python pytorch huggingface-transformers


【解决方案1】:

准确率和损失不一定完全(反向)相关。
损失函数通常是准确度函数的近似值 - 与准确度不同,损失函数必须是可微的。
一个很好的解释可以找到here

【讨论】:

    猜你喜欢
    • 2021-08-16
    • 2020-11-09
    • 2021-12-21
    • 2020-01-04
    • 1970-01-01
    • 2022-06-28
    • 2020-10-24
    • 2021-01-10
    • 2020-12-18
    相关资源
    最近更新 更多