在训练模型之前,可以随机初始化矩阵中的所有transition分数。所有的随机分数将在你的训练过程中自动更新。换句话说,CRF层可以自己学习这些约束。我们不需要手动构建矩阵。随着训练迭代次数的增加,分数会逐渐趋于合理。
2.3 CRF损失函数
CRF损失函数由真实路径得分和所有可能路径的总得分组成。在所有可能的路径中,真实路径的得分应该是最高的。
例如,如果我们的数据集中有如下表所示的这些标签:
我们还是有一个5个单词的句子。可能的路径是:
1) START B-Person B-Person B-Person B-Person B-Person END
2) START B-Person I-Person B-Person B-Person B-Person END
…
10) START B-Person I-Person O B-Organization O END
…
N) O O O O O O O
假设每条可能的路径都有一个分数 ,并且总共有N条可能的路径,所有路径的总分数是。(在第2.4节中,我们将解释如何计算 ,你也可以把它当作这条路径的分数。)
如果我们说第10条路径是真正的路径,换句话说,第10条路径是我们的训练数据集提供的黄金标准标签。在所有可能的路径中,得分 应该是百分比最大的。
在训练过程中,我们的BiLSTM-CRF模型的参数值将会一次又一次的更新,以保持增加真实路径的分数百分比。
现在的问题是:1)如何定义一个路径的分数?2)如何计算所有可能路径的总分?3)当我们计算总分时,我们需要列出所有可能的路径吗?(这个问题的答案是否定的。)
BiLSTM上的CRF,用命名实体识别任务来解释CRF(2)损失函数 (翻译过来的讲的很好)
https://blog.csdn.net/u011984148/article/details/105154265/
上一篇清晰的原文