最近在看动作识别的相关论文,其中有一篇名为two-stream convolutional networks for action recognition in videos的论文在做特征融合时使用到了FisherVector,之前没有接触过,所以搜了一下相关的帖子,看到一篇不错的转载过来,后期会对这篇论文写一下概要

这篇blog比较好的地方我认为是对GMM(高斯混合模型)以及似然函数(Likelihood Function)介绍的比较清楚,看过之后也确实对解决之前不了解的,存在疑惑的地方有所帮助

转自https://blog.csdn.net/shanyicheng1111/article/details/76978029

-------------------------------以下为原文-----------------------------

最近在研究动作识别(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聚类后,得到的是K个高斯模型的参数,每个高斯模型的参数是  和 ,所以一共有3KD个参数。(其中D是原始数据的维度,因为每一个GMM是对每一维数据特征进行生成建模的)。

FisherVector编码

上述生成了GMM模型后,我们就可以在此基础上对原始数据特征进行编码。

定义fisher score:

X服从分布p,p的参数是( ,  k = 1...K)在fisher kernel中,p是一个GMM,  是一个视频的特征集合(iDT中D=426).这个log似然函数对 的梯度,描述了参数 在p生成特征点集合X的过程中如何作用,所以这个fisher score中也包含了GMM生成X的过程中的一些结构化的信息。所以有一种说法,FisherVector的本质是对高斯分布求偏导。

再定义特征由第i个Gaussian component生成的概率:

首先对参数求偏导可得到:

其中 

     注意这里i是指第i个component,d是指特征 的第d维,偏导是对每个component,对特征每个维度都要计算,所以此时 的维度是(2D+1)*K,D是维度,K是component个数,wi是上述高斯混合模型中Gaussian 分布的权重。又由于 有约束,所以会少一个自由变量,所以 最终的维度是(2D+1)*K-1.

推导到这里,视频的原始特征iDT应该变为(2D+1)*K-1维FisherVector。在iDT论文中使用的是2DK维,可能是舍弃了高斯混个模型中对权重wi的求导。

参考博客 :

http://blog.csdn.net/happyer88/article/details/46576379

http://blog.csdn.net/ikerpeng/article/details/41644197

http://blog.pluskid.org/?p=39

FisherVector编码的来龙去脉相关推荐

  1. 【转】刨根究底字符编码【2.0版】(1):开篇

    首先跟大家分享一个有趣的亲身经历.有一次,在网上我看到有程序员发了一个帖子,帖子题目乍一看让人感到惊愕,但细一想又让我会心一笑. 这个帖子的题目大致上是这样的:字符编码是不是让程序员最感到恶心的问题? ...

  2. Python 文件处理、字符编码(二)

    引子 1.问题:给你一个文件 "兼职白领学生空姐模特护士联系方式.txt" ,如何查看内容? 答: 安装文本编辑器软件 选中右键,利用文本编辑器软件打开 查看 or 写入 保存,关 ...

  3. 【转】刨根究底字符编码之零——前言

    前言 一. 字符编码是计算机世界里最基础.最重要的一个主题之一.不过,在计算机教材中却往往浮光掠影般地草草带过,甚至连一本专门进行深入介绍的著作都找不到(对这一点我一直很困惑,为什么就没有哪位大牛对这 ...

  4. 5G的来龙去脉及未来

    前言 通信世界的演化很快,几乎10年就是一个时代,从上世纪90年代的2G,到2010年左右兴起的4G.而今,5G技术飞速发展,5G应用的场景技术需求也会变得很高,例如20 Gbit/s的峰值速率.0. ...

  5. 无监督学习︱GAN 在 NLP 中遇到瓶颈+稀疏编码自学习+对偶学习

    深度学习训练一个模型需要很多的人工标注的数据.例如在图象识别里面,经常我们可能需要上百万的人工标注的数据,在语音识别里面,我们可能需要成千上万小时的人工标注的数据,机器翻译更是需要数千万的双语句对做训 ...

  6. 省编码市编码区县编码_如何摆脱编码的束缚,走向事业

    省编码市编码区县编码 by Isabel Nyo 通过伊莎贝尔·尼奥 如何摆脱编码的束缚,走向事业 (How to get out of your coding rut and move forwar ...

  7. 词嵌入来龙去脉 word embedding、word2vec

    文章目录 0词嵌入来龙去脉 1 NLP的核心关键:语言表示(Representation) 2 NLP词的表示方法类型 2.1词的独热表示one-hot representation 2.2词的分布式 ...

  8. 响应式编程(反应式编程)的来龙去脉(同步编程、多线程编程、异步编程再到响应式编程)

    响应式编程的来龙去脉(同步编程.多线程编程.异步编程再到响应式编程) 文章目录 响应式编程的来龙去脉(同步编程.多线程编程.异步编程再到响应式编程) 简介 1. 示例 2. 同步编程 3. 多线程编程 ...

  9. form表单提交编码介绍

    做java的web开发有段日子了,有个问题老是困扰着我,就是乱码问题,基本上是网上查找解决方案(网上资料真的很多),都是一大堆的介绍如何解决此类 的乱码问题,但是没几个把问题的来龙去脉说清楚的,有时候 ...

最新文章

  1. 不用写语句的轻量级orm_为什么说sqltoy-orm远比mybatis强大
  2. 手把手教学电瓶车进电梯检测、多类别车辆追踪、异常行为检测产业级应用
  3. Unity性能优化-遮挡剔除
  4. 深入浅出理解索引结构
  5. php 303,HTTP 的重定向301,302,303,307(转)
  6. 0 改造,让单体/微服务应用成为 Serverless Application
  7. 【转载】移植FFMpeg到VC环境心得
  8. java课设电子门禁_Java 并发专题 : CyclicBarrier 打造一个安全的门禁系统
  9. 第四周作业 简单地邮件发送实现
  10. Python的切片操作
  11. hive Beeline plus HiveServer2简单使用
  12. Office Tool Plus 安装2019版Office及Visio
  13. android11 谷歌安装器,gms安装器安卓11版2021最新版-安卓11gms安装器2021最新版v4.8.5华为专版_新绿资源网...
  14. vue单页面应用项目优化总结
  15. 【linux命令】cp复制命令
  16. 苹果恢复出厂设置系统也会还原吗_手机经常恢复出厂设置会怎么样?对手机有害处吗?这下终于清楚了...
  17. jupyter notebook环境配置(重写config文件、配置默认工作文件路径、如何解决需要token登陆的问题/解决无法跳转浏览器问题等)
  18. Octave是什么,以及Octave online的使用(相当于open source的matlab)
  19. UR机器人和ROS-Industrial入门
  20. Python Matplotlib绘制柱状图(bar和barh函数)详解

热门文章

  1. Java中return结束循环,Java中break、continue、return在for循环中的使用
  2. 实现人脸识别性别之路---open CV将图片显示出来
  3. CentOS 查看系统 CPU 个数、核心数、线程数
  4. C# 创建、部署、调用WebService
  5. web.xml 配置中classpath: 与classpath*:的区别
  6. 测试 Zoundry Raven
  7. [译]Visual Studio 2008 Code Metrics
  8. (android)system ui 内存优化
  9. MTK6515 android打版软件配置(DrvGen.exe 使用)
  10. elastic search2.3.1(3) 查询语句拼接实战termQuery ,matchQuery, boolQuery, rangeQuery, wildcardQuery...