论文笔记|PID Controller-Based Stochastic Optimization Acceleration for Deep Neural Networks(一)

论文:sci-hub.tf/10.1109/tnnls.2019.2963066
代码:https://github.com/tensorboy/PIDOptimizer

Abstract

深度神经网络(DNNs)在计算机视觉和模式识别等领域得到了广泛的应用。然而,训练这些网络会耗费时间。这样的问题可以通过使用有效的优化器来缓解。
作为最常用的优化器之一,随机梯度下降-动量(SGD-M)使用过去
现在的梯度
进行参数更新。然而,在网络训练过程中,SGD-M可能会遇到一些缺陷,如超调现象。这个问题会减缓训练的收敛速度。为了缓解这一问题并加速DNN优化的收敛速度,我们提出了一种比例积分微分(PID)方法。

Ⅰ.Introduction

学习率是DNN训练一个主要的超参数。基于不同的选择策略的学习率,优化器款可以分为两组:
1)手工调整学习速率优化器,如随机梯度下降法(SGD) , SGD-momentum (SGD-M) , Nesterov动量等等。
2)自动学习率优化器,如AdaGrad,RMSProp , Adam等。

SGD-M方法考虑过去和现在的梯度,然后更新网络参数。虽然SGD-M在大多数情况下表现良好,但它可能会出现超调现象,即权值过多超过目标值,无法纠正其更新方向的情况。这种过度问题花费更多的资源(例如,时间和gpu)来训练一个款也妨碍了SGD-M的收敛。因此,迫切需要一种更高效的DNN优化器来缓解超调问题,实现更好的收敛。

本文提出了一种基于pid的DNN训练优化方法。与SGD-M相似,我们提出的PID优化器也考虑了网络更新的过去和现在的梯度。进一步引入了拉普拉斯变换进行超参数初始化,使方法简单有效。

论文的主要工作:
1)通过将反馈控制系统中的误差计算与网络参数的更新相结合,揭示了DNN优化与反馈系统控制之间的潜在关系。我们还发现一些优化器(如SGD-M)是PID控制装置的特殊情况。

2)我们提出了一种基于PID的DNN优化方法,考虑了梯度的过去、当前和变化信息。超参数在我们的PID优化器是由经典拉普拉斯变换初始化。

3)我们用我们提出的PID优化器在CIFAR10, CIFAR100, Tiny-ImageNet和PTB数据集上进行了系统的实验。结果表明,PID优化器比SGD-M优化器在DNN训练过程中速度更快

Ⅱ.Related Works

A.经典的深度神经网络架构

(1)CNN:卷积神经网络(CNNs)最近在视觉识别任务方面取得了很大的成功,包括图像分类[26]、目标检测[27]-[29]、场景解析[30]。最近,很多CNN架构:如VGG ResNet, DenseNet,提出了改善这些任务上面提到的性能。网络深度往往会提高网络性能。然而,这些深度网络的计算成本也显著增加。

(2)GAN:Goodfellow等人首先提出了生成对抗网络(GAN),它由生成对抗网络组成。生成器试图获得非常真实的输出来愚弄鉴别器,鉴别器将被优化来区分真实数据和生成的输出。GANs将被训练成生成合成数据,模拟真实的数据分布。

由于GANs中存在多个损失函数,必须同时进行优化,这是一个具有挑战性的优化问题。GAN的优化分为两个步骤:
1)在固定生成网络的同时优化判别网络

2)在固定生成网络的同时优化生成网络。在这里,修复网络意味着只允许网络向前传递,而不执行反向传播。这两个步骤无缝地交替、更新,并相互依赖以实现有效的优化。经过足够的训练周期后,中引入的优化目标V (D, G)会达到生成器的概率分布与训练数据的真实概率分布完全匹配的情况。

(3)LSTM: Hochreiter等人首先提出了长短期网络(long short term network,简称LSTM),从网络中获取长期依赖信息。作为一种递归神经网络(RNN), LSTM在许多应用中得到了广泛的应用并取得了良好的成功。LSTM的设计是为了避免长期依赖问题。请记住,长期信息是LSTM在实践中的默认行为,而不是以很高的成本获得信息的能力。所有的网络网络都有一个链式的重复网络模块。在标准的RNN中,这个重复模块通常有一个简单的结构(例如,“tanh”层)。利用所有LSTM单元的输出构建一个新的特征,其中引入多项logistic回归形成LSTM模型

