杜佳豪编辑

百度ICML2020论文三连击,解析与改进深度学习梯度反向传播

ICML (International Conference on Machine Learning) 是机器学习领域的顶级会议,由国际机器学习学会(ICML)举办,一般在每年的7-8月召开。在ICML 2020上,百度的收录论文中有三篇与梯度下降、反向传播相关,它们进一步阐释和改进了作为深度学习基础的梯度下降与反向传播技术,分别是:

1)RIFLE: Backpropagation in Depth for Deep Transfer Learning through Re-Initializing the Fully-connected LayEr

2)On the Noisy Gradient Descent that Generalizes as SGD

3)Scalable Differential Privacy with Certified Robustness in Adversarial Learning

随着深度学习在大数据时代的应用场景越来越广泛,研究者和使用者对于神经网络准确率有越来越高的要求,这就离不开对训练神经网络梯度下降算法(Gradient Descent, GD)与反向传播算法(Backpropagation)的理解与演进。在今年被收录的RIFLE: Backpropagation in Depth for Deep Transfer Learning through Re-Initializing the Fully-connected LayEr 一文中,百度基于传统的反向传播方法提出了可以应用于深度迁移学习的RIFLE(Re-Initializing the Fully-connected LayEr)算法,使得神经网络模型的训练更充分;在On the Noisy Gradient Descent that Generalizes as SGD一文中, 作者发现不同类别SGD梯度噪音正则化模型训练的表现相当,并提出一种新颖的乘法噪音的理解,衍化成亦可适用于大批量SGD优化的算法;Scalable Differential Privacy with Certified Robustness in Adversarial Learning则应用梯度下降算法建立了差分隐私(Differential Privacy, DP)保护,对抗学习和认证稳健性之间的连结。

RIFLE算法:全连接层的再初始化,简洁有效提升准确度的新算法

传统的迁移学习中,使用预先训练的模型对深层卷积神经网络(CNN)进行微调有助于将从较大的数据集中学到的知识迁移到目标任务中。尽管目标训练数据集时常很小,迁移学习后模型的准确性也可以大大提高,但迁移学习后的模型权重通常和预训练模型权重接近,这个限制导致网络中部分参数在迭代中更新较少。为了解决这个问题,RIFLE算法应运而生。

RIFLE即Re-Initializing the Fully-connected LayEr,全连接层的再初始化。RIFLE为CNN的深层权重带来了有意义的更新,并改善了低层级的特征学习。实验表明,使用RIFLE可以显着提高深度迁移学习的准确性。在相同的场景下,RIFLE比其他已知的方法(dropout, dropconnect,stochastic depth, disturb label, cyclic learning rate等)的表现更好,测试精度可以提高0.5%–2%。经验案例和消融研究(ablation studies)进一步证实了RIFLE对于准确率的提升。图1:使用SGD优化器的RIFLE算法研究人员通过实验比较了RIFLE与已知方法的表现,以下是具体阐述。

1. 总体比较

研究人员用两种常见的精调算法,L^2和L^2-SP,测试了深度迁移学习算法。

1.1 与迁移学习的显式正则器的比较

实验发现,RIFLE稳定且显著地提升了L^2和L^2-SP两种精调算法的表现。这证明了使用RIFLE在现有显式正则器上改善深度转移学习的可行性。

1.2 与算法+显式正则器的比较

在与dropout, dropconnect, cyclic learning rate和disturb label等方法的比较下,RIFLE的表现均更好。其中dropout和disturb label也表现较好,但在多数情况下不敌RIFLE。

2. 消融研究

为了研究哪部分对RIFLE最为关键,研究人员进行了消融研究。分析研究结果得知,算法的核心基础在于再初始化全连接层,而非周期学习率(cyclic learning rate)。

3. 学习曲线的比较

通过图2的学习曲线结果,可以看到,相比于周期学习率或传统训练程序,RIFLE导致模型的训练曲线震荡更大,表明训练过程中权重有较多调整。此外,通常通过模型测试曲线的趋势来评估它的泛化能力,观察图2中各个方法在测试集上的表现,研究人员发现RIFLE这种调整可以提升深度迁移学习的泛化能力。图2:学习曲线的比较结果总结来说,百度新提出的RIFLE算法通过在精调时随机训练的方式间歇性再初始化全连接层,使深度迁移学习的模型得到更充分的训练,从而提升准确率

