【论文阅读】Learning to learn by gradient descent by gradient descent-通过梯度下降学习如何学习梯度下降

本文探讨了将优化算法设计视为学习问题,通过LSTM实现的自适应优化器,它能自动学习并优化目标函数,表现出色且具有良好的泛化能力。研究者构建了基于RNN的优化器,通过学习梯度更新规则,与传统优化方法相比,如SGD、RMSprop、ADAM和NAG,学习到的优化器在各种任务中显示出优势。
摘要由CSDN通过智能技术生成

摘要

        本文将优化算法的设计视作一个学习问题,通过LSTM实现的学习算法,使得算法能够自动学习如何利用所关注问题中的结构,其表现优于手工设计的算法,并且有很好的泛化能力。

1 引言

        通常情况下,机器学习中的任务可以被表达为在某个定义域 θ ∈ Θ 上优化目标函数 f(θ) 的问题。在这种情况下,目标是找到最小化器 θ ∗ = arg minθ∈Θ f(θ)。能够最小化这个目标函数的方法有很多,但对于可微函数来说,标准的方法就是使用某种形式的梯度下降,得到一系列更新。

        然而,简单的梯度下降的性能受到了一个事实的阻碍,即它仅利用梯度并忽略二阶信息。经典的优化技术通过使用曲率信息来校正这种行为,通常是通过二阶偏导数的Hessian矩阵来实现——尽管也可以选择其他选择,如广义的高斯-牛顿矩阵或费舍尔信息矩阵。也包括动量法(为SGD加动量参数)。

        本文中, 作者采取了不同的方法,提出用学习的更新规则替代手动设计的更新规则,并将其称之为优化器g,并用自己的参数集ϕ来详细说明。这样可以得到对优化对象f的更新形式。

        这一过程的高层视图如图1所示。在接下来的内容中,将使用递归神经网络 (RNN) 显式地建模更新规则g,该网络会保持自己的状态并且动态地根据其迭代更新。

2 学习用循环神经网络(RNN)学习

        在这项工作中,我们考虑直接参数化优化器。因此,稍微滥用符号,将最终优化参数 θ∗(f, φ) 表示为 φ (优化器参数)和所讨论的函数的函数。

        给定函数 f 的分布,我们将预期损失写为

        正如前面所提到的,我们将采取更新步骤gt作为由参数化为ϕ的循环神经网络m的输出,其状态明确表示为ht。接下来,虽然目标函数(2)只依赖于最终参数值,但为了训练优化器,我们需要一个依赖于整个优化轨迹的目标函数,对于某个时间范围T,

        这里,wt ∈ R≥0 是与每个时间步相关的任意权重,我们还将使用记号 ∇t = ∇θf(θt)。当 wt = 1[t = T] 时,这个表述等价于公式 (2),但之后我们将说明为什么使用不同的权重可能会有用。 


