简介

假设你有冠西哥一天生活中的照片(这些照片是按时间排好序的),然后你很无聊的想给每张照片打标签(Tag),比如这张是冠西哥在吃饭,那张是冠西哥在睡觉,那么你该怎么做呢?

一种方法是不管这些照片的序列性(照片本来是按照时间排序的),然后给每张图片弄一个分类器。例如,给了你冠西哥一个月的生活照作为训练样本(打了Tag的),你可能就会学习到:早上6点黑乎乎的照片可能就是冠西哥在睡觉;有很多亮色的照片可能就是冠西哥在跳舞;有很多车的照片可能就是冠西哥在飙车。

很明显,照片的序列性包含有很多信息,忽视它是不对滴。比如,你看到了一张大嘴的特写,这个时候冠西哥是在吃饭呢还是在唱歌?如果你知道冠西哥在前一个时间点的照片上是在煮饭,那么很有可能这张就是在吃饭了;如果前一个时间点的照片上他是在唱歌或者跳舞,那么这张就很有可能是在唱歌。

因此呢,我们应该利用nearby照片的信息来提高我们标签机(暂时这么叫吧)的准确性,这正是条件随机场所干的事。


词性标注

下面用词性标注的例子来阐述一些细节。

词性标注:给你一个句子(a sequence of words or tokens),然后你给每个单词标注它是动词、副词还是形容词,或者其他。

就像其他的分类器一样,我们需要定义一些特征函数(feature functions) f i


条件随机场里的特征函数

在条件随机场里面,每个特征函数有下面几个输入值:

  • 一个句子 s
  • 一个单词在句子中的位置 i
  • 当前单词的标签l i
  • 前一个单词的标签l i−1

输出为一个实数(虽然通常就是0或者1)

(注释:实际上,在这里我们把特征限制在了当前单词和前一个单词的标签上,而不是整个句子中的任意标签,我们在这儿构建了一个条件随机场的特例——linear chain CRF。为了简洁性,我们这里就讨论这种特例)

比如,一个可能的特征函数:度量前一个单词是"very"的时候,当前单词被标为形容词的可能性。


特征转化为概率

接下来我们给每一个特征函数f j  
赋一个权值λ j  
(在下面我会交代怎么学习这些权值)。现在给定一个句子s,我们就能计算一个特定的标签集l 
的加权得分了(l 
是a sequence of labels,如(NOUN, ABJECTIVE...) 表示给s的第一个单词标为NOUN,第二个单词标为ABJECTIVE):

score(l|s)=∑ m j=1 ∑ n i=1 λ j f j (s,i,l i ,l i−1 )

(外层的求和是对所有的feature function求和,内层的求和是对句子中的所有单词求和)

最后,我们将这些得分(score)正则化到0-1:

Missing open brace for superscript


一些特征函数的例子

  • 如果l i  
    是副词并且第i个单词以"ly"结尾,则f 1 (s,i,l i ,l i−1 )=1 
    ,否则为0

    • 如果我们给这个特征函数赋大且正的权重,那么就是说我们很愿意将以"ly"结尾的单词看成是副词。(因为权重大,最后对总score的贡献大嘛)
  • 如果i=1 
    并且l i  
    是动词,并且句子以"?"结尾,则f 2 (s,i,l i ,l i−1 )=1 
    ,否则为0
    • 同样的,如果我们给这个特征函数赋大且正的权重,说明我们很愿意将以"?"结尾的句子的第一个单词标为动词。
  • 如果l i−1  
    是形容词并且l i  
    是名词,则f 1 (s,i,l i ,l i−1 )=1 
    ,否则为0
    • 一样的,大且正的权重,说明我们愿意将形容词后面的词标为名词(或者将名词前面的词标为形容词)
  • 如果l i−1  
    是介词并且l i  
    也是介词,则f 1 (s,i,l i ,l i−1 )=1 
    ,否则为0
    • 这个就是反着的了,英语里面好像木有两个介词连用的情况,所以这个时候我们的权重得是负的,说明我们不喜欢这种搭配。

现在你该明白了吧,总结一下:为了建一个条件随机场,你只需要定义一些特征函数(它们依赖于整个句子,当前的位置,附近的标签),然后将这些函数加权求和,再正则化就可以得到最终的概率了。

