作者 CASIA
概述
为了得到更好的准确度,深度学习的方法都趋向更深的网络和多个模型ensemble,这样导致模型很大,计算时间长。本文提出一种轻型的CNN,在取得比较好的效果同时,网络结构简化,时间和空间都得到了优化,可以跑在嵌入式设备和移动设备上。
MFM激活函数
本文使用了一种称为MFM的激活函数,这个结构也很简单。在输入的卷积层中,选择两层,取相同位置较大的值。
写成公式:
输入的卷积层为2n层,取第k层和第k+n层中较大的值作为输出,MFM输出就变成了n层。激活函数的梯度为
这样激活层有一半的梯度为0,MFM可以得到稀疏的梯度,可以达到根据结果来更新与之相应的权值的效果。并且MFM激活函数相比于ReLU函数,ReLU函数得到的特征是稀疏高维的,MFM可以得到紧实(compact)的特征,还能实现特征选择和降维的效果。
网络结构
网络最后一层是Sofmax层,实现分类的目的,fc1的结果就是人脸的特征。
为什么表格中没有降维?
每个卷积层都有两个独立的部分,独立进行训练,然后输入mfm,也就是说conv2_1和conv2_2是并行的。
卷积层的参数量这么少?
貌似对于一个卷积核,它的各个维度之间同样权值共享,这与其他的卷积网络都不一样(不管是VGG、Inception同一个卷积核的各个维度的参数是不一样的)。因此大幅度减少了参数。
而且最终的结果也不是很差
训练
在GTX980上训练了2个星期
训练集是CASIA-WebFace(10K人,0.5M图像)
结果
关于c图是和relu作比较的,关于这一点博主存在疑问,即CNN在每个卷积层使用的是两个独立的部分来做Maxout,对应的relu只有一个独立的部分的话,结果可能不那么有意义,因为网络的参数也有所提升了。
这个表格说明网络很轻量:
LFW得分