当前位置: 代码迷 >> 综合 >> Meta Auxiliary Learning for Facial Action Unit Detection
  详细解决方案

Meta Auxiliary Learning for Facial Action Unit Detection

热度:68   发布时间:2023-12-17 22:52:06.0

方法

损失函数

?假设在训练阶段有一个AU\mathrm{AU}AU训练数据集DtraAU={(Xi,zi),1≤i≤N}\mathcal{D}^{AU}_{tra}=\{(\mathcal{X}_i,z_i),1\le i \le N\}DtraAU?={ (Xi?,zi?),1iN}和一个人脸表情数据集DtraFE={(Ei,yi),1≤i≤M}\mathcal{D}^{FE}_{tra}=\{(\mathcal{E}_i,y_i),1\le i \le M\}DtraFE?={ (Ei?,yi?),1iM}。作者保留了一个小的AU\mathrm{AU}AU无偏验证数据集DvalAU={(Vi,zi),1≤i≤K}\mathcal{D}^{AU}_{val}=\{(\mathcal{V}_i,z_i),1 \le i \le K\}DvalAU?={ (Vi?,zi?),1iK},并且该验证集是排除AU\mathrm{AU}AU训练集之后的剩余集合里采样得到的。Xi,Vi,Ei\mathcal{X}_i,\mathcal{V}_i,\mathcal{E}_iXi?,Vi?,Ei?分别表示的是集合DtraAU,DvalAU,DtraFE\mathcal{D}^{AU}_{tra},\mathcal{D}^{AU}_{val},\mathcal{D}^{FE}_{tra}DtraAU?,DvalAU?,DtraFE?的第iii张图像。N,K,MN,K,MN,K,M分别表示的是集合DtraAU,DvalAU,DtraFE\mathcal{D}^{AU}_{tra},\mathcal{D}^{AU}_{val},\mathcal{D}^{FE}_{tra}DtraAU?,DvalAU?,DtraFE?中元素的总个数,并且有K?NK \ll NK?Nyiy_iyi?表示的是一个one?hot\mathrm{one-hot}one?hot编码,特指QQQ个面部表情类别上的类别。zi∈{0,1}z_i\in \{0,1\}zi?{ 0,1}表示的是第iiiAU\mathrm{AU}AU单元。111表示AU\mathrm{AU}AU被激活,000表示AU\mathrm{AU}AU单元没有被不激活。

?作者利用多标签sigmoid?\operatorname{sigmoid}sigmoid损失函数进行AU\mathrm{AU}AU单元检测,具体的表达式表示为:LAU=?∑jJzjlog?z^j+(1?zj)log?(1?z^j)\mathcal{L}^{AU}=-\sum\limits_{j}^{J}z^{j}\log \hat{z}^{j}+(1-z^j)\log(1-\hat{z}^j)LAU=?jJ?zjlogz^j+(1?zj)log(1?z^j)其中JJJ表示的是AU\mathrm{AU}AU单元的个数。zjz^jzj表示的是输入AU\mathrm{AU}AU样本的第jjj个真实AU\mathrm{AU}AU标签。z^j\hat{z}^jz^j表示是的预测的AU\mathrm{AU}AU分数。
?对于FER\mathrm{FER}FER,作者采用的是交叉熵损失函数,具体的表达式为LFE=?∑qQyqlog?y^q\mathcal{L}^{FE}=-\sum\limits_{q}^{Q}y^q\log \hat{y}^qLFE=?qQ?yqlogy^?q其中QQQ表示的是人脸表情类别。yqy^qyqy^q\hat{y}^qy^?q分别表示的是真实标签和预测标签。
?多任务训练的常规目标是最小化所有单个任务的组合损失:Ltrain=LAU(x,z)+ρLFE(e,y)L_{train}=\mathcal{L}^{AU}(x,z)+\rho\mathcal{L}^{FE}(e,y)Ltrain?=LAU(x,z)+ρLFE(e,y)其中ρ\rhoρ表示的是人脸表情识别任务的贡献平衡系数。手动调整损失权重是费时费力的,恰恰相反,元辅助学习方法MAL\mathrm{MAL}MAL旨在通过一个元优化目标,自动学习为每个AU\mathrm{AU}AU样本和FE\mathrm{FE}FE样本分配自适应权重wiAUw_i^{AU}wiAU?wiFEw_i^{FE}wiFE? ,并且最小化损失:Ltotal=∑i=1BwiAULiAU+∑i=1BwiFELiFE\mathcal{L}_{total}=\sum\limits_{i=1}^{B}w_i^{AU}\mathcal{L}_i^{AU}+\sum\limits_{i=1}^{B}w^{FE}_i\mathcal{L}_i^{FE}Ltotal?=i=1B?wiAU?LiAU?+i=1B?wiFE?LiFE?其中BBB表示的是mini-batch?\operatorname{mini-batch}mini-batch的尺寸。

元优化

