CRF原理解读
概率有向图又称为贝叶斯网络,概率无向图又称为马尔科夫网络。具体地,他们的核心差异表现在如何求 ,即怎么表示
这个的联合概率。
概率图模型的优点:
- 提供了一个简单的方式将概率模型的结构可视化。
- 通过观察图形,可以更深刻的认识模型的性质,包括条件独立性。
- 高级模型的推断和学习过程中的复杂计算可以利用图计算来表达,图隐式的承载了背后的数学表达式。
一、概率有向图
对于有向图模型,这么求联合概率:

例如下图的联合概率表示如下:


二、概率无向图

如何求解其联合概率分布呢?
将概率无向图模型的联合概率分布表示为其最大团上的随机变量的函数的乘积形式的操作,称为概率无向图模型的因子分解(factorization)。
团:无向图中任何两个节点均有边连接的节点子集。
最大团:若C为无向图G中的一个团,并且不能再加进任何一个G的节点时其成为一个更大的团,则称此团为最大团。上图中{Y2,Y3,Y4}和{Y1,Y3,Y4}都是最大团。
概率无向图模型的联合概率分布P(Y)可以表示为如下形式:

其中C是无向图最大团,Yc是C的节点对应的随机变量,是一个严格正势函数,乘积(因式分解)是在无向图所有最大团上进行的,Z是归一化因子,保证P(Y)最后构成一个概率分布。
三、条件随机场(conditional random field)
虽然定义里面没有要求,我们还是默认X和Y结构一致,这是general CRF。然后看看linear chain CRF,线性链就是X和Y都是一串序列。
linear chain CRF的公式如下:

再详细一些如下:

t和s都是特征函数,一个是转移特征,一个状态特征,x=(x1,x2,...,xn)为观察变量,y=(y1,y2,...,yn)为隐含变量。所以,CRF也就是直接预测p(y|x),属于判别式模型。注意一个细节,特征函数里面的观测变量为x,而不是xi,这也就是说你可以前后随意看观测变量,所以特征模板里面可以随意定义前后要看几个观测值。
亦或表示如下:

O为观察序列,I为预测的隐变量序列。
四、模型训练与运行
1)训练
CRF模型的训练主要训练特征函数的权重参数λ,一般情况下不把两种特征区别的那么开,合在一起如下:

