互联网资讯 / 人工智能 · 2023年11月22日 0

谷歌:探索迁移学习在ML发展中的应用,重点是迁移什么?

在机器学习领域大热的分类学习任务中,为了保证训练得到的分类模型具有准确性和高可靠性,一般会作出两个基本假设:

用于学习的训练样本与新的测试样本满足独立同分布;

必须有足够可用的训练样本才能学习得到一个好的分类模型。

但实际情况很难满足这两个条件。

很多 ML 技术只有在训练数据和测试数据处于相同的特征空间中或具有相同分布的假设下才能很好地发挥作用,一旦随着时间推移,标签可用性变差或标注样本数据缺乏,效果便不尽如人意。

因此,这就引起 ML 中另一个需要关注的重要问题,如何利用源领域中少量的可用标签训练样本 / 数据训练出鲁棒性好的模型,对具有不同数据分布的无标签 / 少可用标签的目标领域进行预测。

由此,迁移学习应运而生,并引起了广泛的关注和研究。

近几年来,已经有越来越多的研究者投入到迁移学习中。每年机器学习和数据挖掘的顶级会议中都有关于迁移学习的文章发表。

顾名思义,迁移学习就是把一个领域已训练好的模型参数迁移到另一个领域,使得目标领域能够取得更好的学习效果。鉴于大部分的数据具有存在相关性,迁移学习可以比较轻松地将模型已学到的知识分享给新模型,从而避免了从头学习,这加快效率,也大大提高样本不充足任务的分类识别结果。

今年的 NeuRIPS 上,谷歌的一支研究团队发表了一篇名为 What is bEINg TransferRed in Transfer learning? 的论文,揭示了关于迁移学习的最新研究进展。

在这篇论文中,作者便向我们提供了新的工具和分析方法,从不同的角度剖析了不同模块的作用及影响成功迁移的因素,得到了一些有趣的结论,例如,相比高层的特征,预训练模型适合迁移的主要是低层的统计信息。

具体而言,通过对迁移到块混洗图像的一系列分析,他们从学习低层数据统计中分离出了特征复用的效果,并表明当从预训练权重进行初始化训练时,该模型位于损失函数 “地图” 的同一 “盆地”(basin)中,不同实例在特征空间中相似,并且在参数空间中接近。

迁移学习应用现状

前百度首席科学家吴恩达曾经说过:迁移学习将会是继监督学习之后,下一个机器学习商业成功的驱动力。

在 2016 年的 NIPS 会议上,吴恩达曾给出了一个未来 AI 方向的技术发展判断:毋庸置疑,目前成熟度最高、成功商用的是监督学习,紧随其后,下一个近 5 年内最可能走向商用的 AI 技术将会是迁移学习。

DeepMind 首席执行官 DeMis HaSSaBIs 也曾表示,迁移学习也是最有前途的技术之一,有朝一日可能会触发通用人工智能的诞生(AGI)。在当下深度学习的发展大潮中看来,迁移学习确实如此。

如今距离这两位 AI 学者的 “预测” 已经过去了近 5 年。那么,目前迁移学习应用正呈现怎样的局面?

在计算机视觉领域,迁移学习已经有了很多成功的应用,甚至在一些任务中,机器能以超越人类精确度的水平完成某项任务。

而在 NLP 领域,迁移学习也是一系列研究突破中的关键组成部分,尤其在跨域情感分析上展现了其潜力。

与此同时,迁移学习所存在的问题也随之暴露。研究人员发现,某些案例中,源域和目标域之间在视觉形式上仍存在不小的差异。对于研究人员而言,已经很难理解什么能够成功进行迁移,以及网络的哪些部分对此负责。在这篇论文中,研究团队专注于研究视觉领域的迁移学习。

文中涉及的两大数据集分别是:

CheXpeRt 数据集,这是在 2019 年 AAAI 上,吴恩达的斯坦福团队发布的大型 X 射线数据集,此数据集考虑到了不同疾病的胸部 X 射线医学影像。

domainNet 数据集,该数据集发布在 2019 年 ICCV 上,此论文作者收集并注释了迄今为止最大的 UDA 数据集,专门用于探究不同领域中的迁移学习。

4 种网络的迁移学习

他们分析了四种不同情况下的网络:

1. 预训练网络(P, pRe-tRAIned Model);

2. 随机初始化的网络(RI, Random inITialization);

3. 在源域上进行预训练后在目标域上进行微调的网络(P-T, Model tRAIned/fine-tuned on taRget domain staRting fRoM pRe-tRAIned weights);

4. 随机初始化对目标域进行普通训练的模型(RI-T, Model tRAIned on taRget domain fRoM Random inITialization)。

首先,团队通过改组数据研究了特征复用。将下游任务的图像划分为相同大小的块并随机排序,数据中的块混洗破坏了图像的视觉特征。该分析表明了特征复用的重要性,并证明了不受像素混洗干扰的低级统计数据在成功传输中也起作用。

