- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个序列标记模型,可以预测输入序列中每个单词的标记(本质上称为实体识别)。模型结构:Embeddings层→BiLSTM→CRF
因此,本质上,BiLSTM 基于标记嵌入学习特征的非线性组合,并使用它们在每个时间步输出每个可能标签的非标准化分数。然后,CRF 分类器学习如何在给定此信息的情况下选择最佳标签序列。
我的CRF是keras_contrib crf的一个实例,它实现了线性链CRF(与tensorflow.contrib.crf一样)。因此,它考虑从一个标签到下一个标签的标签转换概率,但不会最大化全局标签序列(一般 CRF 会这样做)。
默认激活函数是“线性”。我的问题是,为什么它是线性的,其他激活会产生什么差异?
也就是说,它是线性的,因为它的决策本质上被简化为预测给定标签 y-1 的标签 yt 的可能性 sub>(这可能被定义为线性回归问题)?或者由于其他原因它是线性的,例如让用户能够灵活地在任何他们喜欢的地方应用 CRF 并自己选择最合适的激活函数?
对于我的问题,我实际上应该使用 softmax 激活吗?我已经有了一个具有相似但不同结构的单独模型:Embeddings → BiLSTM → Dense with softmax。因此,如果我要在线性链 CRF 中使用 softmax 激活(即在我在本文开头提到的嵌入层 → BiLSTM → CRF 中),听起来它几乎与那个单独的模型相同,除了能够使用从 yt-1 到 yt 的转移概率。
最佳答案
当使用 Embeddings → BiLSTM → Dense + softmax 时,您隐含地假设标签的可能性在给定 RNN 状态的情况下是条件独立的。这可能会导致标签偏差问题。标签上的分布总和必须为 1。无法表示模型不确定特定标签是否会对此进行独立预测。
在 CRF 中,除了对隐藏状态进行评分之外,还可以使用 CRF 学习的转换分数来解决此问题。标签的分数可以是任意实数。如果模型不确定某个标签,则所有分数都可能很低(因为它们不必加起来等于一),并且来自相邻标签的预测可能有助于通过转换分数选择要选择的标签。标签的可能性不是在序列上分解的,而是使用动态编程算法针对整个标签序列进行计算。
如果您使用范围有限的激活函数,则会限制可以分配给标签的分数,并且 CRF 可能效率不高。如果您认为在 RNN 之后需要非线性,您可以添加一个带有您选择的激活的密集层,然后进行线性投影。
关于python - 线性链 CRF 分类器使用哪个激活函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58377983/
我是CRF++的新手。我在教自己看它的手册: http://crfpp.googlecode.com/svn/trunk/doc/index.html?source=navbar#templ 我不明白
我正在使用以下参数与 FFmpeg 进行流式传输(实时聊天)。 ffmpeg -f dshow -rtbufsize 100M -i video="device":audio="device" \ -
FFmpeg -CRF作品? 他们如何决定这一特定秒的最佳质量? 如果我将文件按秒分割并用 -CRF 分别对每个切片进行编码,我们会得到更好的结果吗?然后加入所有切片,或者我会得到相同/更差的结果,为
如何使用地名词典或词典作为 CRF++ 中的功能? 详细说明:假设我想对人名进行 NER,并且我有一个包含常见人名的地名词典(或字典),我想使用这个地名词典作为 crf++ 的输入,我该怎么做? 我正
我刚刚开始在槌中使用 SimpleTagger 类。我的印象是它需要二进制功能。我想要实现的模型具有正整数值特征,我想知道如何在 mallet 中实现它。另外,我听说如果要使模型有意义,则需要对非二进
CRF++ 说它可以: 其页面上的“可以输出所有候选者的边际概率”:http://crfpp.sourceforge.net/ 但是在条件随机场中用于查找这些概率的公式的表示法是什么? 有人告诉我这不
我正在尝试使用 Mallet 库训练 CRF 序列模型,但缺少一些重要信息。我在库本身中找到了一个示例:https://github.com/mimno/Mallet/blob/master/src/
当我使用CRF++0.58对NE建模时程序出现问题: “读取训练数据:tagger.cpp(399) [feature_index_->buildFeatures(this)] 0.00s” 开发环境
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
我有一个序列标记模型,可以预测输入序列中每个单词的标记(本质上称为实体识别)。模型结构:Embeddings层→BiLSTM→CRF 因此,本质上,BiLSTM 基于标记嵌入学习特征的非线性组合,并使
我正在尝试在一个简单的 jar 应用程序中使用 ffmpeg 转换视频,但是我得到了这个 Unrecognized option 拆分参数列表时出错:找不到选项。 我正在执行以下操作: List c
我需要创建一个 h265,其区域使用不同的 CRF 压缩。 我正在考虑使用具有不同 CRF 的 h265 从原始视频生成 2 个压缩视频,然后混合每个帧。最后一步是使用两者之间的最小 CRF 从混合帧
我需要开发一个图像标记应用程序,为此我正在考虑在一组超像素上使用条件随机场 (CRF),有很多论文指出这项技术是最先进的这个任务。与往常一样,该任务可以分为两个任务: 训练模型:对于这个问题,将获取参
我开始使用 crf++ 和 crfsuite(两者都使用非常相似的文件格式)。我想做与图像相关的事情(分割、 Activity 识别等)。我的主要问题是如何构建训练文件。有人使用 crf 和图像吗?有
如何将朴素贝叶斯预测的句子类别表示为 CRF++ 或 Wapiti 中的特征? 例如,如果Tumblr merges with Yahoo.这个句子被分类为Business,那么在为crf编写训练文件
我正在尝试使用机器学习来标记句子(每个句子都有一个标签,我假设句子是相互独立的)。我认为线性 CRF 模型适合这种情况,但我有一些问题。 我尝试使用CRF++ (我看到的其他实现似乎具有类似的格式)。
在 CRF 模型中添加数值特征是否可能/很好?例如序列中的位置。 我正在使用CRFsuite 。似乎所有功能都会转换为字符串,例如'pos=0'、'pos=1',这样就失去了欧氏距离的含义。 或者我应
我想使用 Mallet 在相当大的数据集上以留一序列方式运行条件随机字段。因此,我需要多线程计算来处理这个计算问题,要么通过 1) 并行训练多个 CRF,每个 CRF 在单个线程上训练,要么 2) 以
分类器经常因 OutOfMemoryError 失败。请提出建议。 我们有 UIMA 管道,它调用 5 个模型 jar(基于 mallet CRF),每个大约 30MB。 -Xms 设置为 2G,-X
我使用 GenericAcrfTui 训练了一个 CRF,它将一个 ACRF 写入一个文件。我不太确定如何加载和使用经过训练的 CRF 但是 import cc.mallet.grmm.learnin
我是一名优秀的程序员,十分优秀!