HMM 和 CRF 的比较与应用

文章目录

  • [学习笔记:HMM 和 CRF 的比较与应用](#学习笔记:HMM 和 CRF 的比较与应用)
    • [1. HMM 和 CRF 的介绍与比较](#1. HMM 和 CRF 的介绍与比较)
    • [2. HMM 为什么要把链放在隐变量上间接控制,而不是直接转移?](#2. HMM 为什么要把链放在隐变量上间接控制,而不是直接转移?)
    • [3. HMM Tokenizer 的词簇假设(包含聚类和分类在 Tokenizer 的应用)](#3. HMM Tokenizer 的词簇假设(包含聚类和分类在 Tokenizer 的应用))
      • [应用实例:HMM 和 Tokenizer](#应用实例:HMM 和 Tokenizer)
    • [4. HMM 的有监督和无监督](#4. HMM 的有监督和无监督)

学习笔记:HMM 和 CRF 的比较与应用

1. HMM 和 CRF 的介绍与比较

HMM(隐马尔可夫模型)

  • 定位:生成式序列模型(generative model),建模联合概率 ( p(x, y) )。
  • 核心假设
    • 马尔可夫假设:当前状态只依赖于前一个状态,即 ( p(y_t \mid y_{1:t-1}) = p(y_t \mid y_{t-1}) )。
    • 输出独立性假设:观测 ( x_t ) 只依赖于当前状态 ( y_t ),即 ( p(x_t \mid x_{1:t-1}, y_{1:t}) = p(x_t \mid y_t) )。
  • 参数
    • 转移矩阵 ( A ):状态转移概率
    • 发射矩阵 ( B ):状态到观测的发射概率
    • 初始状态概率 ( \pi ):系统起始状态的概率
  • 训练方法:最大似然估计(监督情况下),或 EM 算法(无监督情况下)。
  • 推断:Viterbi 算法(最优路径),前向后向算法(边缘概率)。

CRF(条件随机场)

  • 定位:判别式序列模型(discriminative model),建模条件概率 ( p(y \mid x) )。
  • 核心特点:通过特征函数 ( f_k(y_{t-1}, y_t, x_t) ) 直接建模输入 ( x ) 和输出 ( y ) 之间的关系。
  • 训练方法:最大化条件对数似然,通常使用梯度下降和正则化。
  • 推断:使用 Viterbi 算法(最优路径)或前向后向算法。

HMM 和 CRF 的比较

维度 HMM CRF
建模对象 ( p(x, y) )(联合) ( p(y \mid x) )(条件)
类型 生成式 判别式
参数 转移和发射概率 特征函数和权重
学习方法 最大似然 最大对数似然
推断 Viterbi Viterbi 或前向后向
数据要求 可以处理无标注数据 通常需要标注数据

2. HMM 为什么要把链放在隐变量上间接控制,而不是直接转移?

在 HMM 中,链被放置在隐变量(隐状态)上,而不是直接在观测 ( x ) 上转移,主要是为了:

  • 状态压缩防止爆炸:隐状态数通常远小于观测空间大小 ( |\mathcal{X}| ),如果在观测 ( x_t ) 上直接做转移,参数量会极大,模型过于复杂,导致计算不可行。
  • 隐状态表示抽象结构:通过把链放在隐状态上,可以把观测的复杂性隐藏在状态内部。状态间的转移描述了序列的动态,而观测是由状态发射出来的。
  • 增加泛化性:状态转移的马尔可夫性质假设隐状态之间的转移较为平滑且具有较好的泛化能力。通过将状态作为隐变量,模型可以学习到更多的结构性约束,从而提高对未知数据的泛化能力。

3. HMM Tokenizer 的词簇假设(包含聚类和分类在 Tokenizer 的应用)

HMM 对 Tokenizer 的应用可以理解为:词汇的分簇假设,即假设存在一个隐状态集合,每个状态对应于一类词汇,而词汇之间的组合遵循某种规律:

  • 聚类假设:将词汇视为在不同簇之间进行组合,而这些簇之间的转移是有规律的。通过 HMM 的隐状态来捕捉这些"类"的转移模式(类似于聚类)。这种方法有点类似于无监督的"软聚类",每个位置可以有多个可能的隐状态分配。
  • 分类假设:如果我们有标签信息(如词性标签或命名实体标签),则更类似于"分类"问题。HMM 通过学习标签序列的转移模式来进行分类任务。

在实际的 Tokenizer 中,常见的技术包括:

  • BPE (Byte Pair Encoding)WordPiece:这些方法通过迭代地合并最常见的字符对或子词单位,构建一个词表,进而将文本表示为更小的单位,类似于通过聚类来压缩词汇。
  • Morfessor:这是一种形态学分割工具,用于无监督的文本分割,将单词分解为更基本的词素,类似于聚类的思路。

应用实例:HMM 和 Tokenizer

在语音识别或自然语言处理中,聚类/分类在 Tokenizer 中的应用主要体现在如何将连续的语音信号或字符分解为离散的标记(如音素或子词)。

4. HMM 的有监督和无监督

有监督 HMM

在有监督的 HMM 中,训练数据包含观测序列 (x_{1:T}) 和对应的标签序列 (y_{1:T})

  • 训练目标:通过观测数据和已知标签序列来学习模型参数 (A)(状态转移概率)、(B)(发射概率)和 (\pi)(初始状态概率)。
  • 学习方法:通常使用最大似然估计(MLE)或者直接的频率计数方法。

无监督 HMM

在无监督的 HMM 中,训练数据只有观测序列 (x_{1:T}),没有标签序列 (y_{1:T}),需要通过隐变量学习来估计:

  • 训练目标:在没有标签的情况下,最大化观测数据的似然,即 ( p(x_{1:T}) = \sum_{y_{1:T}} p(x_{1:T}, y_{1:T}) )。
  • 学习方法 :使用 EM 算法(Baum-Welch) 进行训练,E 步计算隐状态的后验分布,M 步更新转移和发射参数。

半监督/弱监督

半监督学习中,部分数据可以获得标签,部分则没有标签。可以结合监督学习和无监督学习的方法,在一部分有标签数据的帮助下,提升对无标签数据的学习效果。

区别总结

  • 有监督 HMM:给定标签,直接进行训练,易于理解和实现,适用于标签可用的情况。
  • 无监督 HMM:标签不可得时,通过 EM 算法进行训练,适用于数据标签缺失或无法获得的情况。

以上就是对 HMM 和 CRF 的比较,HMM 的模型结构设计原因,HMM 在 Tokenizer 中的应用,以及 HMM 的有监督和无监督训练方式的总结。希望对你理解这些概念有帮助!

相关推荐
Flying pigs~~1 小时前
机器学习之线性回归
人工智能·算法·机器学习·数据挖掘·回归·线性回归
草莓熊Lotso1 小时前
Ext 系列文件系统核心:块、分区、inode 与块组结构详解
android·linux·c语言·开发语言·c++·人工智能·文件
有点心急10211 小时前
SQL 执行 MCP 工具开发(一)
人工智能·python·aigc
清风与日月2 小时前
OpenCV 图像显示高级技巧和常见问题
人工智能·opencv·计算机视觉
摘星编程2 小时前
突破界限!多模态AI如何重塑人机交互的未来?
人工智能·人机交互
勇气要爆发2 小时前
2026年想学AI,面对 Dify、Coze、n8n、LangChain 该学哪个?
人工智能·langchain·dify·coze·n8n
love530love2 小时前
ZeroClaw Reflex UI完整搭建流程——ZeroClaw Gateway + LM Studio + Reflex 本地 AI 管理面板
人工智能·windows·gateway·lm studio·reflex·openclaw·zeroclaw
CelestialYuxin2 小时前
FAMOSE:ReAct智能体驱动的自动化特征工程新框架
人工智能
qq_454245032 小时前
开源GraphMindStudio工作流引擎:自动化与AI智能体的理想核心
运维·人工智能·开源·c#·自动化