概率图的学习真的要接近尾声了啊,了解的越多越发感受到它的强大。这周的作业本质上是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的人体点云分割算法!!!!!!!!! 

机器学习 —— 概率图模型(Homework: Structure Learning)的更多相关文章

  1. 机器学习 —— 概率图模型(Homework: CRF Learning)

    概率图模型的作业越往后变得越来越有趣了.当然,难度也是指数级别的上涨啊,以至于我用了两个周末才完成秋名山神秘车牌的寻找,啊不,CRF模型的训练. 条件随机场是一种强大的PGM,其可以对各种特征进行建模 ...

  2. 机器学习 —— 概率图模型(Homework: Exact Inference)

    在前三周的作业中,我构造了概率图模型并调用第三方的求解器对器进行了求解,最终获得了每个随机变量的分布(有向图),最大后验分布(双向图).本周作业的主要内容就是自行编写概率图模型的求解器.实际上,从根本 ...

  3. 机器学习 —— 概率图模型(Homework: MCMC)

    除了精确推理之外,我们还有非精确推理的手段来对概率图单个变量的分布进行求解.在很多情况下,概率图无法简化成团树,或者简化成团树后单个团中随机变量数目较多,会导致团树标定的效率低下.以图像分割为例,如果 ...

  4. 机器学习 —— 概率图模型(Homework: StructuredCPD)

    Week2的作业主要是关于概率图模型的构造,主要任务可以分为两个部分:1.构造CPD;2.构造Graph.对于有向图而言,在获得单个节点的CPD之后就可依据图对Combine CPD进行构造.在获得C ...

  5. 机器学习 —— 概率图模型(Homework: Factors)

    Talk is cheap, I show you the code 第一章的作业主要是关于PGM的因子操作.实际上,因子是整个概率图的核心.对于有向图而言,因子对应的是CPD(条件分布):对无向图而 ...

  6. 机器学习 —— 概率图模型(Homework: Representation)

    前两周的作业主要是关于Factor以及有向图的构造,但是概率图模型中还有一种更强大的武器——双向图(无向图.Markov Network).与有向图不同,双向图可以描述两个var之间相互作用以及联系. ...

  7. 机器学习 —— 概率图模型(学习:CRF与MRF)

    在概率图模型中,有一类很重要的模型称为条件随机场.这种模型广泛的应用于标签—样本(特征)对应问题.与MRF不同,CRF计算的是“条件概率”.故其表达式与MRF在分母上是不一样的. 如图所示,CRF只对 ...

  8. 机器学习 —— 概率图模型(CPD)

    CPD是conditional probability distribution的缩写,翻译成中文叫做 条件概率分布.在概率图中,条件概率分布是一个非常重要的概念.因为概率图研究的是随机变量之间的练习 ...

  9. 机器学习 —— 概率图模型(推理:MAP)

    MAP 是最大后验概率的缩写.后验概率指的是当有一定观测结果的情况下,对其他随机变量进行推理.假设随机变量的集合为X ,观察到的变量为 e, W = X-e , AP = P(W|e). 后验概率和联 ...

随机推荐

  1. javascript 对象数组排序

    参考地址:http://blog.csdn.net/kavensu/article/details/17851329

  2. Linux 硬盘分区、分区、删除分区、格式化、挂载、卸载

    Linux 虽然一直都有在玩,但是对硬盘操作确实不是很熟悉今天有空,就整理了下. 1,创建分区 先查看下是否有磁盘没有分区 fdisk -l 其中第一个框和第二个框,是已经分好区的磁盘,第三个硬盘没有 ...

  3. [原创] zabbix学习之旅二:yum安装

    对于允许连接公网的环境下,显然通过yum安装是最为简单方便的,也是官网推荐的安装方式.通过这种方式安装,会将php.apache.zabbix本身都一并安装,解决了烦人的依赖包问题.   本文将介绍如 ...

  4. UVA 10004 Bicoloring

    题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=12&pa ...

  5. 从程序员到CTO的Java技术路线图 (转自安卓巴士)

    在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样我们清楚的知道我们大概处于那个阶段和水平. Java程序员 高级特性 反射.泛型. ...

  6. 为现代JavaScript开发做好准备

    今天无论是在浏览器中还是在浏览器外,JavaScript世界正在经历翻天覆地地变化.如果我们谈论脚本加载.客户端的MVC框架.压缩器.AMD.Common.js还有Coffeescript……只会让你 ...

  7. Sqli-labs less 22

    Less-22 本关和less20.less21是一致的,我们可以从源代码中看到这里对uname进行了"uname"的处理,可以构造payload: admin1"and ...

  8. chapter 2

    1.分片:序列变量,字符串,列表,元组,集合..都可以使用分片来访问指定的数据项,分片三种方式:seq[]访问某个数据项,seq[-1]表示访问序列最后一个数据项,seq[-2]倒数第二个数据项. s ...

  9. Nagios 快速实现数据可视化的几种方式

    Nagios 是一款强大的开源监控软件,但他本身不能绘图,只能查看当前数据,不能看历史数据以及趋势,也正因此,想要更舒适的使用就要搭配绘图软件,现在可搭配的绘图软件有很多,例如 pnp4nagios, ...

  10. ZOJ3720 Magnet Darts(点在多边形内)

    第一道点在多边形内的判断题,一开始以为是凸的.其实题意很简单的啦,最后转化为判断一个点是否在一个多边形内. 如果只是简单的凸多边形的话,我们可以枚举每条边算下叉积就可以知道某个点是不是在范围内了.但对 ...