人脸识别之数据和网络结构
2021湖南卫视跨年演唱会名单
⼈脸识别之数据和⽹络结构
更新了⼀部分对⽹络结构的尝试
针对于移动端的神经⽹络结构,我觉得要关注的有两个⽅⾯,⼀个是设计表达能⼒较强的⽹络,另⼀个是模型压缩,关于模型压缩的内容可以参考我之前的⽂章,这⾥我想说的是⽹络结构。⽬前CNN主要分为卷积层和全连接层,⽽卷积层的计算量⼜很⼤,所以我们考虑的寻表达能⼒强并且计算量⼩的卷积,学术界和⼯业界已经在这⽅⾯做了很多探索⽐如group convolution, depthwise separable convolution, point-wise convolution等等,具体可以参见⽹上资料或者是mobilenet和shufflenet,我觉得⼿机端的⽹络由于内存等限制可以选择10-20层的⽹络,并且不需要考虑ResNet之类的结构,如果能根据你的任务进⼀步修改是更好的。此外移动端还需要的是⼀个有效的前向传播框架诸如腾讯的NCNN和百度的MDL,我们也在其上做了进⼀步的优化,⽬前测试结果⽐NCNN快五倍左右。
----------------------------------------分割线------------------------------------------------------------------------
最近做了点⼈脸⽅⾯的⼯作,把⾃⼰的⼀些感受记录在这⾥和⼤家分享下。
我觉得⼈脸识别关键是为了得到泛化能⼒强的feature,⽽⽬前我⽐较关注的是移动端的⼈脸识别,所以我认为⼈脸识别需要关注的点主要包括三个部分:数据集,⽹络结构,损失函数。下⾯我分开来说说
弹窗拦截>空调显示h5是什么意思对于数据集来说我们⼀般认为是样本越多越好,其实这句话对也不对,因为我们收集的数据集可能存在噪声(有的类别中的样本明显不属于这个类)和分布不平衡(有的类别样本数很多,有的类别样本数很少)等情况,所以我们要做⼀些预处理,⾸先对于噪声⽽⾔我们需要滤掉错误的样本,我们可以选取⽤外部数据或者是该数据集中的部分数据来计算样本之间的样本相似性来滤掉错误的样本,需要注意的是要求样本是⽐较⼲净的。这⾥我们还可以保留⼀些预测错误但是其预测值⽐较⾼的样本,原因我会再接下来说明。还有⼀定程度的脏的数据对于训练是有益的,我觉得可以看做是为了提⾼泛化能⼒吧。
其次对于分布不平衡来说,常见的⽅法是降采样和过采样以及给不同的类别加权重等,但是上述⽅法有⼀定的局限性,降采样和过采样会导致重复计算和加⼤过拟合的可能性,⽽加权重的话需要不断的⼈⼯调整,费时费⼒。我采⽤的⽅法是加⼊⼀定⽐例的的long tail 数据,这样对整个训练来说是有益,但是这个⽐例也需要⼈⼯去实验,[1]中针对分布不平衡问题在损失函数做了改进,认为long tail data中类内距离最远的样本为hard sample,通过约束hard sample来处理分布不平衡的问题。
战网维护我认为数据平衡重要,但我们更应该去关注数据中的hard sample,所以这⾥不同类别加权中也需要仔细考虑了。我们⽤softmax训⼀个⼈脸模型,发现前期训练收敛很快,但是到后期的时候⼤量样本的准确率都在0.99以上,这时回传的梯度就很⼩了,⽆法再指挥⽹络训练了,这时候我们就需要更为hard的样本来提⾼模型的泛化能⼒。加⼊hard sample之后训练的精度可能不会上升,但是泛化的能⼒会增
强,所以训练的时候不能只关注损失函数下降了多少。此外trplet loss, contrastive loss等损失函数也包含了hard sample的含义,我会在之后的⽂章中解释。
1.
平台登录>什么的风景未完待续,敬请期待,如有错误,欢迎指出。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。