承接上一篇博客。该论文思路清晰,实验充分,这里大致写一些比较不错的idea。从标题就能看出本文的主要贡献:轻量、鲁棒。利用一个轻量CNN从大规模数据且含大量噪声中来学习一个深度面部表征。 直接谈谈贡献:

  • 本文介绍MFM操作,一种特殊的maxout来学习少参数网络。相比于ReLU从数据中学来阈值,MFM采用一种竞争关系来得到更好的泛化能力,适应于不同的数据分布。
  • 轻量CNN和MFM一起用来学习一种统一的面部表征。我们按照AlexNet、VGG、ResNet设计了三种轻量网络。所提出的模型在时空复杂度都有很好的表现。
  • 通过预训练得到的一种语义自提升方法被设计用来处理大尺度数据中的噪声数据。不连续的数据可以通过概率预测而有效检测出来,然后被移除来训练。
  • 所提出的单模型学习到256维深度表征,在各种数据集上:large-scale、video-based、cross-age face recognition、cross-view face recognition等数据集。

相关工作不再赘述,以下是网络结构部分。

1. Max-Feature-Map operation(MFM)

一个规模庞大的数据集通常含有噪声,所以如果噪声不能合适解决,CNN会有偏差。ReLU激活函数通过一个阈值来划分噪声信号和信息信号,这通过相应的激活与抑制来实现。然而这个阈值可能导致尤其是前几个卷积层的信息丢失(视为ReLU的副作用?)。因为这些层类似于Gabor滤波器。为了减轻这个问题,LReLU、PReLU和ELU等被相继提出。考虑到人脑侧抑制等启发,一个卷积层的激活函数应有以下特性:

  • 由于大规模数据集通常含有各种类型噪声,我们希望噪声信号和信息信号可被分离。
  • 当在图像中有水平的边或线时,对应检测水平信息的神经元应该兴奋而响应垂直信息的神经元应被抑制。
  • 神经元的侧抑制是无参的,所以应该不取决于大量数据。

介于此,提出MFM操作,是Maxout activation的拓展。然而其本质不同。Maxout通过大量隐层元来近似一个任意凸函数。更多神经元更好的近似结果。一般来讲Maxout网络要大于ReLU网络。MFM根据max函数来已知一小部分的神经元,所以基于MFM的网络轻量且鲁棒。尽管两者都用max函数,MFM不能视为凸函数估计。我们定义两种MFM操作来获取竞争特征图。下图很清楚:

 

2. The Light CNN Framework

MMF在CNN中起到类似生物中局部特征选择的角色。MFM在不同的位置挑选不同滤波器学到的最优特征。在反向传播时导致0、1梯度来抑制或激活神经元。伴有MMF的CNN可获得更紧凑的表征,虽然MFM层的梯度是稀疏的。MFM通过激活前面卷积层的特征图的最大值可以获取更多富有竞争力的节点。所以MFM可以实现特征选择并加速生成稀疏连接。

以下是作者按照AlexNet、VGG、ResNet实现的伴有MFM的三个网络,这里直接贴出第二个:因为Network in Network (NIN)可以在卷积层之间做出潜在的特征选择,通过采用小卷积核可以减少网络参数。所以在网络中嵌入NIN和小卷积核的MFM。

值得注意的是作者去掉了BN:因为BN是有域特征的,即当测试数据和训练数据来自不同域时,BN可能导致失败(这就需要IBN的操作了,即搭配IN来减小域影响)。此外利用FC来代替GAP(global average pool),作者认为高级特征图的每个节点都同时包含语义信息和空间信息,然而这有可能被GAP破坏。作者在FC设置了0.7的dropout,卷积层和除了最后一个FC的权重衰减设为5e-4,而最后一个fc不再担任特征提取角色,所以权重衰减设为5e-3来避免过拟合。卷积层和全连接初始化分别为Xavier和Gaussian。此外特征相似性采用cosine similarity。

some results:

3. 网络分析

MFM操作在轻量CNN中意义重大。下图说明了不同激活函数中,对于人脸表征学习人物来说,MFM表现最优。且MFM3/2优于MFM2/1。

为什么MFM效果这么好呢?原因就是MFM利用了竞争关系而非阈值来激活神经元。由于训练和测试集源于不同数据源,所以MFM有更好的泛化能力。MFM3/2 比 MFM2/1的结果更好,表明当利用MFM时,最好只有一小部分神经元被抑制,所以更多信息被保留在下一卷积层中。也就是说输入与输出神经元个数比应在1~2之间。

下图表明了BN在域差异问题上的缺憾:没有BN会更好。

4. 结论

受神经元侧抑制和maxout activation的启发,提出一个Max-Feature-Map(MFM)操作,可得到压缩的低维面部表征。卷积层的小核尺寸,Network in Network层、残差块等实现用来缩减参数空间并提高性能。本文的网络结构更小更快。

