Machine learning 条件随机场特征函数

Machine learning 条件随机场特征函数,machine-learning,computer-vision,feature-extraction,Machine Learning,Computer Vision,Feature Extraction,我一直在读一些关于CRF的文章,对功能有些困惑。一元(节点)和二元(边)特征f通常为 f(yc,xc)=1{yc=ỹc}fg(xc) 其中{.}是指标函数,如果包含的条件为真,则计算为1,否则为0。fg是数据xc的一个函数,它从数据中提取有用的属性(特征) 现在在我看来,要创建CRF功能,必须知道真正的标签(yc)。这对于培训是正确的,但是对于测试阶段,真正的类标签是未知的(因为我们正试图确定它们最可能的值) 我错过什么了吗?如何正确实施这一点?CRF的想法是,它为标签的每个设置分配一个分数。

我一直在读一些关于CRF的文章,对功能有些困惑。一元(节点)和二元(边)特征f通常为

f(yc,xc)=1{yc=ỹc}fg(xc)

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

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


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

CRF的想法是,它为标签的每个设置分配一个分数。因此,从概念上讲,你要做的是计算所有可能标签分配的分数,然后无论哪个标签获得最大分数,都是CRF预测/输出的值。只有当CRF对不同的标签分配给出不同的分数时,这才有意义。当您这样想时,很明显,标签必须包含在功能函数中,才能正常工作


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

我明白你的意思。所以对于参数估计来说是有意义的。一旦您知道CRF模型参数,并且您想要预测一个测试示例,那么它是如何工作的呢?由于测试示例的标签是未知的,因此您可以直接预测得分最高的y值。因此,您必须编写一些代码,隐式或显式地计算所有可能的y值的分数,然后返回得分最大的值。这是测试时的预测。