[关闭]
@devilloser 2018-09-10T06:27:42.000000Z 字数 1413 阅读 2354

One-shot Face Recognition by Promoting Underrepresented Classes

deeplearning


abstract

在文章中探究one-shot 人脸识别,目标建立一个大规模的人脸识别模型可以识别大量的人。研究表明对于训练集中只有一张图片的class泛化能力很差,原因是数据的不平衡,对最后分类层进行多分类的逻辑回归效果不好。为了解决这个问题,提出了一个新的监督叫做underrepresented-classes promotion loss,可以将underrepresent class的权重与正常的class的权重对齐。UPloss可以在保证正常class的识别精度,同时提高underrepresented class的识别精度。

dataset

文章的一个贡献是建立了一个大规模,几乎无噪的训练集。训练集分为base set和novel set,base set为正常class,novel set为underrepresented class。

base set

此处输入图片的描述
不包含LFW中的名人,所以可以直接在LFW数据集上评估性能。

novel set

1000人
train:1张
val:20张

训练方法

分为两个阶段:
第一个阶段为表示学习,在这个阶段,用base set的images训练一个表示模型
第二个阶段为one-shot learning with underrepresented-classes promotion。在这个阶段,训练多分类来识别base set 和novel set的人。设计UP方法提高在novel set的表现

Representation learning

用base set中的图片训练20000-class的分类器,每个人大概50-100张图片,base set中的错误标签少于1%,每个人保留5张图片作为测试

One-shot learning with UP

在one-shot learning阶段,训练21000-class分类器,用base set和novel set中的数据,1000人在novel set中,一人一张图片作为训练集。

challenges of one-shot

softmax:
此处输入图片的描述
cross entropy:
此处输入图片的描述
∈{0,1}当属于k类为1

计算方法

循环

  1. for i in xrange(num_train):
  2. score=X[i].dot(W)
  3. score-=np.max(score)
  4. correct_score=score[y[i]]
  5. exp_sum=np.sum(np.exp(score))
  6. loss+=np.log(exp_sum)-correct_score
  7. dW[:,y[i]]-=X[i]
  8. for j in xrange(num_class):
  9. dW[:,j]+=(np.exp(score[j])/exp_sum)*X[i]
  10. loss/=num_train
  11. loss+=0.5*reg*np.sum(W*W)
  12. dW/=num_train
  13. dW+=reg*W

可以看到如果第k类样本很少,dw[:,k]基本为0
此处输入图片的描述

在二分类的决策中:
此处输入图片的描述
此处输入图片的描述
在二维空间可以认为∠为k类的特征空间大小

Underrepresented Classes Promotion

在这个阶段,提出额一个方法类提升underrepresented class,设计了一个增加特征空间中该类分区体积的方法。
此处输入图片的描述
为novel class
为base class
此处输入图片的描述

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注