----Human Activity Recognition and Pattern Discovery

challenges: 

 1 Recognizing concurrent activities

      People can do several activities at the same time. For example, people can watch television while talking to their friends. These behaviors should be recognized using a different approach from that for sequential activity.
2  Recognizing interleaved activities
     Certain real life activities may be interleaved. For instance, while cooking, if there is a call from a friend, people pause cooking for a while and after talking to their friend, they come back to the kitchen and continue to cook.
3  Ambiguity of interpretation(歧义  模糊)
     Depending on the situation, the interpretation of similar activities may be different. For example, an activity “open refrigerator” can belong to several activities, such as “cooking” or “cleaning”.
4  Multiple residents
    In many environments more than one resident is present. The activities that are being performed by the residents in parallel need to be recognized, even if the activity is performed together by the residents in a group(cooperative). 

Activity recognition 

    focuses on accurate detection of the human activities based on a predefined activity model. Therefore, an activity recognition researcher builds a high level conceptual model first, and then implements the model by building a suitable pervasive system. 

    Several probability-based algorithms have been used to build activity models. The Hidden Markov Model and the Conditional Random Field are among the most popular modeling techniques. 

三种方式:

   1 recognizing human actions and activities using a video camera 

   2  wearable sensors

   3  ambient sensors 

CHMM couples HMM with temporal, asymmetric influences 

FCRF couples CRF with probabilistic dependencies between co-temporal label sequences. 

 

    HMM is often used, and it consists of a hidden variable and an observable variable at each time step. In this case, the hidden variable is an activity label, and the observable variable is a feature vector.

   Unlike generative models such as HMM, CRF is an undirected, discriminative model that relaxes the independence assumption of observations and avoids enumerating all possible observation sequences. FCRF factorizes the basic linear-chained CRF by introducing cotemporal connections and, hence, it can be used to model interactions among multi-user activities. 

概率图模型分为有向和无向的模型。有向的概率图模型主要包括贝叶斯网络和隐马尔可夫模型,无向的概率图模型则主要包括马尔可夫随机场模型和条件随机场模型。 

2001年,卡耐基.梅隆大学的Lafferty教授(John Lafferty,Andrew McCallum,Fernando Pereira)等针对序列数据处理提出了CRF模型(Conditional Random Fields Probabilistic Models for Segmenting and Labeling Sequence Data)。这种模型直接对后验概率建模,很好地解决了MRF模型利用多特征时需要复杂的似然分布建模以及不能利用观察图像中上下文信息的问题。Kumar博士在2003年将CRF模型扩展到2-维格型结构,开始将其引入到图像分析领域,吸引了学术界的高度关注。 


对给定观察图像,估计对应的标记图像  y观察图像 ,x未知的标记图像

  

1.如果直接对后验概率建模(即考虑公式中的第一项),可以得到判别的(Discriminative)概率框架。特别地,如果后验概率直接通过Gibbs分布建模,(x, y)称为一个CRF,得到的模型称为判别的CRF模型。
2.通过对(x ,y)的联合建模(即考虑公式中的第二项),可以得到联合的概率框架?。特别地,如果考虑双随机场(x, y)的马尔可夫性,即公式的第二项为Gibbs分布,那么(x, y)被称为一个双MRF(Pairwise MRF,PMRF)[9]。
3.后验概率通过公式所示的p (x)和p (y|x)建模,其中p (y|x)为生成观察图像的模型,因此这种框架称为生成的(Generative)概率框架。特别地,如果先验p (x)服从Gibbs分布,x称为一个MRF[12],得到的模型称为生成的MRF模型。----------------------【面向图像标记的随机场模型研究】
运用Hammersley-Clifford定理,标记场的后验概率服从Gibbs分布

 

其中,z(y,θ) 为归一化函数,φc为定义在基团c上的带有参数θ的势函数。CRF模型中一个关键的问题是定义合适的势函数。

