深圳Yolo 视觉
深圳
立即加入
词汇表

隐马尔可夫模型 (HMM)

探索隐马尔可夫模型(HMM)在统计人工智能中的应用。了解HMMUltralytics 协同工作,实现动作识别、序列分析和时序逻辑推理。

隐马尔可夫模型(HMM)是一种统计框架,用于建模内部过程不可直接观察——故称"隐"——但可通过可观测事件序列进行推断的系统。 尽管现代深度学习已发展到能处理复杂序列,HMM仍作为统计人工智能与概率论的基础概念而存在。它特别适用于分析时间序列数据——其中事件顺序提供关键背景信息——其核心原理在于:未来状态的概率仅取决于当前状态,而非先前历史。

隐马尔可夫模型的核心机制

要理解隐马尔可夫模型(HMM)的运作机制,必须区分该模型的两个不同层次:不可见的状态层与可见的输出层。该模型假设系统在隐状态之间根据特定概率进行转换,并在每个步骤产生观测值。

隐马尔可夫模型由一组参数定义,这些参数控制着状态转换和状态输出:

  • 隐藏状态这些 代表系统在特定时刻的底层现实。在语音模型中,隐藏状态可能代表 特定音素或词汇。
  • 可观测事件这些是由传感器或输入实际采集的数据点。在语音示例中,观测结果即为音频波形或频谱图数据。
  • 转移概率该矩阵描述从一个隐藏状态转移到另一个隐藏状态的可能性。例如,天气从"雨天"转变为"晴天"的概率。
  • 发射概率 这些概率定义了在当前隐藏状态下观察到特定观测结果的可能性。
  • 初始概率 决定系统最可能初始状态的分布。

训练隐马尔可夫模型通常采用鲍姆-韦尔奇算法从训练数据中估计这些参数。训练完成后, 通常使用维特比算法从新观测数据集中解码 最可能的隐状态序列。

隐马尔可夫模型与其他序列模型

尽管隐马尔可夫模型(HMMs)与其他序列处理工具存在相似之处,但在架构和应用方面却存在显著差异:

  • 隐马尔可夫模型(HMM)与 循环神经网络(RNN) RNN和 长短期记忆(LSTM) 网络是能捕捉长程依赖关系和非线性模式的深度学习模型,而HMM则是 更简单的概率模型,受限于马尔可夫假设(短期记忆)。 然而,HMM 所需数据量显著更少,且可解释性远高于其他模型。
  • 隐马尔可夫模型(HMM)与卡尔曼滤波器(KF) 两者均用于状态估计然而,卡尔曼滤波器专为连续状态设计(如追踪移动车辆的精确位置),而隐马尔可夫模型则适用于离散状态(如判定车辆处于"停泊"、"行驶"或"静止"状态)。

实际应用

尽管深度学习(DL)日益兴起,隐马尔可夫模型(HMM)在需要对序列进行概率推理的场景中仍被广泛应用。

语音与手写识别

从历史上看,隐马尔可夫模型(HMM)是语音识别系统的核心支柱。在此框架下,语音词汇构成"隐藏"状态,而麦克风录制的音频信号则作为观测数据。HMM通过建模字符笔画间的转换关系,帮助确定产生音频信号的最可能词序列,同时也能辅助破译连笔手写体。

生物序列分析

生物信息学领域,隐马尔可夫模型(HMMs)对基因预测和蛋白质比对至关重要。它们通过分析DNA或氨基酸序列来识别功能区域,例如基因组内的基因。这些"隐藏"状态可能代表编码区或非编码区,而具体的核苷酸(A、C、G、T)则作为观测数据。

计算机视觉中的动作识别

在现代计算机视觉领域,HMM可与诸如YOLO26等模型相结合。 YOLO26 进行动作识别。YOLO 在单帧中YOLO 物体或姿态,而HMM能分析这些姿态随时间的序列变化,从而classify ,例如"行走"、"奔跑"或"跌倒"。

视觉与状态分析的融合

对于使用 Ultralytics 来 管理数据集和模型的开发者而言,理解序列逻辑至关重要。视觉模型提供原始观测数据 (检测结果),这些数据可输入到HMM等状态空间模型中,从而推断时间上下文。

以下示例演示了如何姿势估计 生成一组观测序列。这些关键点可作为下游HMM或类似逻辑的"可观测事件"输入,用于classify 时间序列classify 。

from ultralytics import YOLO

# Load the YOLO26n-pose model for efficient keypoint detection
model = YOLO("yolo26n-pose.pt")

# Run inference on a video source (the 'observable' sequence)
# stream=True creates a generator for memory efficiency
results = model.predict(source="path/to/video.mp4", stream=True)

# Iterate through frames to extract observations
for result in results:
    # Each 'keypoints' object is an observation for a potential HMM
    keypoints = result.keypoints.xyn.cpu().numpy()

    if keypoints.size > 0:
        print(f"Observation (Normalized Keypoints): {keypoints[0][:5]}...")
        # In a full pipeline, these points would be fed into an HMM decoder

在现代人工智能中的重要性

尽管在自然语言处理(NLP)等任务中,变压器和大型语言模型(LLMs)已超越隐马尔可夫模型(HMMs),但HMMs在边缘计算和低延迟环境中仍具有重要意义。其计算效率使其成为资源受限系统的理想选择,尤其适用于需要处理大量数据的场景。 GPU 的系统。 此外,由于其基于透明概率矩阵,相较于许多神经网络的"黑箱"特性, HMMs能提供更高的可观测性。

加入Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入