女人被做网站,wordpress 页面 评论链接 新窗口打开,百度竞价推广代运营话术,今晚正式封城我自己的原文哦~ https://blog.51cto.com/whaosoft/12491632
#patchmix
近期中南大学的几位研究者做了一项对比学习方面的工作——「Inter-Instance Similarity Modeling for Contrastive Learning」#xff0c;主要用于解决现有对比学习方法在训练过程中忽略样本间相似关系…我自己的原文哦~ https://blog.51cto.com/whaosoft/12491632
#patchmix
近期中南大学的几位研究者做了一项对比学习方面的工作——「Inter-Instance Similarity Modeling for Contrastive Learning」主要用于解决现有对比学习方法在训练过程中忽略样本间相似关系从而导致所学习无监督表征在不同样本之间的泛化能力下降问题。他们所提出的方法在 ImageNet-1K、CIFAR10 和 CIFAR100 上取得了显著的性能提升。
论文地址https://arxiv.org/pdf/2306.12243.pdfGitHub地址https://github.com/visresearch/patchmix
具体地研究者做了以下工作
提出了 PatchMix实现了样本间相似性关系构造提高了表征在不同样本之间的泛化能力提出了 mix-to-origin contrast、mix-to-mix contrast 以及origin-to-origin contrast 目标函数实现了无监督表征对复杂样本间相似度关系构造所学习无监督表征在 ImageNet-1K、CIFAR10 和 CIFAR100上取得了包括 finetuning accuracy、linear accuracy 和 kNN accuracy 3 项主要指标的显著提升。
对比学习中存在的问题
对比学习主要的思路是首先利用数据增强技术构造具有外观差异的正样本对来自同一图像的不同 view并将不同图像作为负样本对然后利用对比学习损失最常见的 InfoNCE loss最大化正样本对之间的 cosine 相似度并最小化负样本对之间的 cosine 相似度以抽取外观无关的图像表征 appearance-invariant representation从而理解同一图像在不同数据增强下的语义一致性实现无监督条件下的图像语义表征的抽取。
这种思路存在一个问题即自然图像相互之间存在丰富的相似性而非对比学习设定中正样本对之间的单一相似性如图1 所示。 现有对比学习所采用的目标函数只关注了同一样本不同数据增强的相似性忽略了图像间相似性使得所学习表征并不能很好地反映图像在语义上的相似性降低了表征在不同样本之间的泛化能力。
研究动机
针对上面对比学习中目标函数不准确的问题inaccurate target issue如何在无监督设定下构造具有样本间相似性关系的正样本对成为关键问题。其实在人类认知视觉物体的时候也存在利用已有物体定义新物体概念的思路例如鸭嘴兽、猫头鹰等。这些动物在部分结构上与已有常见动物具有相似性如图所示。 在对比学习中我们是否可以借鉴上面这个思路人为构造一个新样本使得新样本和多个样本之间存在相似性从而引导深度模型学习样本之间的相似性关系。
Vision TransformerViT将图像作为图像块的序列进行图像建模为计算机视觉发展提供了一个全新的思路。同时掩码图像建模MIM, Masked Image Modeling无监督学习方法如 BEiT、SimMIM、MAE的成功也表明只用少量的 patch如整图 25% 的 patch也能够有效表征原始图像的语义这样我们就可以用包含多张图像 patch 的混合图像表示多张图像的语义。
受到上述观察的启发通过混合多个图像的 Patch形成新的混合图像以人为构造混合图像和多个图像之间的相似性关系实现无监督条件下的图像间复杂相似性关系的模拟。例如混合包括狗、鸟 、飞机、汽车物体的 4 张图片形成一张具有狗的头、鸟的翅膀、飞机的尾翼、汽车的轮子的混合图像使得混合样本和上述 4 个样本之间具有确定的相似性关系作为训练样本去引导深度模型无监督地学习样本之间的相似性关系。我们把这种方法称之为 PatchMix如下图所示。 方法介绍
PatchMix
方法的完整数学描述略显复杂如果只是想了解主要思想可以只看上面 PatchMix的流程图即可其实只是公式多每个公式也不复杂后续有机会做个演示动画帮助大家理解。这个方法也可以用简单的 Mask 方法实现但是本方法在大规模图像处理上效率是最高的对该工作感兴趣的同行可以看一下我尽量写得清楚一些。
结合 PatMix 的流程图主要过程如下 由于混合图像和混合图像之间重叠比例的不同mix-to-mix label 中每一项的权重分数是不同的根据上图可以得到权重系数可以表示为 综上所提出的 PatchMix 算法可以概括为 算法具体的实现代码如下 实验结果 Image Classification on ImageNet-1K Image Classification on CIFAR10 and Inter-Instance Similarity Visualization 总结
PatchMix 通过混合不同图像的 Patch构造了具有多图像实例相似性的对比学习代理任务以引导模型在对比学习过程中关注不同图像之间潜在的相似性提高所学习表征在不同图像上的跨实例泛化能力。在具体的目标函数上采用 mix-to-origin contrast 构造混合图像和正常图像的相似关系进一步引入 mix-to-mix contrast 构造更为复杂的样本间相似性关系并利用 origin-to-origin contrast 消除混合图像在表征上的 gap提高表征在正常图像上的适配性。实验上PatchMix 大幅提升了无监督表征在 ImageNet-1K, CIFAR10, CIFAR100和 COCO 数据集下游任务上的性能证明了其有效性。 #25种正则化方法
训练中的一个关键因素是网络的正则化它可以防止模型在训练的过程中出现过拟合的现象。本文分析了过去几年发展起来的几种正则化方法显示了不同CNN模型的显著改进。 一些图像处理任务如图像分类和目标检测已经通过使用卷积神经网络(CNN)性能得到了显著的改进。像ResNet和EfficientNet一样许多架构在创建时已经在至少一个数据集上取得了出色的结果。训练中的一个关键因素是网络的正则化它可以防止模型在训练的过程中出现过拟合的现象。这项工作分析了过去几年发展起来的几种正则化方法显示了不同CNN模型的显著改进。这些工作分为3个主要领域: 第一是“数据正则化”其中所有的方法都专注于对于输入数据的更改 第二是“结构正则化”主要是修改神经网络或核函数生成特征映射的过程 最后是“标签正则化”主要是对给定输入的标签进行转换和修正 1 简介
1.1 背景说明
卷积神经网络已经在一些与计算机视觉相关的任务上取得了相当不错的结果如图像分类和目标检测。这种成功可以用卷积神经元的工作原理来解释它根据图像的空间属性来突出给定的特征。浅层网络注意是归纳一些形状或者纹理特征;然而更深层次的网络可以检测出更复杂更抽象的特征比如整个物体或人脸。如今从生物识别到疾病检测很难找到其他没有CNN的计算机视觉技术。
关于CNN的一个关键问题是如何对卷积核进行堆叠以在给定的任务上实现最佳的结果。在几个不同的任务上使用相同的基本架构是很普遍的只需要改变输出。例如EfficientNet是一种用于图像分类的神经网络它也被用于EfficientDet体系结构来处理目标检测任务。
该体系结构可能是计算机视觉模型的核心部分然而在开始训练之前还有其他相关的要点。例如优化技术可能会影响最终的性能。即使是kernel的初始化方法都有可能会影响模型最终的性能。
本研究集中讨论在这些可能影响最终性能因素的一个方面正则化。
根据所使用的正则化策略一些架构可以在最终结果上获得相关的增益。使用良好的正则化方法的一个重要方面是它不会影响最终模型的性能。这意味着独立于使用或不使用一个正则化方法模型的推理计算成本是相同的。然而在某些情况下它可以影响训练阶段的性能使用少量的计算开销或训练周期。无论如何产出的结果通常是可以补偿这一成本的。
1.2 为什么正则化方法有效
CNN通常用于计算机视觉任务如图像分类和目标检测以创建像人类视觉一样强大的视觉模型。如果考虑到可用的信息数量很明显训练任务需要更多数据可变性。考虑到一个健康的大脑和眼睛正常的人不考虑睡觉的时间平均每天保留大约16个小时的新信息。
即使考虑到像ImageNet这样的巨大数据集与人类大脑通过眼睛接收到的数据数量相比可用的图像数量也是最小的。这种新数据的不可用性可能会导致一种称为过拟合的情况即模型学习如何很好地表示训练数据但它不能有效地处理新信息即测试数据。这种情况通常发生在模型在可用的训练信息中进行了详尽的训练时而它不能很好地扩展到其他新信息中。
作为一个人工神经网络神经网络的训练步骤可以描述为一个优化问题目标是训练得到一个合适的权值假定给一个输入和损失函数可以转换期望的信息输出最低可能的误差。实现这一目标的一种方法是最小化以下功能 其中|. 为Frobenius norm, 为输入数据, 和 分别表示权重 矩阵和目标标签。Frobenius norm增加了 和 之间的相似性。
这种解释有一个主要优点这个公式可以通过矩阵分解进行优化,产生X的结构化分解。然而,只有当W或 固定在优化两个矩阵时,将原始方程转换为非凸公式时,才能实现全局最小值。如果矩阵分解为矩阵近似,可以解决这个问题: 其中目标是估计矩阵A最终得到一个凸优化这意味着它有一个全局最小值通过梯度下降算法可以找到。当使用正则化时这个方程变为 其中描述了基于A的正则化函数而λ是设置正则化函数对目标函数的影响程度的标量因子。正则化方法的一个关键方面独立于训练阶段的工作是为了防止模型过拟合。它通过增加CNN不同阶段的数据的可变性来操作。当处理图像时最直接的方法是随机改变图像比如旋转和翻转。虽然这种类型的正则化工作得很好但应该考虑到一些问题。例如一些转换可能会将图像扭曲成分类中的另一个现有类。更直接的例子是MNIST数据集上的基线图像分类如果旋转太多输入“6”可能会转换为“9”导致模型学习错误的信息。
1.3 正则化和标准化
机器学习中的一个普遍问题是调整给定模型的参数使其对训练数据和新的数据能够有更好的鲁棒性。旨在减少不属于训练集的数据上的误差的算法的集合被称为正则化技术。
标准化和正则化技术的一个主要区别是正则化在训练期后不再使用而标准化保留在模型之中。例如Cutout和MaxDropout在推理期间没有被执行但是Batch Normalization在推理时需要执行。
1.4 正则化主要用在哪里
尽管大多数作品都应用于输入但也有很多研究致力于内部结构和标签层。图1描述了本次调查中科学工作的比例。 图1
大约44%的工作依赖于对输入的正则其中最著名的是数据增强策略。CNN输入中参数和结构的容易改变可以解释如此多的工作量。图像处理和计算机视觉驱动的应用程序在处理深度学习时仍然发挥着重要的作用。
第二种最常见的正则化方法是那些对模型的内部结构进行正则的方法。Dropout为这一研究领域的进展做出了很大的贡献。一些作品主要是基于Dropout进行的改进当然其中也有一些是全新的方法。
1.5 正则化方法的缺点
第一个是标签不随输入或在神经网络的中层直观地改变。在这2个级别中执行变化是更自然的因为在视觉上更容易理解在训练和推理过程中发生了什么。然而要解释执行标签更改时会发生什么就比较困难了。尽管最初的研究认为它防止了过拟合问题但它未能解释为什么会避免这种情况。
另一种解释是对大多数方法缺乏数学解释。幸运的是一些技术如Dropout和Mixup对它们的内部机制提供了有趣的见解。
最后最好要记住开发机器学习领域最关键的步骤之一是创建标签可靠的数据集。虽然本文关注的是正则化策略但值得记住最终与标签的组合方式上的突破可能会促进更强大的系统。因此强调更多与标签正则化相关的工作值得研究。
2 正则化方法大集结
2.1 Cutout
Cutout是一种直接而强大的数据增强的技术。在训练过程中它在输入神经网络之前随机去除图像的区域。Cutout作者详尽地分析了CIFAR-10和CIFAR-100数据集中被移除区域的理想大小。 图3 Cutout
理想的大小根据每个类的实例的数量和给定数据集的类的数量而变化。例如在CIFAR-10数据集上的最佳结果是通过删除一个大小为16×16的patch来完成的而对于CIFAR-100关于最佳结果的区域大小是8×8。对于SVHN数据集通过使用网格搜索找到了最佳的crop大小为20×20。对于STL-10数据集最佳结果的crop大小为32×32。
2.2 RandomErasing
RandomErasing是在Cutout技术的基础上进一步的发展。Cutout是对图像的随机裁剪而RandomErasing关注的是在空白空间中去除并随机添加信息例如噪声。与Cutout不同RadomErasing并不是每次都删除图像的一部分。在这项工作中作者在3种不同的分类数据集(CIFAR-10,CIFAR-100和Fashion-MNIST)上评估了该方法用于目标检测的VOC2007数据集以及用于ReID的三种不同的CNN架构(IDE, TriNet和SVDNet)。 图4 RandomErasing
对于分类任务4种不同的架构被用于评估目的:ResNet、ResNet with pre-activation、Wide Residual Networks和ResNeXt。在所有情况下RandomErasing方法完成了相关的误差减少(至少0.3%)。
对于目标检测任务当只使用该数据集中的可用数据训练模型时平均精度(mAP)提高了0.5当训练数据与VOC2012训练数据集结合时平均精度(mAP)提高了0.4。图4显示了随机擦除是如何工作的。
2.3 AutoAugment
AutoAugment试图找出给定数据集上的哪些transformations可以提高模型的准确性。它使用5个不同的transformations为给定策略创建一个搜索空间这些transformations由2个附加参数控制给定更改概率(Cutout,SamplePairing,Shear X/Y,Translate X/Y,Rotate,AutoContrast,Invert,Equalize,Solarize,Posterize,Contrast,Color,Brightness以及Sharpness)和变化幅度。 图5 AutoAugment
然后将这些策略输入一个“child”模型该模型是一个用部分训练数据集训练的CNN。这个CNN的准确性被告知一个“控制器”模型它是一个循环神经网络(RNN)。这个RNN输出一个给定策略在未来被使用的概率。在控制器训练过程的最后使用5个最佳策略(每个策略有5个子策略)来训练最终的模型用于评估数据集。使用这些生成的策略和子策略使得AutoAugment在CIFAR-10、CIFAR-100、SVHN和ImageNet数据集上达到了最先进的结果。
这种方法的一个巨大优势是这些策略在不同数据集之间的可迁移性在最初的工作中为ImageNet找到的策略被用来训练其他5个不同的数据集即使没有在这些数据集上训练AutoAugment也能显著改善结果。这种方法的一个缺点是用来训练控制器模型的时间例如对于ImageNet数据集它需要大约15000个小时的处理这在一些情况下可能是不切实际的。Fast AutoAugment的目标就是通过一种新的算法来克服这一瓶颈在产生相似结果的同时显著减少搜索过程所需的时间。
2.4 PBA
Population Based Augmentation(PBA)不仅展示了一种新的增强算法而且展示了调度策略而不是固定策略改进了以往研究的结果。 图6 PBA
在每3步中它改变了一半的策略即1/4的权重变化另外1/4的超参数变化。虽然自动增强意味着在CIFAR-10数据集上的训练开销为5000个小时但PBA只增加了5个小时。
2.5 RandAugment
如前所述寻找最佳数据增强的方法的一个巨大瓶颈涉及到它们的计算负担因为它可能比自己的神经网络训练需要更长的时间。另一个问题与在搜索过程中发现的策略有关这可能会导致次优策略即它确实改善了局部的结果然而它并不会带来最好的全局结果因为它使用了一个较浅的神经网络并假设这个规则可以应用于任何其他的更深的架构。 图7 RandAugment 14个最常见的策略
RandAugment使用了在之前的工作中发现的14个最常见的策略并在训练期间对每个策略的大小进行搜索从而消除了初步探索步骤的需要并根据当前的训练CNN定制数据放大。结果表明该方法不仅比以往的方法更快而且显著改善了结果。
2.6 Mixup
训练CNN的一种可能性是Mixup来自训练数据集中的2幅图像并迫使模型可靠地确定这种Mixup图像属于哪一类。然而如何为这种Mixup生成编码标签并不普遍。提供这个新的输入/输出训练对可以让模型从损坏的输入中学习更多的特征。最初的工作表明使用这种方法的模型不仅可以改善图像分类任务的结果而且可以改善语音识别、生成对抗网络的稳定、表格数据集等问题的结果。图5演示了Mixup的工作原理。 图5 Mixup
2.7 CutMix
另一种混合输入和标签以改善结果的策略是CutMix。与Mixup不同CutMix会替换给定输入中的整个区域并通过给予与每个类使用的区域相同的权重来更改标签。例如如果一只猫的图像被30%的图像替换为一个飞机的图像则该标签被设置为70%的猫和30%的飞机。这一策略的结果有了显著的改善。通过使用绘制Grad-CAM可以观察到生成的Heatmap更好地突出了更准确地定义感兴趣目标的区域。 图6 CutMix
2.8 CutBlur
一些针对图像处理的深度学习任务如图像分类或目标检测可以通过使用数据增强来提升模型性能。一些工作如AutoAugment、Cutout和RandomErasing可以通过对训练图像应用一些transformations来显著改善结果。然而对于超分辨率(SR)任务文献中缺乏提出正则化技术来明确地处理这个问题的工作。 图7 CutBlur
尽管可以使用上述技术并可能改善结果但它们并不是通过手工设计来处理SR问题的。到目前为止唯一发现的方法是CutBlur它的工作原理是用来自类似区域的低分辨率(LR)版本替换高分辨率图像(HR)上的给定区域。作者表明CutBlur有助于模型在SR问题上更好的推广但同样的技术可以用于重建被高斯噪声退化的图像。
2.9 BatchAugment
训练cnn的一个重要超参数与mini-batch size有关mini-batch size用于计算反向传播中使用的梯度。该超参数通常采用GPU的上限这对于提高训练收敛速度至关重要。BatchAugment工作巧妙地利用了这个限制。它不只是使用来自数据集的不同实例来满足整个内存而是使用默认的数据扩展设置来考虑内存限制的一半然后复制具有不同数据扩展可能性的所有实例。这听起来像是一个简单的技巧;然而结果表明使用这种方法的神经网络在最终结果上有显著的改善。另一点是通过复制增强图像分析表明需要更少的时间点来实现收敛。
2.10 FixRes
图像分辨率可能会影响训练周期效率和最终的分类精度。例如对EfficientNet的研究通过将输入大小作为影响最终结果的参数之一从而强调了这一想法。然而如果一个模型被训练例如分辨率为224×224测试集的推理应该使用一样的图像分辨率。 图8 FixRes
FixRes提出的工作强调了测试集的分辨率应该高于用于训练的分辨率。这种变化不仅产生了一个更可靠的神经网络而且比传统方法训练得更快因为它需要更少的计算量因为用于这种目的的图像比用于推理的图像要小。该方法表明在使用迁移学习时它可以改善在其他数据集上的结果。
2.11 Bag-of-Tricks
这里分析的工作的一个关键点是它们经常没有将任何其他正则化方法与它们当前的研究结合起来。因此很难知道两个正则化器是如何相互影响的。Bag-of-Tricks研究通过结合几种已知的正则化方法如Mixup、Label Smoothing和Knowledge Destilation。消融研究表明如果应用一定的方法最终结果可以显著改善。例如使用这种方法组合的MobileNet在ImageNet数据集中提高了近1.5%的结果这是一个显著的收益。然而该研究缺乏对层间正则化方法的深入评价如Dropout。
3 结构正规化
正则化方法可以以不同的方式工作。在本文中将结构正则化定义为在训练过程中改变权值而不改变输入kernel值的方法。本节分为两个主要部分第一部分介绍了Dropout如何工作和它的一些变体的更深入的描述如SpatialDropout和DropBlock。在第二部分中描述了其他旨在执行其他张量操作的方法如Shake-shake Regularization。
3.1 Dropout and variants
Dropout被认为是一种简单但功能强大的正则化器旨在去除一些神经元从而迫使整个系统学习更多的特征。最初的工作表明它不仅可以应用于cnn还可以应用于多层感知器(MLPs)和受限玻尔兹曼机(rbm)。 图9 Dropout
在训练阶段的每一步通过伯努利分布来估计每个神经元的dropping out概率从而在训练过程中增加了一些随机性。最初的研究表明被dropping out的神经网络可以比标准的神经网络更好地进行推广。
3.2 MaxDropout
Dropout随机去除训练阶段的神经元Maxdropout则根据神经元的激活情况去激活神经元。它首先将张量s值归一化然后将每一个大于给定阈值p的输出设置为0因此这个值越高它就越有可能被禁用。 图10 MaxDropOut
最初的工作表明它可以改进在CIFAR-10和CIFAR-100数据集上的ResNet18结果而且它在WideResNet-28-10模型上的性能也优于Dropout。
3.3 DropBlock
DropBlock表明去除给定张量(即特征图)的整个区域可以帮助模型更好地泛化。通过使用ResNet-50和AmoebaNet-B模型对图像进行分类任务使用retinanet模型对物体进行检测使用ResNet-101模型对图像进行分割结果表明该模型比Dropout等内部正则化算法对结果有更好的改善。 图11 DropBlock
DropBlock应用在CNN的每个feature map上从一个小的比例开始训练然后慢慢的增加它的值。它的实验显示了ImageNet数据集上的相关结果当使用ResNet-50时Baseline精度提高了近2%打败了其他正则化方法如Cutout和AutoAugment使用AmoebaNetB时基线精度提高了约0.3%。在目标检测任务中retavanet模型在AP度量上改进了1.5%以上。
3.4 TargetDrop
注意机制可以被整合到一个给定的正则化器中这样它就可以在适当的区域发挥作用。例如TargetDrop将这种机制与DropBlock结合在一起。在训练过程中它允许整个系统去除给定通道上的大多数有区别的区域。结果表明这种方法不仅比DropBlock获得了更好的结果而且通过使用grade-cam在决定给定输入属于哪个类的区域中显示了更多的一致性。 图12 DropoutDropBlockTargetDrop
3.5 AutoDrop
虽然有效但Dropout缺乏选择掉哪个神经元的空间信息。DropBlock的策略是将整个随机区域放在隐藏层上而不是单一的神经元从而迫使CNN学习更好的空间信息。然而Drop方法是手动设计和固定的如果这些模式可以在训练中学习这可能会得到改进。 图13 AutoDrop
AutoDrop迫使CNN根据训练信息学习最佳设计使用控制器逐层学习最佳滴模式。CIFAR-10和ImageNet的结果表明这些模式改善了结果并可以在数据集之间传输。
3.6 LocalDrop
Rademacher复杂性被用来重新定义Dropout和DropBlock。通过对该问题进行广泛的数学分析提出了一种新的两阶段正则化算法。该方法虽然耗时但针对图像分类的不同CNN架构取得了相应的改进。CIFAR-10的结果表明LocalDrop方法至少可以改善结果0.15%比最佳结果提高了近0.6%。CIFAR-100的结果改善了0.4%然而在这种特定的情况下在反向传播时删除权重的变化最终会得到略微更好的结果提高了0.5%。除了改进之外该方法只适用于3分支ResNet很难直接比较其他方法。
3.7 Shake-Shake
在这些体系结构上强制正则化的一种方法是在训练期间为残差连接的每个分支赋予不同的权重。最初的ResNets的工作原理是在每个分支上添加权重没有任何区别。在训练过程中Shake-shake作用于3个分支的ResNets在前传时改变每个分支的乘因子在后传时乘以不同的值从而改变每个分支对最终结果的影响。对于推理它将每个分支乘以0.5倍。
3.8 ShakeDrop
解决Shake-shake问题的一个改进是ShakeDrop。它不仅适用于ResNeXt架构也适用于ResNet、Wide ResNet和PyramidNet。为了实现这样的结果ShakeDrop改变了由Shake-shake提出的配置。这些分支上的Shake组合显示ShakeDrop有更好的性能不会被困在局部极小值上。结果表明该方法可以比前面提到的每一种体系结构获得的原始结果更好。
3.9 Manifold Mixup
神经网络通常被概括为一个函数给定输入数据和一组可学习参数输出相应的目标值。Manifold Mixup的作用类似于Mixup然而它在CNN的任何内部层中运行而不仅仅是在输入层。深度神经网络可以被认为是一组较小的神经网络每一个都输出一些期望的特征因此如果所有的子网都运行良好则可以认为最终的结果是良好的。
Yang等提出了一种新的损失函数设计策略首先通过前馈过程计算传统的小批量损失。然后它从原始网络生成子网络然后通过使用不同的图像变换提供相同的小批处理为每个模型计算一个损失。最后将传统损失与各个子网络的损失相加计算出最终损失。该技术在不同的数据集和CNN架构中显示了巨大的潜力改进。
3.10 其他方法
在过去的几年里残差连接的使用首先在众所周知的神经架构ResNet中引入并对其进行了进一步的改进在几个任务上取得了相关的成果。后来的研究表明这种成功是由于创建了一种名为“identity mapping”的结构它是对原始输入的重建。残差连接迫使模型学习如何构造这些结构。
4 标签正则化
有方法使用Label Smoothing作为其正则化策略的一部分。例如Mixup根据2个不同图像之间的插值来平均标签的值。同样的规则也适用于Manifold Mixup技术然而数据插值是在层之间计算的并使用相同的微积分来重置标签值。
另一个使用标签转换的正则化器是Cutblur。在本例中使用了反式格式在训练期间可以将标签与输入倒置使输入作为标签模型将按照预期收敛。这一预期结果的原因是由于低分辨率和高分辨率图像的切割尺寸这是没有预先定义的。这意味着输入可以是高分辨率图像中的低分辨率图像标签可以是高分辨率图像中的低分辨率图像。因此将标签和输入倒排仍然是有意义的。
其他方法也可以通过使用Manifold Mixup来改进它们的结果。例如Cutout从输入中删除部分所以根据crop size“remove”部分标签也是有意义的。假设crop size是图像的25%因此活动类可以从1下降到0.75。同样的策略也适用于RandomErasing。在训练过程中丢弃神经元的方法如Dropout可以在训练过程中将热标签的值降低到相同的范围。
4.1 Label Smoothing
在一般的分类任务中使用热编码标签是普遍存在的。从2015年开始Label Smoothing提出了一种在标签编码过程中的正则化技术通过修改hone-hot表示的每个位置上的值。
Label Smoothing的工作原理是防止了2个主要问题。
首先过拟合问题其次对于不确定结果的过度自信问题
根据作者论述通过使用编码标签上的平滑因子应用在向量上的Softmax函数产生更接近平滑编码向量的值限制了反向传播算法中使用的值并根据类产生更真实的值。
4.2 TSLA
使用标签平滑的一个困难是找出ϵ的什么值即平滑因子是理想的无论是对于一般的还是对于特定的数据集。最初的工作表明ϵ0.1是极好的条件然而两阶段标签平滑(TSLA)表明一般来说梯度下降结合Label Smoothing技术只能提高结果直到一定的训练点之后最好将活动类的所有值设置为0和1。例如当在CIFAR-100数据集中对ResNet18进行200个Epoch的训练时结果表明当使用Label Smoothing时仅仅到160个Epoch便可以获得最好的性能。
4.3 SLS
通常很难为Label Smoothing因子定义适当的值。结构标签平滑(SLS)提出通过估计贝叶斯估计误差来计算这样的值根据作者这有助于定义每个实例的标签边界。实验表明该方法在不同场合都可以克服传统的标签平滑方法。
虽然这项工作在MobileNetV2上得到了充分的评估但它没有考虑到其他的神经网络架构。尽管一些流行的数据集被用于比较目的例如CIFAR和SVHN但这项工作仅限于MobileNet-V2。
4.4 JoCor
本文提出了一种避免噪声标签对神经网络的影响的新方法。JoCoR在同一数据集上训练2个相似的神经网络并试图关联2个不同的标签。该方法通过将2个网络的交叉熵损失加上它们之间的对比损失来计算损失然后只使用批处理上最可忽略的损失来更新架构的参数。
作者认为通过使用最小的值来更新参数这2种网络都与预测结果一致而且标签的噪声往往更小。虽然该方法是针对弱监督问题开发的但它可以很容易地适应传统的监督问题如数据分类以改善结果。这种方法的缺点是使用2个神经网络进行训练这需要更多的处理和内存。 #RL-PPO理论知识
关于强化学习中PPO算法的全面解读从基础概念到算法细节旨在帮助读者深入理解PPO的理论基础和实现机制。
在去年的这个时候我以deepspeed-chat的代码为例解读了rlhf运作的流程。当时写这篇文章的目的主要是想让读者在没有强化学习知识的情况下能从直觉上快速理解这份代码以便上手训练和修改。
由于这篇文章侧重“直觉”上的解读因此有很多描述不严谨的地方。所以去年我就想接着敲一篇比较严谨的介绍强化学习理论的文章策略梯度-actor-critic - PPO但是由于敲公式真得太累了所以一直delay到今天。
所以今天这篇文章就来做这件事我的主要参考资料是Sutton的这本强化学习导论(http://incompleteideas.net/book/the-book-2nd.html)。在现有的很多教材中一般会按照这本导论的介绍方式从MDP马尔可夫决策过程和价值函数定义介绍起然后按照value-basedpolciy-basedactor-critic的顺序介绍。但是由于本文的重点是actor-critic所以我在写文章时按照自己的思考方式重新做了整理
我们会先介绍policy-based下的优化目标。然后再介绍价值函数的相关定义。引入actor-critic讨论在policy-based的优化目标中对“价值”相关的部分如何做优化。基于actor-critic的知识介绍PPO。
为什么在网络上已经有无数强化学习理论知识教程的前提下我还要再写一篇这样类型的文章呢主要是因为
作为一个非RL方向出身的人我对RL的理论知识其实一直停留在“它长得是什么样”而不是“它为什么长这样”当我想去探究“它为什么长这样”的时候我发现最大的难点在各类资料对RL公式符号定义的太混乱或者写的太简略了。举例来说
我们在RL会看到大量 这样求期望的形式, 但是很多公式会把E的下标省略掉, 使人搞不清楚它究竟是从哪里采样而这点非常重要。在RL的公式中, 混合着随机变量和确定性变量, 对于随机变量我们常讨论的是它的期望。可是在有些资料中, 经常给出诸如 这样的形式, 且不带符号说明。乍一看你很难想到, 它究竟代表某一次采样中的即时奖励, 还是代表多次采样的即时奖励的期望? 诸如此类
最后只有当我把所有的过程按自己的思路想一遍推一遍后我才发现原来之前自己还有这么多理解不深刻的地方。写这篇文章的过程也是在问自己为什么的过程。
【全文目录如下】 一、策略 二、奖励 三、运动轨迹和状态转移 四、Policy-based下的强化学习优化目标
五、策略的梯度 5.1基本推导 5.2总结
六、价值函数 6.1 总述衡量价值的不同方式 6.2 回报 6.3 状态价值函数 6.4 动作价值函数 6.5 状态价值函数和动作价值函数的关系 6.6 优势函数和TD error
七、Actor-Critic 7.1 Actor优化目标 7.2 Critic优化目标 7.3 Actor和Critic之间的关系
八、PPO 8.1 朴素Actor-Critic存在的问题 8.2 重要性采样 8.3 GAE平衡优势函数的方差与偏差 8.4 PPO前身TRPO 8.5 PPO做法1: PPO-Clip 8.6 PPO做法2: PPO-Penalty 8.7 PPO中的critic loss
一、策略policy
策略分成两种确定性策略和随机性策略。我们用表示策略的参数。
1.1 确定性策略
智能体在看到状态 的情况下, 确定地执行
1.2 随机性策略
智能体在看到状态 的情况下, 其可能执行的动作服从概率分布 。也就是此时智能体是以一定概率执行某个动作 。
在我们接下来的介绍中都假设智能体采用的是随机性策略。
二、奖励Reward
奖励由当前状态、已经执行的行动和下一步的状态共同决定。
2.1 单步奖励
奖励和策略 无关用于评估当前动作的好坏指导智能体的动作选择。
2.2 T步累积奖励
T步累积奖励等于一条运动轨迹/一个回合/一个rollout后的单步奖励的累加.
2.3 折扣奖励
这里 。
三、运动轨迹trajectory和状态转移
智能体和环境做一系列/一回合交互后得到的state、action和reward的序列所以运动轨迹也被称为episodes或者rollouts, 这里我们假设智能体和环境交互了 次: 是初始时智能体所处的状态, 它只和环境有关。我们假设一个环境中的状态服从分布 , 则有 .当智能体在某个 下采取某个动作 时, 它转移到某个状态 可以是确定的, 也可以是随机的:
确定的状态转移 表示的含义是当智能体在某个 下采取某个动作 时环境的状态一定会转移到随机的状态转移:
在我们接下来的介绍中都假设环境采用的是随机状态转移。
四、Policy-based强化学习优化目标
抽象来说强化学习的优化过程可以总结为
价值评估给定一个策略 , 如何准确评估当前策略的价值 ?策略迭代给定一个当前策略的价值评估 , 如何据此优化策略 ?
整个优化过程由以上两点交替进行, 最终收玫, 得到我们想要的最优策略 和能准确评估它的价值函数 此时, 你肯定会想, 这是否意味着强化学习过程中一定存在 和 两个实体呢? 例如, 这是否意味我们一定要训练两个神经网络分别表示策略和价值评估答案是否定的
你可以只有一个价值实体 , 因为它的输入和状态与动作相关这里我们不区分 V 和 Q , 留到后文细说。这意味着只要我们知道状态空间 和动作空间 就可以作用到这两个空间上帮助我们衡量哪个状态/动作的价值最大进而隐式地承担起制定策略的角色我们也管这种方法叫value-based。你可以只有一个策略实体 , 在对策略的价值评估中, 我们可以让策略和环境交互多次, 采样足够多的轨迹数据用这些数据去对策略的价值做评估然后再据此决定策略的迭代方向我们也管这种方法叫 policy-based。你可以同时有价值实体 和策略实体 , 然后按照上面说的过程进行迭代, 我们也管这种方法叫 actorcritic, 其中actor表示策略, critic表示价值。这是我们本文讨论的重点。
接下来我们就直接来看policy-based下的强化学习优化目标
我们来详细解读这个目标 表示一条轨迹序列。 智能体所采取的策略下标 表示和策略相关的参数。 表示这条轨迹序列的累积奖励。 在使用策略 的情况下, 产出某条轨迹的概率 : 我们知道, 当前这条轨迹序列是在使用策略 的情况下采样出来的, 所以 隐藏的完整含义为 基于策略的强化学习的总目标是找到一个策略 使得它产出的轨迹的【回报期望】尽量高。 报期望表示为 。为什么这里我们讨论的是【回报期望】而不是某一个具体的回报值这是因为策略和状态转移具有随机性也就是对于一个固定的策略你让它和环境交互若干次它每次获得的轨迹序列也是不一样的所以是个随机变量因此我们讨论的是它的期望。从更通俗的角度来讲你评价一个策略是否好肯定不会只对它采样一次轨迹你肯定需要在足够多次采样的基础上再来评估这个策略。
五、策略的梯度上升
5.1 基本推导
现在我们知道强化学习的总优化目标是 我们据此来计算梯度 其中第2行第3行是因为 我们对一项再进行展开推导。我们知道策略和状态转移都是随机的同时我们设一条轨迹有个timestep则我们有 据此我们继续推出 被约去的两项是因为这里我们是在对策略求梯度而这两项和环境相关不和策略相关。
综上最终策略的梯度表达式为 5.2 总结
在基于策略的强化学习中我们期望max以下优化目标
基于这个优化目标策略的梯度为
这个梯度表达式有一个简单的直观理解 当 越高时动作 贡献的梯度应该越多这是因为此时我们认为 是一个好动作因此我们应该提升 即提升在 下执行 的概率。反之亦然。
在实践中我们可以通过采样足够多的轨迹来估计这个期望。 假设采样 N 条轨迹 N 足够大每条轨迹涵盖 步, 则上述优化目标可以再次被写成 对应的梯度可以被写成 六、价值函数Value Function
通过上面的推导我们知道在强化学习中策略的梯度可以表示成 这里 表示一整条轨迹的累积奖励或者累积折扣奖励。
当你端详这个公式时, 你可能会有这样的疑问: 是整条轨迹的奖励, 但是 却是针对单步的。我用整条轨迹的回报去评估单步的价值然后决定要提升/降低对应 的概率是不是不太合理呢例如
一条轨迹最终的回报很高并不能代表这条轨迹中的每一个动作都是好的。但我们又不能完全忽视轨迹的最终回报因为我们的最终目标是让这个回合的结果是最优的。综上在衡量单步价值时我们最好能在【单步回报】和【轨迹整体回报】间找到一种平衡方式。
有了以上这些直觉, 你开始考虑用一个更一般的符号 来表示各种可行的价值函数, 你用 替换掉了上面的 , 这下策略的梯度就变成: 6.1 总述衡量价值的不同方式
总结来说可能有如下的实现方式 我们来做逐一讲解。
1整条轨迹累积奖励/累积折扣奖励
这就是我们前文一直沿用的方法即 你可以通俗理解成 省略了折扣因子
2t时刻后的累积奖励/累积折扣奖励
由于MDP的假设t时刻前发生的事情和t时刻没有关系t时刻后发生的事情才会受到t时刻的影响所以我们可以令 3引入基线
我们沿着2继续看, 假设在单次采样生成的估计中, t 时刻后的累积奖励为 , 如果这个值很高,那一定证明在某个 下采取某个 一定好吗答案是否定的因为这里的高是一个绝对概念而我们更想知道的是一个相对概念这个动作究竟比别的动作好多少同时由于采样具有随机性有些动作只是没被采样到, 并不代表它们不好。所以这里我们引入一个基线baseline的方法来做调控 这里基线的实现方式也可以有多种比如当我们采样了一堆轨迹我们可以找到这些轨迹中状态为 的数据, 求这些数据在2下的奖励并做平均也就是求了个期望当作基线。
(4动作价值函数 (5优势函数 (6)状态价值的TD error 以上三点间具有某种联系我们这就来详细展开讲解它们。我们先关注这三者然后再来关注TD error。
我们沿着(4)~(6)继续来讨论的可行形式一种符合直觉的处理方法是
智能体来到了某个状态 下, 它的动作空间是 。智能体的策略 本质上是一种概率分布。它按 的概率决定要sample出哪个 。而在采样-训练-更新策略参数的这个循环过程中智能体要做的事情就是如果在某个状态 下某个动作 带来的回报大那么智能体就应该提升 这个概率也就是智能体据此不断调整 的分布。那么怎么衡量在某个 下执行某个 带来的回报是否大 我们可以去计算【执行 带来的回报 - 执行其它动作的回报】这个差值可以告诉我们 比别的动作要好多少。
那么什么叫【执行 带来的回报】和【执行其它动作带来的回报】
假设你在玩马里奥游戏你来到了画面的某一帧某个 你在这一帧下有3个选择顶金币踩乌龟跳过乌龟。你现在想知道执行“顶金币”的动作比别的动作好多少。你先执行了顶金币的动作即现在你采取了某个确定的 pair, 在束。在每一回合中, 你都记录下从这一帧顶金币出发一直到回合结束的累积奖励。你将这若干轮回合的奖励求平均就计算出从 (这一帧, 顶金币) 出发后的累积奖励期望, 我们记其为 。现在你重新回到这一帧你回到了一个确定的 上对于顶金币踩乌龟跳过乌龟这三个动作你按照当前的策略 从这三者中采样动作注意我们没有排除掉顶金币并继续玩这个游戏直到回合结束你记录下从 出发一直到回合结束的累积回报。重复上面这个过程若干次然后你将这若干轮回合的奖励求平均, 就计算出从这一帧出发后的累积奖励期望, 我们记其为 。你会发现不管是Q还是V下标都有一个这是因为它们和你当前采取的策略是相关的从直觉上, 我们取 这个差值, 就可以衡量在某个状态 下, 执行某个动作 , 要比其它的动作好多少了。这个差值, 我们可以理解为优势advantage这个优势更合理地帮助我们衡量了单步的奖励, 所以我们可以用它替换掉上面的 。当优势越大时说明一个动作比其它动作更好所以这时候我们要提升这个动作的概率。
通过上面的例子我们已经引出一些关于价值函数的基本概念了 状态价值函数 动作价值函数 优势
所以接下来我们就从理论的角度详细展开介绍它们。
6.2 回报
在前面的例子中, 我们说过, 当我们从 某一帧, 顶金币 出发后, 我们玩游戏一直到回合结束,然后我们执行 , 作为这个回合的累积奖励。
但其实我们计算这个累积奖励的目的是衡量从 某一帧 顶金币)这一【单步】出发后带来的未来收益。而对于这一个【单步】来说一般离它越近的timestep受到它的影响越大离它越远的timestep受到它的影响越小。在这个直觉的启发下, 我们采用【累积折扣奖励】来定义单步也就是某个t时刻的回报
在接下来的讲解中提到某一个回合中【单步】的奖励我们说的都是【累积折扣奖励】
6.3 状态价值函数State-Value Function
状态价值函数的原子定义如下
我们先来解释相关的符号
首先, 状态价值函数一定是和策略相关的。相同的状态 下例如同一帧游戏画面不同的策略 产生的结果也不一样例如不同的人玩这个游戏。所以我们带上了下标 。其次, 不是随机变量, 而是一个确定值。这是因为此时我们衡量的就是从某个确定的状态 出发带来的累积奖励期望。但是, 却是一个随机变量, 这是因为因为我们的策略 和环境转移 都是随机的。所以尽管每次智能体都从 出发但采样到的轨迹却不一样。所以这里我们谈的是 的期望。
上面是状态价值函数最原子的定义我们把这个定义展开以便更好理解 是如何计算的这里我直接对我笔记截图了因为latex公式显示不出来): 上面这个展开细节帮助我们从理论上理解上面举的例子从马里奥游戏的某一帧 出发如何求这一帧的累积回报期望也就是求这一帧下所有动作的累积回报期望。我们从第 4 行推导开始讲起
第4第5行即如何从 推到 可以参见蘑菇书EasyRL的2.2.2的第1节 https://datawhalechina.github.io/easy-rl/#/chapter2/chapter2第5第6行讲述我们如何对期望E中的结果做展开。我们以 为例:
仅从这个表达式上看它表示从某个状态 出发在执行策略 的情况下 的期望。我们前面说过由于策略和状态转移具有随机性因此 也是个随机变量。所以这里我们讨论的是【期望】而不是某个 值。理解了这一点, 就不难理解第 6 行的关于策略和状态转移的两个求和展开项。你可以把这些求和项理解成从状态 出发, 做了无数次采样后的结果。同时, 就是我们在之前定义的奖励函数, 它由三个入参决定。在我们把 展开成两个求和项后 都是确定的值而不是随机变量了所以这里 也是一个确定的值, 从 出发某次采样过程中得到的确定值 。
第6行后的推导过程都比较好理解这里不再解释。
我们在学习 rl 的过程中, 会看到很多材料把上述公式写成 或者 之类的形式, 由于对缺少必要的下标, 这些简略的形式具有歧义性, 使人混淆。所以这边我们干脆多费一点力, 把所有的符号都展示出来, 更方便大家深入理解 的含义。这就是这里大费周章写出上述推导过程的意义。
6.4 动作价值函数Action-Value Function
同样我们先来看动作价值函数的原子定义
我们来解释相关符号
首先动作价值函数也是和策略相关的。从之前的例子我们知道动作价值函数衡量的是从某个确定的出发后例如从马里奥游戏某一帧顶金币出发一直到回合结束为止的累积奖励期望。在策略不一样的情况下例如玩游戏的人不一样即使大家都从某个确定的最后的累积奖励期望也是不一样的。所以动作价值函数一定是对某个而言的。其余要注意的地方和一致这里不再赘述。 6.5 动作价值函数和状态价值函数的互相转换
我们来简单回顾下上面的内容。
状态价值函数的原子定义为
动作价值函数的原子定义为
展开状态价值函数的原子定义我们得到
展开动作价值函数的原子定义我们得到
根据这两者的原子定义展开式我们得到两者的关系为 关于V和Q我们可能在脑海里一直有“V是Q的期望”这样一个模糊的印象但是却很难做具象化的解读。希望这里通过上面马里奥游戏的例子 具体的推导过程能帮助大家更深入了解V和Q的关系。
6.6 优势函数和TD error
在马里奥游戏的例子中, 我们曾经对优势做过简单的定义: 我们取 这个差值, 就可以衡量在某个状态 下, 执行某个动作 , 要比其它的动作好多少了, 这个差值就是优势。
我们展开来讲优势函数在前面的推导中我们已知
而对于我们可以把它重新改写成
之所以这样改写, 是因为 只依赖于这个确定的 , 而与 无关。
基于这两个式子我们可以写成优势函数的表达式 大家发现了吗
假设这里的 等于那个客观世界存在的状态价值函数的真值, 那么TD_error就是优势函数的无偏估计。这意味着在期望的意义下使用TD_error近似优势函数不会引起系统性的偏差。假设这里的 不等于那个客观世界存在的状态价值函数的真值, 那么TD_error对于优势函数则是有偏的。 这意味着由于 的不准确我们无法用 去近似那个真实的优势函数因为我们将引入系统性偏差。读到这里你可能已经开始联想到在actor-critic算法下用于估计 的 critic网络在没有收玫之前都是偏离真值的这就意味着此时我们用TD-error去近似优势是有偏的所以这时我们就要请GAE出场了, 这是后话, 我们放在后文细说)
七、Actor-Critic
我们先来回顾之前定义的policy-based下的策略梯度 其中衡量单步价值的可以有如下几种设计方案 基于之前的分析我们现在选择第6种TD error作为 它衡量在某个时刻 t 选择某个动作 a 会比选择其它的动作要好多少。 需要注意的是, 本质上当 等于客观存在的真值 时, 6 是 5 的无偏估计。
在actor-critic方法下我们用神经网络 来表示策略actor神经网络 来表示价值critic所以这里我们进一步把 写成 。注意这可能不是一个好写法因为 V 一定是针对某个 而言的anyway我们需要把这点记在心中, 在后文的表示中可能会出现 和 交替使用的场景, 他们都表示一个东西, 只是笔者写烸了可能忘记从一而终了...
接下来我们来看actor loss和critic loss的具体表达式。
7.1 Actor优化目标
现在我们可以把actor优化目标写成如下形式 但是有时一个回个中的timesteps可能非常多我们无法等到回合结束再进行训练。既然我们已经使用了TD error来估计单步的优势我们其实可以按照单步的方法进行更新即你的batch_size是N其中的每条数据都是一个单步数据即actor优化目标可以写成
在接下来的表示中我们都将采用这种形式。对应的策略梯度前面写过很多遍了这里就不写出来了。
7.2 Critic优化目标
同理在单步更新下我们可以把critic优化目标写成
对应的critic梯度这里也略去。
7.3 Actor和Critic之间的关系
关于7.1节中actor这个优化目标的改写我们已经很熟悉了但对于7.2中的actor loss你可能还是满腹疑惑例如
看样子actor loss是在让优势趋于0但是如此一来每个动作的好坏不就都差不多了那你怎么能选出那个最好的动作呢
为了解答这个问题我们先回想第四节中提到的“价值评估-策略迭代”这样一个循环的过程
价值评估 给定一个策略 , 如何准确评估当前策略的价值 ?策略迭代 给定一个当前策略的价值评估 , 如何据此优化策略 我们结合actor-critic的框架把这个循环的优化过程展开来讲
我们从策略迭代步骤开始 假设我们有一个策略 , 且同时有一个能准确评估它的价值的 。基于这个 , 我们计算某个 状态下动作 的优势 , 如果这个优势比较高, 那么我们就应该提升 这个概率。我们按照这个方式去改变策略的分布, 最终会得到一个新策略 。那么, 什么时候这个 就是我们要找的最优策略 ? 我们假设当策略走到 时, 有一个客观存在的最优的动作 。那么如果当前这个策略走到 时产出 的概率已经是1或者是最大的那么就证明策略已经没有提升的空间了当前的策略已到最优注意这里我们始终假设 是能准确估计一个策略的价值的。那么如果策略产出 的概率已经是1或者最大时, 优势会发生什么变化? 从6.5节中的推导里我们知道 由此不难得知此时 会非常接近或者等于 也就是此时我们有 。翻译成人话来说就是当优势趋于 0 的时候不是说所有的动作都区分不出好坏了。而是此时策略已经趋于最优他本来产出最优的 的概率就是最大的。而不是像它还没优化好之前那样还以相当的概率产出别的 们所以我们要在这些 们之间去比较优势。现在我们回答价值评估步骤上来此时我们做完了策略迭代使得 那么之前用于衡量 的 已经不适用了我们需要找到一个 来正确衡量 。而当策略从 改进到 后这个 等式右侧的分布也有所调整所以我们应该让等式左侧去拟合等式的右侧, 这样才能得出一个可以正确评估 的我们把以上内容换成比较好理解但可能不太精确的人话当我们推动critic loss优势趋于0时
对于actor来说是推动它找到某个状态下最佳的动作逐步向****拟合对critic来说是推动它准确衡量当前策略的价值逐步向****拟合
八、PPO8.1 朴素Actor-Critic的问题
在理解critic loss为何如此设计的前提下critic的梯度就比较好理解了这里我们不做过多解释。我们把目光再次放回actor的梯度上来 再次注意, 这里我们写成 的形式其实是不完整的, 它只是用来刻画 是 critic 网络的参数, 我们还必须铭记 衡量的是某个策略 的价值, 当这个策略发生迭代而变动时, 也会变动。
观察这个梯度表达式我们会发现如下问题
问题1每次执行这个梯度更新时我们都需要对进行若干次回合采样。我们知道智能体和环境交互的时间成本fwd比较高也就是整个训练过程会比较慢
问题2: 我们在前面说过, 实际训练的过程中, 用 critic网络拟合出来 并不一定是能准确衡量 的那个价值函数, 所以这里我们用TD error去估计优势其实是有偏的。 为了降低这种偏差, 我们需要对 进行改造改造的方法之一就是GAE。
接下来我们就详细来看如何解决这两个问题。
8.2 重要性采样
在朴素的方法中我们使用和环境交互若干次得到一批回合数据然后我们用这个回合数据计算出来的奖励值去更新。我们管这个过程叫on-policy产出数据的策略和用这批数据做更新的策略是同一个
而现在为了降低采样成本我们想做下面这件事
假设某次更新完毕后, 我们得到策略我们用 和环境交互, 得到一批回合数据。我们将把这一批回合数据重复使用 次 即我们先把这批数据喂给 更新得到 我们再把这批数据喂给 , 更新得到 以此类推做 k 次更新后我们得到 。我们管这个过程叫off-policy产出数据的策略和用这批数据做更新的策略不是同一个。在这k次更新后, 我们令 。重复上面的过程, 直到达到设定的停止条件为止。
我们从更理论的角度来看待这个off-policy的过程
假设有两个分布最开始我想从 中进行多次采样, 然后求函数 的期望。例如我想从 中进行采样, 然后求累积奖励的期望这个期望我们表示成但是现在, 因为某些原因, 我们无法从 中直接采样, 只能从另一个分布 中进行采样了, 那么此时我们要怎么表示 ?为了解决这个问题我们做如下变换 也就是说当我们从不同于 的分布 上采样 x 时从数学上我们确实有办法改写 , 简单来说就是加上一个权重 , 我们管上述的转换过程叫【重要性采样】。
虽然数学上是有办法改写了但是实际操作中我们可能遇到p(x)和q(x)分布差异较大的问题。这里我直接引用李宏毅老师的课堂ppt来说明这一点 我们假设 的真值是负数。由于p(x)和q(x)差异较大。在某次采样中我们从q(x)里进行采样大概率会采集到图中绿色曲线的高处此时f(x)是正的。也就是说在单次采样中我们大概率会得到一个正的f(x)。所以只有经过尽可能多次的采样让某次能命中q(x)这个绿色曲线的低处。这时p(x)/q(x)较大也就赋予这个好不容易采样到的负的f(x)非常大的权重这才足以抵消之前正f(x)的影响。综上所述当p(x)和q(x)差异较大时我们需要通过足够多的采样来抵消这种差异对期望的最终影响。我们先记住这一点在后面我们再来说这一点对我们策略的影响。
知道了重要性采样的过程现在我们又可以根据它重写我们的优化目标了。
重要性采样前策略的梯度是
重要性采样后策略的梯度是
我们根据重要性采样构造了这个新的策略梯度那么对应的新的actor优化目标就可以从这个策略梯度中反推出来
特别注意 , 它意味着我们这一波的训练数据是由old策略采集来的。
但是到这步为止, 我们还要在心里铭记一个问题, 如何解决 和 分布差异过大的情况。我们先来看对优势函数的改进方法然后再回来讲这个问题的解决办法。
8.3 GAE平衡优势函数的方差和偏差
再回顾下6.6节的内容在假设 能正确评估策略 的价值的前提下我们用TD_error作为优势函数的无偏估计 但是, 在训练过程中, 这个 往往无法完全正确评估出策略 的价值, 所以上述这种估计是有偏的, 也即如果我们使用TD error去近似优势函数, 就会引发系统性偏差。这样讲可能比较抽象, 我们来看具象化地解释下。
1方差与偏差 低方差低偏差E(射击点) 靶心且射击点密集分布在靶心周围。此时我们随机选一个射击点就能很好代表靶心高方差低偏差E(射击点) 靶心但射击点们离靶心的平均距离较远。此时随机一个射击点不能很好代表靶心但我们却可以从足够多的射击点中估算靶心坐标高/低方差高偏差E(射击点)!靶心无论你做多少次射击你都估计不准靶心的位置。
对于优势函数我们有 , 我们可以把 当作是蓝色的靶心, 而红色的点就是我们针对某个 做多次采样, 得到的一个个 。
当 能准确估计策略 的价值时 至少是属于左侧低偏差这种情况。 而对于方差它则是由这里的两个随机变量 决定的之所以说它们是随机变量是因为在采取某个状态对 的情况下, 会转移到哪个 是确定的, 带来的奖励 也是不确定的。当 不能准确估计策略 的价值时, 属于右侧高偏差这种情况。即红点的分布已经偏离无论你采样再多次你也无法估算真正的优势函数。
为了解决因为 估计不准而引发的高偏差问题, 直观上我们可以尽量少信任 的策略, 即对于 , 我们可以把 做递归地展开, 得到: 其中, 都是我们某次采样得到的即时奖励数据。如果 不准, 那么我就信任我的实际采样结果, 这样至少不会让我对优势函数的估计出现偏差。
但采取这种做法又会引发一个新问题: 我们知道 它们都是随机变量, 相比之前只用 , 现在的做法带来的随机性更大了相当于在每一个timestep都引入了随机性随机性逐步累加。也就是如果之前的方差是 , 那么现在的方差则变成更大的 。最终, 你把 从上图的右侧纠正了上图的【高方差、低偏差】的位置。这意味着此时虽然偏差降低了但你需要采样足够多的数据才能准确估计出优势函数这样加重了实际训练中的采样负担。
那要怎么办呢
2GAE
(排不动latex的版了这边开始我就放我的笔记截图了) 8.4 PPO前身TRPO 8.5 PPO做法1PPO-Clip 8.6 PPO做法2PPO-Penalty 8.7 PPO中的critic loss
在PPO的原始论文中其实并没有对critic和actor拆分成两个网络以后的critic loss形式做详细介绍所以这部分的解读我直接以deepspeed-chat的rlhf实现为例将以下critic loss的实现。
我们知道PPO的更新步骤是
# 对于每一个batch的数据
for i in steps: # 先收集经验值exps generate_experience(prompts, actor, critic, reward, ref)# 一个batch的经验值将被用于计算ppo_epochs次loss更新ppo_epochs次模型# 这也意味着当你计算一次新loss时你用的是更新后的模型for j in ppo_epochs:actor_loss cal_actor_loss(exps, actor)critic_loss cal_critic_loss(exps, critic)actor.backward(actor_loss)actor.step()critc.backward(critic_loss)critic.step() #7 Papers Radios~1
本次重要论文包括威斯康星大学麦迪逊分校、微软、港科大华人研究者提出的基于 prompt 的新型交互模型 SEEM以及 40 多位学者联合发布的基础模型工具学习综述和开源 BMTools 平台。
FlashAttention: Fast and Memory-Efficient Exact Attention with IO-AwarenessA Cookbook of Self-Supervised Learning Tool Learning with Foundation ModelsScaling Transformer to 1M tokens and beyond with RMT Segment Everything Everywhere All at Once Deep RL at Scale: Sorting Waste in Office Buildings with a Fleet of Mobile Manipulators Collaboration Helps Camera Overtake LiDAR in 3D DetectionArXiv Weekly RadiostationNLP、CV、ML 更多精选论文附音频
论文 1FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness
作者Tri Dao、Daniel Y. Fu 等论文地址https://arxiv.org/abs/2205.14135
摘要过去两年斯坦福大学 Hazy Research 实验室一直在从事一项重要的工作增加序列长度。他们有一种观点更长的序列将开启机器学习基础模型的新时代 —— 模型可以从更长的上下文、多种媒体源、复杂的演示等中学习。
目前这项研究已经取得了新进展。Hazy Research 实验室的 Tri Dao 和 Dan Fu 主导了 FlashAttention 算法的研究和推广他们证明了 32k 的序列长度是可能的且在当前这个基础模型时代将得到广泛应用OpenAI、Microsoft、NVIDIA 和其他公司的模型都在使用 FlashAttention 算法。 推荐想把半本《红楼梦》搬进 ChatGPT 输入框先把这个问题解决掉。
论文 2A Cookbook of Self-Supervised Learning
作者Randall Balestriero、 Mark Ibrahim 等论文地址https://arxiv.org/pdf/2304.12210v1.pdf
摘要近日LeCun 介绍了他和 Meta 人工智能研究院研究员、研究经理田渊栋等人共同撰写的一份「Cookbook」非常实用、可操作性强、就像一本菜谱一样的论文。这本 Cookbook 总共 70 页涵盖了自监督学习的定义、重要性、起源、家族、训练部署方法、扩展方法等方面知识是一份不可多得的学习材料。「如果你想研究自监督学习那最好看看这本书。」田渊栋补充说。 推荐LeCun、田渊栋参与撰写70 页「自监督学习」大全来了。
论文 3Tool Learning with Foundation Models
作者Yujia Qin、Shengding Hu 等论文地址https://arxiv.org/abs/2304.08354
摘要近期来自清华大学、中国人民大学、北京邮电大学、UIUC、NYU、CMU 等高校的研究人员联合知乎、面壁智能公司探索基础模型调用外部工具的课题联合发表了一篇 74 页的基础模型工具学习综述论文发布开源工具学习平台。该团队提出了基础模型工具学习的概念系统性地整理和阐述了其技术框架同时展示了未来可能面临的机遇和挑战。这项研究对于了解基础模型工具学习的最新进展及其未来发展趋势具有重要价值。
工具学习整体框架呈现了人类用户和四个核心成分工具集、控制器、感知器、环境。 推荐40 多位学者联合发布基础模型工具学习综述开源 BMTools 平台。
论文 4Scaling Transformer to 1M tokens and beyond with RMT
作者Aydar Bulatov、 Yuri Kuratov 等论文地址https://arxiv.org/pdf/2304.11062.pdf
摘要前几天一篇来自开源对话 AI 技术栈 DeepPavlov 等机构的研究表明通过采用一种名为 Recurrent Memory TransformerRMT的架构他们可以将 BERT 模型的有效上下文长度增加到 200 万个 token按照 OpenAI 的计算方式大约相当于 3200 页文本同时保持了较高的记忆检索准确性注Recurrent Memory Transformer 是 Aydar Bulatov 等人在 NeurIPS 2022 的一篇论文中提出的方法。新方法允许存储和处理局部和全局信息并通过使用 recurrence 使信息在输入序列的各 segment 之间流动。 推荐真・量子速读突破 GPT-4 一次只能理解 50 页文本限制新研究扩展到百万 token。
论文 5Segment Everything Everywhere All at Once
作者Xueyan Zou、 Jianwei Yang 等论文地址https://arxiv.org/pdf/2304.06718.pdf
摘要最近一篇「一次性分割一切」的新论文再次引起关注。在该论文中来自威斯康星大学麦迪逊分校、微软、香港科技大学的几位华人研究者提出了一种基于 prompt 的新型交互模型 SEEM。SEEM 能够根据用户给出的各种模态的输入包括文本、图像、涂鸦等等一次性分割图像或视频中的所有内容并识别出物体类别。该项目已经开源并提供了试玩地址供大家体验。下图中展示了轻松分割出视频中移动的物体。 推荐一次性分割一切比 SAM 更强华人团队的通用分割模型 SEEM 来了
论文 6Deep RL at Scale: Sorting Waste in Office Buildings with a Fleet of Mobile Manipulators
作者Alexander Herzog、 Kanishka Rao 等论文地址https://rl-at-scale.github.io/assets/rl_at_scale.pdf
摘要在谷歌这篇论文中研究人员探讨了如何通过最新的大规模实验解决这个问题他们在两年内部署了一支由 23 个支持 RL 的机器人组成的群组用于在谷歌办公楼中进行垃圾分类和回收。使用的机器人系统将来自真实世界数据的可扩展深度强化学习与来自模拟训练的引导和辅助对象感知输入相结合以提高泛化能力同时保留端到端训练优势通过对 240 个垃圾站进行 4800 次评估试验来验证。在现实世界中机器人会遇到各种独特的情况比如以下真实办公楼的例子 推荐耗时两年谷歌用强化学习打造 23 个机器人帮助垃圾分类。
论文 7Collaboration Helps Camera Overtake LiDAR in 3D Detection
作者Yue Hu、Yifan Lu 等论文地址https://arxiv.org/abs/2303.13560
摘要摄像头能否实现激光雷达的检测效果以更低成本实现自动驾驶感知在最新的 CVPR2023 论文中来自上海交通大学、加州大学洛杉矶分校、以及上海人工智能实验室的研究者提出了纯视觉协作探测方法CoCa3D通过让多个基于纯视觉的智能车高效协作在 3D 目标探测效果上接近甚至超越基于激光雷达的智能车。下图为数据集 CoPerception-UAVs 和 OPV2V 仿真环境。 推荐多车协作让纯视觉 3D 目标探测媲美激光雷达。 #DIFFormer
本⽂介绍⼀项近期的研究⼯作试图建⽴能量约束扩散微分⽅程与神经⽹络架构的联系从而原创性的提出了物理启发下的 Transformer称作 DIFFormer。作为⼀种通⽤的可以灵活⾼效的学习样本间隐含依赖关系的编码器架构DIFFormer 在各类任务上都展现了强大潜⼒。这项工作已被 ICLR 2023 接收并在⾸轮评审就收到了四位审稿⼈给出的 10/8/8/6 评分最终均分排名位于前 0.5%。
论⽂地址https://arxiv.org/pdf/2301.09474.pdf项⽬地址https://github.com/qitianwu/DIFFormer
如何得到有效的样本表征是机器学习领域的⼀⼤核⼼基础问题也是深度学习范式在各类下游任务能发挥作用的重要前提。传统的表征学习⽅法通常假设每个输⼊样本是独⽴的即分别将每个样本输⼊进 encoder ⽹络得到其在隐空间中的表征每个样本的前向计算过程互不干扰。然⽽这⼀假设通常与现实物理世界中数据的⽣成过程是违背的由于显式的物理连接或隐含的交互关系每个观测样本之间可能存在相互的依赖。
这⼀观察也启发了我们去重新思考⽤于表征计算的 encoder ⽹络设计是否能设计⼀种新型的 encoder ⽹络能够在前向计算中显式的利⽤样本间的依赖关系尽管 这些依赖关系是未被观察到的。在这个⼯作中我们从两个物理学原理出发将神经⽹络计算样本表征的前向过程看作给定初始状态的扩散过程且随着时间的推移层数加深系统的整体能量不断下降见下图。 DIFFormer 模型主要思想的示意图将模型计算样本表征的前向过程看作⼀个扩散过程随着时间的推移节点之间存在信号传递且任意节点对之间信号传递的速率会随着时间适应性的变化使得系统整体的能量最⼩化。通过扩散过程和能量约束最终的样本表征能够吸收个体和全局的信息更有助于下游任务。
通过试图建⽴扩散微分⽅程与神经⽹络架构的联系我们阐释了能量约束扩散过程与各类信息传递网络如 MLP/GNN/Transformers的联系并为新的信息传递设 计提供了⼀种理论参考。基于此我们提出了⼀种新型的可扩展 Transformer 模型称为 DIFFormerdiffusionbased Transformers。它可以作为⼀种通⽤的 encoder在前向计算中利⽤样本间隐含的依赖关系。⼤量实验表明在⼩ / ⼤图节点分类、图⽚ / ⽂本分类、时空预测等多个领域的实验任务上 DIFFormer 都展现了强⼤的应⽤潜⼒。在计算效率上DIFFormer 只需要 3GB 显存就可以实现⼗万级样本间全联接的信息传递。
动机与背景
我们⾸先回顾⼀个经典的热⼒学中的热传导过程假设系统中有
个节点每个节点有初始的温度两两节点之间都存在信号流动随着时间的推移节点的温度会不断更新。上述物理过程事实上可以类⽐的看作深度神经网络计算样本表征embedding的前向过程。 将神经⽹络的前向计算过程看作⼀个扩散过程每个样本视为流形上的固定位置节点样本的表征为节点的信号表征的更新视作节点信号的改变样本间的信息传递看作节点之间的信号流动 这⾥我们可以把每个样本看作⼀个离散空间中的节点样本表征看作节点的信号。当模型结构考虑样本交互时如信息传递它可以被看作节点之间的信号流动随着模型层数加深即时间的推移样本表征会不断被更新。
扩散过程的描述
⼀个经典的扩散过程可以由⼀个热传导⽅程带初始条件的偏微分⽅程来描述 在离散空间中梯度算⼦可以看作两两节点的信号差异散度算子可以看作单个节点流出信号的总和⽽扩散率diffusivity是⼀种对任意两两节点间信号流动速率的度量
由此我们可以写出描述 N 个节点每时每刻状态更新的扩散微分⽅程它描述了每个状态下系统中每个节点信号的变化等于流向其他节点的信号总和 由扩散方程导出的信息传递 下图概述了这三种信息传递模式 我们研究最后⼀种信息传递⽅式每层更新的样本表征会利⽤上⼀层所有其他样本的表征在理论上模型的表达能⼒是最强的。但由此产⽣的⼀个问题是要如何才能确定合适的每层任意两两节点之间的 diffusivity使得模型能够产⽣理想的样本表征
刻画⼀致性的能量函数 能量约束的扩散过程 定理 DIFFormer-a在计算相似度时引⼊⾮线性从⽽提升模型学习复杂结构的表达能⼒ 两种模型 DIFFormer-s 和 DIFFormer-a 每层更新的运算过程矩阵形式红⾊标注的矩阵乘法操作是计算瓶颈。DIFFormer-s 的优势在于可以实现对样本数量 N 的线性复杂度有利于模型扩展到⼤规模数据集
模型扩展 更进⼀步的我们可以引⼊更多设计来提升模型的适⽤性和灵活度。上述的模型主要考虑了样本间的 all-pair attention。对于输⼊数据本身就含有样本间图结构的情况我们可以加⼊现有图神经⽹络GNN中常⽤的传播矩阵propagation matrix来融合已知的图结构信息从⽽定义每层的样本表征更新如下 DIFFormer 的全局输⼊包含样本输⼊特征 X 以及可能存在的图结构 A可以省略通过堆叠 DIFFormer layer 更新计算样本表征。在每层更新时需要计算⼀个全局 attention具体的可以使⽤ DIFFormer-s 和 DIFFormer-a 两种实现如果考虑输⼊图结构则加⼊ GCN Conv
另⼀个值得探讨的问题是如何处理⼤规模数据集尤其是包含⼤量样本的数据集此时考虑全局 all-pair attention ⾮常耗费资源。在这种情况下我们默认使⽤线性复杂度的 DIFFormer-s 的架构并且可以在每个训练 epoch 对数据集进⾏ random mini-batch 划分。由于线性复杂度我们可以使⽤较⼤的 batch size 也能使得模型在单卡上进⾏训练详⻅实验部分。 对于包含⼤量样本的数据集我们可以对样本进⾏随机 minibatch 划分每次只输⼊⼀个 batch 的样本。当输⼊包含图结构时我们可以只提取 batch 内部样本所组成的⼦图输⼊进⽹络。由于 DIFFormer-s 只需要对 batch size 的线性复杂度在实际中就可以使⽤较⼤的 batch size保证充⾜的全局信息
实验结果
为了验证 DIFFormer 的有效性和在不同场景下的适⽤性我们考虑了多个实验场景包括不同规模图上的节点分类、半监督图⽚ / ⽂本分类和时空预测任务。
图节点分类实验 此时输⼊数据是⼀张图图中的每个节点是⼀个样本包含特征和标签⽬标是利⽤节点特征和图结构来预测节点的标签。我们⾸先考虑⼩规模图 的实验此时可以将⼀整图输⼊ DIFFormer。相⽐于同类模型例如 GNNDIFFormer 的优势在于可以不受限于输⼊图学习未被观测到的连边关系从⽽更好的捕捉⻓距离依赖和潜在关系。下图展示了与 SOTA ⽅法的对⽐结果。 进⼀步的我们考虑在⼤规模图上的实验。此时由于图的规模过⼤⽆法将⼀整图直接输⼊模型否则将造成 GPU 过载我们使⽤ mini-batch 训练。具体的在每个 epoch随机的将所有节点分为相同⼤⼩的 mini-batch。每次只将⼀个 mini-batch 的节点输⼊进⽹络⽽对于输⼊图只使⽤包含在这个 mini-batch 内部的节点所组成的⼦图输⼊进⽹络每次迭代过程中DIFFormer 也只会在 mini-batch 内部的节点之间学习 all-pair attention。这样做就能⼤⼤减⼩空间消耗。⼜因为 DIFFormer-s 的计算复杂度关于 batch size 是线性的这就允许我们使⽤很⼤的 batch size 进⾏训练。下图显示了在 ogbn-proteins 和 pokec 两个⼤图数据集上的测试性能其中对于 proteins/pokec 我们分别使⽤了 10K/100K 的 batch size。此外下图的表格也展示了 batch size 对模型性能的影响可以看到当使⽤较⼤ batch size 时模型性能是⾮常稳定的。 图⽚ / ⽂本分类实验
第⼆个场景我们考虑⼀般的分类问题输⼊是⼀些独⽴的样本如图⽚、⽂本样本间没有已观测到的依赖关系。此时尽管没有输⼊图结构 DIFFormer 仍然可以学习隐含在数据中的样本依赖关系。对于对⽐⽅法 GCN/GAT由于依赖于输⼊图我们这⾥使⽤ K 近邻⼈⼯构造⼀个样本间的图结构。 时空预测
进⼀步的我们考虑时空预测任务此时模型需要根据历史的观测图⽚段包含上⼀时刻节点标签和图结构来预测下⼀时刻的节点标签。这⾥我们横向对⽐ 了 DIFFormer-s/DIFFormer-a 在使⽤输⼊图和不使⽤输⼊图w/o g时的性能发现在不少情况下不使⽤输⼊图模型反⽽能给出的较⾼预测精度。这也说明了在这类任务中给定的观测图结构可能是不可靠的⽽ DIFFormer 则可以通过从数据中学习依赖关系得到更有⽤的结构信息。 扩散过程下的统⼀视⻆
从能量约束的扩散过程出发我们也可以将其他信息传递模型如 MLP/GCN/GAT 看作 DIFFormer 的特殊形式从⽽给出统⼀的形式化定义。下图概括了⼏种⽅法对应的能量函数和扩散率。相⽐之下从扩散过程来看 DIFFormer 会考虑任意两两节点之间的信号流动且流动的速率会随着时间适应性的变化⽽ GNN 则是将信号流动 限制在⼀部分节点对之间。从能量约束来看DIFFormer 会同时考虑局部与⾃身状态和全局与其他节点的⼀致性约束⽽ MLP/GNN 则是分别侧重于⼆者之⼀ 且 GNN 通常只考虑输⼊图中相邻的节点对约束。 总结与讨论
在这个⼯作中我们讨论了如何从扩散⽅程出发得到 MLP/GNN/Transformer 的模型更新公式⽽后提出了⼀个能量约束下的扩散过程并通过理论分析得到了最优 扩散率的闭式解。基于理论结果我们提出了 DIFFormer。总的来说DIFFormer 主要具有以下两点优势 DIFFormer 作为⼀个通⽤的 encoder可以被主要应⽤于以下⼏种场景 #MoE-Jetpack
收敛速度最高8倍准确率提升超30%华科发布MoE Jetpack框架
华中科技大学的研究人员提出了MoE Jetpack框架通Checkpoint Recycling方法和SpheroMoE结构将密集激活模型的预训练权重微调为混合专家MoE模型从而免去了MoE模型的预训练过程大幅提升了MoE在下游任务中的精度和收敛速度。
混合专家模型MoE, Mixture of Experts是一种通过动态激活网络的部分结构来提升计算效率的架构可以在保持相对稳定的计算成本的前提下大幅增加参数量从而有效提升模型性能。
这一特性使得MoE能够兼顾模型的规模与效率已广泛应用于各种大规模任务。然而MoE模型通常需要在大型数据集上预训练以获得理想性能导致其对时间和计算资源的需求极高这也限制了其在深度学习社区中的普及性。
为解决这一问题华中科技大学的研究人员提出了MoE Jetpack框架利用密集模型的预训练权重Dense checkpoints来微调出视觉混合专家模型MoEMixture of Experts。
目前这项工作已被NeurIPS 2024接收。
论文标题MoE Jetpack: From Dense Checkpoints to Adaptive Mixture of Experts for Vision Tasks
论文地址https://arxiv.org/abs/2406.04801
代码地址https://github.com/Adlith/MoE-Jetpack
MoE Jetpack框架的核心创新包括
1. Checkpoint recycling 通过采样密集模型权重产生差异化的专家组成MoE模型的初始化权重从而加速模型收敛、提升性能并避免大规模的MoE模型预训练。
2. SpheroMoE Layer 通过调整MoE结构利用交叉注意力机制进行专家分配将query和key投影到超球空间以提升微调过程的稳定性并通过一系列专家正则化方法有效缓解MoE模型微调过程中的过拟合现象。
实验结果表明MoE Jetpack在多个数据集和网络结构上实现了显著的性能提升。在ImageNet-1K上模型收敛速度提升2倍准确率提高了2.8%在小规模数据集上收敛速度可达8倍提升准确率提升超过30%。 图1 aMoE Jetpack将密集预训练权重转化为MoE模型的初始化权重在性能提升的同时保持等效的FLOPs。(b) 未预训练的ViT、微调的ViT、未预训练的Soft MoE 与MoE Jetpack在多个视觉数据集上的性能比较。
在多个下游数据集上的实验表明该框架能够高效利用预训练权重实现更快的收敛速度和更优的性能表现。
研究方法
MoE Jetpack的核心由两个阶段组成Checkpoint Recycling用于MoE模型的初始化和SpheroMoE层用于微调MoE模型如下图所示。 图2 Checkpoint Recycling和SpheroMoE结构
Checkpoint Recycling作为MoE Jetpack的基础阶段Checkpoint Recycling通过将预训练的密集模型权重转换为高质量的MoE初始化权重使新模型在性能和收敛速度上都得以提升。
具体地Checkpoint Recycling从密集权重的多层感知器MLP中采样出部分权重构建专家层以确保专家的多样性和灵活性。
本文比较了四种主要的权重回收策略
重要性采样Importance-Based Weight Sampling重要性采样是 MoE Jetpack 默认的权重采样方法通过计算输出特征的均值选择top-d 个最重要的特征维度同时根据隐藏单元的激活值大小进行独立采样。这种方法确保每个专家包含关键的特征和隐藏单元有助于提升模型的初始化质量和训练效率。图划分法Co-Activation Graph Partitioning图划分法通过构建共激活图将常一起激活的隐藏单元分组使用图划分算法如 Metis将密集权重的隐藏单元划分成多个子图组合不同的子图形成不同专家层确保专家专注于不同的功能区域提升模型的特征表达能力。均匀采样Uniform Weight Selection均匀采样在特征维度和隐藏单元上均匀选择权重保证每个 MoE 专家层均衡分布初始化权重。此方法实现简单但不考虑特征重要性因此性能提升效果较为一般。随机采样Random Weight Sampling随机采样在特征维度和隐藏单元中随机抽取生成专家层的初始化权重。该方法实现简便但由于没有关注特征的重要性性能通常较低。
Checkpoint Recycling引入的计算开销几乎可以忽略同时显著提升模型性能并与收敛速度。
SpheroMoE层
在MoE模型权重初始化后SpheroMoE层进一步优化微调过程。SpheroMoE 层的引入解决了 MoE 模型在优化过程中面临的数值不稳定、专家过度专一等问题。它通过三种机制来提升模型在下游任务的性能和稳定性
超球路由机制利用cross attention结构将输入动态分配给 MoE 模型的不同专家。这种机制首先对随机初始化的专家查询Q, query和输入键K, key进行归一化投影L2 Norm至超球空间以确保数值稳定性并通过余弦相似度来选择输入对应的专家。最终输出由各个专家的结果组合而成保证 MoE 模型的输出特征和密集模型之间的分布一致性。 自适应双路径MoE为提升计算效率SpheroMoE路由将输入划分为高重要性和低重要性两类并引导其进入不同计算路径高重要性输入分配至包含更大参数量的核心专家低重要性输入则进入包含较小专家的通用路径。这样的双路径结构通过划分细粒度的专家增加了专家的数量优化了资源利用提升了模型的性能与计算效率。图3 自适应双路径MoE专家正则化为避免专家层过度专注于特定输入或出现过度特化本文引入可学习的软温度参数用以调整softmax的平滑程度以精确控制输入的分配和输出的组合。 此外使用专家随机失活机制能有效防止模型对特定专家的依赖。
这些设计使MoE Jetpack在下游任务微调中不仅具备了更快的收敛速度还实现了显著的性能提升。
实验结果
本文在 ViT 和 ConvNeXt 两种典型网络结构以及八个图像分类任务上进行了广泛实验。实验结果表明MoE Jetpack 在性能上显著优于随机初始化的 Soft MoE 模型并且利用密集权重的微调效果明显超过直接微调经过预训练的密集模型。 此外论文还对MoE Jetpack的多种配置进行了深入研究系统分析了不同专家数量、不同原始网络尺寸大小等因素对模型性能的影响。 表2 各种参数量的MoE Jetpack都展示出了显著的性能提升
下图展示了微调的全过程中MoE Jetpack对加速模型收敛速度和提升模型性能方面的效果突显了其作为 MoE 模型预训练替代方法的潜力。 图4 MoE Jetpack带来了收敛速度提升
专家注意力图展示了不同的专家关注图像的不同区域各司其职。专家贡献分布图表明核心专家和普通专家在不同层次的贡献差异显著展示了模型的自适应路由调度机制。 图5 专家注意力图和专家贡献分布图
总结
MoE Jetpack是一个创新框架旨在将预训练的密集模型权重高效转换为MoE模型。通过提出Checkpoint Recycling技术MoE Jetpack能够有效继承密集模型的知识引入的SpheroMoE 层显著提升微调过程的稳定性和性能。
该框架不仅降低了MoE模型的训练成本和硬件要求还减少了对环境的影响使得研究者在普通计算资源下也能轻松使用混合专家模型为MoE的广泛研究与应用提供了有力支持。
参考资料
https://arxiv.org/abs/2406.04801 #TRIBE
近日华南理工、A*STAR 和港中大深圳团队通过大量实验证明这些真实场景下的测试数据流会对现有方法带来巨大挑战。该团队认为最先进方法的失败首先是由于不加区分地根据不平衡测试数据调整归一化层造成的。测试时领域适应的鲁棒性得以保证TRIBE在多真实场景下达到SOTA
测试时领域适应Test-Time Adaptation的目的是使源域模型适应推理阶段的测试数据在适应未知的图像损坏领域取得了出色的效果。然而当前许多方法都缺乏对真实世界场景中测试数据流的考虑例如
测试数据流应当是时变分布而非传统领域适应中的固定分布测试数据流可能存在局部类别相关性而非完全独立同分布采样测试数据流在较长时间里仍表现全局类别不平衡
为此研究团队提出了一种创新的平衡批归一化层 (Balanced BatchNorm Layer)以取代推理阶段的常规批归一化层。同时他们发现仅靠自我训练ST在未知的测试数据流中进行学习容易造成过度适应伪标签类别不平衡、目标域并非固定领域而导致在领域不断变化的情况下性能不佳。
因此该团队建议通过锚定损失 (Anchored Loss) 对模型更新进行正则化处理从而改进持续领域转移下的自我训练有助于显著提升模型的鲁棒性。最终模型 TRIBE 在四个数据集、多种真实世界测试数据流设定下稳定达到 state-of-the-art 的表现并大幅度超越已有的先进方法。研究论文已被 AAAI 2024 接收。
论文链接https://arxiv.org/abs/2309.14949
代码链接https://github.com/Gorilla-Lab-SCUT/TRIBE
引言
深度神经网络的成功依赖于将训练好的模型推广到 i.i.d. 测试域的假设。然而在实际应用中分布外测试数据的鲁棒性如不同的照明条件或恶劣天气造成的视觉损坏是一个需要关注的问题。最近的研究显示这种数据损失可能会严重影响预先训练好的模型的性能。重要的是在部署前测试数据的损坏分布通常是未知的有时也不可预测。
因此调整预训练模型以适应推理阶段的测试数据分布是一个值得价值的新课题即测试时领域适 (TTA)。此前TTA 主要通过分布对齐 (TTAC, TTT)自监督训练 (AdaContrast) 和自训练 (Conjugate PL) 来实现这些方法在多种视觉损坏测试数据中都带来了显著的稳健提升。
现有的测试时领域适应TTA方法通常基于一些严格的测试数据假设如稳定的类别分布、样本服从独立同分布采样以及固定的领域偏移。这些假设启发了许多研究者去探究真实世界中的测试数据流如 CoTTA、NOTE、SAR 和 RoTTA 等。
最近对真实世界的 TTA 研究如 SARICLR 2023和 RoTTACVPR 2023主要关注局部类别不平衡和连续的领域偏移对 TTA 带来的挑战。局部类别不平衡通常是由于测试数据并非独立同分布采样而产生的。直接不加区分的领域适应将导致有偏置的分布估计。
最近有研究提出了指数式更新批归一化统计量RoTTA或实例级判别更新批归一化统计量NOTE来解决这个挑战。其研究目标是超越局部类不平衡的挑战考虑到测试数据的总体分布可能严重失衡类的分布也可能随着时间的推移而变化。在下图 1 中可以看到更具挑战性的场景示意图。 由于在推理阶段之前测试数据中的类别流行率未知而且模型可能会通过盲目的测试时间调整偏向于多数类别这使得现有的 TTA 方法变得无效。根据经验观察对于依靠当前批数据来估计全局统计量来更新归一化层的方法来说这个问题变得尤为突出BN, PL, TENT, CoTTA 等。
这主要是由于
1.当前批数据会受到局部类别不平衡的影响带来有偏置的整体分布估计
2.从全局类别不平衡的整个测试数据中估计出单一的全局分布全局分布很容易偏向多数类导致内部协变量偏移。
为了避免有偏差的批归一化BN该团队提出了一种平衡的批归一化层Balanced Batch Normalization Layer即对每个单独类别的分布进行建模并从类别分布中提取全局分布。平衡的批归一化层允许在局部和全局类别不平衡的测试数据流下得到分布的类平衡估计。
随着时间的推移领域转移在现实世界的测试数据中经常发生例如照明 / 天气条件的逐渐变化。这给现有的 TTA 方法带来了另一个挑战TTA 模型可能由于过度适应到领域 A 而当从领域 A 切换到领域 B 时出现矛盾。
为了缓解过度适应到某个短时领域CoTTA 随机还原参数EATA 用 fisher information 对参数进行正则化约束。尽管如此这些方法仍然没有明确解决测试数据领域中层出不穷的挑战。
本文在两分支自训练架构的基础上引入了一个锚定网络Anchor Network组成三网络自训练模型Tri-Net Self-Training。锚定网络是一个冻结的源模型但允许通过测试样本调整批归一化层中的统计量而非参数。并提出了一个锚定损失利用锚定网络的输出来正则化教师模型的输出以避免网络过度适应到局部分布中。
最终模型结合了三网络自训练模型和平衡的批归一化层TRI-net self-training with BalancEd normalization, TRIBE在较为宽泛的的可调节学习率的范围里表现出一致的优越性能。在四个数据集和多种真实世界数据流下显示了大幅性能提升展示了独一档的稳定性和鲁棒性。
方法介绍
论文方法分为三部分
介绍真实世界下的 TTA 协议平衡的批归一化三网络自训练模型。
真实世界下的 TTA 协议
作者采用了数学概率模型对真实世界下具有局部类别不平衡和全局类别不平衡的测试数据流以及随着时间变化的领域分布进行了建模。如下图 2 所示。 平衡的批归一化
为了纠正不平衡测试数据对 BN 统计量产生的估计偏置作者提出了一个平衡批归一化层该层为每个语义类分别维护了一对统计量表示为 通过进一步分析和观察作者发现当 γ1 时整个更新策略就退化成了 RoTTA 中的 RobustBN 的更新策略当 γ0 时是纯粹的类别独立的更新策略因此当 γ 取值 01 时可以适应到各种情况下。
三网络自训练模型
作者在现有的学生 - 教师模型的基础上添加了一个锚定网络分支并引入了锚定损失来约束教师网络的预测分布。这种设计受到了 TTAC 的启发。TTAC 指出在测试数据流上仅靠自我训练会容易导致确认偏置的积累这个问题在本文中的真实世界中的测试数据流上更加严重。TTAC 采用了从源域收集到的统计信息实现领域对齐正则化但对于 Fully TTA 设定来说这个源域信息不可收集。
同时作者也收获了另一个启示无监督领域对齐的成功是基于两个领域分布相对高重叠率的假设。因此作者仅调整了 BN 统计量的冻结源域模型来对教师模型进行正则化避免教师模型的预测分布偏离源模型的预测分布太远这破坏了之前的两者分布高重合率的经验观测。大量实验证明本文中的发现与创新是正确的且鲁棒的。以下是锚定损失的表达式 实验部分
论文作者在 4 个数据集上以两种真实世界 TTA 协议为基准对 TRIBE 进行了验证。两种真实世界 TTA 协议分别是全局类分布固定的 GLI-TTA-F 和全局类分布不固定的 GLI-TTA-V。 上表展示了 CIFAR10-C 数据集两种协议不同不平衡系数下的表现可以得到以下结论
1.只有 LAME, TTAC, NOTE, RoTTA 和论文提出的 TRIBE 超过了 TEST 的基准线表明了真实测试流下更加鲁棒的 TTA 方法的必要性
2.全局类别不平衡对现有的 TTA 方法带来了巨大挑战如先前的 SOTA 方法 RoTTA 在 I.F.1 时表现为错误率 25.20% 但在 I.F.200 时错误率升到了 32.45%相比之下TRIBE 能稳定地展示相对较好的性能。
3. TRIBE 的一致性具有绝对优势超越了先前的所有方法并在全局类别平衡的设定下 (I.F.1) 超越先前 SOTA (TTAC) 约 7%在更加困难的全局类别不平衡 (I.F.200) 的设定下获得了约 13% 的性能提升。
4.从 I.F.10 到 I.F.200其他 TTA 方法随着不平衡度增加呈现性能下跌的趋势。而 TRIBE 能维持较为稳定的性能表现。这归因于引入了平衡批归一化层更好地考虑了严重的类别不平衡和锚定损失这避免了跨不同领域的过度适应。
更多数据集的结果可查阅论文原文。
此外表 4 展示了详细的模块化消融有以下几个观测性结论 1.仅将 BN 替换成平衡批归一化层 (Balanced BN)不更新任何模型参数只通过 forward 更新 BN 统计量就能带来 10.24% (44.62 - 34.28) 的性能提升并超越了 Robust BN 的错误率 41.97%。
2.Anchored Loss 结合 Self-Training无论是在之前 BN 结构下还是最新的 Balanced BN 结构下都得到了性能的提升并超越了 EMA Model 的正则化效果。
本文的其余部分和长达 9 页的附录最终呈现了 17 个详细表格结果从多个维度展示了 TRIBE 的稳定性、鲁棒性和优越性。附录中也含有对平衡批归一化层的更加详细的理论推导和解释。
总结和展望
为应对真实世界中 non-i.i.d. 测试数据流、全局类不平衡和持续的领域转移等诸多挑战研究团队深入探索了如何改进测试时领域适应算法的鲁棒性。为了适应不平衡的测试数据作者提出了一个平衡批归一化层Balanced Batchnorm Layer以实现对统计量的无偏估计进而提出了一种包含学生网络、教师网络和锚定网络的三层网络结构以规范基于自我训练的 TTA。
但本文仍然存在不足和改进的空间由于大量的实验和出发点都基于分类任务和 BN 模块因此对于其他任务和基于 Transformer 模型的适配程度仍然未知。这些问题值得后续工作进一步研究和探索。 #vis_dec_neurips
来自鲁汶大学、新加坡国立大学和中科院自动化所的研究者提出了一种视觉 「读脑术」能够从人类的大脑活动中以高分辨率出解析出人眼观看到的图像。
人类的感知不仅由客观刺激塑造而且深受过往经验的影响这些共同促成了大脑中的复杂活动。在认知神经科学领域解码大脑活动中的视觉信息成为了一项关键任务。功能性磁共振成像fMRI作为一种高效的非侵入性技术在恢复和分析视觉信息如图像类别方面发挥着重要作用。
然而由于 fMRI 信号的噪声特性和大脑视觉表征的复杂性这一任务面临着不小的挑战。针对这一问题本文提出了一个双阶段 fMRI 表征学习框架旨在识别并去除大脑活动中的噪声并专注于解析对视觉重建至关重要的神经激活模式成功从大脑活动中重建出高分辨率且语义上准确的图像。
论文链接https://arxiv.org/abs/2305.17214
项目链接https://github.com/soinx0629/vis_dec_neurips/
论文中提出的方法基于双重对比学习、跨模态信息交叉及扩散模型在相关 fMRI 数据集上取得了相对于以往最好模型接近 40% 的评测指标提升在生成图像的质量、可读性及语义相关性相对于已有方法均有肉眼可感知的提升。该工作有助于理解人脑的视觉感知机制有益于推动视觉的脑机接口技术的研究。相关代码均已开源。
功能性磁共振成像fMRI虽广泛用于解析神经反应但从其数据中准确重建视觉图像仍具挑战主要因为 fMRI 数据包含多种来源的噪声这些噪声可能掩盖神经激活模式增加解码难度。此外视觉刺激引发的神经反应过程复杂多阶段使得 fMRI 信号呈现非线性的复杂叠加难以逆转并解码。
传统的神经解码方式例如岭回归尽管被用于将 fMRI 信号与相应刺激关联却常常无法有效捕捉刺激和神经反应之间的非线性关系。近期深度学习技术如生成对抗网络GAN和潜在扩散模型LDMs已被采用以更准确地建模这种复杂关系。然而将视觉相关的大脑活动从噪声中分离出来并准确进行解码依然是该领域的主要挑战之一。
为了应对这些挑战该工作提出了一个双阶段 fMRI 表征学习框架该方法能够有效识别并去除大脑活动中的噪声并专注于解析对视觉重建至关重要的神经激活模式。该方法在生成高分辨率及语义准确的图像方面其 50 分类的 Top-1 准确率超过现有最先进技术 39.34%。
方法概述
fMRI 表征学习 (FRL) 第一阶段预训练双对比掩模自动编码器 (DC-MAE) 第二阶段使用跨模态指导进行调整
考虑到 fMRI 记录的信噪比较低且高度卷积的特性专注于与视觉处理最相关且对重建最有信息价值的大脑激活模式对 fMRI 特征学习器来说至关重要。 使用潜在扩散模型 (LDM) 生成图像 实验
重建结果 通过与 DC-LDM、IC-GAN 和 SS-AE 等先前研究的对比并在 GOD 和 BOLD5000 数据集上的评估中显示该研究提出的模型在准确率上显著超过这些模型其中相对于 DC-LDM 和 IC-GAN 分别提高了 39.34% 和 66.7% 在 GOD 数据集的其他四名受试者上的评估显示即使在允许 DC-LDM 在测试集上进行调整的情况下该研究提出的模型在 50 种方式的 Top-1 分类准确率上也显著优于 DC-LDM证明了提出的模型在不同受试者大脑活动重建方面的可靠性和优越性。
实验结果表明利用所提出的 fMRI 表示学习框架和预先训练的 LDM可以更好的重建大脑的视觉活动大大优于目前的基线。该工作有助于进一步挖掘神经解码模型的潜力。