Language agnostic 条件随机场——它们是如何工作的?

Language agnostic 条件随机场——它们是如何工作的?,language-agnostic,random,conditional,machine-learning,field,Language Agnostic,Random,Conditional,Machine Learning,Field,我已经读过了与我有关的报纸。我明白了一半。有人能帮我想出如何实现它吗 我假设特征是通过某种启发式方法生成的。以POS标记器为例;也许通过查看训练数据可以看出,'bird'在所有情况下都被标记为名词,因此特征f1(z_(n-1),z_n,X,n)被生成为 (如果x_n='bird'和z_n=名词,则1表示其他0) 其中,X是输入向量,Z是输出向量。在重量训练过程中,我们发现该f1从未被违反,因此相应的重量\1(\用于lambda)在训练后将最终为正值且相对较大。猜测功能和培训似乎都具有挑战性,但在

我已经读过了与我有关的报纸。我明白了一半。有人能帮我想出如何实现它吗

我假设特征是通过某种启发式方法生成的。以POS标记器为例;也许通过查看训练数据可以看出,
'bird'
在所有情况下都被标记为
名词
,因此特征
f1(z_(n-1),z_n,X,n)
被生成为

(如果x_n='bird'和z_n=名词,则1表示其他0)

其中,
X
是输入向量,
Z
是输出向量。在重量训练过程中,我们发现该
f1
从未被违反,因此相应的重量
\1
\
用于lambda)在训练后将最终为正值且相对较大。猜测功能和培训似乎都具有挑战性,但在其他方面都很简单

我不知道如何将模型应用于未标记的数据。使用一些任意标签初始化输出向量,然后更改标签,在标签上增加所有
\*f
的和


在此方面的任何帮助都将不胜感激。

我不能完全确定我是否正确理解您的意思,但是是的,在输出端,每个向量都增加了一个开始和结束符号

关于通过某种启发式方法生成的特征函数,您也是对的。通常情况下,启发式是采取所有可能的组合。在您的示例中,每对(字、标记)都会有一个功能函数,从而产生大量功能。制定此类特征的常用方法是使用特征模板

在评估模型时,您不关心标准化,因此您要寻找的是给出最大分子项的序列。通常使用维特比算法来实现这一点,除了非常大的标签集——或者在您的示例中是大量可能的标签——在这种情况下使用近似值

CRF上的Viterbi与HMM的工作原理非常相似。从序列的开头开始,计算以手边单词结尾的最大概率,即每个单词在所有前置词上的最大概率,或者,因为只有一个前置词,所以计算开始符号。在下一步中,您将迭代所有标签,这些标签可能用于预测的第二个元素,即z_2。非规范化概率的最大值可以从前置节点的值a计算,即您在第一步中计算的值和您的模型。特别是,将前置节点的潜力、到相关节点的过渡以及节点本身结合起来,找出所有前置节点的最大值。是的,因为特征函数不限制对源端的依赖,所以您可以从中获取任何信息

当你到达终点时,你会往回走,以确定如何达到最大值


为了进一步阅读,我推荐拉胡尔·古普塔(Rahul Gupta)的报告。

我不能完全确定我是否正确理解您的意思,但可以肯定的是,在输出端,每个向量都增加了一个开始和结束符号

关于通过某种启发式方法生成的特征函数,您也是对的。通常情况下,启发式是采取所有可能的组合。在您的示例中,每对(字、标记)都会有一个功能函数,从而产生大量功能。制定此类特征的常用方法是使用特征模板

在评估模型时,您不关心标准化,因此您要寻找的是给出最大分子项的序列。通常使用维特比算法来实现这一点,除了非常大的标签集——或者在您的示例中是大量可能的标签——在这种情况下使用近似值

CRF上的Viterbi与HMM的工作原理非常相似。从序列的开头开始,计算以手边单词结尾的最大概率,即每个单词在所有前置词上的最大概率,或者,因为只有一个前置词,所以计算开始符号。在下一步中,您将迭代所有标签,这些标签可能用于预测的第二个元素,即z_2。非规范化概率的最大值可以从前置节点的值a计算,即您在第一步中计算的值和您的模型。特别是,将前置节点的潜力、到相关节点的过渡以及节点本身结合起来,找出所有前置节点的最大值。是的,因为特征函数不限制对源端的依赖,所以您可以从中获取任何信息

当你到达终点时,你会往回走,以确定如何达到最大值


为了进一步阅读,我推荐Rahul Gupta的报告。

对于表示简单单词序列的线性CRF,可以使用(正如muckl已经提到的)

对于其他拓扑,您需要找到其他算法


精确推理对于许多拓扑结构来说都是困难的,可以使用近似推理算法,例如基于树的重新参数化。

对于表示简单单词序列的线性CRF,可以使用(正如muckl已经提到的)

对于其他拓扑,您需要找到其他算法


精确推理对于许多拓扑结构来说是困难的,可以使用近似推理算法,例如基于树的重新参数化。

或者我们假设每个向量
X
中隐含一些
START
END
标记,然后假设概率
z(n-1)=可以为
n=0
Z
中的每个元素找到START
?最有可能的选择是什么?因此,它就像一个HMM,但是从输入序列中的任意点获取信息,而不是考虑每个
n
的前面
k
标记?或者我们假设每个向量中隐含一些
START
END
标记