Fishe向量Fisher Vecotr(一)
在高斯混合模型中,我提到了特征处理的一般流程:
事实上高斯混合模型完成的是k-means的任务,那么通过高斯混合模型聚类后,也用一般的基于距离的方法进行feature encoding么?不是的,高斯混合模型通常和Fisher Vector一起使用。现在就来对Fisher Vector做个简单介绍。
首先,Fisher Vector是一种Feature coding的方法。网上相关的中文资料很少,比较有价值的只有Fisher Vector一篇。但是对于我这种数学不太好的人看起来还是有点难度,所以把所有的公式都推导了一遍,且又写了一次理一理。所以这篇博客的大纲和Fisher Vector大致相同,只是在简略的地方加上了一些自己的理解。
Kernel Trick
要理解Fisher Vector, 也要先了解下Kernel。知乎上关于Kernel的问题我比较赞同第三个答案。Kernel不是一种神秘的东西,只是一种计算的trick。 在CV界中亘古不变的主题分类中,假设要训练一个(−1,1)(−1,1)的二分类器,则当有一个新样本的时候,则其属于一类yy的概率为:
P(y|x)P(y|x)可以看出这是一个判别模型,利用logistic function对其建模(为什么使用logistic function可以参考Andrew Ng的机器学习讲义):
P(y|x;θ)=11+e−θTXP(y|x;θ)=11+e−θTX我们的目标是找到最好的θθ(θθ是向量),如果样本很多的话,可以通过最大似然估计找到一组最佳的θ^θ^来达到最好的分类效果。但是在样本较少的情况下,可假设θθ的先验概率分布服从均值00的高斯分布,即θ∼N(0,ξ),ξθ∼N(0,ξ),ξ可通过统计样本得到,那么有
P(θ)=σ(θ)=12πξ−−−√e−θTξ−1θ2P(θ)=σ(θ)=12πξe−θTξ−1θ2利用最大后验概率来估计,假设一共有NN个样本xi(i=1,2,3,…,N)xi(i=1,2,3,…,N),且相互独立,则
θ^MAP=argmaxθ∏i=1NP(yi|xi;θ)P(θ)θ^MAP=argmaxθ∏i=1NP(yi|xi;θ)P(θ) lθ=∏i=1NP(yi|xi;θ)P(θ)lθ=∏i=1NP(yi|xi;θ)P(θ)对lθlθ两边取ln对数ln对数,则:
L(θ)=ln(lθ)=∑i=1N(lnP(yi|xi;θ)+lnP(θ))L(θ)=ln(lθ)=∑i=1N(lnP(yi|xi;θ)+lnP(θ))对θθ求导:
∂L(θ)∂θ=∂∂θlnP(θ)+∑i=1N∂∂θlnP(yi|xi;θ)∂L(θ)∂θ=∂∂θlnP(θ)+∑i=1N∂∂θlnP(yi|xi;θ) ∂∂θlnP(θ)=−∂∂θθTξ−1θ2=−ξ−1θ∂∂θlnP(θ)=−∂∂θθTξ−1θ2=−ξ−1θ ∂∂θlnP(yi|xi;θ)=∂∂θ(ln1−ln(1+e−θTxi))=xie−θTxi1+e−θTxi∂∂θlnP(yi|xi;θ)=∂∂θ(ln1−ln(1+e−θTxi))=xie−θTxi1+e−θTxi令∂L(θ)∂θ=0∂L(θ)∂θ=0,有
∑i=1Nxie−θTxi1+e−θTxi−ξ−1θ=0∑i=1Nxie−θTxi1+e−θTxi−ξ−1θ=0求解过程如下:
∑i=1Nxie−θTxi1+e−θTxi=∑i=1Nxi1+eθTxi=ξ−1θ∑i=1Nxie−θTxi1+e−θTxi=∑i=1Nxi1+eθTxi=ξ−1θ令11+eθTxi=σ(−θ)=λi11+eθTxi=σ(−θ)=λi,则有:
θ^=∑i=1Nxiλiξθ^=∑i=1Nxiλiξ λi=−1eθ^Txiλi=−1eθ^Txi将结果带入 P(y|x;θ)P(y|x;θ),最终得到:
P(y|x;θ)=11+e∑Ni=1λi(xTiξx)P(y|x;θ)=11+e∑i=1Nλi(xiTξx)令K(xi,x)=xTiξxK(xi,x)=xiTξx为核函数,该核函数为线性核。
from: http://bucktoothsir.github.io/blog/2014/11/24/9-th/
总结
以上是生活随笔为你收集整理的Fishe向量Fisher Vecotr(一)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 最小二乘法least square
- 下一篇: Fishe向量Fisher Vecotr