BiLSTM顶部的CRF层-5
BiLSTM顶部的CRF层-5
2.5 The total score of all the paths
在上一节中,我们学习了如何计算一条路径的标签路径得分:
计算总分的最简单方法是:列举所有可能的路径并将其总分相加。是的,您可以通过这种方式计算总分。但是,这是非常低效的。计算时间将无法忍受。
Step 1: recall the CRF loss function
上节定义了CRF的损失函数:
现在改变损失函数成log损失函数:
因为当我们训练模型时,通常我们的目标是使损失函数最小化,所以我们添加一个负号:
在上一节中,我们已经知道如何计算真实路径得分,现在我们需要找到一种有效的解决方案来计算:
Step 2: recall the Emission and Transition Score
为了简化,我们假设我们从一个三个字组成的句子训练一个模型:
此外,我们还有两个标签:
我们还有从BI-LSTM所得出的Emission scores,如下图所示:
我们还有从 CRF 所得出的Transition scores,如下图所示:
在接下来的步骤中,您将看到两个变量:obs和previous。previous存储前一步骤的最终结果。obs表示当前单词的信息。
如果我们的句子只有一个字, w0,没有先前步骤的结果,因此previous 是None,此外我们观察到第一个单词,obs=[X01,X02],X01和X02是发射分数。
那么总共的得分:
您可能想知道,为什么我们需要将以前的和obs扩展到矩阵。因为最大值可以使总分的计算有效。您将在以下过程中很快看到这一点。
为下一次循环改变previous的值:
第二次迭代已经完成。如果有些人想知道如何计算所有可能路径的总分 (label1 → label1, label1 → label2, label2 → label1, label2 → label2),从w0到w1,可以按下面的进行:
我们的目标为:
就是下图所示:
事实上,下面就是和上面一样。
2.6推断新句子的标签
我们已经了解了CRF损失函数的详细信息,下一步是将模型应用于测试集时如何推断新句子的标签。
本篇博客翻译https://createmomo.github.io/2017/11/11/CRF-Layer-on-the-Top-of-BiLSTM-5/,有需要就移步至此。