最近在研究动作识别(Action Recognize)领域的论文和方法。在视频动作识别领域,深度学习未进入前,传统方法最好的是iDT.
IDT采用FisherVector编码的方式比BOF(Bog of Features)提升了2%-10%.
BOF的编码方式,最终的视频特征维度是CodeBook的size大小。原理如图:)丑到不忍直视...
FiserVector编码方式,由两部分组成
首先是由样本分布估计GMM(高斯混合模型)参数,
然后用GMM模型对视频原始的iDT特征进行描述(编码)。
所以不管是BOF还是FisherVector都是相对于Codebook的一种描述。
GMM算法
GMM ,Gaussian Mixture Model,顾名思义,就是说该算法由多个高斯模型线性叠加 混合而成。GMM算法描述的是每一维数据的本身存在的一种分布,如果component足够多的话,GMM可以逼近任意一种概率密度分布。
我们知道,单个高斯模型的参数为均值和方差。
GMM是一种聚类算法,K代表用多少个高斯模型去描述数据分布。也就是说每个 GMM 由K个Gaussian分布组成,每个Gaussian称为一个“Component”,这些 Component 线性加成在一起就组成了 GMM 的概率密度函数:
根据数据来推算概率密度通常被称作 density estimation ,特别地,当我们在已知(或假定)了概率密度函数的形式,而要估计其中的参数的过程被称作“参数估计”。表示第k个高斯模型的权重,是第k个高斯模型的均值。是第k个高斯模型的方差。
在 GMM 中,我们就需要确定 、 和 这些参数。 找到这样一组参数,它所确定的概率分布生成这些给定的数据点的概率最大,而这个概率实际上就等于 ,我们把这个乘积称作似然函数 (Likelihood Function)。通常单个点的概率都很小,许多很小的数字相乘起来在计算机里很容易造成浮点数下溢,因此我们通常会对其取对数,把乘积变成加和,得到 log-likelihood function 。接下来我们只要将这个函数最大化,通常采用EM算法。
进行GMM聚类后