附:MFM示意图(参考:博客)

根据上面的MFM示意图,可以看到灰度图像(单通道)输入到两个相同结构的卷积层中,MFM比较两个卷积层中对应的通道,取最大值

A Light CNN for Deep Face Representation with Noisy Labels的更多相关文章

  1. 论文笔记:Improving Deep Visual Representation for Person Re-identification by Global and Local Image-language Association

    Improving Deep Visual Representation for Person Re-identification by Global and Local Image-language ...

  2. Deep High-Resolution Representation Learning for Human Pose Estimation

    Deep High-Resolution Representation Learning for Human Pose Estimation 2019-08-30 22:05:59 Paper: CV ...

  3. [CNN] Tool - Deep Visualization

    From: http://www.infoq.com/cn/news/2016/12/depth-neural-network-fake-photos 当时大部分的DNN在识别图像中对象的过程中主要依 ...

  4. Learning Invariant Deep Representation for NIR-VIS Face Recognition

    查找异质图像匹配的过程中,发现几篇某组的论文,都是关于NIR-VIS的识别问题,提到了许多处理异质图像的处理方法,网络结构和idea都很不错,记录其中一篇. 其余两篇: Wasserstein CNN ...

  5. face recognition[翻译][深度人脸识别:综述]

    这里翻译下<Deep face recognition: a survey v4>. 1 引言 由于它的非侵入性和自然特征,人脸识别已经成为身份识别中重要的生物认证技术,也已经应用到许多领 ...

  6. face recognition[variations of softmax][ArcFace]

    本文来自<ArcFace: Additive Angular Margin Loss for Deep Face Recognition>,时间线为2018年1月.是洞见的作品,一作目前在 ...

  7. face recognition[MobileFaceNet]

    本文来自<MobileFaceNets: Efficient CNNs for Accurate Real-Time Face Verification on Mobile Devices> ...

  8. face recognition[MobiFace]

    本文来自<MobiFace: A Lightweight Deep Learning Face Recognition on Mobile Devices>,时间线为2018年11月.是作 ...

  9. Classification / Recognition

    转载 https://handong1587.github.io/deep_learning/2015/10/09/recognition.html#facenet Classification / ...

随机推荐

  1. python 购物车小程序

    python 购物车小程序 功能要求:1.启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表2.允许用户根据商品编号购买商品3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒4. ...

  2. bzoj4326 树链剖分 + 线段树 // 二分 lca + 树上差分

    https://www.lydsy.com/JudgeOnline/problem.php?id=4326 题意:N个点的树上给M条树链,问去掉一条边的权值之后所有树链长度和的最大值最小是多少. 首先 ...

  3. python (大文件下载及进度条展示) 验证客户端链接的合法性,socketserver

    ##########总结########### 文件校验加进度条显示 ####server import os import json import socket import struct impo ...

  4. VirtualBox安装Ubuntu14.04

    创建虚拟机 点击 新建(N) 设置虚拟机的名称,类型与版本,如下图所示: 分配虚拟机的内存大小,受PC实际内存影响,暂时设置为2G,如下图所示: 分配虚拟机的硬盘大小,默认即可,如下图所示: 分配虚拟 ...

  5. mysql一张表多个字段关联另一张表查询

    如下:一张订单表多个字段关联用户表: 1.链表查询 SELECT cu.id AS 'id',cu.version AS 'version',cu.cid AS 'cid',cu.uid AS 'ui ...

  6. javasrcipt的作用域和闭包(二)

    这篇博客主要对词法作用域与欺骗词法作用域.函数作用域与块级作用域.函数内部的变量提成原理进行详细的分析,在这篇博客之前,关于作用域.编译原理.浏览器引擎的原理及关系在javaScript的作用域和闭包 ...

  7. flask结合celery实现异步响应HTTP请求

    摘要: 1.场景描述 2.flask介绍 3.celery介绍 4.项目伪代码记录 5.几个备注点 内容: 1.场景描述 最近在优化用户画像的东西,要开发一个给文本打标签的服务:我这边需要提供一个HT ...

  8. 细说shiro之自定义filter

    写在前面 我们知道,shiro框架在Java Web应用中使用时,本质上是通过filter方式集成的. 也就是说,它是遵循过滤器链规则的:filter的执行顺序与在web.xml中定义的顺序一致,如下 ...

  9. 【转载】C# 字符串截取

    https://blog.csdn.net/maba007/article/details/78424760

  10. GreenDao设置数据版本

    GreenDao设置数据库版本增加后,会自动删除并创建新数据库,将SCHEMA_VERSION增加即可. 在3.0里可以在config配置里进行设置 apply plugin: 'com.androi ...