0

我一直在阅读一些关于 CRF 的论文,对特征函数有点困惑。一元(节点)和二元(边)特征 f 通常具有以下形式

f(yc, xc) = 1{yc=y ̃c}fg(xc)。

其中 {.} 是指示函数,如果包含的条件为真,则为 1,否则为 0。fg 是数据 xc 的函数,它从数据中提取有用的属性(特征)。

现在在我看来,要创建 CRF 特征,必须知道真正的标签 (yc)。这对于训练是正确的,但对于测试阶段,真正的类标签是未知的(因为我们试图确定它们最可能的值)。

我错过了什么吗?如何正确实施?

4

1 回答 1

2

CRF 的想法是它为标签的每个设置分配一个分数。因此,理论上,您所做的是计算所有可能的标签分配的分数,然后无论哪个标签获得最大分数,都是 CRF 预测/输出的结果。这只有在 CRF 对不同的标签分配给出不同的分数时才有意义。当你这样想的时候,很明显标签必须参与到特征函数中才能工作。

因此,假设您的 CRF 的对数概率函数是 F(x,y)。因此,它为数据样本 x 和标签 y 的每个组合分配一个数字。因此,当您获得新数据样本时,测试期间的预测标签只是 argmax_y F(new_x, y)。也就是说,您会找到使 F(new_x,y) 最大的 y 值,这就是预测的标签。

于 2013-08-18T14:03:02.193 回答