然后,需要比较经过训练的模型的详细行为。为此,他们调查了从预训练和从零开始训练的模型两者间的异同。实验证明,与通过随机初始化训练的模型相比,使用预训练的权重训练的模型的两个实例在特征空间上更为相似。

再就是调查了预训练权重和随机初始化权重训练的模型的损失情况,并观察到从预训练权重训练的两个模型实例之间没有性能降低,这表明预训练权重能够将优化引导到损失函数的 basin。

接下来,我们结合文章中的实验和结果来详细的分析方法论并探讨 “What is bEINg TransferRed? “。

什么被迁移了?

人类视觉系统的组成具有层次化的特征,视觉皮层中的神经元对边缘等低级特征做出响应,而上层的神经元对复杂的语义输入进行响应。一般认为,迁移学习的优势来自重用预先训练的特征层。如果下游任务因为太小或不够多样化而无法学习良好的特征表示时,这会变得特别有用。

因此,很容易理解,大家认为迁移学习有用的直觉思维就是,迁移学习通过特征复用来给样本少的数据提供一个较好的特征先验。

然而,这种直觉却无法解释为什么在迁移学习的许多成功应用中,目标领域和源领域在视觉上差异很大的问题。

为了更清楚地描述特征复用的作用,作者使用了图 1 中包含自然图像的源域和一些与自然图像的视觉相似度低的目标域。

图 2 可以看到,Real doMAIn 具有最大的性能提升,因为该域包含与 imageNet 共享相似视觉特征的自然图像。这能够支撑团队成员的假设 — 特征复用在迁移学习中起着重要作用。另一方面,在数据差别特别大的时候,仍然可以观察到迁移学习带来的明显的性能提升。

除最终性能外,在所有情况下,P-T 的优化收敛速度都比 RI-T 快得多。这也暗示出预训练权重在迁移学习中的优势并非直接来自特征复用。

为了进一步验证该假设,团队成员又对特征空间中两个网络的相似性进行了研究。

通过中心核对齐 (CKA, CenteRed KeRnel AlignMent) 这一指标发现,P-T 的两个实例在不同层之间非常相似,在 P-T 和 P 之间也是如此。但是 P-T 和 RI-T 实例或两个 RI-T 实例之间,相似性非常低。

也就是说,基于预训练的模型之间的特征相似度很高,而 RI-T 与其他模型相似度很低,哪怕是两个相同初始化的 RI-T。这显然在说明预训练模型之间往往是在重复利用相同的特征,也就强调了特征复用的作用。

失误和特征相似性

这部分主要通过探究不同模型有哪些 coMMon mistakes 和 uncoMMon mistakes 来揭示预训练的作用。

为了理解不同模型之间的差异,作者首先比较两个 P-T,一个 P-T 加一个 RI-T 和两个 RI-T 之间的两类错误率并发现 P-T 和 RI-T 模型之间存在许多 uncoMMon mistakes,而两个 P-T 的 uncoMMon Mistakes 则要少得多。对于 CheXpeRt 和 domainNet 目标域,都是这种情况。

在 domainNet 上可视化每个模型的两类错误并观察得到,P-T 不正确和 RI-T 正确的数据样本主要包括模棱两可的例子;而 P-T 是正确的数据样本和 RI-T 是不正确的数据样本也包括许多简单样本。

这符合假设,P-T 在简单样本上的成功率很高,而在比较模糊难以判断的样本上比较难 (而此时 RI-T 往往比较好), 说明 P-T 有着很强的先验知识,因此很难适应目标域。

为了加强对上述想法的验证,团队成员又对特征空间中两个网络的相似性进行了研究。

通过初始化来自预训练优化路径上不同检查点的预训练权重,比较迁移学习的好处。图 7 显示了从不同的预训练检查点进行微调时的最终性能和优化速度。

总体而言,预训练的好处随着检查点指数的增加而增加,可得出以下结论:

在预训练中,在学习率下降的 epoch 30 和 epoch 60 观察到了很大的性能提升。但是,从检查点 29、30、31(和类似的 59、60、61)初始化不会显示出明显不同的影响。另一方面,特别是对于 Real 和 clIPaRt 的最终性能,当从训练前性能一直处于平稳状态的检查点(如检查点 29 和 59)开始时,可以观察到显着的改进。这表明,预训练性能并不总是作为预训练权重对迁移学习有效性的忠实指标。

quickdRaw 在预训练中发现最终性能的收益要小得多,并在检查点 10 迅速达到平稳状态,而 Real 和 clIPaRt 直到检查点 60 都不断看到的性能的显著改进。另一方面,随着检查点索引的增加,所有三个任务在优化速度改进上均具有明显的优势。

优化速度在检查点 10 处开始达到平稳状态,而对于 Real 和 clIPaRt,最终结果则不断提升。在训练前的早期检查点是在收敛模型的 basin 之外,在训练期间的某个点便进入 basin。这也解释了在一些检查点之后性能停滞