@大碗@笨猫猪 提到的清华2006年那个系统的完成人是我同实验室的直系师兄。这个系统09年以后一直是我负责改进。还参加了最新的frvt2012。此外题主说的那篇paper我上周组会刚讲过。因此自认为有点发言权。

先给出观点,如果数据没有注水的话,这个绝对是突破性的成果。lfw上超过人脸意味着在人脸识别80%的应用环境下机器的性能可以超过人脸。而06年的结果只意味着在身份证比对、小型办公场所签到等极少应用下机器的性能超过人脸。

1.2006年全面超过人脸时的条件是实验室内部拍摄条件、正面姿态、正面光照。这种条件下的人脸识别错误率的进展大约是每3年下降10倍。FRVT2012中期结果中最好的单位(不出意外应该是日本的NEC公司)的错误率已经达到了我们06年系统的1%左右。而我手上的系统相比06年大约提升了十几倍,目前在中期结果中排名6-7名。

2.lfw数据库直接是从雅虎网上抓的照片。难度在业界属于顶尖。该库09年公布后至今没有难度更大的静态照片库出现。难度相当但数据量更大的库倒是有两三个。我们06年的系统跑lfw也就70+的水平。而我们实验室的最高水平(也是国内除face++外的最高水平)大约是92左右。大概相当于2012年底的state-of-the-art。

3.2014年的三个逆天结果,deepface的97.25%、face++的97.27%、gaussianface的98.52%,前两者都用了deep learning。第一个训练数据400万。第二个算法细节不明,但deeplearning向来吃样本,想来训练库也是百万量级。唯有gaussianface的训练库仅2万余。

4.arxiv和CVPR等顶会完全不矛盾。先发上来只是为了不让别人抢先。估计未来的顶刊顶会上很快会出现这个结果。

5.算法细节太过技术,难以在这里深入浅出,就不多介绍了。只提一篇paper。Blei的latent dirichlet allocation,2003年的jmlr,引用量近万。本文对人脸的贡献方式大概相当于lda对文档分类的贡献方式,懂行的人自然知道这句话的分量。当然lda珠玉在前,deep learning风头正劲,所以真正的历史地位,本文自然不可能赶上lda。但一篇正常pami的水准肯定是有的。

=============================5月21日更新================================
居然上了知乎日报好激动~那就再说一下我对GaussianFace的理解了。只说我认为最有突破性的地方吧。具体推导过程一来论文中有,二来比较复杂,三来我自己还没重复实验不确保细节理解都正确,这里就从略了。
1.解决的问题是模式认证问题,就是说输入两个向量x_1x_2(可以是人脸照片或别的),输出相似度s(x_1,x_2)表示这两个向量属于同一类的概率。(人脸识别中就是两张照片是同一个人的概率)。训练集有一堆向量,有些属于同一类,有些不属于同一类。目标就是根据训练集来猜这个函数s(x_1,x_2).
2.GaussianFace以前成功的算法分两类:metric learning和bayesian framework。它们都是假设这个函数具有一个参数的形式s_\theta (x_1,x_2)。然后利用训练集估计出一个最好的\theta
2.1 metric learning中s_\theta (x_1,x_2)是显式的,比如是二次型的形式,\theta就是中间的那个矩阵。
2.2 bayesian frameworks_\theta (x_1,x_2)是隐式的,认为训练、测试样本都有同一个随机model生成,\theta代表这个model的各种参数,由训练集根据最大似然/最大后验/beyesian方法估计得到。然后在给定model的情况下推导s_\theta (x_1,x_2)的最优表达式。
3.这两类问题都有一个硬伤:训练集样本和测试集样本分布情况不同(比如拍摄条件不同、人种不同等等)时,由训练集估计的\theta对测试集不适用,这样这些训练集就用不上了,只会添乱。
4.GaussianFace声称的牛逼之处在于,用他们的算法,训练集只需少量和测试集分布一致的样本+大量其他样本,算法就能从这些其他样本中获益。
5.他们的关键在于,不认为s(x_1,x_2)具有参数形式,而是认为它是一个随机函数。
6.一个函数,在不严谨的说法下,可以看成一个无穷维的向量。
7.一个有限维随机向量可以假设符合多维正态分布-即gaussian分布。类似的,一个无穷维向量,或一个函数,可以假设服从无穷维正态分布-即gaussian过程。
8.决定gaussian分布的参数为均值\mu和协方差矩阵\Sigma。同样,决定gaussian过程的参数为均值函数\mu(\cdot )和协方差函数\Sigma(\cdot,\cdot)。文章中假设\mu(\cdot)\equiv 0,因此参数只剩协方差函数。
9.通过训练集估计\Sigma(\cdot,\cdot)的算法是个优化过程,定性的说,就是尽量同时让1.那个和测试集分布一致的少量训练集的出现概率尽可能高。2.其他训练集对这个训练集提供的信息尽可能多。整个优化过程相当麻烦,我也不确保细节都理解正确。总之这个\Sigma(\cdot,\cdot)是可以估计出结果的。
10.有了\Sigma(\cdot,\cdot)s(x_1,x_2)就有了明确的先验分布,接着就用普通Bayesian方法,给定测试样本时可以将不相关的变量都积分消除,得到最终的相似度。这一步用了些近似处理,细节不表。
11.GaussianFace相比与之前算法最大的区别在于,认为相似度函数是随机的而非确定的。这样从模型上认可了不同样本可能具有不同的相似度函数。因此从原理上克服了第3点提到的问题。
12.缺点在于,\Sigma(\cdot,\cdot)的估计只能通过kernel的形式,空间复杂度为样本数的平方,这个限定了在一般实验室中,训练样本数只能限制在10^4量级。

— 完 —

本文作者:梁亦聪

【知乎日报】
你都看到这啦,快来点我嘛 Σ(▼□▼メ)

此问题还有 11 个回答,查看全部。
延伸阅读:
LBP (Local Binary Pattern) 是目前流行的模式识别、人脸识别算法吗?
比较好的开源人脸识别软件有哪些?

分享到