MSGD算法:建构对于梯度下降泛化性的行为的深层次理解

在反向传播中,梯度下降算法(Gradient Descent, GD)扮演了十分重要的角色。梯度下降(Gradient Descent, GD)是常常用于求解机器学习模型的参数的优化算法。使用梯度下降算法时,先定义损失函数,然后随机给定函数中参数的初始值,计算损失值,然后通过不断迭代的方式优化参数,在有限步数内,期望使损失函数取到最小值。对于一般的梯度下降来说,损失函数会涉及到模型中的每一个样本,导致计算量很大,于是产生了随机梯度下降(Stochastic Gradient Descent, SGD)和小批量梯度下降(Mini-batch Gradient Descent)、大批量梯度下降(Large-batch Gradient Descent)等方法。

随机梯度下降损失函数每次只会随机选取到一个样本,这就大大简化了计算流程,同时加快了运算速度。但是每次随机选取一个样本可能会造成比较大的偏差,小批量梯度下降则是从全部样本中选取一定数量的样本计算损失值来减小偏差。严格意义上,随机梯度下降,即SGD每次迭代只选取一个样本,广义来说,小批量梯度下降也有时被当作SGD的一种。

近期研究发现,SGD事实上催生了一种正则化(regularization)效果。通过比较GD、SGD、小批量SGD、大批量SGD和GLD (Gradient Langevin Dynamic)之间的泛化能力,研究人员发现SGD的泛化能力强于GD,小批量SGD的泛化能力强于大批量SGD,GLD的泛化能力无法与SGD比较。为什么会产生这些现象呢?

第一,SGD每次选取的样本有一定的随机性,这个过程会造成噪音(noise),可以将SGD看作一种每次迭代有不偏(unbiased)噪音的确定算法[1],这种噪音可以称为梯度噪音(gradient noise);第二,小批量SGD的梯度噪声要比大批量SGD的梯度噪声振幅(magnitude)更广[2][3];第三,即使调整到相同振幅,SGD噪音具有非平凡协方差结构,而不像GLD只是白噪声。

从以上讨论中可知,特定噪音可以有效对GD进行正则化

因此可以说,SGD的梯度噪音深度学习的泛化能力至关重要,过去的研究证实了振幅(magnitude)和协方差结构对梯度噪音正则化有关键意义,但是对于噪音分布(distribution)的具体情况研究人员仍然没有一个清晰的了解。百度近期的研究提出一种新的结构:使用梯度矩阵与小批量抽样产生的抽样噪音相乘,来拟合梯度噪音。最新的研究成果主要有四大贡献:

1. 提出了一种新颖的方式来模拟SGD噪音,即MSGD,使用梯度矩阵与小批量抽样产生的抽样噪音相乘。有噪音梯度下降的类别则基于抽样噪音的类别。

2. 探究了梯度噪音种类对正则化的影响:如果有合适的噪音振幅和协方差矩阵,研究人员通过理论和实验展示了噪音种类对正则化没有关键影响。

3. 修正了两种基于高斯分布的梯度正则化噪音,一种使用了(缩放后)费希尔(Fisher)协方差,另一种使用了SGD的梯度协方差作为梯度噪音的协方差。通过分析其抽样噪音发现,两种情况等价。

4. 由以上研究结果可知,噪音的类别对泛化能力的影响有限,研究人员提出了一种新的算法。这种算法针对不同类别的噪音都可以进行具有泛化能力的梯度下降。这种算法对大批量SGD的训练也同样适用,且不会对模型泛化能力造成负面影响。图3:MSGD算法

图4:小批量MSGD算法

图5:MSGD的泛化能力在图5中,横轴是迭代次数,纵轴是测试准确性。图5(a)中研究人员使用FashionMNIST作为训练集,随机抽去了1000个样本,随后训练了一个小型的卷积型网络;图5(b)中研究人员使用SVHN的25000个样本作为训练集,在没有批量标准化(batch normalization)的情况下训练了VGG-11;图5(c)中研究人员在没有应用数据增强(data augmentation)和权重衰减的情况下在CIFAR-10上面训练了ResNet-18。

