CRF:Conditional Random Field,即条件随机场。

首先介绍一下基础背景知识。机器学习中的分类问题可以分为硬分类和软分类。硬分类常见的模型有SVM、PLA、LDA等。SVM可以称为max margin classifier,基于几何间隔进行分类。软分类一般分为logistic Regnesstion(概率判别模型)和 Naive Bayes(概率生成模型)。概率判别模型和概率生成模型的区别是,概率判别模型是对\(P\left ( y|x \right )\)进行建模,概率生成模型是对\(P\left ( x,y \right )\)进行建模。

1.概率生成模型

Naive即朴素贝叶斯假设,公式表示就是\(P\left ( x|y=y_{0} \right )= \prod_{i=1}^{p}P\left ( x_{i}|y=y_{0} \right )\),通俗的解释就是给定隐变量的条件下,观测变量之间相互独立,即\(x_{i}\perp x_{j}|y,i\neq j\),如图1所示。当\(y\)被观测时,阻断了观测变量之间的路径。



当隐变量一个line的时候,就是HMM(Hidden markov model)模型,如图2所示。



如果大家有学过概率图模型的话,肯定知道有向图中的d-分离。通过有向图的独立性假设,我们可以非常直观的得到HMM的两大假设。即齐次Markov假设和观测独立假设。这两个假设的表达式分别为:

齐次Markov假设:\(P\left ( y_{t}|y_{1:t-1},x_{1:t-1} \right )= P\left ( y_{t}|y_{t-1} \right )\)

观测独立假设:\(P\left ( x_{t}|y_{1:t},x_{1:t-1} \right )= P\left ( x_{t}|y_{t} \right )\)

2.概率判别模型

比如最大熵模型,采用最大熵思想。比如:给定方差和均值,高斯分布熵最大。。

3.两者结合就出现了MEMM:Maximum Entropy Markov Model。这是一种概率判别模型。



进行独立性分析可以发现,该模型打破了HMM的观测独立假设,模型变得更加的合理了。比如,文本标注问题中,上下文对于标注会产生影响。

但是同样存在标注偏差问题,原因是局部归一化。John Lafferty的论文中讲解了该问题为什么存在。用一句话来概括就是:Conditional distribution with low entropy take less notice of observation.

4.Chain-structure CRF

该模型克服了标注偏差问题,CRF的模型如下图4所示,隐变量之间变为无向边,所以是全局归一化。



接下来会写如何利用CRF实现Learning、Inference等任务。

CRF基础知识以及如何实现Learning,Inference的更多相关文章

  1. 转载 Deep learning:一(基础知识_1)

    前言: 最近打算稍微系统的学习下deep learing的一些理论知识,打算采用Andrew Ng的网页教程UFLDL Tutorial,据说这个教程写得浅显易懂,也不太长.不过在这这之前还是复习下m ...

  2. Deep learning:一(基础知识_1)

    本文纯转载: 主要是想系统的跟tornadomeet的顺序走一遍deeplearning; 前言: 最近打算稍微系统的学习下deep learing的一些理论知识,打算采用Andrew Ng的网页教程 ...

  3. Deep Reinforcement Learning 基础知识

    Introduction 深度增强学习Deep Reinforcement Learning是将深度学习与增强学习结合起来从而实现从Perception感知到Action动作的端对端学习的一种全新的算 ...

  4. Deep Reinforcement Learning 基础知识(DQN方面)

    Introduction 深度增强学习Deep Reinforcement Learning是将深度学习与增强学习结合起来从而实现从Perception感知到Action动作的端对端学习的一种全新的算 ...

  5. 关于图计算&图学习的基础知识概览:前置知识点学习(Paddle Graph Learning (PGL))

    关于图计算&图学习的基础知识概览:前置知识点学习(Paddle Graph Learning (PGL)) 欢迎fork本项目原始链接:关于图计算&图学习的基础知识概览:前置知识点学习 ...

  6. PRML 基础知识

    1 一个经典例子 ​ 一个经典的例子就是Polynomial Curve Fitting问题,现在将以此为基础介绍一些基本概念和方法.该问题的主要思路是针对给定的训练集\(\mathbf{x}\equ ...

  7. TFLite基础知识

    此基础知识仅为个人学习记录,如有错误或遗漏之处,还请各位同行给个提示. 概述 TFLite主要含有如下内容: (1)TFLite提供一系列针对移动平台的核心算子,包括量化和浮点运算.另外,TFLite ...

  8. C/C++ 基础知识

    C/C++ 基础知识 C 语言优秀学习网站 [C Programming Language] C 语言的注释 单行注释 /* comment goes here */ // comment goes ...

  9. 逻辑回归Logistic Regression 之基础知识准备

    0. 前言   这学期 Pattern Recognition 课程的 project 之一是手写数字识别,之二是做一个网站验证码的识别(鸭梨不小哇).面包要一口一口吃,先尝试把模式识别的经典问题—— ...

随机推荐

  1. 为什么要做一款ERP软件——开源软件诞生7

    技术之外的探讨--第7篇 用日志记录“开源软件”的诞生 赤龙ERP开源地址: 点亮星标,感谢支持,与开发者交流 kzca2000 码云:https://gitee.com/redragon/redra ...

  2. 20190928-02使用Redis客户端Jedis连接Redis,以及用Java代码操作Redis 000 030

    启动redis package com.yujie.jedis; import java.util.HashMap; import java.util.Map; import java.util.Se ...

  3. ArrayList源码剖析与代码实测

    ArrayList源码剖析与代码实测(基于OpenJdk14) 目录 ArrayList源码剖析与代码实测(基于OpenJdk14) 继承关系 从构造函数开始 从add方法深入 / 数组的扩容 其他的 ...

  4. flutter vscode 安卓打包apk文件

    配置 VSCode默认是没有使用密钥签名的,往往我们在正式项目中是需要签名的.那就创建好了...所以需要自己创建并使用密钥签名 步骤一 创建密钥库 执行以下命令: keytool -genkey -v ...

  5. Webpack 打包优化之速度篇

    在前文 Webpack 打包优化之体积篇中,对如何减小 Webpack 打包体积,做了些探讨:当然,那些法子对于打包速度的提升,也是大有裨益.然而,打包速度之于开发体验和及时构建,相当重要:所以有必要 ...

  6. Mysql主从分离与双机热备超详细配置

    一.概述 本例是在Windows环境,基于一台已经安装好的Mysql57,在本机安装第二台Mysql57服务. 读完本篇内容,你可以了解到Mysql的主从分离与双机热备的知识,以及配置期间问题的解决方 ...

  7. python之unittest框架使用

    一.unittest框架 unittest属于python内置的单元测试框架. 二.unittest框架的核心概念 test case:指测试用例.unittest中提供了一个基本类TestCase, ...

  8. 工具类-Fastjson入门使用

    简介 什么是Fastjson? fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到Java ...

  9. charles常用功能 request和response(简单的操作)

    先介绍一个修改request请求参数值的方法吧 第一步: 拷贝完成后还需要配置一下: 先添加一个: 然后下一步: 最后点击OK,就可以开始操作request和response数据了 先修改reques ...

  10. Scala的lazy应用

    如果将一个变量声明为lazy,则只有在第一次使用该变量时,变量对应的表达式才会起作用. 例如:对于特别耗时的的计算操作特别有用,如打开文件IO,网络IO等. import scala.io.Sourc ...