【备注】:对于上述的理解(基于chatgpt)

        当我们谈论优化问题时,通常的做法是给定一个函数f和一组初始参数θ0,然后通过迭代更新参数来最小化这个函数的损失。传统的优化算法将参数更新视为黑盒子,它们通过一些事先定义好的规则来进行参数更新。

        但是在这篇论文中,作者提出了一种不同的思路,他们试图直接参数化优化过程。他们引入了一个新的优化器,该优化器的参数被称为φ。优化器的目标是找到最佳的参数设置φ,以使得对于给定的函数分布f,在迭代一定次数后达到最小化损失的效果。为了实现这一目标,作者设计了一个递归神经网络m,它被用于计算参数更新步骤gt。这个递归神经网络的参数φ控制着整个优化过程。

        论文中引入了一组新的符号来描述这个优化过程。θ∗(f, φ)表示给定函数f和优化器参数φ时的最终优化参数。作者通过在损失函数L(φ)中引入期望操作,将优化问题表述为对函数分布f的期望损失。这里的损失函数L(φ)表示在一定的优化时间步骤T内,通过对每个时间步骤的函数值f(θt)进行加权求和来衡量优化的效果。每个时间步骤的参数更新规则是由递归神经网络m(∇t, ht, φ)决定的,其中∇t表示在当前参数θt处函数f的梯度,ht表示递归神经网络m的状态。

        总之,这段论文的核心思想是直接对优化器进行参数化,并引入递归神经网络来进行参数更新,并通过最小化期望损失函数L(φ)来寻找最佳的优化器参数设置φ,以达到最小化函数f的目标。


        我们可以通过对 ϕ 进行梯度下降来最小化 L(ϕ) 的值。梯度估计 ∂L(ϕ) / ∂ϕ 可以通过对一个随机函数 f 进行采样,并在图 2 的计算图上应用反向传播来计算。我们允许梯度沿着图中的实线边传播,但是沿着虚线边的梯度会被舍弃。忽略沿着虚线边的梯度等于假设优化目标的梯度不依赖于优化器的参数,即 ∂∇t / ∂ϕ = 0。这个假设使我们能够避免计算 f 的二阶导数。

        考察公式(1)中的目标函数,我们可以看到梯度只在wt ≠ 0的项上为非零值。如果我们使用wt = 1[t = T]来匹配原始问题,那么轨迹前缀的梯度将为零,只有最后的优化步骤提供 了训练优化器的信息。这使得时序反向传播(BPTT)变得低效。我们通过放宽目标函数的 约束来解决这个问题,使得轨迹中间点上的wt变为正值。这改变了目标函数的形式,但允许我们在部分轨迹上训练优化器。为了简化,我们在所有的实验中都使用wt = 1。

2.1 坐标LSTM优化器

        希望能够优化至少数以万计的参数的话,使用全连接的RNN就不太可行,因为这将需要一个巨大的隐藏状态和大量的参数。

        因此作者使用一种操作目标函数参数的优化器m,类似于其他常见的更新规则,如RMSprop和ADAM。这种基于坐标的网络架构允许我们使用一个非常小的网络,它只查看单个坐标来定义优化器,并在被优化器的不同参数之间共享优化器参数。

        通过为每个目标函数参数使用单独的激活函数,可以实现每个坐标上的不同行为。除了让我们能够为这个优化器使用一个小型网络外,这种设置还具有使优化器对网络中参数顺序不变的好效果,因为相同的更新规则是独立地应用于每个坐标上。

        我们使用两层长短期记忆(LSTM)网络的 更新规则实现每个坐标的更新, 该网络采用了现在标准的遗忘门结构[Hochreiter and Schmidhuber, 1997]。网络以单个坐标的优化梯度以及先前的隐藏状态作为输入, 并输 出相应优化参数的更新。 我们将这种架构称为LSTM优化器,如图 3所示。 采用循环的方式可以使LSTM学习到动态更新规则,从而整合梯度历史信息,类似于动 量法。 这在凸优化中已经被证明具有许多理想的性质[详见,例如 Nesterov, 1983],实际上,许多最近的学习过程(如ADAM)在 更新中使用了动量。

预处理和后处理

        优化器的输入和输出在优化的函数类别不同的情况下,其量级可能会有 很大差异,但神经网络通常只对既不是太小也不是太大的输入和输出能够工作得很好。在实践中,通过使用适当的常数(在所有时间步和函数f中共享)对LSTM优化器的输入和输 出进行重新缩放就足以避免这个问题。