每个token会对应多个特征函数,特征函数f取值为0或者1,在训练的时候主要训练权重λ,权重为0则没贡献,甚至你还可以让他打负分,充分惩罚。利用极大似然估计寻找最优参数解。
2)工作流程
模型的工作流程:
- step1. 先预定义特征函数
,
- step2. 在给定的数据上,训练模型,确定参数
- step3. 用确定的模型做
序列标注问题或者序列求概率问题
3)序列标注
还是跟HMM一样的,用学习好的CRF模型,在新的sample(观测序列 )上找出一条概率最大最可能的隐状态序列
。
只是现在的图中的每个隐状态节点的概率求法有一些差异而已,正确将每个节点的概率表示清楚,路径求解过程还是一样,采用viterbi算法
其它参考链接:https://www.zhihu.com/question/35866596
CRF原理解读的更多相关文章
- NRF24L01——工作原理解读
源: NRF24L01——工作原理解读
- Java并发之AQS原理解读(三)
上一篇:Java并发之AQS原理解读(二) 前言 本文从源码角度分析AQS共享锁工作原理,并介绍下使用共享锁的子类如何工作的. 共享锁工作原理 共享锁与独占锁的不同之处在于,获取锁和释放锁成功后,都会 ...
- Java并发之AQS原理解读(二)
上一篇: Java并发之AQS原理解读(一) 前言 本文从源码角度分析AQS独占锁工作原理,并介绍ReentranLock如何应用. 独占锁工作原理 独占锁即每次只有一个线程可以获得同一个锁资源. 获 ...
- Java并发之AQS原理解读(一)
前言 本文简要介绍AQS以及其中两个重要概念:state和Node. AQS 抽象队列同步器AQS是java.util.concurrent.locks包下比较核心的类之一,包括AbstractQue ...
- Java线程池原理解读
引言 引用自<阿里巴巴JAVA开发手册> [强制]线程资源必须通过线程池提供,不允许在应用中自行显式创建线程. 说明:使用线程池的好处是减少在创建和销毁线程上所消耗的时间以及系统资源的开销 ...
- https原理解读
参考:架构师必读!以图文的方式解锁 HTTPS原理,10分钟还原HTTPS真像! 对于消息安全的定义是:即使消息被中间人拦截到,中间人也没办法解读出其中的消息. 对称加密 要实现消息安全,首先想到的是 ...
- PolarDB PostgreSQL 架构原理解读
背景 PolarDB PostgreSQL(以下简称PolarDB)是一款阿里云自主研发的企业级数据库产品,采用计算存储分离架构,兼容PostgreSQL与Oracle.PolarDB 的存储与计算能 ...
- XtraBackup原理解读
XtraBackup是现今为止唯一一款为InnoDB 和XtraDB提供热备的开源工具,这个工具有以下的有点: (1)备份快速高效而且可靠 (2)备份过程可以做到事物处理不间断 (3)节省磁盘空间和网 ...
- Spring IOC原理解读 面试必读
Spring源码解析:Bean实例的创建与初始化 一. 什么是Ioc/DI? 二. Spring IOC体系结构 (1) BeanFactory (2) BeanDefinition 三. IoC容器 ...
随机推荐
- PHP中is_null()方法
is_null — 检测变量是否为 NULL bool is_null ( mixed $var ) 如果 var 是 null 则返回 TRUE,否则返回 FALSE. 举例: $x=" ...
- virtio 之后的数据直连
在上一篇中说了virtio这种半虚拟化方案之后,还有一种全虚拟化的方案,这种全虚拟化的方案中,直接宿主机上的设备,直接被虚拟化成了n个设备,然后这些设备可以直接被加载进guest os中当做一个普通的 ...
- 【Mybatis】Mybatis的sql模糊查询
这个网站中有很多方法.https://code.google.com/p/mybatis/issues/detail?id=85 自己试验了如下的方法. 1. 参数中直接加入%% param.set ...
- c#数据库连接 出现错误提示:keyword not supported:'connection timeour'
连接字符串错误,如 User Id 被换行了,导致无效字符串 请检查连接字符串是否正确
- 【刷题】BZOJ 2260 商店购物
Description Grant是一个个体户老板,他经营的小店因为其丰富的优惠方案深受附近居民的青睐,生意红火.小店的优惠方案十分简单有趣.Grant规定:在一次消费过程中,如果您在本店购买了精制油 ...
- Codeforces711
A ZS the Coder and Chris the Baboon are travelling to Udayland! To get there, they have to get on th ...
- 最长上升子序列nlogn算法
LIS问题是经典的动态规划问题,它的状态转移相信大家都很熟悉: f[i] = f[k] + 1 (k < i 且 A[k] < A[i]) 显然这样做复杂度是O(n^2) 有没有更快的算 ...
- 洛谷p1017 进制转换(2000noip提高组)
洛谷P1017 进制转换 题意分析 给出一个数n,要求用负R进制显示. n∈[-32768,32767].R ∈[-20,-2] 考察的是负进制数的转换,需要理解短除法. 看到这道题的时候,我是比较蒙 ...
- [杂谈]ACM启程
此处省略一大段传奇的经历. 只需要知道的是,现在再次开始使用本博客的唯一原因就是——我进大学有搞ACM的打算. 其实本来是没有的,受到某学长的指引和推荐,我觉得这条路在当前确切是绝对的优选. 2年没碰 ...
- VMware 与Ubuntu通过samba服务器共享文件
Linux和windows在虚拟机下文件共享有很多种方式,常用的有使用VMware Tools共享和Samba服务器进行共享,使用VMware Tools这里就不说了,我使用的是Samba服务器. 其 ...