HMM实战:使用EM算法处理Kinect动作分类

需积分: 32 15 下载量 11 浏览量 更新于2024-09-09 收藏 398KB DOC 举报
本篇笔记主要介绍了在机器学习和数据挖掘领域,如何利用概率图模型(Probabilistic Graphical Models, PGM)中的隐马尔可夫模型(Hidden Markov Model, HMM)进行分类任务。实验内容源自Coursera课程,针对的是实际应用中的问题,即使用HMM对Kinect数据中的动作进行识别。 首先,Kinect数据集包含人体关节的三维坐标,这些数据被组织成一系列的姿势(pose)和动作(action)。动作由不固定长度的姿势序列组成,例如clap、highkick和lowkick。在HMM中,每个节点代表观察到的姿势,而隐藏的状态变量(S1, S2, S3)作为中间层,代表动作的隐性状态,它们与动作和姿势数据有密切关系,但具体的物理意义可能不清晰。确定状态节点的数量通常需要通过验证集实验来完成。 实验的核心是使用Expectation-Maximization (EM) 算法来学习HMM中的参数。实验1的函数`[PloglikelihoodClassProb]=EM_cluster(poseData,G,InitialClassProb,maxIter)`负责执行EM过程,输入包括pose数据、模型结构信息(G)、初始类别概率(InitialClassProb)以及最大迭代次数。E步计算给定参数下的每个样本属于每个类别的条件概率,而M步则根据这些概率更新模型参数,以最大化似然函数。 另一个关键函数`[musigma]=FitG(X,W)`,类似于之前的练习,可能是用来拟合HMM的观察节点(pose)的参数,如连接到观察节点的条件概率(CLG参数)或状态转移概率。W可能代表模型中的其他参数,如状态转移矩阵和初始状态分布。 这篇笔记的重点在于实战应用HMM进行序列数据的分类,通过迭代优化模型参数来解决实际问题。对于那些不熟悉HMM的人来说,提供了一个从理论到实践的指导,并指出了关键函数的作用。此外,理解动作的序列结构和隐变量在模型中的作用对于正确实现和解释HMM至关重要。