3 实验

        在所有实验中,训练的优化器使用两层lstm,每层有20个隐藏单元。

        每个优化器都是通过使用截断的BPTT最小化等式(3)来训练的,如第2节所述。

        最小化是用随机搜索选择学习率的ADAM来实现的。

        我们在训练优化器时使用提前停止,以避免优化器过拟合。在每个epoch(一些固定数量的学习步骤)之后,我们冻结优化器参数并评估其性能。

        我们选择最好的优化器(根据最终的验证损失),并报告它在许多新采样的测试问题上的平均性能。

        我们将训练好的优化器与深度学习中使用的标准优化器进行了比较:SGD、RMSprop、ADAM和Nesterov加速梯度(NAG)。

        对于每个优化器和每个问题,我们都调整了学习率,并以每个问题的最佳最终错误率报告结果。当一个优化器有比学习率更多的参数时(例如ADAM的衰减系数),我们使用Torch7中optim包中的默认值。所有优化参数的初始值从IID高斯分布中采样。

3.1 二次函数

        在这个实验中,我们考虑对一类简单的合成10维二次函数训练优化器。具体而言,我们考虑将函数最小化形式

        对于不同的10 × 10的矩阵W和元素来自独立同分布的高斯分布的10维向量y。优化器通过优化来自该族的随机函数进行训练,并在相同分布下重新采样的函数上进行测试。每个函数进行100步的优化,并且经过20步展开的训练优化器。我们没有使用任何预处理或后处理。

图4左图显示了不同优化器的学习曲线,这些曲线是对许多函数进行平均后得到的。每条曲线对应一个优化算法在许多测试函数上的平均性能;实线表示学习到的优化器性能,虚线表示标准基线优化器的性能。很明显,学习到的优化器在这个设置中明显优于基线。

3.2 在MNIST上训练一个小型神经网络

        在这个实验中,我们测试了可训练的优化器是否可以在MNIST上学习优化一个小型神经网络,并探索了训练过的优化器如何推广到它们所训练的函数之外的函数。为此,我们训练优化器来优化基本网络,并探索在测试时对网络架构和训练过程进行一系列修改。

        在这种情况下,目标函数 f (θ) 是参数为 θ 的小型 MLP 的交叉熵。f 的值以及梯度 ∂f (θ)/∂θ 是使用 128 个示例的随机小批量估计的。基础网络是一个 MLP,其中一个隐藏层为 20 个单元,使用 sigmoid 激活函数。不同运行之间唯一的可变性来源是小批量选择中的初始值 θ0 和随机性。每个优化运行 100 步,训练优化器展开 20 步。我们使用了附录 A 中描述的输入预处理,并将 LSTM 的输出重新缩放为 0.1 倍。

        使用不同优化器的基本网络的学习曲线显示在图 4 的中心图中。在本实验中,NAG、ADAM 和 RMSprop 的性能大致相当,LSTM 优化器的性能明显优于它们。

        图 4 中的右图比较了 LSTM 优化器的性能,如果它被允许运行 200 步,尽管已经经过训练可以优化 100 步。相比之下,我们从之前的实验中重新使用了 LSTM 优化器,在这里我们看到 LSTM 优化器在此任务中继续优于基线优化器。

对不同架构的泛化

        图 5 显示了应用 LSTM 优化器来训练具有不同架构的网络的三个示例,而不是它所训练的基础网络。修改是(从左到右)(1)具有 40 个隐藏单元而不是 20 的 MLP,(2)具有两个隐藏层的网络,而不是一个,以及(3)使用 ReLU 激活而不是 sigmoid 的网络。在前两种情况下,LSTM 优化器泛化得很好,尽管在其训练机制之外运行,但仍继续优于手工设计的基线。然而,将激活函数更改为 ReLU 会使学习过程的动力学与学习的优化器不再能够泛化的足够不同。最后,在图 6 中,我们展示了系统地改变测试架构的结果;对于 LSTM 结果,我们再次使用使用使用 1 层 20 个单元和 sigmoid 非线性训练的优化器。请注意,在这种情况下,测试集问题与训练集中的问题足够相似,我们看到比基线优化器更好的泛化。