因此发展不同形式的扩展CRF模型是当前CRF模型的一个主要研究方向。具体的技术途径包括:一是扩展势函数。通过引进更复杂的势函数,更多地利用多特征和上下文信息;二是扩展模型结构。通过引入更复杂的模型结构,可以利用更高层次、更多形式的上下文信息。

扩展势函数

(1)对数回归(Logistic Regression,LR) 

 

(2)支持向量机(Support Vector Machine,SVM) 

 

(3)核函数 

(4)Boost

 

(5)Probit 

 

 扩展模型结构

(1)动态CRF模型 

动态CRF(Dynamic CRF,DCRF)模型用于对给定的观测数据,同时进行多个标记任务,以此充分利用不同类型标记之间的相关性。

(2)隐CRF模型 

CRF模型的另一类扩展图结构是在观察图像和标记图像之间引入过渡的隐变量层h,得到的模型称为隐CRF(Hidden Conditional Random Field,HCRF)。隐含层的引入使CRF模型具有更丰富的表达能力,可以对一些子结构进行建模。隐变量可以是抽象的,也可以具有明确的物理意义。

(3)树结构CRF模型 

CRF模型的标准图结构中,标记之间的相关性通过格型结构的边(edge)表示 。

(4)混合CRF模型 

1.Markov假设

有限历史 以及 平稳。

有限历史指的是和有限的历史相关

平稳指的是 两个状态的关系和时间无关。

2.HMM

给定观察序列{O1,O2,O3...},每个观察Oi对应隐状态序列{S1,S2....Sn}。

HMM解决三个问题:

1.计算观察序列的概率

利用forward算法即可

2.跟定观察序列,计算出对应概率最大的隐状态序列

Viterbi算法,提供O(N*N*T)的复杂度

3.给定观察序列以及状态集合,估计参数 A(状态转移矩阵) B(发射概率)

EM算法, forward-backword 算法

问题2类似序列标注的问题

Pr(O|S) = p(O1|S1)*p(O2|S2).....p(On|Sn)

P(O) = p(O1|start)*p(O2|O1).....p(On|On-1)

P(S|O) = argmaxPr(O|S)P(O) = argmax( ....p(Oi|Si)*p(Si|Si-1)....)

ME:

分类器,将给定的观察值O进行分类。

ME需要从O中提取出相关的Feature以及计算对应w。

注意:主要解决的是观察值O分类问题,如文本分类d那个

P(C=c|O)

MEMM:

序列标注问题,综合ME和HMM,提供更多的Featrue,优于HMM

考虑到t时间附近观察以及状态对其影响。