条件随机场 Conditional Random Fields的更多相关文章

  1. 条件随机场Conditional Random Field-CRF入门级理解

    条件随机场Conditional Random Field-CRF入门级理解   有向图与无向图模型 CRF模型是一个无向概率图模型,更宽泛地说,它是一个概率图模型.现实世界的一些问题可以用概率图模型 ...

  2. 条件随机场conditional random field

    主要翻译自http://blog.echen.me/2012/01/03/introduction-to-conditional-random-fields/,原作者是MIT的大神,加入了一些我自己的 ...

  3. 条件随机场(Conditional random field)

    条件随机场真是把我给折磨坏了啊,本以为一本小小的<统计学习方法>攻坚剩下最后一章,心情还是十分愉悦的,打算一口气把它看完,结果真正啃起来真是无比的艰难啊,每一句对我都好像是天书一般,怎么这 ...

  4. 论文翻译:Conditional Random Fields as Recurrent Neural Networks

    Conditional Random Fields as Recurrent Neural Networks ICCV2015    cite237 1摘要: 像素级标注的重要性(语义分割 图像理解) ...

  5. (转)Image Segmentation with Tensorflow using CNNs and Conditional Random Fields

    Daniil's blog Machine Learning and Computer Vision artisan. About/ Blog/ Image Segmentation with Ten ...

  6. Conditional Random Fields (CRF) 初理解

    1,Conditional Random Fields

  7. an introduction to conditional random fields

    1.Structured prediction methods are essentially a combination of classification and graphical modeli ...

  8. 条件随机场CRF(一)从随机场到线性链条件随机场

    条件随机场CRF(一)从随机场到线性链条件随机场 条件随机场CRF(二) 前向后向算法评估观察序列概率(TODO) 条件随机场CRF(三) 模型学习与维特比算法解码(TODO) 条件随机场(Condi ...

  9. 条件随机场 (CRF) 分词序列谈之一(转)

    http://langiner.blog.51cto.com/1989264/379166 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.ht ...

随机推荐

  1. win10 uwp 后台获取资源

    本文告诉大家,从后台代码获取界面定义的资源. 如果一个资源是写在 App 的资源,那么如何使用代码去获得他? 简单的方法是使用下面的代码 Application.Current.Resources[& ...

  2. Hadoop(十二)MapReduce概述

    前言 前面以前把关于HDFS集群的所有知识给讲解完了,接下来给大家分享的是MapReduce这个Hadoop的并行计算框架. 一.背景 1)爆炸性增长的Web规模数据量 2)超大的计算量/计算复杂度 ...

  3. 接口测试思路,jmeter,接口测试流程

    接口测试总结 一:接口测试思想 接口测试:通过向服务器端发送请求,获取响应与预期结果做对比的一种服务端黑盒测试过程. 解释:接口就是将浏览器,客户端,手机端,或者服务器调用另一个服务器的请求抽离出来测 ...

  4. Java反射机制(Reflect)解析

    一.导读 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力.这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被程序语言的设计 ...

  5. 树莓派.安装Redis环境

    先下载安装包 cd /home/pi/Downloadswget http://download.redis.io/releases/redis-4.0.1.tar.gz 解压 tar -zxf re ...

  6. LeetCode 476. Number Complement (数的补数)

    Given a positive integer, output its complement number. The complement strategy is to flip the bits ...

  7. 关于docker使用的几个小问题(二)

    很久没写博客了,集中写几个比较有意思的小问题. 一.CentOS容器没有service命令 这是因为我们从docker官方镜像仓库中pull的最新CentOS镜像都是centos7.4 Redhat- ...

  8. 老生常谈:关于undo表空间的使用率

    就在前几天,又有一个客户向我咨询undo表空间使用率的问题. 这让我想起几年前曾经有个省份的案例,客户的实际运维人员是一位刚毕业不久的女孩,几乎不懂Oracle原理,项目经理交给她的任务也是基础运维工 ...

  9. 【hihoCoder】#1039 : 字符消除 by C solution

    #1039 : 字符消除 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi最近在玩一个字符消除游戏.给定一个只包含大写字母"ABC"的字符串s,消 ...

  10. 微信小程序左滑删除功能

    效果图如下: wxml代码: <view class="container"> <view class="touch-item {{item.isTou ...