3.3 在CIFAR-10上训练卷积网络

        接下来,我们测试了经过训练的神经优化器在优化 CIFAR-10 数据集的分类性能方面的性能 [Krizhevsky, 2009]。在这些实验中,我们使用了一个具有卷积层和前馈层的模型。特别是,用于这些实验的模型包括三个具有最大池化的卷积层,然后是具有 32 个隐藏单元的全连接层;所有非线性都是具有批量归一化的 ReLU 激活。

        第 2.1 节中介绍的坐标网络分解——并用于之前的实验——为每个优化参数利用具有共享权重的单个 LSTM 架构,但单独的隐藏状态。我们发现这种分解不足以用于本节介绍的模型架构,因为全连接层和卷积层之间的差异。相反,我们通过引入两个 LSTM 来修改优化器:一个用于全连接层的参数更新,另一个用于更新卷积层参数。与之前的 LSTM 优化器一样,我们仍然使用具有共享权重和单个隐藏状态的坐标分解,但是 LSTM 权重现在仅在相同类型的参数之间共享(即全连接与卷积)。

        该训练优化器与基线技术相比的性能如图7所示。最左边的图显示了使用优化器在保留测试集上拟合分类器的结果。右侧的另外两个图显示了经过训练的优化器在仅包含标签子集的修改后的数据集上的性能,即 CIFAR-2 数据集仅包含对应于 10 个标签中的 2 的数据。

        此外,我们还包括一个优化器 LSTM-sub,它只在保留的标签上进行训练。在所有这些示例中,我们可以看到 LSTM 优化器比基线优化器更快地学习,CIFAR-5 尤其是 CIFAR-2 数据集的性能显着提高。我们还看到,仅在数据不相交的子集上训练的优化器很难受到这种差异的影响,并且可以很好地转移到额外的数据集。

3.4 Neural Art

        最近使用卷积神经网络或神经艺术进行艺术风格迁移的工作 [Gatys et al., 2015] 为我们的方法提供了一个自然测试平台,因为每个内容和样式图像对都会产生不同的优化问题。每个神经艺术问题从内容图像 c 和风格图像 s 开始,由下式给出

        f 的最小化器是样式图像。前两个术语试图将风格图像的内容和风格与其第一个参数的内容和风格相匹配,第三个术语是一个正则化器,它鼓励风格图像中的平滑度。详细信息可以在 [Gatys et al., 2015] 中找到。 

        我们使用 ImageNet [Deng et al., 2009] 中提取的 1 个样式和 1800 个内容图像来训练优化器。我们随机选择 100 个内容图像进行测试,20 个内容图像用于验证经过训练的优化器。我们在ImageNet的64x64内容图像和一个固定的风格图像上训练优化器。然后,我们测试了它对不同风格图像和更高分辨率(128x128)的泛化能力。每个图像都针对 128 步进行了优化,训练优化器展开 32 步。图 9 显示了使用 LSTM 优化器对两个不同图像进行风格化的结果。LSTM 优化器使用附录 A 中描述的输入预处理,没有后处理。有关其他图像,请参见附录 C。

        图 8 比较了 LSTM 优化器与标准优化算法的性能。如果分辨率和风格图像与其训练的图像相同,LSTM 优化器优于所有基线优化器。此外,当在测试时改变分辨率和样式时,它继续表现得非常好。最后,在附录 B 中,我们定性地检查了学习优化器生成的步骤方向的行为。

4 结论

        我们已经展示了如何将优化算法的设计转换为学习问题,这使我们能够训练专门针对特定类别的函数的优化器。我们的实验证实,学习到的神经优化器与深度学习中使用的最先进的优化方法相比具有优势。我们见证了显着程度的转移,例如在 12,288 个参数神经艺术任务上训练的 LSTM 优化器能够同时泛化到具有 49,152 个参数、不同风格和不同内容图像的任务。在转移到 MNIST 任务中的不同架构时,我们观察到类似的结果。

        CIFAR 图像标记任务的结果表明,LSTM 优化器在转移到来自相同数据分布的数据集时优于手工设计的优化器。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值