为便于叙述,先介绍一些缩写:

MSGD-Fisher:协方差是(缩放后)费希尔的高斯梯度噪音MSGD。

MSGD-Cov:协方差是SGD协方差的高斯梯度噪音MSGD。

MSGD-Bernoulli:伯努利(Bernoulli)抽样噪音的MSGD。

MSGD-[Fisher-B]:使用费希尔估计的小批量样本数为B的MSGD-Fisher。

图4显示了MSGD-Cov在不同数据集和模型上的结果,这些结果表明即使分布类别不同,MSGD-Cov和传统SGD的泛化能力一样良好。更有趣的是,研究人员发现MSGD-Cov比vanilla SGD收敛得更快。

图6:小批量MSGD的泛化能力在图6中,横轴是迭代次数,纵轴是测试准确性。图6(a)中研究人员使用SVHN的25000个样本作为训练集,在没有批量标准化的情况下训练了VGG-11;图6(b)中研究人员在没有应用数据增强(data augmentation)和权重衰减的情况下在CIFAR-10上面训练了ResNet-18;图6(c)中研究人员用全套方法在CIFAR-10上训练了ResNet-18。

从图6(a)(b)中看出,采取样本量为B的大批量数据集相比大批量样本有更好的泛化能力,且收敛速度更快。即使在CIFAR-10训练ResNet-18的实际过程中,大批量MSGD-Fisher有和小批量SGD一样的泛化能力,虽然大批量SGD的表现较差一些。由此,图6中的实证结果展现出小批量MSGD在实际应用中的广阔前景。

总结来看,在百度的最新研究成果改变了传统观念中认为SGD是GD增加特定类别噪音的想法,且提出MSGD的新算法,使得其泛化性和SGD同样良好,有助于更好地理解了梯度下降的泛化性及其行为。

此外,梯度下降法在保护数据安全的领域也有应用,在百度新的研究中使用梯度下降法建立了差分隐私(Differential Privacy, DP)保护,对抗学习和认证稳健性之间的连结。 

参考文献:

[1]Bottou, L. Stochastic gradient learning in neural networks. Proceedings of Neuro-Nımes, 91(8), 1991.

[2]Hochreiter, S. and Schmidhuber, J. Flat minima. Neural Computation, 9(1):1–42, 1997. 

[3]Jastrze ̨bski, S., Kenton, Z., Arpit, D., Ballas, N., Fischer, A., Bengio, Y., and Storkey, A. Three factors influencing minima in sgd. arXiv preprint arXiv:1711.04623, 2017.

理论深度学习ICML2020百度
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

高斯分布技术

正态分布是一个非常常见的连续概率分布。由于中心极限定理(Central Limit Theorem)的广泛应用,正态分布在统计学上非常重要。中心极限定理表明,由一组独立同分布,并且具有有限的数学期望和方差的随机变量X1,X2,X3,...Xn构成的平均随机变量Y近似的服从正态分布当n趋近于无穷。另外众多物理计量是由许多独立随机过程的和构成,因而往往也具有正态分布。

VGG技术

2014年,牛津大学提出了另一种深度卷积网络VGG-Net,它相比于AlexNet有更小的卷积核和更深的层级。AlexNet前面几层用了11×11和5×5的卷积核以在图像上获取更大的感受野,而VGG采用更小的卷积核与更深的网络提升参数效率。VGG-Net 的泛化性能较好,常用于图像特征的抽取目标检测候选框生成等。VGG最大的问题就在于参数数量,VGG-19基本上是参数量最多的卷积网络架构。VGG-Net的参数主要出现在后面两个全连接层,每一层都有4096个神经元,可想而至这之间的参数会有多么庞大。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

学习曲线技术

在机器学习领域,学习曲线通常是表现学习准确率随着训练次数/时长/数据量的增长而变化的曲线

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

学习率技术

在使用不同优化器(例如随机梯度下降,Adam)神经网络相关训练中,学习速率作为一个超参数控制了权重更新的幅度,以及训练的速度和精度。学习速率太大容易导致目标(代价)函数波动较大从而难以找到最优,而弱学习速率设置太小,则会导致收敛过慢耗时太长

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

