条件随机场入门(四) 条件随机场的预测算法

CRF 的预测问题是给定模型参数和输入序列(观测序列)x, 求条件概率最大的输出序列(标记序列)$y^*$,即对观测序列进行标注。条件随机场的预测算法同 HMM 还是维特比算法,根据 CRF模型可得:

\begin{aligned}
y^* &= \arg \max_yP_w(y|x) \\
&=  \arg \max_y\frac{ \exp \left \{w \cdot F(y,x) \right\}}{Z_w(x)} \\
&=  \arg \max_y \exp \left \{w \cdot F(y,x) \right\} \\
&= \arg \max_y \ w \cdot F(y,x)
\end{aligned}

于是,条件随机场的预测问题成为求非规范化概率最大的最优路径问题

\[\arg \max_y \ w \cdot F(y,x)\]

注意,这时只需计算非规范化概率,而不必计算概率,可以大大提高效率。为了求解最优路径,将优化目标写成如下形式:

\[\max_y \sum_{i=1}^n w \cdot F_i(y_{i-1},y_i,x)\]

其中,

\[F_i(y_{i-1},y_i,x) = \left \{f_1(y_{i-1},y_i,x),f_2(y_{i-1},y_i,x),…,F_K(y_{i-1},y_i,x) \right \}^T\]

为局部特征向量。

下面叙述维特比算法。首先求出位置 1 的各个标记 j=1,2,…,m 的非规范化概率:

\[\delta_1(j) = w \cdot F_1(y_0 = start,y_1 = j,x)\]

一般地,由递推公式,求出到位置 i 的各个标记 $l =1,2,…m$ 的非规范化概率的最大值,同时记录非规范化概率最大值的路径:

\begin{aligned}
\delta_i(l) &= \max_{1 \le j \le m} \left \{\delta_i(l-1) + w \cdot F_i(y_{i-1} = j,y_i = l,x)  \right\},  &\ l= 1,2,...,m\\
\Psi_i(l) &=\arg\max_{1 \le j \le m} \left \{\delta_{i-1}(l) + w \cdot F_i(y_{i-1} = j,y_i = l,x)  \right\}, & \ l= 1,2,...,m
\end{aligned}

直到i = n 时终止。这时求得非规范化概率的最大值为

\[\max_y(w \cdot F(y,x)) = \max_{1 \le j \le m} \delta_n(j)\]

及最优路径的终点

\[y_n^* = \arg \max_{1 \le j \le m} \delta _n(j)\]

由此最优路径终点返回,不断的找到各个时刻的最优值:

\[y_i^* = \Psi_{i+1}(y^*_{i+1}) , \ i = n-1,n-2,…,1\]

以上便是一条最优路径了,求得该最优路径:

\[y^* = (y_1^*,y_2^*,…,y_n^*)^T\]

这便为条件随机场预测的维特比算法。

时间: 2024-08-01 04:28:28

条件随机场入门(四) 条件随机场的预测算法的相关文章

条件随机场(CRF) - 4 - 学习方法和预测算法(维特比算法)

声明: 1,本篇为个人对<2012.李航.统计学习方法.pdf>的学习总结,不得用作商用,欢迎转载,但请注明出处(即:本帖地址). 2,由于本人在学习初始时有很多数学知识都已忘记,所以为了弄懂其中的内容查阅了很多资料,所以里面应该会有引用其他帖子的小部分内容,如果原作者看到可以私信我,我会将您的帖子的地址付到下面. 3,如果有内容错误或不准确欢迎大家指正. 4,如果能帮到你,那真是太好了. 学习方法 条件随机场模型实际上是定义在时序数据上的对数线性模型,其学习方法包括极大似然估计和正则化的极大

ReactJs条件判断的四种形式

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>ReactJs</title><script src="https://cdn.bootcss.com/react/15.4.2/react.min.js"></script><script src="ht

Bash编程入门之条件测试(三)

