【深度学习】随机权值平均(一种获得深度学习艺术效果的新方法)

在本文中,我将讨论两篇有趣的近期论文,这些论文通过使用智能的集合方式提供了一种简单的方法来提高任何给定神经网络的性能。他们是:

  1. “ 损耗表面,模式连通性和DNN的快速集成 ”,Garipov等。人
  2. Izmailov等人的“ 平均权重导致更广泛的最优和更广泛的推广 ”。人

额外的先决条件阅读将使这篇文章的上下文更容易理解:

传统的神经网络集成

传统的集成结合了几种不同的模型,并使它们在相同的输入上进行预测。然后使用某种平均方法来确定整体的最终预测。它可以是简单的投票,平均甚至是另一个模型,它可以根据集合中模型的输入来学习预测正确的值或标签。岭回归是组合多个预测的一种特殊方式,这些预测由Kaggle获胜的机器学习从业者使用

每次学习速率周期结束时,通过保存模型来创建快照集成。然后在预测期间一起使用保存的模型,来源

当应用于深度学习时,可以使用集成来组合若干神经网络的预测以产生一个最终预测。通常,在整体中使用不同架构的神经网络是个好主意,因为它们可能会在不同的训练样本上出错,因此整合的好处会更大。

快照集合使用循环学习速率和退火,来源

但是,您也可以使用相同的架构集合模型,它会产生令人惊讶的好结果。在快照集成文件中提出了一种利用这种方法的非常酷的技巧。作者在训练同一网络时进行权重快照,然后在训练之后创建一个具有相同结构但权重不同的网络集合。这样可以提高测试性能,这也是一种非常便宜的方式,因为您只需训练一个模型一次,只是不时地保存重量。

您可以参考这篇精彩帖子了解更多详情。如果你还没有使用周期性学习率,那么你肯定应该,因为它成为标准的最先进的训练技术,非常简单,计算量很大,并且几乎不需要额外的费用就可以获得显着的收益。

上面的所有例子都是模型空间中的集合,因为它们组合了几个模型,然后使用模型的预测来产生最终预测。

然而,在我在这篇文章中讨论的论文中,作者提出在权重空间中使用新颖的集合。该方法通过在训练的不同阶段组合相同网络的权重来产生集合,然后使用具有组合权重的该模型来进行预测。这种方法有两个好处:

  • 当组合权重时,我们仍然在最后得到一个模型,这加快了预测
  • 事实证明,这种方法胜过当前最先进的快照集合

让我们看看它是如何工作的。但首先,我们需要了解有关损耗表面和可推广解决方案的一些重要事实。

重量空间中的解决方案

第一个重要的见解是训练有素的网络是多维权重空间中的一个。对于给定的体系结构,网络权重的每个不同组合产生单独的模型。由于任何给定架构都有无限多种权重组合,因此会有无限多种解决方案。训练神经网络的目的是找到一种特定的解决方案(重量空间中的点),它将在训练和测试数据集上提供低损失函数值。

在训练期间,通过改变权重,训练算法改变网络并在权重空间中行进。梯度下降算法在该空间中的损耗平面上行进,其中平面高度由损失函数的值给出。

 

窄极值和宽极值

很难想象和理解多维权重空间的几何形状。同时,理解它是非常重要的,因为随机梯度下降在训练期间基本上遍历这个高度多维空间中的损失表面并试图找到一个好的解决方案 - 损失表面上的损失值低的“点”。众所周知,这种表面具有许多局部最佳值。但事实证明,并非所有这些都同样好。

