探索隐马尔可夫模型(HMM)在统计人工智能中的应用。了解HMMUltralytics 协同工作,实现动作识别、序列分析和时序逻辑推理。
隐马尔可夫模型(HMM)是一种统计框架,用于建模内部过程不可直接观察——故称"隐"——但可通过可观测事件序列进行推断的系统。 尽管现代深度学习已发展到能处理复杂序列,HMM仍作为统计人工智能与概率论的基础概念而存在。它特别适用于分析时间序列数据——其中事件顺序提供关键背景信息——其核心原理在于:未来状态的概率仅取决于当前状态,而非先前历史。
要理解隐马尔可夫模型(HMM)的运作机制,必须区分该模型的两个不同层次:不可见的状态层与可见的输出层。该模型假设系统在隐状态之间根据特定概率进行转换,并在每个步骤产生观测值。
隐马尔可夫模型由一组参数定义,这些参数控制着状态转换和状态输出:
训练隐马尔可夫模型通常采用鲍姆-韦尔奇算法, 从训练数据中估计这些参数。训练完成后, 通常使用维特比算法从新观测数据集中解码 最可能的隐状态序列。
尽管隐马尔可夫模型(HMMs)与其他序列处理工具存在相似之处,但在架构和应用方面却存在显著差异:
尽管深度学习(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能提供更高的可观测性。