条件测试语法 在bash的各种流程控制结构中通常要进行各种测试,然后根据测试结果执行不同的操作,有时也会通过与if等条件语句相结合,让我们可以方便的完成判断. 语法 支持三种格式的条件测试语法 test<测试表达式> [ <测试表达式> ] [[ <测试表达式> ]] 格式1和格式2是等价的,格式3为扩展的test命令 在[[]]中可以使用通配符进行匹配.&&.||.>.<等操作符可以应用与[[]]中,但不能应用与[]中. 范例 文件存在则输

C#基础入门 四

C#基础入门 四 方法参数 值参数:不附加任何修饰符: 输出参数:以out修饰符声明,可以返回一个或多个给调用者: 如果想要一个方法返回多个值,可以用输出参数来处理,输出参数由out关键字标识,如static void Car(out int x,out int y,int z){},与引用参数区别在于:调用方法前无需对输出参数进行初始化,输出型参数用于传递方法返回的数值. 计算矩形面积的方法:(图8) static void rectangle(int length,int width, ou

Java使用Protocol Buffers入门四步骤

Protocol Buffers(简称protobuf)是谷歌的一项技术,用于将结构化的数据序列化.反序列化,经常用于网络传输. 这货实际上类似于XML生成和解析,但protobuf的效率高于XML,不过protobuf生成的是字节码,可读性比XML差.类似的还有json.Java的Serializable等. protobuf支持各种语言.本文以Java为例,简单介绍protobuf如何使用.其他语言使用方法类似. 首先需要下载: http://download.csdn.net/downlo

Thinkphp入门 四 —布局、缓存、系统变量 (48)

原文:Thinkphp入门 四 -布局.缓存.系统变量 (48) [控制器操作方法参数设置] http://网址/index.php/控制器/操作方法 [页面跳转] [变量调节器] Smarty变量调节器 TP变量调节器:普通的php函数 (count  strlen   str_replace) 定义:前者的输出,是后者的输入 [子模板包含] 当前模块彼此包含 <include  file=”模板名称”  /> [使用布局layout] 1. 开启布局,配置变量信息config.php 2.

Redbean:入门(四) - 反射机制 以及 事务

<?php //引入rb入口文件 include_once 'rb.php'; //定义dsn以及相关的数据 $dsn = 'mysql:host=localhost;dbname=hwibs_model'; $user = 'root'; $pass = ''; $table = 'link'; //链接数据库 R::setup($dsn,$user,$pass); //链接数据表 $handler = R::dispense($table); //inspect::反射表,将表的字段结构返回

足彩基础知识入门(4)赛事数据库与预测平台基础概念介绍(一)

在足球赛事数据库以及统计分析预测平台中,有很多概念,如果不搞懂,很难进行下一步的工作.所以为了配合团队人员的学习和任务进行,特意编写这篇文章.如果有其他问题和不懂的,请留言,将根据情况进行更新. 本文原文地址:足彩基础知识入门(4)赛事数据库与预测平台基础概念介绍(一) 1.指数1/2/3.... 我在 足彩基础知识入门(3)足彩赔率的本质 一文中介绍了赔率的概念,那么指数的概念和赔率以及结果是相关的.我们举个例子: 如上图的比赛,前面是竞彩非让球的赔率:1.74-3.25-4.15,也就是说

[WebGL入门]四,渲染准备

注:文章译自http://wgld.org/,原作者杉本雅広(doxas),文章中如果有我的额外说明,我会加上[lufy:],另外,鄙人webgl研究还不够深入,一些专业词语,如果翻译有误,欢迎大家指正. 必须准备的东西 上次介绍了3D绘图的基础知识.讲了一下由Z坐标的不同决定的两种坐标系,以及坐标变换的种类.这一次,说一说实际WebGL绘图的时候必须准备的东西. 首先,HTML,javascript相关的基础知识就不解释了.如果,有不明白的单词或概念的话,请自己查一下.我是认为你有一定的HTM