反向传播算法技术

反向传播(英语:Backpropagation,缩写为BP)是“误差反向传播”的简称,是一种与最优化方法(如梯度下降法)结合使用的,用来训练人工神经网络的常见方法。该方法计算对网络中所有权重计算损失函数的梯度。这个梯度会反馈给最优化方法,用来更新权值以最小化损失函数。 在神经网络上执行梯度下降法的主要算法。该算法会先按前向传播方式计算(并缓存)每个节点的输出值,然后再按反向传播遍历图的方式计算损失函数值相对于每个参数的偏导数。

协方差矩阵技术

在统计学与概率论中,协方差矩阵(也称离差矩阵、方差-协方差矩阵)是一个矩阵,其 i, j 位置的元素是第 i 个与第 j 个随机向量(即随机变量构成的向量)之间的协方差。这是从标量随机变量到高维度随机向量的自然推广。

梯度下降技术

梯度下降是用于查找函数最小值的一阶迭代优化算法。 要使用梯度下降找到函数的局部最小值,可以采用与当前点的函数梯度(或近似梯度)的负值成比例的步骤。 如果采取的步骤与梯度的正值成比例,则接近该函数的局部最大值,被称为梯度上升。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

随机梯度下降技术

梯度下降(Gradient Descent)是遵循成本函数的梯度来最小化一个函数的过程。这个过程涉及到对成本形式以及其衍生形式的认知,使得我们可以从已知的给定点朝既定方向移动。比如向下朝最小值移动。 在机器学习中,我们可以利用随机梯度下降的方法来最小化训练模型中的误差,即每次迭代时完成一次评估和更新。 这种优化算法的工作原理是模型每看到一个训练实例,就对其作出预测,并重复迭代该过程到一定的次数。这个流程可以用于找出能导致训练数据最小误差的模型的系数。

噪音技术

噪音是一个随机误差或观测变量的方差。在拟合数据的过程中,我们常见的公式$y=f(x)+\epsilon$中$\epsilon$即为噪音。 数据通常包含噪音,错误,例外或不确定性,或者不完整。 错误和噪音可能会混淆数据挖掘过程,从而导致错误模式的衍生。去除噪音是数据挖掘(data mining)或知识发现(Knowledge Discovery in Database,KDD)的一个重要步骤。

迁移学习技术

迁移学习是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都是为了解决单个任务而设计的,但是促进迁移学习的算法的开发是机器学习社区持续关注的话题。 迁移学习对人类来说很常见,例如,我们可能会发现学习识别苹果可能有助于识别梨,或者学习弹奏电子琴可能有助于学习钢琴。

正则化技术

当模型的复杂度增大时,训练误差会逐渐减小并趋向于0;而测试误差会先减小,达到最小值后又增大。当选择的模型复杂度过大时,过拟合现象就会发生。这样,在学习时就要防止过拟合。进行最优模型的选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。

优化器技术

优化器基类提供了计算梯度loss的方法,并可以将梯度应用于变量。优化器里包含了实现了经典的优化算法,如梯度下降和Adagrad。 优化器是提供了一个可以使用各种优化算法的接口,可以让用户直接调用一些经典的优化算法,如梯度下降法等等。优化器(optimizers)类的基类。这个类定义了在训练模型的时候添加一个操作的API。用户基本上不会直接使用这个类,但是你会用到他的子类比如GradientDescentOptimizer, AdagradOptimizer, MomentumOptimizer(tensorflow下的优化器包)等等这些算法。

百度机构

百度是全球最大的中文搜索引擎,是一家互联网综合信息服务公司,更是全球领先的人工智能平台型公司。2000年1月1日创立于中关村,公司创始人李彦宏拥有“超链分析”技术专利,也使中国成为美国、俄罗斯、和韩国之外,全球仅有的4个拥有搜索引擎核心技术的国家之一。

https://www.baidu.com/
深度迁移学习技术

在深度迁移学习中,首先在与需要解决问题的类似问题中训练神经网络模型,然后将来自训练模型的一个或多个层用于训练需要解决问题的新模型中。

暂无评论
暂无评论~