P(S|O) = argmax (P(S|O) = argmax(....p(Si| O, Si-1)....),其中O可以是Oi,也可以是Oi-1等观察。

 最大熵模型 Maximum Entropy

现从一个简单例子看起:
比如华盛顿和维吉利亚都可以作人名和地名,而从语料中只知道p(人名)=0.6,那么p(华盛顿=人名)的概率为多少比较好呢?一个直观的想法就是p(华盛顿=人名)=0.3。为什么呢?这就是在满足已有证据的情况下不做任何其他假设,也就是熵最大,这就是最大熵模型的原理。
现在来看模型的定义:
首先,明确模型的目标:给定一个上下文x,估计p(y|x)
接着,从训练样本中我们可以得到一串标注过的样本(x_i, y_i),其中x_i为上下文,y_i \in Y为类别
然后构造特征函数
f(x,y) = 1 如果x,y满足一些条件,比如x=记者*,y=人名
            0 otherwise
注意x是一个上下文,是个向量,而不是单个词
(最大熵模型里的特征概念不同于模式识别里的特征,这里的特征即特征函数,通常是二值函数,也有直接定义成实数的,比如 jeon-sigir06里直接把f定义为KDE距离,不是很明白那样定义的好处。)
于是模型的约束就是对于所有的特征函数模型中的期望等于样本的期望,即
E_p(f) = E_{\tilde p}(f)
其中
E_p(f) = \sum_{x, y}p(x, y)f(x, y) = \sum_{x, y}p(x)p(y|x)f(x,y) \approx \sum_{x, y} \tilde p(x)p(y|x)f(x,y)
\tilde p(f) = \sum_{x, y} \tilde p(x, y)f(x, y),
并且对于任意的x:\sum_y p(y|x) = 1
而模型的熵为
H(p)=-\sum_{x,y} \tilde p(x) p(y|x) \log p(y|x)
在满足约束的情况下,使熵最大,于是问题即求
p* =\argmax_{p \in P} -\sum{x, y} p(y|x)\tilde p(x) \log p(y|x)
where P={p(y|x) | \all f_i : \sum_{x,y}p(y|x)\tilde p(x)f_i(x,y) = \sum_{x,y}\tilde p(x,y)f_i(x,y), \all x : \sum_y p(y|x) = 1}
可以证明,模型的最优解的形式为
p(y|x) = exp(\sum_i \lambda_i f_i(x,y)) / Zx
where Zx = \sum_y exp(\sum_i \lambda_i f_i(x,y))
具体证明请见
http://qxred.yculblog.com/post.1593573.html
拜下qxred大牛……

隐马尔可夫模型 Hidden Markov Model
马尔可夫模型实际上是个有限状态机,两两状态间有转移概率;隐马尔可夫模型中状态不可见,我们只能看到输出序列,也就是每次状态转移会抛出个观测值;当我们观察到观测序列后,要找到最佳的状态序列。
设O为观测值,x为隐变量,那么模型要找到让P(O)最大的最佳隐藏状态,而
P(O) = \sum_x P(O|X)P(X)
而其中
P(X)=p(x_1)p(x_{2..n}|x_1)
        =p(x_1)p(x_2|x_1)p(x_{3..n}|x_1,x_2)
        ……
根据x_i只与x_{i-1}相关的假设有
P(X)=p(x_1)p(x_2|x_1)p(x_3|x_2)……
而类似的
P(O|X)=p(o_1|x_{1..n})p(o_{2..n}|o_1x_{1..n})
            =p(o_1|x_{1..n})p(o_2|o_1x_{1..n})p(o_{3..n}|o_{1,2},x_{1..n})
            ……
根据o_i只与x_i有关的假设有
P(O|X)=p(o_1|x_1)p(o_2|x_2)……
合起来就是
P(O)=\sum_x p(x_1)p(x_2|x_1)p(o_1|x_1)p(x_3|x_2)p(o_2|x_2)……
定义向前变量\alpha_i(t)为t时刻以状态S_i结束时的总概率
\alpha_j(t)=\sum_{i=1}^N \alpha_ip(x_{t}=j|x_{t-1}=i)p(o_t=i|x_t=i)
定义向后变量\beta_i(t)为给定当前状态S_i和t时刻情况下观测序列中剩余部分的概率和
\beta_i(t)=\sum_{j=1}^N \p(x_{t}=j|x_{t+1}=i)p(o_{t}=i|x_{t}=i) \beta_j(t+1)
于是观测序列的概率为
P(O, X_t=i) = \alpha_i(t)\beta_i(t)
最佳状态可以由动态规划得到
模型参数可以由EM算法得到
EM具体请见
http://qxred.yculblog.com/post.1372649.html
再拜qxred大牛……

最大熵隐马 Maximum Entropy Markov Model
HMM的缺点是根据观测序列决定状态序列,是用联合模型解决条件问题;另外,几乎不可能枚举所有所有可能的观测序列。
而MEMM解决了这些问题。
首先,MEMM和MM或HMM都有本质不同,MEMM估计的是P(S|O),而MM估计的是P(S),HMM估计的都是P(O)。
P(S|O)=P(s_1|O)P(s_{2..n}|s_1,O)
           =P(s_1|O)P(s_2|s_1,O)P(s_{3..n}|s_1,s_2,O)
          ……
然后根据假设有
P(S|O)=P(s_1|O)P(s_{2..n}|s_1,O)
           =P(s_1|o_1)P(s_2|s_1,o_2)P(s_{3..n}|s_1,s_2,o_3)
          ……
重新定义特征函数:
a=<b,r>
b是指示函数用于指示当前观测
r是状态值
f_a(o_t, S_t) = 1 if b(o_t) is true and s_t = r
于是约束变为
E_a = \sum_{k=1}^m_{s'}\sum_{s \in S}P(s|s', o_k)f_a(o_k, s) / m_s' = \sum_{k=1}^m_{s'} f_a(o_k, s_k) = F_a
这个目标函数和ME的目标函数实质是一样的
于是解的形式为
P(s|s', o)=exp(\sum_a \lambda_a f_a(o, s)) / Z(o, s')
然后依然采用HMM中的前向后向变量,寻找最佳序列
而实际上得到的序列是由计算
P(s|o) = P(s_0)P(s_1|s_0,o_0)P(s_2|s_1, o_1)……
得到

