探索用于统计AI的隐马尔可夫模型(HMM)。了解HMM如何与Ultralytics YOLO26协同工作,以实现行为识别、序列分析和时间逻辑。
隐马尔可夫模型 (HMM) 是一种统计框架,用于建模内部过程不直接可见(因此“隐藏”)但可以通过一系列可观测事件推断出的系统。尽管现代深度学习已发展到能够处理复杂序列,但 HMM 仍然是 统计AI 和概率论中的一个基础概念。它在分析事件顺序提供关键上下文的 时间序列分析 数据时特别有效,其核心原理是未来状态的概率仅取决于当前状态,而不取决于之前的历史。
要理解隐马尔可夫模型(HMM)的工作原理,区分模型的两个不同层至关重要:隐状态和可见输出。模型假设系统根据特定概率在隐状态之间转换,并在每一步发出一个观测值。
HMM 由一组控制这些转换和发射的参数定义:
训练HMM通常涉及 Baum-Welch算法,以从训练数据中估计这些参数。一旦训练完成,Viterbi算法常用于从一组新的观测值中解码出最可能的隐藏状态序列。
尽管隐马尔可夫模型(HMM)与其他序列处理工具具有相似之处,但它们在架构和应用上存在显著差异:
尽管深度学习(DL)兴起,隐马尔可夫模型仍广泛应用于需要对序列进行概率推断的场景。
历史上,HMM是语音识别系统的支柱。在此背景下,口语词是“隐藏”状态,而麦克风记录的音频信号是观测值。HMM有助于确定产生音频信号的最可能的词序列。同样,它们通过建模字符笔画之间的转换来帮助识别草书手写。
在生物信息学领域,隐马尔可夫模型 (HMMs) 对基因预测和蛋白质比对至关重要。它们分析DNA或氨基酸序列以识别功能区域,例如基因组中的基因。“隐藏”状态可能代表编码或非编码区域,而特定的核苷酸 (A, C, G, T) 则作为观测值。
在现代计算机视觉中,隐马尔可夫模型(HMM)可以与YOLO26等模型结合,以执行动作识别。尽管YOLO在单个帧中detect对象或姿势,但HMM可以分析这些姿势随时间的序列,以classify一个动作,例如“行走”、“跑步”或“跌倒”。
对于使用Ultralytics Platform管理数据集和模型的开发者而言,理解序列逻辑至关重要。视觉模型提供原始观测值(detections),这些观测值随后可以输入到HMM等状态空间模型中,以推断时间上下文。
以下示例演示了如何使用YOLO26姿势估计生成一系列观测值。这些关键点可以作为下游HMM或类似逻辑的“可观测事件”输入,用于随时间分类行为。
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
尽管Transformer和大型语言模型 (LLMs) 已在自然语言处理 (NLP)等任务中取代了HMMs,但HMMs在边缘计算和低延迟环境中仍然具有相关性。其计算效率使其成为资源有限且不适合大量GPU使用的系统的理想选择。此外,由于它们基于透明的概率矩阵,与许多神经网络的“黑盒”特性相比,它们提供了更高的可观测性。

开启您的机器学习未来之旅