Test-Time Training with Self-Supervision for Generalization under Distribution Shifts
论文链接 https://arxiv.org/abs/1909.13231
代码链接 Test-Time Training Project Website
发表于ICML2020
机构: UC Berkeley, UC San Diego
这张文章里的实验要拿来做对比试验我就粗略读一下,感兴趣的家人们自己去看就好
摘要
在本文中,我们提出了测试时训练(test - time Training),这是一种在训练数据和测试数据来自不同分布时提高预测模型性能的通用方法。我们将单个未标记的测试样本转化为自监督学习问题,在进行预测之前更新模型参数。这也自然地扩展到在online stream中的数据。我们的简单方法可以改善不同的图像分类基准,旨在评估对分布变化的鲁棒性
背景
在分布变化下,监督学习在泛化方面仍然是出了名的弱。
我们从一个简单的观察开始。在测试时间呈现的未标记测试样本x给了我们一个关于绘制它的分布的提示。我们建议利用测试分布上的这个提示,通过允许模型参数θ依赖于测试样本x,而不是未知标签y。变量决策边界θ(x)的概念在理论上是强大的,因为它打破了固定模型容量的限制(参见A1部分的其他讨论),但是从x到θ(x)的反馈机制的设计在实践中提出了新的挑战。
方法
为了建立表示法,考虑一个标准的k层神经网络,k层的参数为θk。
堆叠的参数向量 θ = (θ1, . . . , θK) 用损失函数 lm(x, y; θ) 指定在测试样例(x, y)上的分类任务的整个模型。我们称其为主要任务,由下面的损失函数表示。
我们假设从分布P中获取 i.i.d *训练数据(x1, y1),…, (xn, yn)。标准经验风险最小化解决了优化问题
(i.i.d. "i.i.d." 是独立同分布(independent and identically distributed)的缩写。这意味着在统计学和概率论中,假设样本是独立地从同一个概率分布中独立抽取的,且这些样本具有相同的分布。简而言之,每个样本都是相互独立地从同一个总体分布中抽取的,且这些样本之间没有相互影响。)
我们的方法需要一个损失函数为ls(x)的自监督辅助任务。
在本文中,我们选择了旋转预测任务(Gidaris et al., 2018)*,该任务已被证明在卷积神经网络的特征学习方面简单有效。该任务简单地将图像平面中的x旋转0、90、180和270度之一,并让模型预测旋转角度作为一个四向分类问题。第5节中的其他自监督任务也可以用于我们的方法。
(旋转预测任务*中,模型会被要求预测图像经过旋转之后的角度。这样的任务要求模型学会理解图像中的内容不受旋转的影响,因此鼓励模型学到旋转不变性的特征表示)
辅助任务(auxiliary task)共享一些模型参数θe = (θ1, . . . , θκ) 到一个特定的κ ∈ {1, . . . , K}。我们将这些κ层指定为共享特征提取器(shared feature extractor)。
辅助任务使用自己的特定于任务的参数θs = (θ'κ+1, . . . , θ'k ).
我们称非共享参数θs为自监督任务分支,θm = (θκ+1,…, θK)为主任务分支main task branch。
通过图形理解,关节结构是一个Y形结构,有一个共享的底部和两个分支。在我们的实验中,自监督任务分支θs除了最后一层的输出维数由于两个任务中类的数量不同而有所不同外,其架构与主分支相同
训练以多任务学习的方式进行(Caru-ana, 1997);该模型在两个任务上都使用从P中提取的相同数据进行训练。将两个任务的损失加在一起,并对所有参数的集合采取梯度。因此,联合训练问题是
现在我们在单个测试样本x上描述test - time Training的标准版本。简单地说,Test-Time Training通过最小化x上的辅助任务损失来微调共享特征提取器θe
θe∗ 表示 方程3的(近似)最小值。
然后,模型使用更新后的参数进行预测θ(x) = (θe∗, θm). 根据经验,在θe上最小化方程3与同时在θe和θs上最小化的区别是可以忽略不计的。从理论上讲,只有在使用多个梯度步骤进行优化时才存在差异。
Test-Time Training自然受益于标准的数据增强技术。在每个测试样本x上,我们执行与训练期间数据增强完全相同的随机转换集,以形成仅包含test - time training中x的这些增强副本的批处理。
Online Test-Time Training
在我们的方法的标准版本中,方程3中的优化问题总是用最小化方程2得到的参数θ=(θe,θs)进行初始化。在对x进行预测过后,θe∗ 是被舍弃的。
在标准监督学习设置之外,当测试样本依次在线到达时,在线版本解决与式3相同的优化问题,以更新共享特征提取器θe。然而,在测试样本xt上,θ被初始化为在前一个样本xt−1上更新的θ(xt−1)。这允许θ(xt)利用x1…, xt−1 中可用的分布信息.
实验
略
实验结果
总结
测试时间训练的想法对其他任务(如分割和检测)以及其他领域(如语音识别和自然语言处理)也有意义。对于在各自领域具有先验领域知识的机器学习从业者,可以利用他们的专业知识来设计更好的专用自监督任务,用于测试时训练。除了目前流行的预训练和微调基准之外,通用自监督任务的研究人员还可以使用测试时间训练作为评估基准。
更一般地说,我们希望本文可以鼓励研究人员放弃对测试的固定决策边界的自我强加的约束,甚至放弃训练和测试之间的人为划分。我们的工作只是朝着新范式迈出的一小步,在新范式中,大部分学习都是在模型部署之后进行的。