原文:Rank consistent ordinal regression for neural networks with application to age estimation
链接:https://arxiv.org/pdf/1901.07884.pdf
在许多现实世界的预测任务中,类的标签包括关于标签之间相对排序的信息,这些信息是常用的损失函数(如多类别交叉熵 cross-entropy)所没有的。最近,深度学习社区采用序数回归框架来考虑此类排序信息。通过将序数目标转换为二元分类子任务,使神经网络配备了序数回归功能。然而,这种方法受到不同二元分类器之间不一致的影响。为了解决这些不一致问题,作者提出了COnsistent RANk Logits (CORAL) 框架,该框架对 rank-monotonicity 和 consistent confidence scores 具有强大的理论保证。此外,所提出的方法为 architecture-agnostic,并且可以扩展任意最先进的深度神经网络分类器,用于有序回归任务。对用于年龄预测的一系列人脸图像数据集所提出的 rank-consistent 方法的经验评估表明,与参考有序回归网络相比,预测误差显着减少。
序数回归(也称为序数分类)描述了在序数尺度上预测标签的任务。这里,排序规则或分类器 h 将每个对象 ∈ X 映射到有序集合 h : X → Y,其中 Y = { ≺ ... ≺ }。与分类相反,标签提供了足够的信息来对对象进行排序。然而,与 metric regression 相反,标签值之间的差异是任意的。
虽然机器学习领域开发了许多用于预测建模的强大算法,但大多数算法都是为分类任务而设计的。 Li 和 Lin 提出的扩展二元分类方法构成了许多有序回归实现的基础。然而,这种方法的基于神经网络的实现通常会受到二元排名之间的分类器不一致的影响。单个二元分类器预测之间的这种不一致问题如图 1 所示。作者提出了一种新的方法和定理来保证分类器的一致性,可以很容易地在各种神经网络架构中实现。
此外,除了理论上的 rank-monotonicity 保证外,本文还对我们挑战现实世界数据集的方法进行了实证分析,这些数据集使用提出的卷积神经网络 (CNN) 方法来预测人脸图像中的个人年龄。衰老可以被视为一个非平稳的过程,因为年龄增长效应会因人的年龄而异。在童年时期,面部衰老主要与面部形状的变化有关,而成年时期的衰老主要由皮肤纹理的变化来定义。基于这一假设,可以使用基于序数回归的方法对年龄预测进行建模。
本文的主要贡献如下:
1. 序数回归的 consistent rank logits (CORAL) 框架,具有分类器一致性的理论保证;
2. 实现 CORAL 以适应常见的 CNN 架构,例如 ResNet,用于序数回归;
3. 不同年龄估计数据集的实验表明,与序数回归的参考框架相比,CORAL 保证的二元分类器一致性提高了预测性能。
请注意,这项工作侧重于年龄估计,研究提出的方法对有序回归的有效性。然而,所提出的技术可用于其他有序回归问题,例如人群计数、深度估计、生物细胞计数、客户满意度等。
2.1. 有序回归和排序
过去已经为序数回归开发了几种广义线性模型的多元扩展,包括流行的比例优势和比例风险模型。此外,机器学习领域基于经过充分研究的分类算法的扩展开发了序数回归模型,通过重新制定问题以利用多个二元分类任务。这方面的早期工作包括使用感知器和支持向量机。Li 和 Lin 提出了一个通用的归约框架,统一了许多现有算法的观点。
2.2. 有序回归CNN
虽然早期使用 CNN 处理有序目标的工作采用了传统的分类方法,但 Li 和 Lin 提出的从序数回归到二元分类的一般归约框架最近被 Niu 等人作为序数回归 CNN (OR-CNN)。在 OR-CNN 方法中,将具有 K 个等级的序数回归问题转化为 K-1 个二元分类问题,其中第 k 个任务预测人脸图像的年龄标签是否超过等级 , k = 1, ... , K − 1. 所有 K−1 任务共享相同的中间层,但在输出层中分配了不同的权重参数。
虽然 OR-CNN 能够在基准数据集上实现最先进的性能,但它不能保证一致的预测,因此对单个二元任务的预测可能会不一致。 例如,在年龄估计设置中,如果第 k 个二元任务预测一个人的年龄超过 30 岁,而前一个任务预测这个人的年龄小于 20 岁,这将是矛盾的。当 K-1 个任务预测组合起来获得估计年龄时,这种不一致可能是次优的 。
Niu 等人承认分类器不一致并不理想,并指出确保 K-1 二元分类器一致将大大增加训练复杂性。本文中提出的 CORAL 方法解决了这两个问题,为分类器的一致性提供了理论保证,并且不会增加训练复杂度。
2.3. 用于年龄估计的其他 CNN 架构
Chen 等人提出了对 ORCNN 的修改,称为 Ranking-CNN,它使用一组 CNN 进行二元分类并聚合预测以估计给定人脸图像的年龄标签。研究人员表明,与具有多个二进制输出的单个 CNN 相比,训练一组 CNN 提高了预测性能,这与众所周知的事实一致,即一个集成模型可以实现比每个模型更好的泛化性能集成中的个体分类器。
最近的研究还表明,与单任务相比,训练一个共享低层参数的多任务 CNN 可以用于各种人脸分析任务(人脸检测、性别预测、年龄估计等)可以提高不同任务的整体性能CNN。
使用二元分类器进行序数回归的另一种方法是 Polania 等人提出的 siamese CNN 架构。它通过输入图像和多个精心选择的锚图像之间的成对比较来计算排名。
本节描述了我们提出的 CORAL 框架,该框架解决了 Niu 等人的 ORCNN 中分类器不一致的问题,它基于多个二元分类任务进行排名。
3.1. 预备
令 为由 N 个训练示例组成的训练数据集。这里, ∈ X 表示第 i 个训练示例, 表示相应的秩,其中 具有有序秩 ≻ ≻... ≻ 。序数回归任务是找到一个排序规则 h : X → Y 使得损失函数 L(h) 最小化。
令 C 为 K×K cost 矩阵,其中 是将示例 (, y) 预测为秩 的成本。通常,对于 y ≠ r k , 且 。在序数回归中,我们一般更喜欢成本矩阵的每一行都是 V-shaped 的,即如果 ,,如果 ,。分类成本矩阵的条目 不考虑排序信息。在有序回归中,秩被视为数值,绝对成本矩阵通常由 定义。
Li 和 Lin 提出了一个通用的归约框架,用于将有序回归问题扩展为几个二元分类问题。该框架需要一个在每一行中都是凸的成本矩阵 获得秩单调阈值模型。由于每个二元任务的成本相关权重对于每个训练示例都是特定的,且因为其高训练复杂性,这种方法在实践中被认为是不可行的。
作者提出的 CORAL 框架既不需要具有凸行条件的成本矩阵,也不需要依赖于每个训练示例的显式加权项来获得秩单调阈值模型并为每个二元任务生成一致的预测。
3.2. 具有一致秩对数模型的序数回归
在本节中,作者将描述提出的用于序数回归的一致秩对数 (CORAL) 框架。 3.2.1 小节描述了用于等级预测的二元任务的标签扩展。 CORAL 框架的损失函数在 3.2.2 小节中描述。在 3.2.3 小节中,作者证明了二元分类任务之间的等级一致性定理,该定理保证二元任务产生一致的排名预测。
3.2.1. 标签扩展和排名预测
给定一个训练数据集 ,首先将秩 扩展为 K − 1 个二元标签 , 表示 是否超过秩 ,例如 。如果内部条件为真,则指示函数 1{·} 为 1,否则为 0。 在模型训练期间使用扩展的二元标签,作者在输出层训练了一个带有 K-1 个二元分类器的单个 CNN,如图 2 所示。
基于二元任务响应,输入 的预测等级标签是通过 获得的。 秩索引 q 由下式给出
其中 是输出层中第 k 个二元分类器的预测。我们要求 反映序数信息并且 rank-monotonic,,这保证了一致的预测。为了实现秩单调性并保证二元分类器的一致性(定理 1),K − 1 个二元任务共享相同的权重参数但具有独立的偏置单元(图 2)。
3.2.2.损失函数
让 表示神经网络的权重参数,不包括最后一层的偏置单元。倒数第二层,其输出表示为,与最终输出层中的所有节点共享一个权重;然后将 K − 1 个独立偏置单元添加到 使得 是最后一层中相应二元分类器的输入。让
是逻辑 sigmoid 函数。任务 k 的预测经验概率定义为
对于模型训练,作者最小化损失函数
这是 K-1 个二元分类器的加权交叉熵。对于秩预测(等式 1),二进制标签是通过
在方程式 4 中, 表示与第 k 个分类器相关的损失的权重(假设 )。在本文的其余部分,作者将 称为任务 k 的重要性参数。有些任务可能不太健壮或更难优化,可以通过选择非均匀任务加权方案来考虑。为简单起见,作者使用统一任务加权进行了所有实验,即 。在下一节中,作者为统一和非统一任务重要性加权下的分类器一致性提供理论保证,因为任务重要性权重为正数。
3.2.3.分类器一致性的理论保证
以下定理表明,通过最小化损失 L(等式 4),输出层的学习偏置单元不增加,使得
因此,K-1 个任务的预测置信度或概率估计值正在下降,例如,
对于所有 i,确保分类器的一致性。因此,(方程 5)也是秩单调的。
定理 1(有序偏置单位)。通过最小化方程 4 中定义的损失函数,最优解 满足 。
证明:假设 是最优解,并且对于某些 k,。声明:用 代替 ,或用 代替 ,降低目标值 L。令
由排序关系,我们有
表示 和
由于 在 中增加,因此有 和 。
如果我们用 替换 ,则更新与第 k 个任务相关的损失项。损失 L(方程 4)的变化为
因此,如果我们用 b k 替换 b k+1 ,则 L 的变化为
并且知道 或 。因此,我们的主张是有道理的。我们得出结论,任何最小化 L 的最优解 满足
请注意,与定理 1 相比,Li 和 Lin 提出的秩单调性定理需要一个成本矩阵 C,其中每一行 都是凸的。在这种凸性条件下,令 为与第 n 个训练示例上的第 k 个任务相关的损失的权重,这取决于标签 y n 。 Li 和 Lin 证明,通过使用特定于训练示例的任务权重 ,对最优阈值进行了排序 —— Niu 等人指出,特定于示例的任务权重在实践中是不可行的。此外,该假设要求 当 和 当 。定理 1 没有这个要求,允许我们为每个任务选择一个固定的权重,不依赖于单个训练示例,这大大降低了训练复杂度。此外,定理 1 允许在不降低的预测概率和一致的任务预测的保证下选择简单的统一任务加权或考虑数据集不平衡。根据定理 1,保证秩单调性的唯一要求是任务权重为非负。
4.1. 数据集和预处理
MORPH-2 数据集,包含 55,608 张人脸图像,通过使用面部标志检测定位各个数据集中的平均眼睛位置进行预处理,然后使用 MLxtend v0.14 中的 EyepadAlign 函数将数据集中的每个图像与平均眼睛位置对齐。然后重新对齐面部,使鼻尖位于每个图像的中心。本研究中使用的年龄标签在 16-70 岁之间。
CACD 数据集从进行类似于 MORPH-2 的预处理,使得面部跨越整个图像,鼻尖位于中心。图像总数为 159,449 个,年龄范围为 14-62 岁。
本研究中使用的亚洲人脸数据库 AFAD 数据库包含 15-40 岁范围内的 165,501 张面孔。由于面已经居中,因此不需要进一步的预处理。
按照 Niu 等人所述的程序进行操作,每个图像数据库被随机分为 80% 的训练数据和 20% 的测试数据。所有图像都被调整为 128×128×3 像素,然后随机裁剪为 120×120×3 像素以增强模型训练。在模型评估期间,将 128×128×3 RGB 人脸图像中心裁剪为 120×120×3 的模型输入尺寸。
代码库(第 4.4 节)中共享了所有数据集的训练和测试分区,以及本文中使用的所有预处理代码。
4.2.神经网络架构
为了评估 CORAL 从人脸图像中估计年龄的性能,作者选择了 ResNet-34 架构,这是一种现代 CNN 架构,在各种图像分类任务上都取得了良好的性能。对于本文的其余部分,作者将具有标准交叉熵损失的原始 ResNet34 CNN 称为 CE-CNN。为了使用所提出的 CORAL 方法为序数回归实现 ResNet-34 CNN,作者将最后一个输出层替换为相应的二元任务(图 2),并将此实现称为 CORAL-CNN。与 CORAL-CNN 类似,作者修改了 ResNet-34 的输出层以实现 中描述的序数回归参考方法,并将这种架构称为 OR-CNN。
4.3. 培训和评估
对于模型评估和比较,作者计算了最后一个训练时期后测试集的平均绝对误差 (MAE) 和均方根误差 (RMSE):
其中 是第 i 个测试示例的真实等级, 是预测等级。
使用不同的随机 seeds(0、1 和 2)重复模型训练 3 次以进行模型权重初始化,而不同方法之间的随机 seeds 是一致的,以进行公平比较。由于这项研究侧重于研究秩一致性,而优化算法之间的广泛比较超出了本文的范围,因此,所有 CNN 都通过使用指数衰减率 和 (默认设置)和批量大小为 256 的自适应矩估计进行了 200 次随机梯度下降训练。
为了通过设计提出的 CNN 架构来比较序数回归方法来避免引入经验偏差,作者采用了标准架构(ResNet-34;第 4.2 节)进行此比较。此外,作者为 CORAL-CNN 中 K-1 个二元分类器的交叉熵选择了统一的任务权重,例如,在等式 4 中设置 。
学习率由验证集上的超参数调整决定。对于各种损失(交叉熵、有序回归 CNN 和提议的 CORAL 方法),作者发现 的学习率在所有模型中表现最佳,即可能是因为使用了相同的基础架构 (ResNet-34)。所有模型都训练了 200 个 epoch。从这 200 个 epoch 中,通过验证集上的 MAE 性能选择最佳模型。然后在独立测试集上评估所选模型,从中获得报告的 MAE 和 RMSE 性能值。对于所有的模型性能,作者报告了 200 个训练时期内的最佳测试集性能。
4.4.硬件和软件
所有损失函数和神经网络模型都在 PyTorch 1.5 中实现,并在 NVIDIA GeForce RTX 2080Ti 和 Titan V 显卡上进行训练。源代码:https://github.com/Raschka-research-group/coral-cnn
作者对用于年龄估计的三个独立人脸图像数据集(第 4.1 节)进行了一系列实验,以对所提出的 CORAL 方法(CORAL-CNN)与 Niu 等人提出的序数回归方法 (OR-CNN) 进行比较。所有实现都基于 ResNet-34 架构,如第 4.2 节所述,作者将具有交叉熵损失(CE-CNN)的标准 ResNet-34 分类网络作为性能基线。
5.1. 从人脸图像估计表观年龄
在所有有序回归数据集(表 1)中,作者发现 OR-CNN 和 CORAL-CNN 都优于标准的交叉熵分类损失(CE-CNN),后者不利用排名信息。类似地,如表 1 所述,所提出的等级一致 CORAL 方法比 OR-CNN 有显着的性能改进,但不能保证分类器的一致性。
此外,作者使用不同的随机种子进行模型权重初始化和数据集调整,将每个实验重复三次,以确保观察到的 CORAL-CNN 相对于 OR-CNN 的性能改进是可重复的而不是巧合的。作者可以得出结论,通过 CORAL 保证分类器一致性对序数回归 CNN 的预测性能有显着的积极影响(第 5.2 节提供了对 OR-CNN 秩不一致的更详细分析)。
对于所有方法(CE-CNN、CORAL-CNN 和 OR-CNN),在不同数据集上的整体性能按以下顺序出现:MORPH-2 > AFAD > CACD(表 1)。一种可能的解释是,MORPH-2 的整体图像质量最好,并且照片是在相对一致的光照条件和视角下拍摄的。例如,作者发现 AFAD 包含分辨率非常低(例如,20x20)的图像。 CACD 还包含一些质量较低的图像。由于 CACD 的大小与 AFAD 大致相同,因此在该数据集上实现的总体性能较低也可能是由于需要考虑的年龄范围更广(CACD:14-62 岁,AFAD:15-40 岁)。
5.2. 经验秩不一致分析
通过设计,作者提出的 CORAL 保证了等级一致性(定理 1)。此外,作者对 CORAL-CNN 和 OR-CNN 的秩不一致进行了实证分析(秩不一致的示例如图 3 所示)。表 2 总结了 OR-CNN 和 CORAL-CNN 模型在每个测试数据集上的平均秩不一致数。正如预期的那样,CORAL-CNN 的排名不一致为 0。当仅考虑 OR-CNN 正确预测年龄和错误预测年龄的情况下比较排名不一致的平均数量时,当 OR-CNN 做出错误预测时,不一致的平均数量更高。这一观察结果可以被视为等级不一致损害预测性能的证据。因此,这一发现表明通过 CORAL 解决秩不一致对于序数回归 CNN 的预测性能是有益的。
在本文中,作者通过扩展的二元分类开发了序数回归的 CORAL 框架,并具有分类器一致性的理论保证。此外,作者证明了分类器的一致性,而不需要依赖于等级或训练标签的加权方案,这允许直接的实现和有效的模型训练。 CORAL 可以很容易地实现,以扩展用于有序回归任务的常见 CNN 架构。实验结果表明,CORAL 框架显着提高了 CNN 对三个独立年龄估计数据集的年龄估计的预测性能。作者的方法可以很容易地推广到其他有序回归问题和不同类型的神经网络架构,包括多层感知器和循环神经网络。