评价RNN模型的一种常用方法是加法任务,它取两个长度为T的序列为输入。通过在(0,1)范围内均匀采样,我们形成第一个序列。对于另一个序列,我们设置了两个条目剩下的都是0。输出由两个相加得到第一个序列中的条目。元素的位置是由第二个序列中1的两个元素确定。

B.加快DNNs的培训/测试进程

1)训练过程加速:论文提出了一种深度压缩方法,可以在不影响精度的情况下,将DNNs的存储需求降低、压错模型层加速、得到更好的能源效果;利用权值共享和霍夫曼编码对网络进行量化。本文主要尝试减少神经网络的参数数量;提出了网络瘦身技术,可以同时减小模型大小、运行时内存和计算操作;提出了一种新的基于几何中值的滤波剪枝策略来加速深度cnn的训练;提出了一种合成工具来合成紧凑而准确的DNNs。提出了一种连续增长和修剪(CGaP)方案,从一开始就将冗余最小化。引入了一种训练量化神经网络的方法,在前传过程中减少内存大小和访问。还给出了一个直观且更容易调谐的ASGD版本,并表明ASGD在精度上显著快于SGD、heavy ball和Nesterov’s momentum。

2)提出了一种压缩所有卷积层的方法:这是通过逼近适当的低秩,然后更新上层,直到预测结果增强来实现的。该过程基于奇异值分解(singular value decompositions, SVDs),包括大量张量分解操作和利用所学特征间相似性的滤波聚类方法。Jaderberget引入了置信实现方法,可以显著加快预训练CNN用最少的修改现有的框架。这可能会导致性能方面的小损失,但这是可以调优到所需的精度级别的。首先提出了一种响应重构方法,该方法引入了非线性神经元和低秩约束。在不使用SGD的情况下,基于广义奇异值分解(GSVD),给出了该非线性问题的求解方法。其提出了一种对相对低权值大小的滤波器进行修剪的方法,从而在不引入不规则稀疏性的情况下产生计算成本较低的CNN。

C.深度学习优化

本文的重点是对第一类的改进优化器。对这些优化器的介绍如下:
1)GDS是一种广泛使用的DNN培训优化器。SGD易于应用,但SGD的缺点是它收敛缓慢,并可能在鞍点振动。此外,如何合理选择学习率也是一个重要问题SGD的主要困难。

2)SGD-M[12]是一种考虑动量的优化方法。与原来的梯度下降步骤相比,SGD-M引入了与前一步相关的变量。这意味着参数更新的方向不仅由当前的梯度决定,而且由之前的累积下降方向决定。这允许参数在梯度变化频繁的方向上改变一点。相反,SGD-M在梯度变化缓慢的方向上参数变化很大。

3)Nesterov’s momentum是另一个动量的论述出于Nesterov耦合算法的加速梯度法。改进了SGD算法的动量,使得每个参数更新的方向不仅取决于当前位置的梯度,还取决于最后一次参数更新的方向。换句话说,Nesterov’s momentum本质上使用了目标的二阶信息(损失函数)。

D . PID控制器

传统上采用PID控制器进行控制利用现在过去未来的信息预测误差。

我们将实际输出和期望输出之间的差定义为误差e(t)。PID控制器计算每一步t的误差e(t),然后将修正u(t)作为e(t)的比例(P)、积分(I)和导数(D)项的函数应用于系统。数学上,PID控制器可以被描述为:

Ⅲ.PID和深度神经网络优化

A.整体联系

DNNs需要通过参数填充将输入x映射到输出y。为了测量DNN输出与期望输出之间的差距,引入了损耗函数L。给定一些训练数据,我们可以计算出损失函数L(residual, Xtrain)。为了使损失函数L最小,我们求出损失函数L对参数θ的导数,并在大多数情况下用梯度下降法更新θ,DNN通过不断地更新参数循环数来逐步学习输入x和输出y之间的复杂关系,称为DNN的训练。由损失函数的梯度来驱动子函数的更新,直到其收敛。

自动化控制系统的目的是评估系统的状态,并使其通过控制器达到预期的状态。在反馈控制系统中,控制器的动作受系统输出的影响。考虑被测系统状态与期望状态之间的误差e(t),使控制器能使系统接近期望状态。

图中分别给出了它们的流程图,我们可以更直观地看到它们的相似性。根据输出和目标之间的差异,它们都会改变系统/网络。PID控制器中的负反馈过程类似于DNNs优化中的反向传播过程。