条件随机场 Conditional Random Fields
MEMM其实是用局部信息去优化全局,会有label bias的问题。比如rib和rob,有如下的状态设计:
  /r 1i - 2 \
0             b 3
  \r 4o - 5 /
如果训练集合里的ri多于ro,那么ro其实就被无视了……
所以要用全局优化全局,于是引入CRF,其实CRF就是ME扩展版,并不需要由MRF推出
p(y|x)\propto exp(\sum_i\lumbda_k f_k(y_{i-1}, y_i, x)+\sum_k \lumbda_kg_k(x_k, x))
其实这个定义并保持MRF性质:MRF中clique于clique是独立的
从这点意义上来看,Lafferty也满水的= =
虽然X,Y在图上不需要有相同的结构,甚至X都不需要有图的结构,目前通常G只是一条链G=(V={1,2, ..., m}),E={(i,i+1)}。
如果G是一棵树,它的团就是每条边和其上的点,这时候
p_\theta(y|x) = exp(\sun_{e\in E, k}\lambda_k f_k(e,y|_e, x)+\sum_{v \in V,k}\mu_k g_k(v, y|_v, x))
x是上下文,y是标注序列,y|_s是y中与子图S相连的部分
如果是最简单的first-order情况,g_k就相当于ME中的特征函数,f_k类似于MEMM中的特征函数,就是说用g_k来指示状态,用f_k来指示状态转移
从优化角度来说,这两类函数是一样的,可以简写为f_j(y_{i-1},y_i,x,i),于是训练类似ME
当CRF是链状时,一个上下文x的标注可以利用矩阵高效计算
对于长度为n的y,定义n+1个|Y|*|Y|矩阵{M_i(x)|i=1..n+1},其中
Y是类别个数
M_i(y', y|x) = exp(\sum_j \lambda_j f_j(y', y, x, i))
这个就是第i个矩阵i,j上的元素,表示在x下从y'转移到y的概率
于是有p(y|x, \lambda)=\multi_{i=1}^{n+1}M_i(y_{i-1},y_i|x) / Zx
Zx = \multi_{i=1}^{n+1}M_i(x)
Zx只是保证概率之和为1

原来已经有人开始做复杂的情况了……04年cvpr有篇用CRF做图像标注的。而且qixipi告诉我已经有层状CRF了,虽然具体文章我还没看到,qixipi也不记得是在哪了,估计是近年icml, nips, iccv之类的……前两天还在yy这个应该可以发icml的,sigh,看来易想到的idea一般都会有人做了……

Reference
[1] MaCallum, A., &Freitag, D. & Pereira, F.(2000). Maximum Entropy Markov Models for Information Extraction and Segmentation. Proc. 17th ICML
[2] John Lafferty, Andrew McCallum, Fernando Perira. Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data. 18th ICML
[3] Xuming He, Richard S. Zemel, MIguel A. Carreira-Perpinan  Multiscale Conditional Random Fields for Image Labeling. 2004 CVPR

http://www.inference.phy.cam.ac.uk/hmw26/crf/
posted on 2011-01-18 22:29  服务学习  阅读(304)  评论(0编辑  收藏  举报