论文基本情况

发表时间及刊物/会议:2022 CVPR

发表单位:西安电子科技大学, 香港中文大学,重庆邮电大学

问题背景

在大部分半监督学习方法中,一般而言,只有部分置信度高于提前设置的阈值的无标签数据被利用。由此说明,大部分半监督方法没有充分利用已有数据进行训练。

论文创新点

设置了Adaptive Confidence Margin(自适应阈值)根据训练规律动态调整阈值,充分利用所有的无标签数据。

网络结构



具体的训练步骤如下:

初始基本设定:

  1. 设置初始阈值,本文中,对于每个类别,阈值初始值为0.8。
  2. 本模型借鉴Mean Teacher的思想,引入老师模型(ema_model)。
  3. 训练时有标签和无标签数据按1:1的比例输入网络
  4. 模型backbone采用resent18,输出最后一层类别概率分布以及倒数第二层512维特征向量。

学生网络

对于有标签数据:

有标签图片经过弱数据增强(WA)后进入模型,输出结果和真值对比,利用交叉熵函数作为损失函数,计算有标签损失\(L^s_{CE}\)。

对于无标签数据:

无标签图片复制三份(a图, b图, c图),其中两份(a图,b图)经过弱数据增强(WA)后输入模型,再将输出的两个概率分布平均后得到最终的概率分布。记所得概率分布中的最大概率为\(f_{max}\),对应类别记作\(c\)。如果\(f_{max}\)大于此类别\(c\)对应阈值,则将\(c\)作为此类别的真实标签,并将此类数据归为子集I(含“真实标签”);否则,将此类数据归为子集II(无真实标签)。

如果此图片属于子集I,则将c图经过强数据增强(SA)后送入网络,和标签\(c\)计算交叉熵损失\(L^u\)。

若此图片属于子集II,则\(L^u=0\)。并拼接a图,b图输入模型后得到的两个512特征向量,首先根据公式8 计算两个特征向量的相似度,再根据公式9计算SupConLoss \(L^c\) (具体计算方法见论文Supervised Contrastive Learning)。

总损失函数为:



实验中\(\lambda_1 = 0.5,\lambda_2=1,\lambda_3=0.1\)。

老师网络

学生模型根据损失函数更新模型参数后,老师网络在学生网络的基础上使用指数平均移动的方式更新参数。之后,将有标签数据输入老师网络,得到概率分布。

对于一个batch的数据,记最大概率对应标签类别和真实类别相同的图片为集合\(N_{st}\),记\(N^c_{st}\)为最大概率对应标签类别和真实类别相同,且真实类别为\(c\)的图片张数,记\(s_i\)为最大概率, \(\hat{y_i}\)为预测类别,按照以下公式计算一个类别的平均最大概率,记为\(T_c\)。



之后,考虑到置信值会随着epoch数逐步提高,再根据以下公式计算当前epoch各个类别的阈值。

至此,一个iteration结束。

实验

表1 固定阈值和我们方法的比较,在RAF-DB, SFEW数据集上的结果,其中FT 表示使用FixMatch方法时取固定阈值的具体值,

表2 RAF-DB, SFEW 和AffectNet三个数据集上我们的方法和其他优秀的半监督方法对比

图3 自适应阈值调整方法,公式5中关于两个参数的值的消融实验

表3 使用WideResNet-28-2作为backbone在RAFDB上实验结果

图4 使用2D t-SNE 可视化方法可视化得到的特征,从图中可以看出,我们的方法对各类表情提取特征的效果最好(不同类别的特征重合度最小)。

表4 各个不同类别的数据集交叉验证结果。以下结果为在RAF-DB上训练,CK+数据集上进行测试所得结果

