python - 为什么在训练拥抱脸变压器 NER 模型时评估损失会增加?
问题描述
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)
解决方案
准确性和损失不一定完全(反向)相关。
损失函数通常是准确度函数的近似值——与准确度不同,损失函数必须是可微的。
一个很好的解释可以在这里找到。
推荐阅读
- typescript - 如何正确缩小“未知”类型
- ios - Xcode 12 窗口标签 + 文档标签
- java - 随机数的对称二维数组
- woocommerce - 根据特定元素值隐藏元素
- javascript - 对纤细的组件进行分组
- javascript - Electron - ipcRenderer.send() 的 SetTimeout
- rust - 为什么 Rust 不推断这个闭包的返回类型?
- azure - azure pyspark register udf from jar Failed UDFRegistration
- javascript - 在 javascript 中用于什么以及如何使用“x % 2 == 0”?
- javascript - 重新加载后的项目以不同的顺序显示 Django