Hinton:“要处理14维空间中的超平面,想象一个三维空间,并对自己大声说”十四“。每个人都这样做。“( 来源

狭窄和广泛的最佳。最小平面将在训练和测试期间产生类似的损失。然而,狭窄的损失会在训练和测试期间产生非常不同的结果。换句话说,宽度最小值比窄度更宽泛。 来源

可以区分好的解决方案和坏的解决方案的一个指标是它的平坦度。想法是训练数据集和测试数据集将产生类似但不完全相同的损失表面。您可以想象测试表面相对于列车表面稍微移动一点。对于一个狭窄的解决方案,在测试时间内,由于这种转变,产生低损耗的点可能会有很大的损失。这意味着这种“狭窄”的解决方案没有很好地概括 - 培训损失很低,而测试损失很大。另一方面,对于“宽”且扁平的解决方案,这种转变将导致训练和测试损失彼此接近。

我解释了窄解决方案和广泛解决方案之间的区别,因为作为这篇文章重点的新方法导致了很好的和广泛的解决方案。

 

快照集成

最初,新加坡元将在重量空间大幅增长。然后,当由于余弦退火导致学习速率变小时,SGD将收敛到某个局部解,并且算法将通过将其添加到整体来获取模型的“快照”。然后再次将速率重置为高值,并且在收敛到某个不同的本地解决方案之前,SGD再次大幅跳跃。

快照集成方法中的周期长度为20到40个时期。长学习率周期的想法是能够在权重空间中找到足够不同的模型。如果模型太相似,那么整体中单独网络的预测将会过于接近,并且集合的好处将可以忽略不计。

快照集成效果非常好,可以提高模型性能,但快速几何集成效果更好。

 

快速几何集成(FGE)

快速几何集成与快照集成非常相似,但具有一些显着特征。它使用线性分段循环学习速率表而不是余弦。其次,FGE的周期长度要短得多 - 每个周期只有2到4个时期。首先是直觉,短周期是错误的,因为每个周期结束时的模型将彼此接近,因此合并它们将不会带来任何好处。然而,正如作者所发现的那样,因为在充分不同的模型之间存在低损耗的连通路径,所以可以以小步长沿着这些路径行进,并且所遇到的模型将足够不同以允许将它们集合起来具有良好的结果。从而,与快照集合相比,FGE显示出改进,并且它需要更小的步骤才能找到模型(这使得训练更快)。

左:传统的直觉是良好的局部最小值被高损失的区域分开。如果我们沿着连接当地最小值的线路旅行,情况就是如此。MIDDLE和RIGHT:然而,在局部最小值之间存在路径,使得损失在这些路径上保持较低。FGE沿这些路径拍摄快照,并从快照中创建一个集合。来源

要从快照集成或FGE中受益,需要存储多个模型,然后在为最终预测求平均值之前对所有模型进行预测。因此,为了集合的附加性能,需要用更高的计算量来支付。所以那里没有免费的午餐。或者有吗?这是具有随机权重平均值的新论文的用武之地。

 

随机重量平均值(SWA)

随机权重平均近似于快速几何集成,但计算损失的一小部分。SWA可以应用于任何架构和数据集,并在所有架构和数据集中显示出良好的结果。该论文表明,SWA导致更宽的最小值,我上面讨论过它的好处。SWA不是其经典理解的整体。在训练结束时,您将获得一个模型,但它的性能优于快照集合并接近FGE。

左:W1,W2和W3代表3个独立训练的网络,Wswa是它们的平均值。MIDDLE:与SGD相比,Wswa在测试集上提供了卓越的性能。右:请注意,即使Wswa在训练期间表现出更糟糕的损失,它也会更好地概括。 来源

SWA的直觉来自经验观察,即每个学习速率周期结束时的局部最小值倾向于累积在损失面低的区域的边界处(点W1,W2和W3位于红色区域的边界处)上图左图中的低损耗)。通过取几个这样的点的平均值,可以实现具有更低损耗的宽泛的通用解决方案(上图左侧的Wswa)。

下面是它的工作原理。而不是许多模型的集合,你只需要两个模型:

  • 存储模型权重的运行平均值的第一个模型(公式中的w_swa)。这将是培训结束后用于预测的最终模型。
  • 第二个模型(公式中的w)将遍历权重空间,使用循环学习速率计划进行探索。

随机权重平均权重更新方程。来源

在每个学习速率周期结束时,第二个模型的当前权重将用于通过从旧的运行平均权重和第二个模型中的新权重集之间的加权平均值来更新运行平均模型的权重(公式)在左边的图中提供)。通过遵循这种方法,您只需要训练一个模型,并在训练期间仅在内存中存储两个模型。对于预测,您只需要运行平均模型,并且预测它比使用上面描述的集合要快得多,其中您使用许多模型来预测并平均结果。

 

实现

本文的作者在PyTorch中提供了自己的实现

此外,SWA是在每个人都应该使用的令人敬畏的fast.ai库中实现的。如果你还没有看到他们的课程,然后跟着  链接

 原文:https://towardsdatascience.com/stochastic-weight-averaging-a-new-way-to-get-state-of-the-art-results-in-deep-learning-c639ccf36a

猜你喜欢

转载自blog.csdn.net/ChenVast/article/details/82142540
今日推荐