[论文][表情识别]Towards Semi-Supervised Deep Facial Expression Recognition with An Adaptive Confidence Margin的更多相关文章

  1. Paper-[acmi 2015]Image based Static Facial Expression Recognition with Multiple Deep Network Learning

    [acmi 2015]Image based Static Facial Expression Recognition with Multiple Deep Network Learning ABST ...

  2. CVPR 2020几篇论文内容点评:目标检测跟踪,人脸表情识别,姿态估计,实例分割等

    CVPR 2020几篇论文内容点评:目标检测跟踪,人脸表情识别,姿态估计,实例分割等 CVPR 2020中选论文放榜后,最新开源项目合集也来了. 本届CPVR共接收6656篇论文,中选1470篇,&q ...

  3. [CVPR 2016] Weakly Supervised Deep Detection Networks论文笔记

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px "Helvetica Neue"; color: #323333 } p. ...

  4. Deep Learning论文笔记之(八)Deep Learning最新综述

    Deep Learning论文笔记之(八)Deep Learning最新综述 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文,但老感觉看完 ...

  5. 【Gabor】基于多尺度多方向Gabor融合+分块直方图的表情识别

    Topic:表情识别Env: win10 + Pycharm2018 + Python3.6.8Date:   2019/6/23~25 by hw_Chen2018                  ...

  6. Deep Learning 17:DBN的学习_读论文“A fast learning algorithm for deep belief nets”的总结

    1.论文“A fast learning algorithm for deep belief nets”的“explaining away”现象的解释: 见:Explaining Away的简单理解 ...

  7. 【论文笔记】Malware Detection with Deep Neural Network Using Process Behavior

    [论文笔记]Malware Detection with Deep Neural Network Using Process Behavior 论文基本信息 会议: IEEE(2016 IEEE 40 ...

  8. 机器学习: Tensor Flow with CNN 做表情识别

    我们利用 TensorFlow 构造 CNN 做表情识别,我们用的是FER-2013 这个数据库, 这个数据库一共有 35887 张人脸图像,这里只是做一个简单到仿真实验,为了计算方便,我们用其中到 ...

  9. 42 在Raspberry Pi上安装dlib表情识别

    https://www.jianshu.com/p/848014d8dea9 https://www.pyimagesearch.com/2017/05/01/install-dlib-raspber ...

随机推荐

  1. PCB布线总的原则

    转自张飞实战电子公众号 PCB布线总的原则 最短路径和减少干扰 PCB布线的总的流程大致如下: 1了解制造厂商的制造规范-线宽,线间距,过孔要求及层数要求: 2确定层数并定义各层的功能: 3设计布线规 ...

  2. nodejs和树莓派开发以及点亮RGB的LED灯代码

    前段时间集团举行前端IOT比赛,借此机会熟悉了树莓派相关的东西,特此记录一些相关的文档和开发指南. 先介绍一些树莓派的入门教程 阮一峰的树莓派入门 微雪电子-树莓派硬件中文官网 ssh链接树莓派 ss ...

  3. 使用Dropbox搭建静态网站详细教程

    DropBox是一款非常好用的免费网络文件同步工具,是Dropbox公司运行的在线存储服务,通过云计算实现因特网上的文件同步,用户可以存储并共享文件和文件夹.今天小z和大家分享一下如何使用dropbo ...

  4. 在vue中创建多个ueditor实例

    简介 在vue中创建多个ueditor实例,我使用neditor,其实就是把ueditor样式美化了下,其他和ueditor几乎一样 截图 源码地址 https://github.com/oblivi ...

  5. 支付宝小程序中“<”号写法

    今天遇到一个小问题,记录一下 "<"号在h5页面都是可以直接显示的,但是在运行支付宝小程序时报错,找了一个解决办法 <text> {{char_lt}} 18.5 ...

  6. docker 国内镜像源

    参考:docker 国内镜像源 作者:Joncc Linux环境 # vi /etc/docker/daemon.json { "registry-mirrors": [" ...

  7. 小天才XTC Z1S开启ADB

    起因 最近入手了Apple Watch,但因系统闭源和国区App Store第三方应用实在是少,所以就开始折腾起安卓表来了.正好家里有块给小孩子用的小天才手表,所以就想到了通过ADB调试安装一些这块表 ...

  8. CAN总线收发节点设计

    CAN总线收发节点设计 写在前面 这是微机接口的一个项目作业. 这段时间一直在宿舍隔离,没办法进行焊接和测试,但原理和代码已经在学习板子上经过验证. 设计目标 CAN在工业现场大量应用,尤其是汽车工业 ...

  9. 记一次docker安装成功,启动失败的原因

    问题 按照错误提示,先查看docker的状态: systemctl status docker 可以看到,非常明显的一行大红字:Failed to start Docker Application C ...

  10. 解决windows下WslRegisterDistribution failed with error: 0x80070050的问题

    最近升级了老电脑的windows10的系统,发现wsl2里面安装的ubuntu20.04不能在windows terminal正常启动了(我之前是把ubuntu20.04作为默认启动终端的.) 涉及报 ...