机器学习 —— 概率图模型(Homework: Structure Learning)

  概率图的学习真的要接近尾声了啊,了解的越多越发感受到它的强大。这周的作业本质上是data mining.从数据中学习PGM的结构和参数,完全使用数据驱动 —— No structure, No parameters.

Data tell us everything

1、识别外星人

  如此强大的工具要用来做一件极其逗逼的事情:在给定肢体位姿条件下,从图形中识别外星人...显而易见,地球人只有两手两脚,外星人却有4手2脚!给定的肢体位姿以三坐标的形式出现(y,x, angle),其中x,y 代表肢体的位置,angle代表肢体的姿态。

  

  在这个问题中,最有趣的部分在于x,y,angle在空间中都是连续的,不存在明显的card。所以这个问题非常值得借鉴!

  我们用于建模的随机变量是各个关节的位姿,而每个位姿之间又包含 y x angle。可以认为这三个变量是独立的。一共有十个关节,每个关节有三个独立随机变量,故认为随机变量的总数为10x3. 

2、连续随机变量的建模

2.1 高斯分布

  CPD的本质是 随机变量取值 与 随机变量取该值可能性之间的映射表。对于连续随机变量,我们可以假设高斯分布。高斯分布有 5 大优点:

  1、连续性。

  2、运算封闭性。

  3、中心极限定理:任何分布下,样本均值的分布为高斯分布。

  4、任何分布在有限空间,都可以用高斯分布较好的近似。

  5、高斯分布可以由充分统计定理进行参数训练。

  我们假设上述随机变量(关节位姿)存在一个分布,我们可以给定一个较强的假设——高斯分布。

2.2 关节识别模型

  在假设了随机变量本身的分布之后,我们需要设计识别模型以满足分类的要求。最简单的分类模型是Naive Beyes Model —— 假设各个关节之间的运动没有影响,是相互独立的。对于人体,我们可以由解剖学给出运动关联模型,以躯干为根节点,相连的肢体可认为存在 依赖关系,比如,前臂的位姿依赖于后臂的位姿(手臂位置的观测值当然会影响我们对手掌位置的推断)。但是对于外星人而言,我们并没有解剖学的先验知识,暂时把其模型假设与人相同。

  

  图中,c 代表分类变量。可取  0——地球人,1——外星人

  Naive Beyes Model    P(O1,O2,O3.....O10 |C ) = P(O1|C)*P(O2|C)*.......P(O10|C).

  解剖模型                     P(O1,O2,O3.....O10 |C ) = P(O1|C)*P(O2|O1,C).......

2.3 高斯模型的训练

  对于Naive Beyes Model,其训练问题非常简单,在给定C的情况下,每个P就只有一个 u 和 sigma,有充分统计定理可知,总体均值 = 样本均值,总体方差 = 样本方差/N。

  但是对于解剖模型,其不是单纯的高斯模型,在其 u , sigma 均与父节点有关,建模如下,此模型称为条件线性高斯模型(CLG)

  

  该模型的训练目标是估计所有的 theta(共计12个),以及sigma. 具体算法见代码。由训练集求得所有参数后,可以用之分类。精度为84%,naive beyes model 的精度为79% ,精度提升不大的原因是对外星人结构假设错误。(进一步证明了如果你不是专家,最好采用简单模型建模)。

3、图结构的训练

  由于人体的树状图结构,所以很容易用Score 算法实现,本次作业并为使用L1/2  normalization 同样取得了很好的效果。

  

  树状图结构的训练在于求解节点之间的权重,求权重就是求信息熵 Ip ,如果两个数据相关性较强,那么可以认为之间存在edges.

  

  人体结构与外星人结构如上图。

  在新的图模型条件下,识别率上升到了94%

4、总结

  很奇怪的是,我们处理的数据是坐标,可是现实中如何提取呢?请期待最后一次作业:基于PGM的人体点云分割算法!!!!!!!!! 

 

 

posted @ 2016-05-17 17:22  IronStark  阅读(1594)  评论(0编辑  收藏  举报