本发明属于测试时适应,涉及一种用于极小批量流数据的测试时适应图像分类方法。
背景技术:
1、深度神经网络在各种机器学习问题中展现出了卓越的性能,特别是在图像分类方面。然而,它们经常表现出脆弱性和对数据分布变化带来的挑战的易受攻击性。这些挑战的例子包括当深度图像分类器面对输入扰动(如噪声或模糊)时,其准确性迅速下降。因此,对深度模型在测试数据分布变化中的鲁棒性进行增强成为一个关键且积极研究的领域。测试时适应(test-time adaptation, tta)是一种针对测试数据分布偏移进行模型调整的方法,以提高模型在实际应用中的性能表现,它解决了调整预训练模型以适应未预料到的分布变化挑战,使得模型能够在部署到图像分类任务中时,能有效地处理遇到的图像分布变化的情况。
2、很多测试时适应的方法,都基于批归一化层(batch normalization, bn)做改进,要求输入图像的批量必须足够大才能取得较好的效果。但是在很多资源受限的场景,比如移动端设备,每次输入图像的数据批量很小,甚至为1。在这些场景下,传统的测试时适应方法的效果会大打折扣,发生负迁移现象,即在测试时微调模型后的性能甚至低于不调整的性能。目前只有少数研究探讨了测试时适应中的小批量挑战。例如有研究通过在预训练训练模型中选择组归一化而不是bn,从而规避了与bn相关的问题,然而现阶段大部分预训练模型都是包含bn模块的,因此这样的方法不通用。另外也有研究引入了测试时间重新归一化以改进bn中的统计估计,这对小批量带来的挑战是有帮助的,但在极小批量的情况下仍然不足。
技术实现思路
1、本发明的目的在于提出一种用于极小批量流数据的测试时适应图像分类方法,该方法针对极小批量输入图像情况下,通过校正bn层的统计量估计、缓解小批量图像样本的噪声梯度以及捕获小批量图像样本间交互信息,从而让模型能够在极小批量数据的输入时,应用本发明方法能获得稳定的性能提升,从而有效地缓解负迁移现象,实现较好的图像分类性能。
2、为了实现上述目的,本发明采用如下技术方案:
3、一种用于极小批量流数据的测试时适应图像分类方法,包括如下步骤:
4、步骤1. 获取预训练模型,其中为模型参数;获取测试图像数据集,表示由图像组成的无标记数据集,为测试图像数据集图像样本总数,;
5、步骤2. 初始化模型的超参数,并构建模型的损失函数;
6、模型的超参数包括用于控制模型历史信息利用程度的平滑系数、用于控制代理计算图的大小的增强视角数、以及用于控制梯度累加长短的梯度累加步数;
7、步骤3. 在每个时间步内接收到测试图像数据集中一个批量的测试输入图像,其中为批量大小,和分别为图像的长度和宽度;
8、步骤4. 针对测试图像数据集中当前批量的测试输入图像x,通过多种数据增强的方式进行数据扩充,重新构造新输入图像并生成代理计算图;
9、步骤5. 将新输入图像送入模型,遍历模型的每一层,并判断当前层是否是bn层:
10、如果当前层不是bn层,则将当前层的输出继续送入下一层;如果当前层是bn层,则利用保存的模型历史信息执行动态批量归一化校准算法,再将输出继续送入下一层;
11、步骤6. 当模型的所有层都被遍历后,得到新输入图像的标记预测,该新输入图像的标记预测作为图像的分类预测,并计算标记预测的熵和原始损失;
12、步骤7. 利用熵加权的梯度累加算法,对原始损失进行加权累加,得到最终的梯度;
13、步骤8. 每当时间步取余梯度累加步长等于0时,将最终的梯度沿着代理计算图全部回传更新模型的参数;否则返回步骤3,取下一个时刻的数据,直至数据全部取完。
14、本发明具有如下优点:
15、如上所述,本发明述及了一种资源受限情况下的用于极小批量流数据的测试时适应图像分类方法,该方法针对图像分类的资源受限情况下(即在每个时间步,模型的输入图像批量大小很小)传统的tta方法存在的负迁移现象,通过采用动态bn校准、熵加权的梯度累加以及代理计算图等关键方法,通过对模型历史信息和泰勒级数的利用,优化了bn层的统计量估计,同时对梯度更新进行限制与设计,提高了模型的适应性和泛化能力,因而能够有效地缓解测试时适应中的负迁移现象,即使在批量大小为1的情况下也能保持良好的图像分类性能。
1.一种用于极小批量流数据的测试时适应图像分类方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的用于极小批量流数据的测试时适应图像分类方法,其特征在于,
3.根据权利要求1所述的用于极小批量流数据的测试时适应图像分类方法,其特征在于,
4.根据权利要求1所述的用于极小批量流数据的测试时适应图像分类方法,其特征在于,
5.根据权利要求4所述的用于极小批量流数据的测试时适应图像分类方法,其特征在于,