机器学习笔记之条件随机场(五)条件随机场需要解决的任务介绍

news2024/10/3 0:27:25

机器学习笔记之条件随机场——条件随机场需要解决的任务介绍

  • 引言
    • 回顾:条件随机场
    • 条件随机场要解决的任务

引言

上一节介绍了条件随机场的建模对象——条件概率 P ( I ∣ O ) \mathcal P(\mathcal I \mid \mathcal O) P(IO)参数形式和向量形式的表示。本节将针对条件随机场面对的任务进行介绍。

回顾:条件随机场

条件随机场(Condition Random Field,CRF)是一种结合了最大熵模型(Maximum Entropy Model)和隐马尔可夫模型(Hidden Markov Model,HMM)特点的无向图模型。其概率图结构表示如下:
条件随机场-示例

并且,它是一个概率判别模型,它的建模对象是关于隐变量的条件概率 P ( I ∣ O ) \mathcal P(\mathcal I \mid \mathcal O) P(IO)
P ( I ∣ O ) = 1 Z exp ⁡ [ ∑ t = 1 T − 1 ∑ m = 1 M λ m ⋅ s m ( i t + 1 , i t , O ) + ∑ t = 1 T ∑ l = 1 L η l ⋅ g l ( i t , O ) ] = 1 Z ( O , θ ) exp ⁡ ⟨ θ , H ( i t + 1 , i t , O ) ⟩ { θ = ( λ 1 , ⋯   , λ M , η 1 , ⋯   , η L ) T H ( i t + 1 , i t , O ) = ( ∑ t = 1 T − 1 s ( i t + 1 , i t , O ) ∑ t − 1 T g ( i t , O ) ) \begin{aligned} \mathcal P(\mathcal I \mid \mathcal O) & = \frac{1}{\mathcal Z} \exp \left[\sum_{t=1}^{T-1} \sum_{m=1}^{\mathcal M} \lambda_m \cdot s_m(i_{t+1},i_t,\mathcal O) + \sum_{t=1}^{T} \sum_{l=1}^{\mathcal L} \eta_l \cdot g_l(i_t,\mathcal O)\right] \\ & = \frac{1}{\mathcal Z(\mathcal O,\theta)} \exp \left\langle \theta,\mathcal H(i_{t+1},i_t,\mathcal O)\right\rangle \quad \begin{cases} \theta = (\lambda_1,\cdots,\lambda_{\mathcal M},\eta_1,\cdots,\eta_{\mathcal L})^{T} \\ \mathcal H(i_{t+1},i_t,\mathcal O) = \begin{pmatrix} \sum_{t=1}^{T-1}s(i_{t+1},i_t,\mathcal O) \\ \quad \\ \sum_{t-1}^{T}g(i_t,\mathcal O) \end{pmatrix} \end{cases} \end{aligned} P(IO)=Z1exp[t=1T1m=1Mλmsm(it+1,it,O)+t=1Tl=1Lηlgl(it,O)]=Z(O,θ)1expθ,H(it+1,it,O)θ=(λ1,,λM,η1,,ηL)TH(it+1,it,O)=t=1T1s(it+1,it,O)t1Tg(it,O)
并且,条件随机场打破了齐次马尔可夫假设和观测独立性假设,虽然没有脱离动态模型的范畴,但针对的目标是时间/序列状态转移过程有限的情况。例如:一条文本句子,一条蛋白质序列

其中 s m ( i t + 1 , i t , O ) s_m(i_{t+1},i_t,\mathcal O) sm(it+1,it,O)被称作转移特征函数(Transition Feature Function), g l ( i t , O ) g_l(i_t,\mathcal O) gl(it,O)被称作状态特征函数(State Feature Function)。以词性标注的角度为例,描述这两个特征函数。

  • 一个句子由词语组成,这些词语的词性在句子中存在关联关系。例如: The boy knocked at the watermelon \text{The boy knocked at the watermelon} The boy knocked at the watermelon(男孩敲了敲西瓜)

  • 我们需要定义合适的特征函数,来刻画数据的一些可能成立或者期望成立的经验特性

    t = 3 t=3 t=3时,此时的观测变量 o 3 o_3 o3 knocked \text{knocked} knocked,而下一时刻的词语是介词 at \text{at} at。在条件随机场——背景介绍中提到特征函数通常是实值函数,因此当前时刻的状态特征函数 g l ( i 3 , O ) g_l(i_3,\mathcal O) gl(i3,O)表示如下:
    这里忽略‘时态’的影响,并且[ V \mathcal V V]表示动词;[ P \mathcal P P]表示介词。
    g l ( i 3 , O ) = { 1 if  i 3 = [ V ]  and  o 3 = ′ knock ′ 0 otherwise g_l(i_3,\mathcal O) = \begin{cases} 1 \quad \text{if } i_3 = [\mathcal V] \text{ and } o_3 = '\text{knock}' \\ 0 \quad \text{otherwise} \end{cases} gl(i3,O)={1if i3=[V] and o3=knock0otherwise
    很明显, i 3 = [ V ]  and  o 3 = ′ knock ′ i_3 = [\mathcal V] \text{ and } o_3 = '\text{knock}' i3=[V] and o3=knock描述了一种既定事实,只要满足该事实条件, g l ( i 3 , O ) g_l(i_3,\mathcal O) gl(i3,O)才有它的存在价值。同理,关于两个隐变量共同作用的转移特征函数 s m ( i 4 , i 3 , O ) s_m(i_4,i_3,\mathcal O) sm(i4,i3,O)表示如下:
    和状态特征函数类似,当“当前词语的词性是动词”且“下一个词语的词性是介词”,并且当前单词是 knock \text{knock} knock时,该特征函数被启用。对应产生价值的大小由对应特征函数的参数 λ m , η l \lambda_m,\eta_l λm,ηl决定。
    s m ( i 4 , i 3 , O ) = { 1 if  i 4 = [ P ] , i 3 = [ V ]  and  o 3 = ′ knock ′ 0 otherwise s_m(i_4,i_3,\mathcal O)= \begin{cases} 1 \quad \text{if } i_4 = [\mathcal P],i_3 = [\mathcal V] \text{ and } o_3 = '\text{knock}'\\ 0 \quad \text{otherwise}\end{cases} sm(i4,i3,O)={1if i4=[P],i3=[V] and o3=knock0otherwise

条件随机场要解决的任务

条件随机场作为一个概率图模型,其主要任务主要分为两个部分:

  • 学习任务(Learning),主要针对模型参数进行求解。(Parameter Estimation)
    对于条件随机场的学习任务,可以将其理解为:给定训练数据集 D \mathcal D D

    • 样本/标签维度均是 T T T,即样本维度和条件随机场建模的‘序列/时间长度相同’。不要和‘转置符号’弄混;
    • 从真实样本的角度观察,样本 x ( i ) x^{(i)} x(i)可能是某一个句子,一个序列,而不是一个单词,一个氨基酸;对应的标签 y ( i ) y^{(i)} y(i)可能是‘每个单词的词性标注组成的序列’。
    • 各样本之间属于‘独立同分布’,各样本之间不存在关联关系。
      D = { ( x ( i ) , y ( i ) ) } i = 1 N x ( i ) , y ( i ) ∈ R T x ( i ) = ( x 1 ( i ) , x 2 ( i ) , ⋯   , x T ( i ) ) T → x 1 : T ( i ) y ( i ) = ( y 1 ( i ) , y 2 ( i ) , ⋯   , y T ( i ) ) T \begin{aligned} \mathcal D & = \{(x^{(i)},y^{(i)})\}_{i=1}^{N} \quad x^{(i)},y^{(i)} \in \mathbb R^T \\ x^{(i)} & = \left(x_1^{(i)},x_2^{(i)},\cdots,x_T^{(i)}\right)^T \to x_{1:T}^{(i)}\\ y^{(i)} & = \left(y_1^{(i)},y_2^{(i)},\cdots,y_T^{(i)}\right)^T \end{aligned} Dx(i)y(i)={(x(i),y(i))}i=1Nx(i),y(i)RT=(x1(i),x2(i),,xT(i))Tx1:T(i)=(y1(i),y2(i),,yT(i))T

    对应图像示例如下:
    条件随机场对于样本的描述
    对于最优参数 θ ^ \hat {\theta} θ^的估计表示如下:
    其朴素思想在于:希望预测的标签序列 y y y能够与对应的样本 x x x最大程度的匹配,即 P ( y ∣ x ) \mathcal P(y \mid x) P(yx)越大越好。并且各样本之间独立同分布,因此在学习过程中,模型参数的评价标准就是对‘数据集合内’的所有样本的 P ( y ∣ x ) \mathcal P(y \mid x) P(yx)都达到最大。
    θ ^ = arg ⁡ max ⁡ θ ∏ i = 1 N P ( y ( i ) ∣ x ( i ) ) \begin{aligned} \hat {\theta} = \mathop{\arg\max}\limits_{\theta} \prod_{i=1}^N \mathcal P \left(y^{(i)} \mid x^{(i)}\right) \end{aligned} θ^=θargmaxi=1NP(y(i)x(i))

  • 对于未知变量的推断任务(Inference):
    概率图模型——推断基本介绍中提到过关于推断的描述。

    • 通过联合概率分布,对边缘概率分布进行求解 (Marginal Probability):
      P ( i t ∣ O ) = ∑ i 1 , ⋯   , i t − 1 , i t + 1 , ⋯   , i T P ( I ∣ O ) \mathcal P(i_t \mid \mathcal O) = \sum_{i_1,\cdots,i_{t-1},i_{t+1},\cdots,i_T}\mathcal P(\mathcal I \mid \mathcal O) P(itO)=i1,,it1,it+1,,iTP(IO)
      样本角度观察,可以看作:给定一条完整句子序列的条件下,对句中某一单词词性的条件概率进行求解
      P ( y t ( i ) ∣ x 1 : T ( i ) ) \mathcal P(y_t^{(i)} \mid x_{1:T}^{(i)}) P(yt(i)x1:T(i))
    • 求解条件概率分布(Conditional Probability):
      I = I A ∪ I B → P ( I A ∣ I B ) \mathcal I = \mathcal I_{\mathcal A} \cup \mathcal I_{\mathcal B} \to \mathcal P(\mathcal I_{\mathcal A} \mid \mathcal I_{\mathcal B}) I=IAIBP(IAIB)
      由于条件随机场概率判别模型求解条件概率主要针对概率生成模型,对于概率判别模型基本没有意义。例如隐马尔可夫模型中的预测任务(Prediction):
      齐次马尔可夫假设~
      P ( i t + 1 ∣ o 1 , ⋯   , o t ) = ∑ i t P ( i t + 1 , i t ∣ o 1 , ⋯   , o t ) = ∑ i t P ( i t + 1 ∣ i t , o 1 , ⋯   , o t ) ⋅ P ( i t ∣ o 1 , ⋯   , o t ) = ∑ i t P ( i t + 1 ∣ i t ) ⋅ P ( i t ∣ o 1 , ⋯   , o t ) \begin{aligned} \mathcal P(i_{t+1} \mid o_1,\cdots,o_t) & = \sum_{i_t} \mathcal P(i_{t+1},i_t \mid o_1,\cdots,o_t) \\ & = \sum_{i_t} \mathcal P(i_{t+1} \mid i_t,o_1,\cdots,o_t) \cdot \mathcal P(i_{t} \mid o_1,\cdots,o_t) \\ & = \sum_{i_t} \mathcal P(i_{t+1} \mid i_t) \cdot \mathcal P(i_t \mid o_1,\cdots,o_t) \end{aligned} P(it+1o1,,ot)=itP(it+1,ito1,,ot)=itP(it+1it,o1,,ot)P(ito1,,ot)=itP(it+1it)P(ito1,,ot)
      此时,将预测任务转化为滤波任务(Filtering)。对应概率图描述表示如下:
      隐马尔可夫模型-预测任务
    • 最大后验概率推断(MAP Inference):主要针对解码任务(Decoding),依然以隐马尔可夫模型解码任务为例,在求解 P ( I ∣ O ) = P ( i 1 , ⋯   , i T ∣ o 1 , ⋯   , o T ) \mathcal P(\mathcal I\mid \mathcal O) = \mathcal P(i_1,\cdots,i_T \mid o_1,\cdots,o_T) P(IO)=P(i1,,iTo1,,oT)过程中,需要求解一组适合的状态序列 I ^ \hat {\mathcal I} I^,使得后验概率 P ( I ^ ∣ O , λ ) \mathcal P(\hat {\mathcal I} \mid \mathcal O,\lambda) P(I^O,λ)最大
      I ^ = arg ⁡ max ⁡ I P ( I ^ ∣ O , λ ) \hat {\mathcal I} = \mathop{\arg\max}\limits_{\mathcal I} \mathcal P(\hat{\mathcal I} \mid \mathcal O,\lambda) I^=IargmaxP(I^O,λ)
      但实际求解过程并没有直接对 P ( I ∣ O ) \mathcal P(\mathcal I \mid \mathcal O) P(IO)进行求解,而是通过 维特比算法 求解 相邻时刻下,状态变量取值的联合概率分布之间的关系
      δ t ( k ) = max ⁡ I t − 1 P ( O , I t − 1 , i t = q k ∣ λ ) δ t + 1 ( j ) = max ⁡ I t P ( O , I t , i t + 1 = q j ∣ λ ) δ t ( k ) ⇔ ? δ t + 1 ( j ) \begin{aligned} \delta_t(k) & = \mathop{\max}\limits_{\mathcal I_{t-1}} \mathcal P(\mathcal O,\mathcal I_{t-1},i_t = q_k \mid \lambda) \\ \delta_{t+1}(j) & = \mathop{\max}\limits_{\mathcal I_t}\mathcal P(\mathcal O,\mathcal I_t,i_{t+1} = q_j \mid \lambda) \\ \delta_t(k) & \overset{\text{?}}{\Leftrightarrow}\delta_{t+1}(j) \end{aligned} δt(k)δt+1(j)δt(k)=It1maxP(O,It1,it=qkλ)=ItmaxP(O,It,it+1=qjλ)?δt+1(j)
      这种 P ( I ∣ O , λ ) \mathcal P(\mathcal I \mid \mathcal O,\lambda) P(IO,λ)的问题转化为 P ( I , O ∣ λ ) \mathcal P(\mathcal I,\mathcal O \mid \lambda) P(I,Oλ)的问题,用到了最大后验概率(Maximum a posteriori Probability,MAP)的思想:
      I ^ = arg ⁡ max ⁡ I P ( I ∣ O , λ ) = arg ⁡ max ⁡ I P ( I , O ∣ λ ) P ( O , λ ) ∝ arg ⁡ max ⁡ I P ( I , O ∣ λ ) \begin{aligned} \hat {\mathcal I} & = \mathop{\arg\max}\limits_{\mathcal I} \mathcal P(\mathcal I \mid \mathcal O,\lambda) \\ & = \mathop{\arg\max}\limits_{\mathcal I} \frac{\mathcal P(\mathcal I,\mathcal O \mid \lambda)}{\mathcal P(\mathcal O,\lambda)} \\ & \propto \mathop{\arg\max}\limits_{\mathcal I} \mathcal P(\mathcal I,\mathcal O\mid \lambda) \end{aligned} I^=IargmaxP(IO,λ)=IargmaxP(O,λ)P(I,Oλ)IargmaxP(I,Oλ)
      对于条件随机场,它的解码任务即:找到一条合适的词性标注序列 Y ^ \hat {\mathcal Y} Y^,使得 P ( Y ^ ∣ X ) \mathcal P(\hat {\mathcal Y} \mid \mathcal X) P(Y^X)达到最大。其中 X \mathcal X X表示一个句子样本。数学符号表达如下:
      Y ^ = arg ⁡ max ⁡ Y = ( y 1 , ⋯   , y T ) T P ( Y ∣ X ) \hat {\mathcal Y} = \mathop{\arg\max}\limits_{\mathcal Y = (y_1,\cdots,y_T)^T} \mathcal P(\mathcal Y \mid \mathcal X) Y^=Y=(y1,,yT)TargmaxP(YX)

下一节将详细介绍条件随机场的推断任务

相关参考:
机器学习-周志华著
机器学习-条件随机场(6)-CRF模型-要解决的问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/7338.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java多线程基础技术

1.1 进程与多线程 1、进程 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在 指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理 IO 的 当一个程…

Mysql 数据库开发简介与选择

文章目录 前言一、为什么要使用数据库 数据库的概念为什么要使用数据库二、程序员为什么要学习数据库三、数据库的选择 主流数据库简介使用MySQL的优势版本选择四、Windows 平台下安装与配置MySQL 启动MySQL 服务控制台登录MySQL命令五、Linux 平台下安装与配置MySQL总结前言 …

【附源码】计算机毕业设计JAVA宠物收养管理

【附源码】计算机毕业设计JAVA宠物收养管理 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JAVA mybati…

go微服务框架Kratos简单使用总结

Kratos是B站开源的一款go的微服务框架,最近PS5上的 战神诸神黄昏比较火,主角就是奎托斯。这个框架的名字就取自他。 在进行框架选型时,对比了目前主流的很多go微服务框架,如Zero,最后对比之下,选择了Krato…

vector容器 (20221115)

一、vector容器 1、功能:与数组非常相似,也称为单端数组。 2、区别:数组是静态空间,vector可以动态扩展。 动态扩展:并不是在原空间之后续接新空间,而是找更大的内存空间,将原数据拷贝到新空…

Django框架的电商商城的设计与实现python语言

摘要 随着计算机技术,网络技术的迅猛发展,Internet 的不断普及,网络在各个领域里发挥了越来越重要的作用。特别是随着近年人民生活水平不断提高,电商商城给商家的业务带来了更大的发展机遇。 在经济快速发展的带动下,服…

网络读卡器开发,带你智能感知无线设备

随着物联网行业的快速发展,针对网络读卡器的技术要求也在不断地提升,为此出现一款体积小、低功耗、高度集成、性能稳定的非接触读卡器,用户不需要进行编程设计,只用发送简单命令,就能完成对卡片的读写。 网路读卡器是智…

通过DataEase行列权限设置实现数据权限管控

在企业的日常经营中,企业人数达到一定数量之后,就需要对企业的层级和部门进行细分,建立企业的树形组织架构。围绕着树形组织架构,企业能够将权限落实到个人,避免企业内部出现管理混乱等情况。而在涉及到数据分析等工作…

浮点数 C语言 IEEE754

知识内化:用自己的语言讲述一遍,把复杂的东西解释得简单透彻 计算机表示浮点数的问题:(自己分析一下这个问题) 输入是:任意一个浮点数,正无穷到负无穷,包括整数部分和小数部分 2222…

支持I2S数字音频接口;音频功放芯片NTP8835C

韩国耐福数字功放系列其NTP8835C芯片采用I2S数字输入接口, 可用于音频应用场合,例如蓝牙/WIFI音箱、音响设备,投影仪、高清电视、会议系统等。通过I2S传输数字音频信号, 能够还原和输出高保真高质量的音频信号。 NTP88…

阿里SQL又爆神作数据生态:MySQL复制技术与生产实践笔记

前言 在开源国产数据库崛起的今天,这本佳作《数据生态:MySQL复制技术与生产实践》,无疑将为MySQL在各行业的推广和使用做出贡献,这也是像我这样的从商业数据库转到开源数据库的从业者的福音。 MySQL能够成为“最流行的开源数据库”&#xf…

【数据结构】图—图的存储结构(邻接矩阵法、邻接表法、邻接多重法、十字链表法)

图的存储结构1 邻接矩阵法2 邻接表法3 十字链表法4邻接多重法1 邻接矩阵法 主要存储的是点,所以空间复杂度和点(v)有关 对象:稠密图、有向图、无向图 表示唯一、适合稠密图空间复杂度:O(v^2)无向图邻接矩阵一定是一个…

Docker环境安装OWT Server[Open WebRTC Toolkit]

Docker环境安装OWT Server[Open WebRTC Toolkit] 目录 Docker环境安装OWT ServerDocker自定义开发OWT Server wiki(照着操作会有不注意的坑):An easy way to quickly evaluate OWT with Docker image 相关文章: Ubuntu环境安装OW…

Emlog评论区显示用户操作系统与浏览器信息教程

近期有不少初入Emlog的站长来咨询Emlog程序的评论区域如何实现获取到评价用户的操作系统和浏览器信息,其实要实现该功能也很简单,而且网上也有不少类是的插件。今天,冬镜就和大家聊聊不用插件来实现获取评论用户操作系统与浏览器信息。改造前…

软件测试 -- 进阶 3 软件测试设计

我并没有什么方法,只是对于一件事情很长时间很热心地去考虑罢了。-- 牛顿 1. 设计是什么? 设计是有目标、有计划的创造和创作活动,按特定需求制定解决方案。设计指把头脑中的设想/想法通过合理的规划、周密的计划、有效的方式表达出来的过程…

【C#】生成WebAPI实现简单调用本地数据库

需求:通过C#生成WebAPI,供微信小程序调用以访问本地数据库(微信小程序部分下次再说,今天先记录一下C#生成WebAPI相关的坑与注意点)。 数据库:SQL Server Web服务器:IIS 编程语言:C# IDE:VS20…

微信|零到一打造一款与微信互通的自动聊天机器人应用

本文干货充足篇幅较长,建议收藏后阅读避免迷路。文末可获取【自动聊天机器人源码和Demo】。 本教程教大家使用即构 ZIM SDK 创建一个能与微信端互动消息的自动聊天机器人应用。ZIM SDK可广泛应用于娱乐社交、电商购物、在线教育、互动直播等多种场景下即时通讯功能实…

R语言中的函数18:readxl::read_excel(), read_xls(),read_xlsx()

文章目录read_excel(), read_xls()和read_xlsx()函数介绍实例实例1利用read_xls读取文件实例2指定读取数据的范围range实例3读取有缺失值的数据实例4read_xls和read_xlsx需要对应的文件类型实例5read_excel的使用read_excel(), read_xls()和read_xlsx()函数介绍 read_excel(),…

设计模式----单例模式

设计模式之单例模式 文章目录设计模式之单例模式一. 简介1. 什么是单例模式?2. 单例模式的应用场景?3. 单例模式的类型?二. 单例模式的几种写法1. 饿汉式2. 懒汉式3. 懒汉式(线程安全性能优化)4. 使用volatile防止指令…

【ARM】Bootloader的调试

Bootloader 为啥要做一个bootloader,因为最近客户调试MCU中,中断向量表和代码不设置一个区域内,在0x0的地址放置中断向量表,并在0x18000000的地址放置代码,发现会有一点问题,想测试一下在0x18000000的地址…