B.SGD

在DNN训练中,有广泛使用的优化器,如SGD和它的变种。SGD的参数更新规则从t到t + 1的迭代由

其中r为学习率。我们现在考虑梯度∂Lt/∂f t作为PID控制系统中的误差e(t)比较通过(1)中的PID控制器,我们发现SGD可以被看作为一种Kp = r的P控制器。

C.SGD -Momentum

SGD- m比SGD训练DNN更快,因为它可以使用历史梯度。SGD-M更新参数的规则是由

其中,Vt是一个累积历史梯度的术语。α∈(0,1)是平衡过去和当前梯度的因子。它通常被设置为0.9。经过变换得出SGD-M为Kp = r和Ki = r的PI控制器。

我们可以清楚地看到网络参数的更新依赖于当前的梯度和过去的梯度。应该注意的是,其包含了一个衰减因子。由于训练数据数量巨大,最好基于小批量的训练数据来计算梯度。因此,梯度的行为是随机的。引入衰减项的目的是使梯度远离当前值,从而减轻噪声。

D. Nesterov’s Momentum

在SGD算法的基础上进行了改进考虑目标的二阶信息(损失)函数),因此,它可以加速收敛更好。我们将更新规则设置为

通过推导可得到:

我们可以得出结论,网络参数更新考虑了当前梯度(P控制)和过去梯度的积分(I控制)。如果我们假设α= 1,那么:

我们可以证明Nesterov’s Momentum是Kp = 2r,Ki = r的PI控制器。此外,与SGD-M相比,Nesterov’s Momentum会利用目前的梯度和过去梯度的积分来更新网络参数,但获得更大的增益系数Kp。

Ⅳ.PID-BASED DNN OPTIMIZATION

A. Overshoot Problem of SGD-Momentum

参数的更新可能是在错误的路径,如果历史梯度滞后更新的参数。根据离散时间控制系统中“从系统期望响应测得的响应曲线的最大峰值”的定义,这种现象称为超调.具体来说,可以写成

其中θmax and θ ∗分别为最大值和最优值。


模拟结果如图所示,其中损耗等值线图作为背景。越红,损失函数值越大。而颜色越蓝,损失函数值越小。x轴和y轴分别表示x1和x2。x1和x2都被初始化为- 10。我们用红线和黄线分别表示PID和SGD-M的路径。很明显,SGD-M优化器存在超调问题。通过逐渐增加Kd(分别为0.1、0.5和0.93),我们的PID优化器使用了更多的“未来”错误,从而在很大程度上减轻了超调问题。

B.超参数Kd的初始化

我们可以从上式中了解到,提出的PID优化器中引入了一个超参数Kd。我们通过引入拉普拉斯变换理论和Ziegler-Nichols调优方法来初始化Kd,通过拉普拉斯变换转换函数的变化 t复变函数s。最常见的用法是把时间转化为频率。把f (t)的拉普拉斯变换记作f (s)有

推导出标准的闭环传递函数[为

sin(ωn(1−ζ2)1/2t +arccos(ζ))给重量带来周期性振荡变化,重量不大于1。这个词e−ζωt n主要控制收敛速度。值得注意的是,在计算导数时,超参数Kd的值,

通过以上分析,我们知道使用大的导数可以加速DNN的训练。但另一方面,如果Kd太大,整个体系就会变得脆弱,根据Ziegler-Nichols规则,Kd的理想设置应该是振荡周期(T)的三分之一,也就是说Kd = (1/3)T。

很明显,随着超调量的增加,函数的值单调递减。那么,Ki是超调的单调递增函数。总而言之,历史错误(积分部分)越多,系统的超调问题就越多。这就很好地解释了为什么SGD - M射过靶,需要更多的训练时间。

Ⅴ 总结

由于PID控制器在自动控制领域的出色性能,我们揭示了PID控制器与随机优化器及其变量之间的联系。然后,我们提出了一种新的PID优化器用于DNN训练。所提出的PID优化器结合当前、过去和梯度变化信息更新参数,减少了SGD-M的超调现象,加快了DNNs的训练过程。我们在使用MNIST、CIFAR和Tiny-ImageNet数据集的图像识别任务和使用PTB数据集的LSTM任务上的实验验证了该PID优化器比SGD-M快30% - 50%,同时获得更低的错误率。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