【博士每天一篇文献-BiC算法】Large scale incremental learning
1 介绍
年份:2019
会议:2019CPVR
Wu Y, Chen Y, Wang L, et al. Large scale incremental learning[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2019: 374-382.
本文提出的BiC(Bias Correction)算法通过在CNN的最后一个全连接层后添加一个线性偏差校正层,并使用小规模验证集来估计和校正偏差,从而有效解决了大规模增量学习中的灾难性遗忘和数据不平衡问题。
2 创新点
- 识别新旧类别数据不平衡问题:
- 首次明确指出在大规模增量学习中,新旧类别之间的数据不平衡是导致性能下降的关键因素。
- 发现全连接层偏差:
- 论文发现CNN的最后一个全连接层存在对新类别的强烈偏差,这是导致灾难性遗忘的一个重要原因。
- 提出BiC(Bias Correction)方法:
- 提出了一种简单而有效的偏差校正方法,通过在全连接层后添加一个线性模型来校正偏差。
- 使用小规模验证集进行偏差校正:
- 仅使用小规模的验证集来估计和校正偏差参数,这在大规模数据集上尤其有效,因为可以减少计算资源的需求。
- 在大规模数据集上验证:
- 在ImageNet和MS-Celeb1M这两个大规模数据集上验证了BiC方法的有效性,显著提高了模型在增量学习任务中的性能。
- 性能提升显著:
- 与现有的增量学习方法相比,BiC方法在两个大型数据集上分别取得了11.1%和13.2%的性能提升。
- 处理视觉上相似类别的挑战:
- 论文的方法特别针对处理随着类别数量增加而出现的视觉上相似类别的挑战,这是增量学习中的一个难点。
3 算法
3.1 算法原理
- 灾难性遗忘问题:
- 在增量学习中,当模型学习新类别时,由于无法访问旧类别的数据,模型倾向于忘记旧类别的信息,导致性能急剧下降。
- 数据不平衡问题:
- 随着类别数量的增加,新类别与旧类别之间的数据量差异变得更加显著,导致模型偏向于新类别,难以区分视觉上相似的旧类别。
- 全连接层的偏差:
- 论文指出,在CNN的最后一个全连接层(FC层)存在对新类别的强烈偏差,因为新类别拥有更多的训练样本。
- 偏差校正机制:
- 为了解决上述偏差问题,论文提出了一个简单的线性模型来校正FC层的偏差。这个模型包含两个参数,通过调整这两个参数来减少对新类别的偏好。
- 两阶段训练过程:
- 算法分为两个阶段:
- 第一阶段:使用训练集来训练CNN的卷积层和FC层,同时应用知识蒸馏技术来保留旧类别的知识。
- 第二阶段:冻结卷积层和FC层,使用一个小规模的验证集来估计和优化偏差校正层的参数。
- 算法分为两个阶段:
- 知识蒸馏技术:
- 在第一阶段训练中,使用知识蒸馏损失来模仿旧模型的输出,帮助模型保留对旧类别的识别能力。
- 偏差校正层:
- 在FC层之后添加一个偏差校正层,该层通过线性变换调整新类别的输出logits,以减少对新类别的偏好。
- 损失函数:
- 使用分类损失(softmax交叉熵)来优化偏差校正层的参数,同时保持卷积层和FC层的权重不变。
- 验证集的作用:
- 验证集用于近似真实分布,帮助估计FC层的偏差,并用于调整偏差校正层的参数,使其能够更好地泛化到新旧类别。
3.2 算法步骤
- 数据准备:
- 将旧类别的样本(称为exemplars)和新类别的样本分配到训练集和验证集中。
- 第一阶段训练:
- 卷积层和FC层训练:使用训练集(包含旧类别的exemplars和新类别的样本)来训练CNN的卷积层和最后一个全连接(FC)层。
- 知识蒸馏:在此过程中,使用知识蒸馏技术来保留旧类别的知识。这涉及到计算蒸馏损失和分类损失,并结合两者来更新模型权重。
- 知识蒸馏损失计算:
- 计算蒸馏损失,该损失基于旧模型对旧类别样本的预测和新模型对这些样本的预测之间的差异。
- 分类损失计算:
- 计算分类损失,即softmax交叉熵损失,它衡量模型对所有类别(新旧类别)的分类性能。
- 第二阶段训练 - 偏差校正:
- 冻结卷积层和FC层:在第二阶段,卷积层和FC层的权重被冻结,不再更新。
- 偏差校正层添加:在FC层后添加一个偏差校正层,该层是一个简单的线性模型,包含两个参数α和β。
- 偏差参数估计:使用验证集(包含旧类别和新类别的平衡样本)来估计偏差校正层的参数。通过优化一个分类损失函数来调整α和β,以减少模型对新类别的偏好。
- 损失函数优化:
- 使用softmax交叉熵损失函数来优化偏差校正层的参数,目标是提高模型对旧类别的分类性能,同时保持对新类别的识别能力。
- 性能评估:
- 在验证集上评估模型性能,确保偏差校正层有效地减少了对新类别的偏差。
- 模型部署:
- 经过偏差校正后,模型可以部署到实际应用中,用于增量学习任务,即在不断学习新类别的同时,保持对旧类别的记忆。
原文地址:https://blog.csdn.net/weixin_43935696/article/details/144301767
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!