?下图表示了MAL\mathrm{MAL}MAL的网络结构和元优化过程。MAL\mathrm{MAL}MAL的网络结构由基础网和元网组成。基础网络由主干网络和两个并行分类器组成。这两个分类器分别用于AU\mathrm{AU}AU检测和FER\mathrm{FER}FER检测。作者将主干网络表示为参数为θb\theta_bθb?的函数f(Xi)f(\mathcal{X}_i)f(Xi?),两个分类器的参数分别是θcAU\theta^{AU}_cθcAU?θcFE\theta^{FE}_cθcFE?θAU={θb,θcAU}\theta_{AU}=\{\theta_b,\theta_c^{AU}\}θAU?={ θb?,θcAU?}表示与AU\mathrm{AU}AU检测任务相关的参数,θFE={θb,θbFE}\theta_{FE}=\{\theta_b,\theta^{FE}_b\}θFE?={ θb?,θbFE?}表示与FER\mathrm{FER}FER任务相关的参数,因此基础网络中的参数被表示为θ={θb,θcAU,θcFE}\theta=\{\theta_b,\theta^{AU}_c,\theta^{FE}_c\}θ={ θb?,θcAU?,θcFE?}。元网络接受图像特征f(Xi)f(\mathcal{X}_i)f(Xi?)作为特征,并将f(Xi)f(\mathcal{X}_i)f(Xi?)映射成标量权重www。作者将元网络表示为带有参数ψ\psiψ的函数g(f(Xi))g(f(\mathcal{X}_i))g(f(Xi?))
?如下图所示,MAL\mathrm{MAL}MAL的元优化过程由三个阶段组成分别是:元学习,元测试和主干学习。在每次训练迭代中,MAL\mathrm{MAL}MAL依次执行以上三个步骤。在元训练阶段,基础网络将一批AU\mathrm{AU}AUFE\mathrm{FE}FE样本作为输入样本,并计算每个样本的损失。元网络中估计AU\mathrm{AU}AUFE\mathrm{FE}FE样本的初始权重分别为wAUw^{AU}wAUwFEw^{FE}wFE。这两个任务的损失通过它们各自的样本权重进行缩放,以多任务方式更新基础网络(θ→θ?\theta \rightarrow \theta^{*}θθ?)。在元测试阶段,MAL\mathrm{MAL}MAL从验证集中获取一批AU\mathrm{AU}AU样本作为输入,并评估更新后的基础网络的性能。然后,MAL\mathrm{MAL}MAL执行元梯度下降步骤来更新元网络(ψ→ψ^)(\psi \rightarrow \hat{\psi})(ψψ^?)。在基础学习步骤中,MAL\mathrm{MAL}MAL结合自适应样本权重(w^AU,w^FE)(\hat{w}^{AU},\hat{w}^{FE})(w^AU,w^FE)学习这两个任务,以重新更新基础网络(θ→θ^\theta \rightarrow \hat{\theta}θθ^)。

元训练阶段

?给定一批AU\mathrm{AU}AU样本XtraAU={(Xi,zi),1≤i≤B}\mathcal{X}^{AU}_{tra}=\{(\mathcal{X}_i,z_i),1 \le i \le B\}XtraAU?={ (Xi?,zi?),1iB}EtraFE={(Ei,yi),1≤i≤B}\mathcal{E}^{FE}_{tra}=\{(\mathcal{E}_i,y_i),1 \le i \le B \}EtraFE?={ (Ei?,yi?),1iB},主干网络提取特征表示为f(Xi)f(\mathcal{X}_i)f(Xi?)f(Ei)f(\mathcal{E}_i)f(Ei?)。利用编码的图像特征,MAL\mathrm{MAL}MAL通过元网络获得每个样本的权重表示为:w^iAU=g(f(Xi);ψ^)\hat{w}^{AU}_{i}=g(f(\mathcal{X}_i);\hat{\psi})w^iAU?=g(f(Xi?);ψ^?)w^iFE=g(f(Ei);ψ^)\hat{w}^{FE}_i=g(f(\mathcal{E}_i);\hat{\psi})w^iFE?=g(f(Ei?);ψ^?)
MAL\mathrm{MAL}MAL计算当前训练批次样本的平衡多任务损失:L^total=∑i=1Bw^iAULiAU(θAU)+∑i=1Bw^iFELiFE(θFE)\hat{\mathcal{L}}_{total}=\sum\limits_{i=1}^{B}\hat{w}^{AU}_{i}\mathcal{L}^{AU}_i(\theta_{AU})+\sum\limits_{i=1}^{B}\hat{w}_i^{FE}\mathcal{L}_i^{FE}(\theta_{FE})L^total?=i=1B?w^iAU?LiAU?(θAU?)+i=1B?w^iFE?LiFE?(θFE?)通过最小化L^total\hat{L}_{total}L^total?MAL\mathrm{MAL}MAL重新更新基础网络的参数:θ^=θ?α?θL^total\hat{\theta}=\theta-\alpha \nabla_{\theta}\hat{\mathcal{L}}_{total}θ^=θ?α?θ?L^total?其中α\alphaα表示的是学习率,θ^\hat{\theta}θ^ψ^\hat{\psi}ψ^?表示的是下一次训练迭代中基础网络和元网络的初始参数。与用于多任务学习的普通随机梯度下降方法不同,MAL\mathrm{MAL}MAL交替更新基础网络参数θ\thetaθ和元网络参数ψ\psiψ
在这里插入图片描述
?上述三个阶段的完整算法在如下算法中有所概述,主要通过深度学习框架pytorch\mathrm{pytorch}pytorch来实现。
在这里插入图片描述

  相关解决方案