论文笔记
资料
1.代码地址
https://github.com/google-research/sam
https://github.com/davda54/sam
2.论文地址
https://arxiv.org/abs/2010.01412
3.数据集地址
论文摘要的翻译
在当今严重过度参数化的模型中,训练损失的值很难保证模型的泛化能力。事实上,像通常所做的那样,只优化训练损失值很容易导致次优的模型质量。受损失的几何图像与泛化相结合的前人工作的启发,我们引入了一种新的、有效的同时最小化损失值和损失锐度的方法。特别是,我们的方法,锐度感知最小化(SAM),寻找位于具有一致低损失的邻域的参数;这个公式致使一个最小值-最大值的优化问题,在该问题上可以有效地执行梯度下降。我们提出的经验结果表明,SAM提高了各种基准数据集(例如,CIFAR-{10,100}、ImageNet、微调任务)和模型的模型泛化能力,为几个数据集带来了新的最先进的性能。此外,我们发现SAM原生地提供了对标签噪声的鲁棒性,这与专门针对带有噪声标签的学习的过程所提供的鲁棒性不相上下。
1背景
现代机器学习成功地在广泛的任务中实现了越来越好的性能,这在很大程度上取决于越来越重的过度参数化,以及开发越来越有效的训练算法,这些算法能够找到很好地泛化的参数。事实上,许多现代神经网络可以很容易地记住训练数据,并具有容易过拟合的能力。目前需要这种严重的过度参数化才能在各种领域实现最先进的结果。反过来,至关重要的是,使用程序来训练这些模型,以确保实际选择的参数事实上超越了训练集。
不幸的是,简单地最小化训练集上常用的损失函数(例如,交叉熵)通常不足以实现令人满意的泛化。今天的模型的训练损失景观通常是复杂的和非凸的,具有多个局部和全局极小值,并且具有不同的全局极小值产生具有不同泛化能力的模型。因此,从许多可用的(例如,随机梯度下降、Adam)、RMSProp和其他中选择优化器(和相关的优化器设置)已成为一个重要的设计选择,尽管对其与模型泛化的关系的理解仍处于初级阶段。与此相关的是,已经提出了一系列修改训练过程的方法,包括dropout,批量归一化、随机深度、数据增强和混合样本增强.
损失图像的几何形状——特别是最小值的平坦性和泛化之间的联系已经从理论和实证的角度进行了广泛的研究)。虽然这种联系有望实现新的模型训练方法,从而产生更好的泛化能力,但迄今为止,专门寻找更平坦的最小值并进一步有效提高一系列最先进模型泛化能力的实用高效算法一直难以实现;我们在第5节中对先前的工作进行了更详细的讨论)。
2论文的创新点
- 我们引入了锐度感知最小化(SAM),这是一种新的方法,通过同时最小化损失值和锐度来提高模型的泛化能力。SAM通过寻找位于具有一致低损耗值的邻域中的参数(而不是仅具有低损耗值的参数,如图1的中间和右侧图像所示)来工作,并且可以高效且容易地实现。
- 我们通过一项严格的实证研究表明,使用SAM提高了一系列广泛研究的计算机视觉任务(例如,CIFAR-{10,100},ImageNet,微调任务)和模型的模型泛化能力,如图1的左侧曲线图中总结的。例如,应用SAM为许多已经深入研究的任务,如ImageNet,CIFAR-{10,100},SVHN,Fashion-MNIST,和标准的图像分类微调任务集(例如,Flowers,Stanford Cars,Oxford Pets,等)产生了新的最先进的性能。
- 我们还表明,SAM进一步提供了标签噪声的稳健性,与专门针对带有噪声标签的学习的最先进的程序所提供的一样。
- 通过SAM提供的视角,我们提出了一个很有使用价值的锐度的新概念,我们称之为m-锐度,从而进一步阐明了损失锐度和泛化之间的联系。
3 论文方法的概述
在本文中,我们将标量表示为 a a a,将向量表示为 a \mathbf{a} a、将矩阵表示为 A \Alpha A、将集合表示为 A \mathcal A A,将等式定义为,。给定训练数据集 S ≜ ∪ i = 1 n { ( x i , y i ) } \mathcal{S}\triangleq\cup_{i=1}^n\{(x_i,y_i)\} S≜∪i=1n{(xi,yi)}从分布 D , \mathscr{D}, D,,中i.i.d.绘制,我们寻求学习一个很好地泛化的模型。特别地,考虑一组由 w ∈ W ⊆ R d w\in\mathcal{W}\subseteq\mathbb{R}^d w∈W⊆Rd参数化的模型;给定一个逐数据点损失函数 l : W × X × Y → R + l:\mathcal{W}\times\mathcal{X}\times\mathcal{Y}\to\mathbb{R}_+ l:W×X×Y→R+,我们定义了训练集损失 L S ( w ) ≜ 1 n ∑ i = 1 n l ( w , x i , y i ) L_S(\boldsymbol{w})\triangleq\frac1n\sum_{i=1}^nl(\boldsymbol{w},\boldsymbol{x}_i,\boldsymbol{y}_i) LS(w)≜n1∑i=1nl(w,xi,yi)和总体损失 L D ( w ) ≜ E ( x , y ) ∼ D [ l ( w , x , y ) ] L_{\mathscr{D}}(\boldsymbol{w})\triangleq\mathbb{E}_{(\boldsymbol{x},\boldsymbol{y})\thicksim D}[l(\boldsymbol{w},\boldsymbol{x},\boldsymbol{y})] LD(w)≜E(x,y)∼D[l(w,x,y)]。在仅观察到 S \mathcal S S的情况下,模型训练的目标是选择具有低总体损失 L D ( w ) L_{\mathscr{D}}(\boldsymbol{w}) LD(w)的模型参数 w w w。
利用 L S ( w ) 作为 L D ( w ) L_S(\boldsymbol{w})作为L_{\mathscr{D}}(\boldsymbol{w}) LS(w)作为LD(w)的估计,通过使用诸如SGD或Adam之类的优化过程来求解 m i n w L S ( w ) min_w L_S(\boldsymbol{w}) minwLS(w)(可能与w上的正则化子结合)来激励选择参数w的标准方法。然而,不幸的是,对于现代的过度参数化模型,如深度神经网络,典型的优化方法很容易在测试时导致次优性能。特别地,对于现代模型, L S ( w ) L_S(\boldsymbol{w})